Ma Stack Technique SEO/GEO : Architecture et Résultats
Résumé IA
Cet article introduit la stack technique de Quentin Yacoub axée sur le SEO/GEO, détaillant la création d'un blog haute performance en 11 jours via Astro et Cursor. Il présente l'architecture, les coûts et les workflows IA utilisés pour atteindre des scores Core Web Vitals parfaits. L'ensemble vise une optimisation totale pour les crawlers des moteurs de recherche traditionnels et des modèles d'IA.
Table des matières
This article is also available in English: My SEO/GEO Technical Stack: Architecture and Results
Quand j’ai décidé de créer ce site, mon objectif était simple : il devait être pensé en premier pour le SEO et prêt pour l’ère du GEO, dès la première ligne de code. Je voulais un blog personnel rapide, réactif et mobile-first, sans la lourdeur habituelle des infrastructures classiques.
J’ai bâti ce site en seulement 11 jours, en atteignant un score de 100 sur presque tous les Core Web Vitals sur mobile et ordinateur. Le tout, en jonglant avec un poste exigeant chez Adobe et un nouveau-né à la maison. Voici une plongée dans l’architecture que j’ai choisie, les fonctionnalités SEO/GEO et IA que j’ai intégrées, et surtout, le pourquoi du comment.
Note : Je vais entrer un peu dans les détails techniques. Si tu veux juste l’essentiel, clique ici pour demander à ChatGPT de te résumer l’article sans le jargon.
Ma configuration technique
| Couche | Choix | Impact SEO |
|---|---|---|
| Framework | Astro 6.0.6 | Performance de pointe et chargement quasi instantané. |
| Styling | Tailwind CSS 4 | Zéro requête CSS externe grâce aux feuilles de style intégrées (inlined). |
| Images | Sharp | Redimensionnement et compression automatiques lors du build. |
| Bilingue | Astro i18n natif | Support natif pour le routage /en/ et /fr/. |
| Hébergement | PlanetHoster & Cloudflare | Serveur d’origine local pour un TTFB ultra-rapide et cache global via l’edge. |
Petit avertissement : cette configuration répond parfaitement à mes besoins personnels, mais ce n’est pas une solution universelle. Je ne prétends pas que c’est l’unique façon de construire un site en 2026. Je partage simplement mes notes et mes tests réels pour que nous puissions analyser ensemble les avantages et les inconvénients.
Choisir les fondations
Je n’ai pas fait ce site avec l’objectif d’avoir une autre source de revenus ; chaque dollar (j’habite à Montréal) sort de ma poche. Mon but était de minimiser les coûts d’infrastructure sans sacrifier une once de performance. Voici comment se comparent les trois grandes options pour un blog en 2026 :
| Caractéristique / Coût | Build Sur Mesure | CMS Traditionnel (WP) | CMS Headless |
|---|---|---|---|
| Framework ou CMS | Open Source (Gratuit) | WordPress Core (Gratuit) | Sanity (Tier Gratuit) |
| Hébergement & Domaine | 145 $ (PlanetHoster) | ~360 $ (WP Engine Startup) | 145 $ (PlanetHoster) |
| Thèmes et Plugins | 70 $ (Via Cursor) | 50 $ à 200 $(Bloatware Premium) | 70 $ (Via Cursor) |
| Performance (LCP) | Maximale | Variable | Excellente |
| Prêt pour le SEO/GEO | Contrôle total | Dépend des plugins | Contrôle total |
| Pénalités de Scalabilité | Aucune | Limites de visiteurs strictes | Limites d’API |
| Maintenance | Nulle | Haute (Sécurité & MAJ) | Gérée par le CMS |
| Estimation Année 1 | 215 $ | 410 $ à 600 $+ | 215 $ |
Précisions sur les coûts :
- L’hébergement pourrait être gratuit via Vercel (non traduit), Netlify (non traduit), ou Cloudflare. Un nouveau domaine coûte environ 15 $/an selon ce que tu choisis.
- J’ai alloué 70 $ pour un “sprint” d’un mois sur Cursor Pro+ pour bâtir le site, avec l’objectif de repasser au plan gratuit ensuite ou de temps en temps à Claude Code.
Mon choix : le build sur mesure
L’ancienne méthode : Avant l’IA, un blog sur mesure était réservé à l’élite. Sans compétences techniques, il fallait payer un freelance une fortune. Même avec le savoir-faire, cela prenait des semaines.
La nouvelle méthode avec l’IA : Avec Cursor, j’ai bâti ce site en 11 jours. J’ai travaillé exclusivement durant mon quart de papa à 4h00 du matin, avant que la maison ne s’éveille, et sur deux week-ends. J’ai commencé avec une base brute le Jour 1, puis j’ai ajouté des fonctionnalités prompt après prompt : la table des matières, la meta bar, le routage bilingue /fr/, les résumés générés par IA, la boîte auteur, etc.
Cursor comme copilote SEO/GEO
Construire le site avec Cursor était génial, mais c’est dans l’utilisation que cette stack brille vraiment.
Comme mon site n’est qu’un dossier de code et de fichiers Markdown, Cursor agit comme un assistant SEO/GEO hyper intelligent qui comprend tout le contexte de mon site. Je peux modifier mon architecture ou mon contenu avec un simple prompt en langage naturel. Voici deux exemples pour le maillage interne :
Correction globale de liens
Imagine devoir mettre à jour une URL présente sur 15 pages différentes. En SEO classique, soit tu édites tout à la main, soit tu fais une redirection 301 sans modifier les liens.
Avec Cursor, je prompte simplement :
J'ai changé l'URL de mon article 'Hello World' en /nouveau-site. Trouve chaque lien interne dans tous mes fichiers .md pointant vers l'ancienne URL et mets-les à jour.En quelques secondes, les fichiers sources sont à jour. Pas de chaînes de redirection, pas de perte de “link equity”.
Maillage interne automatisé
Le maillage interne est crucial, mais fastidieux. Avant, il fallait crawler le site avec Screaming Frog ou utiliser des plugins lourds.
Maintenant, j’écris mon article et je prompte :
Je viens d'écrire un post sur le SEO/GEO JavaScript. Scanne mes anciens articles dans le dossier /blog/ et insère un lien interne naturel vers ce nouveau post là où c'est sémantiquement pertinent.Cursor lit le contexte, trouve les spots parfaits et fait les éditions. Une tâche de plusieurs heures devient une action de 30 secondes.
Pourquoi Astro ?
Je voulais un site moderne et interactif, en utilisant le moins de JavaScript possible tout en apprenant de nouvelles compétences.
Le coût caché du JavaScript
Les spécialistes SEO travaillant sur des sites fortement dépendants du rendu côté client (CSR) connaissent bien le calvaire des sites sous React ou Vue. Ces frameworks dressent des barrières massives entre le contenu et les robots :
- Les LLM ne rendent pas le JS (pour l’instant) : À l’ère du GEO, c’est rédhibitoire. Quand les modèles d’IA crawlent le web, ils n’exécutent pas le JavaScript. Pour un LLM, une page lourde en JS est virtuellement vide. Chez Adobe, nous avons créé une extension Chrome gratuite pour vérifier ce que les crawlers d’IA voient.(non traduit).
- La file d’attente secondaire de Google : Googlebot crawle d’abord l’HTML initial. S’il faut du JS pour afficher le contenu, la page attend dans une file de rendu secondaire, ce qui retarde l’indexation.
- Le déficit de crawlability : Le SEO est un jeu à somme nulle. Si un concurrent fournit un HTML statique propre et que tu fournisses un bundle JS complexe, les bots choisiront toujours la voie de la moindre résistance.
(Je publierai d’ailleurs bientôt un article dédié sur l’impact du JavaScript sur le SEO et la recherche par IA, alors reste à l’affût !)
Le Graal du SEO/GEO : l’HTML pré-rendu
Livrer de l’HTML pré-rendu n’est pas négociable pour moi. Le gros avantage d’Astro est son “Island Architecture”. (non traduit) L’HTML envoyé au navigateur contient zéro JavaScript, sauf si tu l’autorises explicitement.
Je n’utilise l’interactivité que si elle apporte une réelle valeur. Par exemple, la sphère de compétences 3D sur ma page À Propos utilise React 19 et Three.js. Comme elle se charge indépendamment, elle ne bloque jamais le rendu critique de la page ni la lecture du texte par les bots.

Comparaison des frameworks
| Framework | JavaScript | Impact SEO / Web Vitals | Complexité |
|---|---|---|---|
| Astro | Zéro par défaut | Excellent | Faible |
| Next.js | Élevée | Bon | Haute |
| Gatsby | Élevée | Bon | Haute |
Puisque ma priorité était d’éliminer les dépendances JS, Astro était le choix naturel.
Stratégie d’hébergement
PlanetHoster
J’aurais pu économiser quelques dollars avec Vercel. Cependant, résidant à Montréal avec un réseau local important, j’ai choisi PlanetHoster pour leurs serveurs d’origine basés ici. La proximité physique signifie une latence ultra-faible pour mon audience principale.
Mise à jour : une semaine après le lancement, j’ai découvert une situation aberrante pour un spécialiste SEO/GEO…
Par défaut, les serveurs mutualisés de PlanetHoster (offre The World) bloquent les robots d’IA. En vérifiant les logs, j’ai trouvé la Règle ID 400010 qui refusait l’accès (403) à
ChatGPT-UseretPerplexityBot.
Lorsque j’ai contacté le support, on m’a répondu qu’il était impossible de supprimer cette règle pour l’ensemble du serveur. Leur solution ? Passer à un serveur dédié pour 70 $ par mois. J’étais sous le choc !
Un hébergeur qui bloque les bots d’IA en 2026 ? Cela rend votre site invisible pour ChatGPT et Perplexity. Réalisez-vous ce que cela implique ? Votre contenu n’existe tout simplement pas pour les millions d’utilisateurs qui utilisent l’IA comme moteur de recherche principal. Vous payez pour un hébergement qui cache activement votre entreprise du web moderne !
J’ai trouvé une solution de contournement via Cloudflare pour laisser passer les bots, mais si c’était à refaire, je ne choisirais pas PlanetHoster pour cette seule et unique raison.
CDN Cloudflare
Bien que mon serveur d’origine soit à Montréal, je construis ce site pour une audience mondiale composée de collègues d’Adobe et de mon réseau LinkedIn. Le CDN gratuit de Cloudflare sert mes fichiers statiques depuis les serveurs les plus proches de l’utilisateur. C’est aussi crucial pour les crawlers : avec Cloudflare, le Time to First Byte (TTFB) chute drastiquement partout dans le monde.
Cloudflare : le futur du GEO ?
Cloudflare innove activement pour l’ère de l’IA avec des fonctionnalités comme le endpoint /crawl (non traduit) et le Markdown for Agents (non traduit), permettant aux IA de lire les sites en Markdown léger plutôt qu’en HTML lourd.
Ils proposent aussi une option pour bloquer tous les bots IA. En tant que spécialiste SEO/GEO, je le laisse désactivé : je veux que mon contenu soit ingéré. Mais offrir ce contrôle aux propriétaires de sites est une avancée majeure.
Bilan financier de ma stack
En choisissant Astro, j’ai éliminé la “taxe WordPress” et la “taxe JavaScript” simultanément. Le coût annuel est d’environ 335 $. C’est un investissement pour avoir un “bac à sable” fiable où expérimenter. Note qu’on peut descendre à 85 $/an en utilisant des versions gratuites.
| Composant | Fournisseur | Coût |
|---|---|---|
| Build (IDE) | Cursor Pro+ | 70 $ |
| Contenu | Gemini | 160 $ |
| Hébergement | PlanetHoster | 90 $ |
| Domaine | PlanetHoster | 15 $ |
| CDN | Cloudflare | Gratuit |
| Total 1 An | 335 $ |
Fonctionnalités SEO/GEO natives
Le moteur SEO
Je déteste les tâches répétitives. J’ai créé un composant central (SEOHead.astro) qui gère mes métadonnées automatiquement :
- URL Canoniques : Générées selon le chemin de la page pour éviter le contenu dupliqué.
- Schémas JSON-LD : Chaque post génère automatiquement les données structurées
Article,WebSite,AuthoretBreadcrumbList. Cela aide Google pour les Rich Snippets et les LLM pour la compréhension sémantique. - Balises Hreflang : Mappage propre entre les variantes anglaises et françaises.
Architecture SEO/GEO globale
- Breadcrumbs Visuels : Aide à la navigation qui permet aux utilisateurs (et aux bots) de comprendre l’arborescence instantanément.
- Zéro Page Orpheline : L’index
/bloggarantit que chaque article est lié et accessible. - Autorité Thématique : Des articles connexes sont injectés en bas de page pour aider les bots à cartographier mon expertise.
- Sitemap : Une liste de toutes les URL disponibles sur le site, y compris les images. J’y inclus également ma politique de confidentialité ; même avec une balise
noindex, je pense que cela envoie un bon signal de confiance. - Robots.txt : Je n’interdis rien, mais il est préférable de l’inclure et de pointer directement vers le sitemap.
- Le crawl cross-language : Les balises hreflang ne suffisent pas toujours. Mon layout vérifie si une traduction existe et affiche un lien hypertexte direct dans le corps de la page. C’est un autre chemin de crawl pour que Googlebot trouve mon autre article.
Un tracking respectueux
Pour mesurer la performance, j’utilise la Search Console de Google et Bing Webmaster Tools. Pour l’analytique sur site, je voulais éviter les bannières de cookies intrusives. J’utilise donc une configuration Matomo sans cookie. J’obtiens les données agrégées nécessaires pour optimiser mon contenu sans te traquer.
Résultats Core Web Vitals
Même si je ne pense pas que les Core Web Vitals soient un facteur de classement important, c’est un excellent moyen de mesurer la performance d’une page. Avec cette architecture, passer le test est un jeu d’enfant.

Scores PageSpeed Insights
Mon blog personnel a atteint des scores parfaits sur presque toutes les pages, autant sur mobile que sur desktop :
| Page | Performance | Accessibilité | Bonnes Pratiques | SEO |
|---|---|---|---|---|
| Accueil | 100 | 100 | 100 | 100 |
| Page Blog | 100 | 96 | 100 | 100 |
| À Propos | 100 | 100 | 100 | 100 |
Note sur le 96 en Accessibilité : J’ai gardé le vert ChatGPT (#10a37f) sur mon bouton résumé. Il échoue techniquement aux contrastes WCAG, mais j’ai privilégié la reconnaissance visuelle immédiate.
Optimiser les CWV avec Cursor
J’ai simplement soumis mon rapport initial PageSpeed Insights à Cursor, je lui ai demandé de créer un plan d’optimisation, j’ai revu les étapes et j’ai lancé l’implémentation. En quelques heures, j’ai atteint presque 100 % sur toutes les pages.
Fonctionnalités IA
Comme mon focus est le GEO, j’ai intégré des fonctionnalités qui répondent à la façon dont les gens interagissent avec les LLM :
- Audio NotebookLM : Un bouton “Écouter” qui lance un aperçu style brief généré par Google NotebookLM.
- Bouton résumé ChatGPT : Envoie l’article vers ChatGPT pour un résumé instantané.
- Encadrés résumé IA : En haut de chaque article pour offrir une valeur immédiate aux lecteurs pressés et un contexte structuré aux crawlers LLM.
Les avantages et inconvénients d’un build Astro et Cursor
Si tu es un spécialiste SEO ou un créateur de contenu et que tu te demandes s’il est temps de supprimer ton site WordPress, voici la réalité honnête de la gestion d’une stack personnalisée construite avec l’IA.
Les points forts
| Bénéfice | Pourquoi c’est important |
|---|---|
| SEO et GEO imbattables | Tu sers du HTML statique pur. Réussir les Core Web Vitals est la norme par défaut, et c’est la structure la plus adaptée aux LLM pour présenter ton contenu. |
| Maintenance zéro | Pas de base de données à mettre à jour, pas de versions PHP à gérer, et aucune vulnérabilité de plugin à surveiller. |
| Gestion en “God Mode” | Avec Cursor, tu peux modifier l’architecture de tout le site ou gérer le maillage interne en masse en quelques secondes via des prompts. |
| Efficacité des coûts | Hormis le domaine et l’hébergement de base, tes coûts récurrents de logiciels et d’infrastructure sont pratiquement nuls. |
Les points faibles
| Inconvénient | La réalité |
|---|---|
| Dépendance à l’IA | Tu dépends d’outils comme Cursor pour les fonctionnalités complexes. Si tu arrêtes de payer pour ces outils, ta capacité à faire évoluer le site ralentit. |
| Pas d’éditeur visuel | Il n’y a pas d’éditeur “drag and drop” comme Gutenberg. Tu rédiges tes articles en Markdown brut, ce qui peut sembler déroutant au début. |
| Courbe d’apprentissage | Même avec l’IA, tu as besoin d’une base de compréhension sur l’hébergement web, les enregistrements DNS et la gestion de fichiers locaux pour te lancer. |
D’après mes tests, le compromis est évident. La légère friction de l’écriture en Markdown est largement compensée par les gains massifs en SEO/GEO, ainsi que par la vitesse du site.
Prochaine étape ?
Bâtir l’architecture n’est que la première étape. La seconde, c’est de mesurer la réaction des machines.
Depuis le lancement, j’enregistre tout ce qui se passe sous le capot. Dans un prochain article, je partagerai le délai réel de crawl par Google et, plus important encore pour le GEO, le temps qu’il a fallu aux LLM pour mettre à jour leur base de connaissances sur mon contenu.
Si tu testes des configurations similaires, comparons nos notes ! N’hésite pas à me contacter sur LinkedIn.
Note importante : Toutes les opinions et articles de blog partagés sur ce site sont strictement mes projets personnels. Ils ne représentent pas les vues, stratégies ou produits officiels de mon employeur, Adobe.
Hello, je m'appelle Quentin, je suis spécialiste SEO/GEO chez Adobe. Je développe des outils IA pour Site Optimizer et LLM Optimizer. J'utilise ce site pour documenter mes réflexions sur l'évolution de la recherche à l'ère de l'IA, et pour partager mes experimentations et raccourcis que j'utilise.
Retrouvez-moi sur LinkedIn