Que dit Google sur le SEO ? /

Declaration officielle

Si une requête JavaScript vers une API (comme /api/cats) est bloquée par robots.txt, Googlebot ne pourra pas la charger même si elle fonctionne dans les navigateurs. Les navigateurs ignorent robots.txt, mais Google le respecte, ce qui peut créer des pages vides dans l'index.
20:07
🎥 Vidéo source

Extrait d'une vidéo Google Search Central

⏱ 46:02 💬 EN 📅 25/11/2020 ✂ 29 déclarations
Voir sur YouTube (20:07) →
Autres déclarations de cette vidéo 28
  1. 1:02 Google rend-il vraiment toutes les pages JavaScript, quelle que soit leur architecture ?
  2. 1:02 Google rend-il vraiment TOUT le JavaScript, même sans contenu initial server-side ?
  3. 2:05 Comment vérifier que Googlebot crawle vraiment votre site ?
  4. 2:05 Comment vérifier que Googlebot est vraiment Googlebot et pas un imposteur ?
  5. 2:36 Google limite-t-il vraiment le temps CPU lors du rendu JavaScript ?
  6. 2:36 Google limite-t-il vraiment le temps CPU lors du rendu JavaScript ?
  7. 3:09 Faut-il arrêter d'optimiser pour les bots et se concentrer uniquement sur l'utilisateur ?
  8. 5:17 La propriété CSS content-visibility impacte-t-elle le rendu dans Google ?
  9. 8:53 Comment mesurer les Core Web Vitals sur Firefox et Safari sans API native ?
  10. 11:00 Combien de temps Google attend-il vraiment avant d'abandonner le rendu JavaScript ?
  11. 11:00 Combien de temps Googlebot attend-il vraiment pour le rendu JavaScript ?
  12. 20:07 AJAX fonctionne en SEO, mais faut-il vraiment l'utiliser ?
  13. 21:10 Le JavaScript bloquant peut-il vraiment empêcher Google d'indexer tout le contenu de vos pages ?
  14. 24:48 Le prérendu dynamique est-il devenu un piège pour l'indexation ?
  15. 26:25 Pourquoi vos ressources supprimées peuvent-elles détruire votre indexation en prérendu ?
  16. 26:47 Que fait vraiment Google avec votre HTML initial avant le rendu JavaScript ?
  17. 27:28 Google analyse-t-il vraiment tout dans le HTML initial avant le rendu ?
  18. 27:59 Pourquoi Google ignore-t-il le rendu JavaScript si votre balise noindex apparaît dans le HTML initial ?
  19. 27:59 Pourquoi une page 404 avec JavaScript peut-elle faire désindexer tout votre site ?
  20. 28:30 Pourquoi Google refuse-t-il de rendre le JavaScript si le HTML initial contient un meta noindex ?
  21. 30:00 Google compare-t-il vraiment le HTML initial ET rendu pour la canonicalisation ?
  22. 30:01 Google détecte-t-il vraiment le duplicate content après le rendu JavaScript ?
  23. 31:36 Les APIs GET sont-elles vraiment mises en cache par Google comme les autres ressources ?
  24. 31:36 Google cache-t-il vraiment les requêtes POST lors du rendu JavaScript ?
  25. 34:47 Est-ce que Google indexe vraiment toutes les pages après rendu JavaScript ?
  26. 35:19 Google rend-il vraiment 100% des pages JavaScript avant indexation ?
  27. 36:51 Pourquoi vos APIs défaillantes sabotent-elles votre indexation Google ?
  28. 37:12 Les données structurées sur pages noindex sont-elles vraiment perdues pour Google ?
📅
Declaration officielle du (il y a 5 ans)
TL;DR

Googlebot respecte scrupuleusement le fichier robots.txt, y compris pour les requêtes API JavaScript. Si vous bloquez /api/ dans robots.txt, vos pages ne chargeront pas les données côté Google, même si elles s'affichent normalement dans Chrome. Résultat : des pages vides dans l'index alors que tout semble fonctionnel lors de vos tests navigateur.

Ce qu'il faut comprendre

En quoi les navigateurs et Googlebot traitent-ils robots.txt différemment ?

Les navigateurs modernes ignorent totalement le fichier robots.txt. Quand vous testez votre site dans Chrome, Firefox ou Safari, chaque requête JavaScript vers vos API passe sans filtre. C'est pour ça que votre page affiche correctement la liste de produits, les avis clients ou les données de prix.

Googlebot, lui, respecte strictement les directives robots.txt avant d'exécuter le moindre script. Si une URL d'API est bloquée, le bot n'y touche pas — point final. Le rendu côté Google échoue donc à charger les données dynamiques, et vous vous retrouvez avec du HTML vide dans l'index.

Comment ce blocage crée-t-il des pages fantômes dans l'index ?

Imaginons un site e-commerce qui charge ses fiches produits via fetch('/api/products/12345'). Si robots.txt contient Disallow: /api/, Googlebot télécharge le HTML initial, exécute le JavaScript... mais bloque net la requête API.

Le DOM reste donc squelettique : pas de titre produit, pas de description, pas de prix. Google indexe cette coquille vide. Vous, en testant dans votre navigateur, voyez la page complète et pensez que tout va bien. C'est le piège classique du test manuel qui ne reflète pas la réalité du crawl.

Pourquoi tant de sites bloquent-ils leurs API sans le savoir ?

Beaucoup de robots.txt sont générés automatiquement par des CMS ou frameworks avec des règles « sécuritaires » par défaut. Les développeurs bloquent /api/ en pensant protéger leurs données ou éviter du crawl inutile.

D'autres fois, c'est un reliquat historique : le site était en pur PHP server-side, puis a migré vers React/Vue/Angular sans nettoyer le robots.txt. Résultat : les endpoints critiques restent interdits alors qu'ils sont désormais essentiels au rendu client.

  • Les navigateurs ne consultent jamais robots.txt — vos tests manuels passent toujours
  • Googlebot bloque toute requête API listée dans Disallow, même pour du rendering JavaScript
  • Un robots.txt mal configuré génère des pages vides dans l'index malgré un site fonctionnel
  • Le problème est invisible sans test via Search Console ou un outil de rendu Google
  • Les frameworks modernes amplifient ce risque en multipliant les appels API côté client

Avis d'un expert SEO

Cette déclaration est-elle cohérente avec ce qu'on observe sur le terrain ?

Absolument. On voit régulièrement des sites SPA ou Jamstack avec des taux d'indexation catastrophiques — 30% de pages indexées alors que le sitemap en liste 10 000. Quand on inspecte via l'outil de test d'URL de Search Console, le rendu HTML affiche des <div id="app"></div> vides.

Le diagnostic ? Un Disallow: /api/ ou Disallow: /_next/data/ dans robots.txt. Les développeurs ne pensent pas « SEO » quand ils configurent ces règles — ils pensent sécurité, performance, ou ils copient-collent un template. Et ça casse l'indexation sans que personne ne s'en rende compte pendant des mois.

Quelles nuances faut-il apporter à cette règle ?

Premier point : si votre contenu est déjà présent dans le HTML initial (SSR, prérendu, hydratation progressive), bloquer les API a moins d'impact. Google lit le contenu server-side, même si les enrichissements JavaScript échouent ensuite. Mais ça reste un jeu dangereux — certains éléments (prix dynamiques, stock, avis) peuvent manquer.

Deuxième nuance : certains blocs /api/analytics, /api/tracking ou /api/user-prefs n'ont aucun impact SEO et peuvent légitimement rester bloqués. Le problème, c'est qu'on voit souvent des règles Disallow: /api/ trop larges qui tuent tout. [À vérifier] au cas par cas : chaque endpoint doit être évalué pour son rôle dans le rendu visible.

Dans quels cas cette règle ne s'applique-t-elle pas ?

Si vous utilisez du server-side rendering strict (Next.js getServerSideProps, Nuxt asyncData côté serveur, PHP classique), robots.txt ne bloque rien puisque les données sont injectées avant l'envoi du HTML. Googlebot reçoit du contenu complet sans exécuter de JavaScript.

Autre exception : les sites qui chargent du contenu non-indexable par design (zones membres, paniers, préférences utilisateur). Là, bloquer /api/ est intentionnel et sans impact SEO négatif. Mais soyons honnêtes — la plupart du temps, c'est un accident de configuration, pas une stratégie réfléchie.

Attention : Si vous migrez d'un site server-side vers un framework JavaScript moderne, auditez IMMÉDIATEMENT votre robots.txt. Les règles héritées peuvent détruire votre visibilité du jour au lendemain sans que vous le détectiez via des tests navigateur.

Impact pratique et recommandations

Comment vérifier que vos API ne sont pas bloquées ?

Première étape : ouvrez votre robots.txt et cherchez toute ligne contenant Disallow: /api, Disallow: /_next, Disallow: /data ou équivalent. Si vous trouvez ça, c'est un red flag immédiat.

Ensuite, utilisez l'outil d'inspection d'URL dans Search Console. Cliquez sur « Tester l'URL en direct », puis « Afficher la page explorée » > « Plus d'infos » > « JavaScript ». Comparez le rendu final avec votre page réelle dans Chrome. Si des sections entières manquent (produits, articles, données), vous avez trouvé le coupable.

Quelles erreurs éviter lors de la configuration de robots.txt ?

Ne bloquez jamais un chemin entier comme /api/ sans réfléchir. Si vous devez protéger certains endpoints, listez-les individuellement : Disallow: /api/admin, Disallow: /api/user-settings. Laissez passer ce qui sert au rendu public.

Autre piège classique : les règles en cascade mal ordonnées. Si vous écrivez Disallow: /api/ puis Allow: /api/products, l'ordre compte selon certains bots. Google gère ça correctement, mais autant éviter la confusion — soyez explicite et minimaliste.

Que faut-il faire concrètement pour corriger ce problème ?

Identifiez tous les endpoints API essentiels au rendu de vos pages indexables. Créez une liste : /api/products, /api/posts, /api/categories, etc. Vérifiez qu'aucun de ces chemins n'apparaît dans une directive Disallow.

Si vous devez bloquer certaines API pour des raisons de sécurité, utilisez plutôt une authentification côté serveur (tokens, headers, CORS strict) au lieu de vous reposer sur robots.txt. Ce fichier n'est pas un pare-feu — c'est une indication pour les bots coopératifs.

  • Auditer robots.txt et supprimer toute règle Disallow: /api/ trop large
  • Tester le rendu JavaScript via Search Console sur 10-20 pages stratégiques
  • Comparer le HTML exploré par Google avec le rendu navigateur réel
  • Lister les endpoints API critiques et autoriser explicitement leur crawl si besoin
  • Mettre en place une alerte de suivi d'indexation pour détecter les chutes brutales
  • Documenter dans votre runbook SEO les règles robots.txt et leur justification
Ce type d'audit robots.txt × JavaScript rendering peut vite devenir un casse-tête si votre stack technique mélange plusieurs frameworks, API externes et règles historiques. Les interdépendances sont parfois opaques, et une correction mal dosée peut bloquer autre chose sans prévenir. Si vous manquez de temps ou d'expertise interne pour cartographier proprement votre architecture de rendu, faire appel à une agence SEO technique qui maîtrise ces enjeux peut vous éviter des mois de diagnostic et de correctifs en aveugle.

❓ Questions frequentes

Est-ce que Googlebot exécute JavaScript si l'API est bloquée dans robots.txt ?
Oui, Googlebot exécute le JavaScript, mais il bloque la requête fetch() ou XMLHttpRequest vers l'API interdite. Le script tourne, mais ne reçoit jamais les données, ce qui produit un DOM vide ou incomplet.
Comment savoir si mes pages sont indexées vides à cause de robots.txt ?
Utilisez l'outil d'inspection d'URL dans Search Console. Testez l'URL en direct, affichez le rendu HTML final et comparez-le avec ce que vous voyez dans votre navigateur. Si des blocs de contenu manquent côté Google, vérifiez robots.txt.
Puis-je bloquer /api/ pour économiser du crawl budget sans impact SEO ?
Non, pas si ces API servent à charger du contenu indexable. Bloquer /api/ économise zéro crawl budget réel — Googlebot ne crawle ces endpoints que quand le JavaScript les appelle. Vous cassez juste le rendu.
Les frameworks comme Next.js ou Nuxt sont-ils concernés par ce problème ?
Ça dépend. Si vous utilisez SSR (getServerSideProps, asyncData serveur), le contenu est injecté avant l'envoi HTML et robots.txt n'intervient pas. Mais en mode CSR ou ISR avec revalidation client, les API doivent rester accessibles.
Faut-il autoriser explicitement les API dans robots.txt ou simplement ne pas les bloquer ?
Par défaut, tout ce qui n'est pas interdit est autorisé. Vous n'avez pas besoin d'un Allow: /api/ explicite sauf si une règle Disallow plus large entre en conflit. Restez minimaliste : ne bloquez que ce qui doit l'être.
🏷 Sujets associes
Anciennete & Historique Crawl & Indexation IA & SEO JavaScript & Technique

🎥 De la même vidéo 28

Autres enseignements SEO extraits de cette même vidéo Google Search Central · durée 46 min · publiée le 25/11/2020

🎥 Voir la vidéo complète sur YouTube →

Declarations similaires

💬 Commentaires (0)

Soyez le premier à commenter.

2000 caractères restants
🔔

Recevez une analyse complète en temps réel des dernières déclarations de Google

Soyez alerté à chaque nouvelle déclaration officielle Google SEO — avec l'analyse complète incluse.

Aucun spam. Désinscription en 1 clic.