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 HTTP 304 doit être retourné uniquement en réponse à une requête conditionnelle (If-Modified-Since). Retourner un 304 sur une requête normale équivaut à ne pas retourner de contenu, empêchant l'indexation. Pour les sitemaps, retourner 304, 404 ou un fichier vide quand il n'y a pas de mise à jour est acceptable.
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 Pourquoi un code 304 Not Modified peut-il bloquer l'indexation de vos pages ?
  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 rappelle que le code HTTP 304 ne doit être retourné qu'en réponse à une requête conditionnelle (If-Modified-Since ou If-None-Match). Sur une requête normale sans condition, un 304 empêche l'indexation car aucun contenu n'est transmis au crawler. Pour les sitemaps XML, trois options valides quand il n'y a pas de mise à jour : 304, 404 ou fichier vide — Google les gère toutes correctement.

Ce qu'il faut comprendre

Pourquoi le code 304 pose-t-il problème sur une requête normale ?

Une requête conditionnelle signale au serveur : "Je possède déjà une version de cette ressource datée du X, envoie-moi le contenu seulement si tu as une version plus récente." Cette logique repose sur les en-têtes HTTP If-Modified-Since ou If-None-Match. Quand le serveur répond 304, il dit : "Ta version est à jour, pas besoin de retélécharger."

Sur une requête normale — sans en-tête conditionnel — le serveur ne peut pas supposer que le client possède déjà le contenu. Retourner un 304 dans ce cas équivaut à dire "Rien n'a changé" alors que le crawler n'a jamais eu accès à la version de référence. Résultat : Googlebot ne reçoit aucun HTML, ne peut pas analyser le contenu, et la page reste non indexée ou disparaît de l'index si elle y était déjà.

Les sitemaps XML font-ils exception à cette règle ?

Oui — et c'est l'un des points les plus pragmatiques de cette déclaration. Pour les sitemaps XML, Google accepte trois comportements quand aucune mise à jour n'a eu lieu : renvoyer un 304 (sur requête conditionnelle valide), retourner un 404, ou servir un fichier vide. Toutes ces réponses indiquent à Googlebot qu'il n'y a rien de neuf à crawler.

Cette souplesse s'explique par la nature du sitemap : c'est un fichier de coordination, pas une page de contenu. Google ne cherche pas à indexer le sitemap lui-même, mais à identifier les URLs à explorer. Si le sitemap n'a pas changé, inutile de le retransmettre — un signal suffit.

Comment distinguer une requête conditionnelle d'une requête normale ?

Côté serveur, la présence des en-têtes If-Modified-Since ou If-None-Match dans la requête HTTP constitue le seul critère fiable. Le premier compare une date, le second un identifiant unique de version (ETag). Si l'un de ces en-têtes est absent, la requête est considérée comme normale et doit recevoir un 200 OK avec contenu complet — ou un code d'erreur approprié (404, 410, etc.).

Dans les logs serveur, une requête conditionnelle se repère facilement : la ligne contient l'en-tête concerné. Sur une plateforme CDN (Cloudflare, Fastly, Akamai), ces requêtes sont souvent gérées automatiquement si les en-têtes Last-Modified et ETag sont correctement configurés côté origine. Mais attention : certaines configurations par défaut retournent des 304 erronés sur requêtes normales — notamment sur des pages générées dynamiquement avec un cache mal paramétré.

  • Un code 304 n'est légitime que si la requête inclut If-Modified-Since ou If-None-Match.
  • Sur requête normale, un 304 bloque l'indexation en privant le crawler de contenu.
  • Les sitemaps XML tolèrent 304, 404 ou fichier vide quand il n'y a pas de mise à jour.
  • Vérifiez vos logs serveur pour repérer des 304 renvoyés à tort sur des requêtes sans en-tête conditionnel.
  • Les configurations CDN par défaut ne garantissent pas toujours la conformité — auditez vos règles de cache.

Avis d'un expert SEO

Cette déclaration corrige-t-elle une pratique répandue ?

Absolument. Sur le terrain, on observe régulièrement des configurations serveur ou CDN qui retournent des 304 systématiques pour économiser la bande passante — sans vérifier si la requête est réellement conditionnelle. L'intention est louable (optimiser les performances), mais l'effet est catastrophique pour l'indexation. Googlebot, en l'absence d'en-têtes conditionnels dans ses premières requêtes vers une nouvelle URL, reçoit un 304 et conclut qu'il n'y a rien à indexer.

Cette confusion est particulièrement fréquente sur les sites e-commerce dynamiques où le cache applicatif (Varnish, Redis) est configuré pour servir des 304 dès qu'un fichier "n'a pas changé" — sans examiner la requête entrante. Résultat : des fiches produit récemment ajoutées restent invisibles dans Google pendant des semaines, jusqu'à ce qu'un crawl forcé ou une purge de cache force un 200. [A vérifier] si votre pile technique distingue correctement requêtes conditionnelles et normales.

Pourquoi Google tolère-t-il trois comportements pour les sitemaps ?

Parce que le sitemap XML n'est qu'un index de navigation — pas une ressource de contenu à part entière. Google cherche à savoir s'il y a de nouvelles URLs à explorer, pas à indexer le fichier sitemap lui-même. Retourner un 404 temporaire quand aucune modification n'a eu lieu peut sembler contre-intuitif, mais c'est une convention acceptée : "Ce sitemap n'existe pas dans sa version mise à jour, reviens plus tard."

En pratique, la plupart des CMS et générateurs de sitemap servent toujours un 200 avec le fichier complet, même si rien n'a changé. C'est la solution la plus simple et la plus fiable — aucun risque d'interprétation erronée. Mais pour les très gros sites (millions d'URLs), régénérer et servir un sitemap de plusieurs centaines de Mo à chaque requête Googlebot représente une charge serveur non négligeable. D'où l'intérêt du 304 conditionnel ou du fichier vide.

Quels signaux d'alerte indiquent un problème de 304 ?

Trois symptômes classiques : des pages récentes qui n'apparaissent pas dans l'index malgré leur présence dans le sitemap, un taux de couverture anormalement bas dans la Search Console (URLs découvertes mais non explorées), et des logs serveur montrant des séquences de 304 sur des URLs jamais crawlées auparavant. Si Googlebot n'a jamais reçu le contenu initial, il ne peut pas savoir que "rien n'a changé".

Autre indice : une configuration CDN ou cache inversé qui affiche un hit rate (taux de succès du cache) supérieur à 95 % sur des pages théoriquement nouvelles. Cela signifie souvent que le cache répond 304 par défaut, sans valider la nature de la requête. Testez vos URLs avec curl en omettant volontairement les en-têtes If-Modified-Since — si vous obtenez un 304, vous avez un problème.

Attention : Les plateformes hébergées (Shopify, WordPress.com, Wix) gèrent généralement les 304 correctement par défaut, mais les configurations personnalisées sur serveur dédié ou VPS nécessitent un audit manuel. Ne supposez jamais que votre stack technique respecte cette règle — vérifiez.

Impact pratique et recommandations

Comment vérifier que votre serveur gère correctement les 304 ?

Lancez un test avec curl ou un outil de diagnostic HTTP (Postman, Insomnia) sur une URL indexable. Première requête sans en-tête conditionnel : vous devez obtenir un 200 OK avec le HTML complet. Notez la valeur de l'en-tête Last-Modified ou ETag dans la réponse. Puis rejouez la requête en ajoutant If-Modified-Since avec la date récupérée — cette fois, un 304 est attendu.

Si la première requête (sans condition) retourne un 304, votre configuration est défectueuse. Examinez vos règles Apache mod_headers, Nginx expires, ou les paramètres de votre CDN. Sur Cloudflare, par exemple, l'option "Respect Existing Headers" peut provoquer des 304 intempestifs si l'origine ne gère pas correctement les en-têtes conditionnels.

Quelles erreurs faut-il absolument éviter ?

Ne configurez jamais votre serveur pour retourner un 304 "par défaut" sur toutes les requêtes GET sans analyser les en-têtes. Certains tutoriels d'optimisation de performances recommandent des règles de cache agressives qui ne distinguent pas les types de requêtes — ignorez ces conseils. Un 304 mal placé coûte infiniment plus cher en perte de trafic organique qu'il ne fait économiser en bande passante.

Autre piège : les pages JavaScript hydratées côté client (React, Vue, Angular) dont le serveur retourne un shell HTML minimal avec un 304 pour le contenu dynamique. Si Googlebot n'obtient jamais le HTML initial complet, il ne peut pas exécuter le JS dans de bonnes conditions. Assurez-vous que la première réponse serveur contient suffisamment de contenu indexable — même si le rendu final dépend du JS.

Quelle configuration recommander pour les sitemaps XML ?

La solution la plus robuste reste de toujours servir un 200 OK avec le fichier sitemap complet, même s'il n'a pas changé. C'est simple, prévisible, et n'introduit aucun risque d'interprétation erronée. Si la charge serveur devient un problème (sitemap > 50 Mo, crawls très fréquents), implémentez un mécanisme de 304 conditionnel basé sur la date de dernière modification du fichier.

Évitez le 404 temporaire sauf si votre génération de sitemap est événementielle (déclenché uniquement après ajout/modification de contenu). Un 404 permanent sur le sitemap déclaré dans robots.txt génère des erreurs dans la Search Console et peut retarder la découverte de nouvelles URLs. Le fichier vide (0 octet avec 200 OK) fonctionne mais peut perturber certains parsers XML — servir le dernier sitemap valide reste préférable.

  • Testez vos URLs avec curl sans en-tête If-Modified-Since — elles doivent renvoyer 200, jamais 304.
  • Vérifiez que vos en-têtes Last-Modified et ETag sont correctement générés et cohérents.
  • Auditez vos règles CDN et cache inversé pour repérer des 304 renvoyés à tort sur requêtes normales.
  • Pour les sitemaps, privilégiez un 200 OK systématique sauf contrainte de charge serveur documentée.
  • Surveillez les logs d'accès Googlebot pour détecter des séquences anormales de 304 sur des URLs récentes.
  • Documentez votre configuration de cache dans un runbook accessible à l'équipe technique — les 304 mal configurés sont souvent introduits lors de mises à jour infrastructure.
La gestion correcte des codes 304 repose sur une analyse fine des en-têtes HTTP et une coordination entre serveur origine, cache applicatif et CDN. Une erreur à n'importe quel niveau de cette chaîne peut bloquer l'indexation de pans entiers de votre site. Ces optimisations demandent une maîtrise technique pointue et une supervision continue des comportements observés en production. Si votre équipe interne manque de ressources ou d'expertise sur ces aspects infrastructure, envisagez un accompagnement par une agence SEO technique spécialisée — un audit serveur approfondi identifiera rapidement les configurations à risque et vous évitera des pertes de visibilité coûteuses.

❓ Questions frequentes

Un code 304 peut-il désindexer des pages déjà présentes dans Google ?
Oui. Si votre serveur se met à retourner des 304 sur requêtes normales, Googlebot ne récupère plus de contenu lors des recrawls et peut finir par retirer ces pages de l'index, les considérant comme devenues inaccessibles ou vides.
Les en-têtes ETag sont-ils préférables à Last-Modified pour les 304 ?
Les deux fonctionnent. ETag offre une granularité plus fine (basée sur un hash du contenu) tandis que Last-Modified repose sur une date. En pratique, implémenter les deux maximise la compatibilité avec différents clients et crawlers.
Cloudflare ou Fastly gèrent-ils automatiquement les 304 correctement ?
Généralement oui, à condition que votre serveur origine renvoie les bons en-têtes Last-Modified et ETag. Mais certaines règles de cache personnalisées peuvent court-circuiter cette logique — auditez toujours votre configuration spécifique.
Faut-il désactiver complètement les 304 si on a un doute sur la configuration ?
Non. Les 304 correctement implémentés réduisent la charge serveur et accélèrent le crawl. Corrigez la configuration plutôt que de désactiver une fonctionnalité HTTP standard — testez simplement que les requêtes sans condition obtiennent bien un 200.
Le code 304 impacte-t-il le budget de crawl ?
Indirectement : si Googlebot reçoit des 304 erronés, il perd du temps sur des URLs qui ne livrent pas de contenu, réduisant le nombre de pages utiles explorées. Un 304 légitime, en revanche, optimise le budget en évitant de retélécharger du contenu inchangé.
🏷 Sujets associes
Contenu Crawl & Indexation HTTPS & Securite Pagination & Structure 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.