Que dit Google sur le SEO ? /
Quiz SEO Express

Testez vos connaissances SEO en 3 questions

Moins de 30 secondes. Decouvrez ce que vous savez vraiment sur le referencement Google.

🕒 ~30s 🎯 3 questions 📚 SEO Google

Declaration officielle

Le code 304 Not Modified ne doit être retourné que pour les requêtes conditionnelles (avec If-Modified-Since). Pour les requêtes normales, retourner un 304 signifie qu'aucun contenu n'est disponible, ce qui empêche l'indexation. Pour un sitemap vide, mieux vaut retourner un fichier vide, un 404 ou un 304 selon le contexte, mais pas un 304 aveugle.
9:01
🎥 Vidéo source

Extrait d'une vidéo Google Search Central

⏱ 56:47 💬 EN 📅 04/08/2020 ✂ 39 déclarations
Voir sur YouTube (9:01) →
Autres déclarations de cette vidéo 38
  1. 1:08 Comment mon site entre-t-il dans le Chrome User Experience Report sans inscription ?
  2. 1:08 Comment votre site se retrouve-t-il dans le Chrome User Experience Report ?
  3. 2:10 Comment mesurer les Core Web Vitals quand votre site n'est pas dans CrUX ?
  4. 3:14 Les avis négatifs peuvent-ils vraiment pénaliser votre classement Google ?
  5. 3:14 Les avis négatifs peuvent-ils vraiment pénaliser votre ranking Google ?
  6. 7:57 Faut-il vraiment séparer sitemaps pages et images ?
  7. 7:57 Le découpage des sitemaps affecte-t-il vraiment le crawl et l'indexation ?
  8. 9:01 Le code 304 Not Modified est-il vraiment un piège pour votre indexation ?
  9. 11:39 Le cache Google influence-t-il vraiment le ranking de vos pages ?
  10. 11:39 Le cache Google est-il vraiment inutile pour évaluer la qualité SEO d'une page ?
  11. 13:51 Pourquoi votre changement de niche ne génère-t-il aucun trafic malgré tous vos efforts SEO ?
  12. 14:51 Les annuaires de liens sont-ils définitivement morts pour le SEO ?
  13. 17:59 Les pages traduites comptent-elles vraiment comme du contenu dupliqué aux yeux de Google ?
  14. 17:59 Les pages traduites sont-elles vraiment considérées comme du contenu unique par Google ?
  15. 20:20 Pourquoi Google ignore-t-il vos balises canonical et comment forcer l'indexation séparée de vos URLs régionales ?
  16. 22:15 Pourquoi Google ignore-t-il votre canonical sur les sites multi-pays ?
  17. 23:14 Pourquoi votre crawl budget Search Console explose-t-il sans raison apparente ?
  18. 23:18 Pourquoi votre crawl budget Search Console explose-t-il sans raison apparente ?
  19. 25:52 Faut-il vraiment limiter le taux de crawl dans Search Console ?
  20. 26:58 Hreflang et géociblage : Google peut-il vraiment ignorer vos signaux internationaux ?
  21. 28:58 Hreflang et canonical sont-ils vraiment fiables pour le ciblage géographique ?
  22. 34:26 Hreflang et canonical : pourquoi Search Console affiche-t-il la mauvaise URL ?
  23. 34:26 Pourquoi Search Console affiche-t-elle un canonical différent de ce qui apparaît dans les SERP pour vos pages hreflang ?
  24. 38:38 Comment Google différencie-t-il vraiment deux sites en même langue mais ciblant des pays différents ?
  25. 38:42 Faut-il canonicaliser toutes vos versions pays vers une seule URL ?
  26. 38:42 Faut-il vraiment garder chaque page hreflang en self-canonical ?
  27. 39:13 Comment éviter la canonicalisation entre vos pages multi-pays grâce aux signaux locaux ?
  28. 43:13 Faut-il vraiment abandonner les déclinaisons pays dans hreflang ?
  29. 45:34 Faut-il vraiment utiliser hreflang pour un site multilingue ?
  30. 47:44 Les commentaires Facebook ont-ils un impact sur le SEO et l'EAT de votre site ?
  31. 48:51 Faut-il isoler le contenu UGC et News en sous-domaines pour éviter les pénalités ?
  32. 50:58 Faut-il créer une version Googlebot allégée pour accélérer l'exploration ?
  33. 50:58 Faut-il optimiser la vitesse de votre site pour Googlebot ou pour vos utilisateurs ?
  34. 50:58 Faut-il servir une version allégée de vos pages à Googlebot pour améliorer le crawl ?
  35. 52:33 Peut-on créer des pages locales par ville sans risquer une pénalité pour doorway pages ?
  36. 52:33 Comment différencier une page par ville légitime d'une doorway page sanctionnable ?
  37. 54:38 L'action manuelle Google pour doorway pages a-t-elle disparu au profit de l'algorithmique ?
  38. 54:38 Les doorway pages sont-elles encore sanctionnées manuellement par Google ?
📅
Declaration officielle du (il y a 5 ans)
TL;DR

Google précise que le code HTTP 304 ne doit être retourné que pour les requêtes conditionnelles comportant un header If-Modified-Since ou similaire. Pour une requête normale sans condition, un 304 signale l'absence de contenu et empêche l'indexation par Googlebot. Cette distinction technique entre requête conditionnelle et requête standard est cruciale pour éviter de désindexer involontairement des contenus fonctionnels.

Ce qu'il faut comprendre

Qu'est-ce qu'une requête conditionnelle et comment fonctionne le code 304 ?

Une requête conditionnelle contient des headers spécifiques comme If-Modified-Since ou If-None-Match. Le navigateur ou le bot demande au serveur : "J'ai une version datant du 15 janvier, y a-t-il du nouveau ?" Si rien n'a changé, le serveur répond 304 et économise de la bande passante en ne renvoyant pas le corps de la réponse.

Le 304 est donc un mécanisme d'optimisation, pas un code d'erreur. Il suppose qu'une version valide existe déjà côté client. C'est la raison pour laquelle Google insiste sur le contexte : ce code ne fait sens que lorsqu'une condition est posée explicitement.

Que se passe-t-il si on retourne un 304 sur une requête normale ?

Pour une requête sans header conditionnel, un 304 devient problématique. Le bot ne possède aucune version en cache, il attend du contenu. En recevant un 304, Googlebot interprète cela comme "aucun contenu disponible" et ne peut donc pas indexer la page.

Concrètement ? Votre page disparaît de l'index. C'est particulièrement vicieux parce que le serveur ne renvoie pas d'erreur flagrante — juste une réponse vide techniquement valide mais sémantiquement fausse dans ce contexte.

Pourquoi cette erreur survient-elle fréquemment avec les sitemaps ?

Les sitemaps XML sont des fichiers régulièrement crawlés mais rarement modifiés. Certains développeurs mettent en place un mécanisme de cache agressif qui retourne systématiquement un 304, même sans requête conditionnelle, dans l'idée d'économiser des ressources.

Le problème : Googlebot qui découvre le sitemap pour la première fois ou après un vidage de cache reçoit un 304 aveugle. Résultat, impossible de lire les URLs listées. Mueller suggère plusieurs alternatives selon le cas : un fichier XML vide valide, un 404 si le sitemap n'existe plus, ou un 304 uniquement si une requête conditionnelle est détectée.

  • Le code 304 est réservé aux requêtes conditionnelles avec headers If-Modified-Since ou If-None-Match
  • Un 304 sur requête normale signale l'absence de contenu et bloque l'indexation
  • Les sitemaps mal configurés sont une source fréquente de cette erreur
  • Les alternatives correctes : fichier vide, 404, ou 304 conditionnel uniquement
  • Vérifier la logique serveur pour s'assurer que le 304 n'est jamais retourné aveuglément

Avis d'un expert SEO

Cette déclaration est-elle cohérente avec les observations terrain ?

Absolument. Les cas de désindexation mystérieuse liés à des 304 mal configurés ne sont pas rares, surtout sur des CMS custom ou des plateformes e-commerce avec cache Varnish/Nginx mal paramétré. L'erreur classique : un dev met en place un cache HTTP sans distinguer les requêtes initiales des requêtes de validation.

Les logs serveur montrent alors des 304 systématiques pour Googlebot, qui ne possède pourtant aucune version en cache. La Search Console affiche "Explorée, actuellement non indexée" sans autre explication, et il faut plonger dans les headers pour comprendre. C'est un bug silencieux qui peut persister des mois.

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

Mueller reste vague sur les scénarios de CDN et de reverse proxy. Certains CDN retournent des 304 basés sur leur propre état de cache, indépendamment du header conditionnel initial. Est-ce que Googlebot tolère cette situation si le CDN a déjà servi le contenu auparavant ? [A verifier]

Autre zone grise : les ressources statiques (CSS, JS, images). Google ne détaille pas si la règle s'applique aussi strictement. En pratique, les ressources statiques avec 304 aveugle posent moins de problèmes d'indexation directs, mais peuvent affecter le rendering si Googlebot ne parvient pas à charger un CSS critique. Le discours officiel manque de granularité sur ce point.

Faut-il bannir complètement le 304 des sitemaps ?

Non, ce serait une sur-réaction. Le 304 conditionnel sur un sitemap est parfaitement légitime et économise du crawl budget quand il est bien implémenté. Le piège est dans l'implémentation : beaucoup de frameworks retournent un 304 par défaut sans vérifier la présence du header If-Modified-Since.

La recommandation de Mueller sur le fichier vide est pragmatique pour les sitemaps temporairement vides (nouvelle section du site pas encore indexée, par exemple). Un fichier XML valide avec sans URL indique clairement "rien à crawler pour le moment" sans ambiguïté. C'est plus propre qu'un 404 qui pourrait signaler une erreur de configuration.

Attention : Certains serveurs configurés avec mod_deflate ou gzip retournent un 304 si le contenu compressé n'a pas changé, indépendamment du header conditionnel. Vérifier la chaîne de traitement complète, pas seulement le code applicatif.

Impact pratique et recommandations

Comment vérifier que votre serveur ne retourne pas de 304 aveugle ?

Testez vos URLs et sitemaps avec curl ou Postman en émulant Googlebot. Faites une requête sans header conditionnel : curl -I -A "Googlebot" https://example.com/sitemap.xml. Si vous obtenez un 304, c'est un problème flagrant.

Ensuite, testez avec un header conditionnel : curl -I -H "If-Modified-Since: Mon, 01 Jan 2024 00:00:00 GMT" https://example.com/sitemap.xml. Là, un 304 est attendu si le fichier n'a pas changé depuis cette date. La différence de comportement entre les deux requêtes doit être nette.

Quelles configurations serveur faut-il auditer en priorité ?

Les reverse proxy comme Varnish ou Nginx sont les premiers suspects. Vérifiez la logique de cache : le 304 doit être conditionné à la présence d'un header de validation, pas à l'existence d'une entrée en cache côté serveur.

Côté applicatif, les frameworks PHP (Symfony, Laravel) et Node.js (Express) ont souvent des middlewares de cache HTTP. Assurez-vous qu'ils ne retournent un 304 que si req.headers['if-modified-since'] ou if-none-match est présent et correspond à la version actuelle. Un flag booléen "isCached" ne suffit pas.

Que faire si vous découvrez un 304 aveugle sur des pages indexées ?

Corrigez la configuration immédiatement et forcez un recrawl via Search Console pour les URLs critiques. Pour un sitemap, soumettez-le à nouveau une fois la correction déployée. Les pages déjà désindexées peuvent mettre plusieurs semaines à revenir selon le crawl budget du site.

Surveillez la couverture d'index dans Search Console pendant les semaines suivantes. Une chute brutale de pages indexées coïncidant avec un déploiement cache est un signal d'alerte. Les logs serveur doivent montrer une distribution normale de codes 200/304, pas un 304 systématique.

  • Tester chaque URL critique avec curl sans header conditionnel et vérifier l'absence de 304
  • Auditer la configuration Varnish/Nginx/CDN pour conditionner le 304 aux headers de validation
  • Vérifier que les middlewares applicatifs vérifient explicitement If-Modified-Since ou If-None-Match
  • Mettre en place une alerte monitoring sur le ratio 304/200 par type de bot (Googlebot vs utilisateurs)
  • Documenter la logique de cache HTTP pour éviter les régressions lors des mises à jour
  • Pour les sitemaps vides, privilégier un fichier XML valide vide plutôt qu'un 404 ou 304
Le code 304 est un outil d'optimisation puissant mais potentiellement destructeur s'il est mal configuré. La règle est simple : uniquement pour les requêtes conditionnelles explicites. Tout le reste est risque de désindexation. Ces optimisations serveur touchent à des couches techniques parfois complexes entre applicatif, reverse proxy et CDN. Si votre équipe manque d'expertise sur ces sujets ou si vous voulez un audit complet de votre stack HTTP, faire appel à une agence SEO spécialisée peut vous faire gagner des mois et éviter des erreurs coûteuses en visibilité.

❓ Questions frequentes

Un 304 sur un sitemap vide est-il acceptable si je détecte le header If-Modified-Since ?
Oui, c'est l'usage correct du 304. Si le sitemap n'a pas changé depuis la date fournie dans le header, retourner un 304 est légitime et économise du crawl budget. L'erreur serait de retourner un 304 sans vérifier ce header.
Googlebot envoie-t-il systématiquement des headers conditionnels lors de ses crawls ?
Non, pas systématiquement. Googlebot peut crawler une page sans header If-Modified-Since, notamment lors de la première découverte ou après un vidage de cache. C'est pourquoi un 304 aveugle pose problème.
Un CDN qui retourne un 304 basé sur son propre cache peut-il bloquer l'indexation ?
Potentiellement oui, si le CDN retourne un 304 sans que Googlebot ait envoyé de requête conditionnelle. La plupart des CDN modernes gèrent correctement cette distinction, mais il faut vérifier la configuration spécifique.
Quelle est la différence entre un sitemap vide (fichier XML valide) et un 404 ?
Un fichier XML vide indique "pas d'URLs à crawler pour le moment", état temporaire normal. Un 404 signale "ce sitemap n'existe pas", ce qui peut déclencher des erreurs dans Search Console si le sitemap est référencé dans robots.txt.
Le 304 aveugle affecte-t-il aussi les ressources statiques CSS et JS ?
Google ne détaille pas explicitement ce point. En pratique, un 304 aveugle sur une ressource critique peut empêcher le rendering complet de la page, ce qui affecte indirectement l'indexation du contenu visible. Mieux vaut appliquer la même règle partout.
🏷 Sujets associes
Contenu Crawl & Indexation HTTPS & Securite IA & SEO PDF & Fichiers Search Console

🎥 De la même vidéo 38

Autres enseignements SEO extraits de cette même vidéo Google Search Central · durée 56 min · publiée le 04/08/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.