Indexation Google pour Drupal : le guide complet pour faire entrer ton contenu Drupal dans la recherche
Drupal est l'une des plateformes CMS les plus puissantes disponibles, utilisée par les gouvernements, universités et grandes entreprises. Mais sa flexibilité signifie que l'indexation n'est pas automatique — tu dois installer et configurer les bons modules pour assurer que Google puisse découvrir et indexer tout ton contenu.
Dans ce guide
Drupal est un framework de gestion de contenu connu pour sa flexibilité, sa sécurité et sa scalabilité. Il propulse certains des sites les plus complexes du web : portails gouvernementaux avec des milliers de pages, sites universitaires avec plusieurs départements et types de contenus, intranets d'entreprise et grandes publications médias. La force de Drupal est qu'il peut être configuré pour gérer virtuellement n'importe quelle architecture de contenu, d'un simple blog à une plateforme multilingue et multi-site avec des centaines de types de contenus et des permissions d'accès complexes.
Cette flexibilité a un coût : Drupal n'inclut pas de fonctionnalités SEO dès le départ. Contrairement à WordPress (qui a un sitemap intégré et un SEO basique), Shopify (qui auto-génère sitemaps et balises canoniques) ou Ghost (qui inclut un SEO complet par défaut), Drupal nécessite d'installer et configurer des modules contribués pour chaque fonction SEO. La génération de sitemap XML, les alias d'URL, la gestion des balises meta, la gestion des redirections et la personnalisation de robots.txt nécessitent toutes des modules séparés.
L'ensemble central des modules SEO Drupal — souvent appelé la « stack SEO Drupal » — inclut XML Sitemap (ou Simple XML Sitemap) pour la génération de sitemap, Pathauto pour les alias d'URL automatiques, Metatag pour la gestion des balises meta, Redirect pour la gestion des redirections 301 et le module robots.txt pour contrôler l'accès des crawlers. Sans ces modules, Drupal génère des URLs comme /node/123 (chemins numériques opaques), n'a pas de sitemap XML, ne produit pas de meta descriptions et a un robots.txt basique que tu ne peux éditer qu'au niveau du système de fichiers.
Ce guide passe en revue chaque module et configuration nécessaires pour rendre un site Drupal pleinement indexable par Google. Que tu fasses tourner Drupal 10, Drupal 11 ou que tu maintiennes encore un site Drupal 9, les modules et concepts sont largement les mêmes. Nous couvrons l'installation, la configuration, les pièges courants spécifiques à l'architecture de Drupal et les techniques avancées pour les installations Drupal à grande échelle.
La stack de modules SEO Drupal
Un site Drupal correctement configuré pour l'indexation par les moteurs de recherche nécessite un ensemble spécifique de modules contribués. Chaque module gère un aspect différent du SEO, et ils travaillent ensemble pour fournir un support d'indexation complet.
Simple XML Sitemap (ou l'ancien module XML Sitemap) génère ton fichier /sitemap.xml. Il te permet de spécifier quels types de contenus, vocabulaires de taxonomie, menus et types d'entités personnalisées devraient être inclus dans le sitemap. Tu peux régler les priorités et fréquences de changement pour chaque type. Simple XML Sitemap est le choix moderne et supporte Drupal 10 et 11 nativement, tandis que l'ancien module XML Sitemap peut avoir des problèmes de compatibilité avec les versions Drupal plus récentes.
Pathauto génère automatiquement des alias d'URL lisibles par les humains basés sur des patterns configurables. Au lieu de /node/123, Pathauto crée des URLs comme /blog/titre-de-mon-article basé sur des patterns de tokens que tu définis. Pathauto dépend du module Token pour la génération dynamique d'URL. Sans Pathauto, chaque page Drupal n'est accessible qu'à son chemin de node interne, ce qui est terrible à la fois pour les utilisateurs et le SEO.
Le module Metatag fournit une UI pour configurer les balises meta (title, description, canonical, robots, Open Graph, Twitter Cards et plus) au niveau global, du type de contenu et du node individuel. Il supporte le remplacement de tokens, donc tu peux créer des patterns comme « [node:title] | [site:name] » pour les balises title. Sans le module Metatag, Drupal ne génère qu'une balise <title> basique sans meta description, sans URL canonique et sans balises meta sociales.
Le module Redirect gère les redirections 301. Quand tu changes un alias d'URL (soit manuellement, soit via Pathauto), le module Redirect peut créer automatiquement une redirection de l'ancienne URL vers la nouvelle. Il fournit aussi une UI pour créer des redirections manuelles et peut corriger des problèmes de redirection courants comme les incohérences de slash final et les URLs à casse mixte.
Le module robots.txt (ou le module RobotsTxt) te permet de gérer ton fichier robots.txt via l'interface admin Drupal au lieu d'éditer le fichier directement sur le serveur. C'est important parce que le robots.txt de Drupal est un fichier statique dans le docroot, et les changements peuvent être écrasés pendant les mises à jour du cœur.
Configurer les alias d'URL avec Pathauto
Les alias d'URL sont fondamentaux pour le SEO Drupal. Les chemins internes de Drupal (/node/123, /taxonomy/term/45) sont techniquement crawlables et indexables, mais ils ne fournissent aucune information de mots-clés et créent une structure de site opaque. Pathauto résout ça en générant automatiquement des alias d'URL basés sur des patterns que tu définis.
Pour configurer Pathauto, installe-le via Composer (composer require drupal/pathauto), active-le à /admin/modules, puis configure les patterns à /admin/config/search/path/patterns. Pour chaque type de contenu, crée un pattern en utilisant des tokens. Les patterns courants incluent /blog/[node:title] pour les articles de blog, /[node:content-type]/[node:title] pour plusieurs types de contenus, /products/[node:field_product_category:entity:name]/[node:title] pour les URLs de produits hiérarchiques et /[node:menu-link:parents:join-path]/[node:title] pour les URLs basées sur la hiérarchie de menu.
Pathauto utilise le module Token pour résoudre ces patterns. Il met automatiquement en minuscules les titres, remplace les espaces par des tirets, retire les caractères spéciaux et tronque les URLs longues. Tu peux personnaliser les réglages de translittération à /admin/config/search/path/settings pour contrôler comment les caractères spéciaux, accents et scripts non latins sont gérés.
Un réglage Pathauto critique est l'« Update action » pour les alias existants. Quand tu changes le titre d'un node, Pathauto devrait-il mettre à jour l'alias d'URL ? Si oui, l'ancienne URL casse sauf si le module Redirect est installé. La configuration recommandée est : « Create a new alias. Leave the existing alias functioning » — ça crée un nouvel alias tout en gardant l'ancien actif. Combiné avec le module Redirect, l'ancienne URL redirige automatiquement vers la nouvelle.
Pour les sites existants avec des milliers d'URLs /node/123 déjà indexées par Google, Pathauto peut générer en masse les alias pour tout le contenu existant. Va dans /admin/config/search/path/update_bulk et sélectionne quels types de contenus traiter. Après la génération en masse, installe le module Redirect pour créer des redirections automatiques des chemins /node/123 vers les nouveaux alias. Cela assure que Google suive les redirections et mette à jour son index vers les URLs propres.
Configuration du module Metatag pour l'indexation
Le module Metatag est essentiel pour contrôler comment Google voit tes pages. Installe-le via Composer (composer require drupal/metatag) et active le module Metatag avec ses sous-modules : Metatag: Open Graph, Metatag: Twitter Cards et Metatag: Verification (pour les balises de vérification de search console).
Configure les défauts globaux à /admin/config/search/metatag. La configuration globale règle les balises meta de fallback pour toute page qui n'a pas de configuration plus spécifique. Règle le titre global à « [current-page:title] | [site:name] », la description à « [node:summary] » (ou laisse vide pour éviter les descriptions génériques) et l'URL canonique à « [current-page:url] ».
Puis crée des overrides spécifiques au type de contenu. Pour les articles de blog, tu pourrais régler le titre à « [node:title] - Blog | [site:name] » et la description à « [node:field_meta_description] » (en utilisant un champ de meta description dédié que tu ajoutes au type de contenu). Pour les pages produits, utilise des tokens spécifiques aux produits. Pour les pages de terme de taxonomie, utilise « [term:name] - [vocabulary:name] | [site:name] » comme pattern de titre.
Le module Metatag contrôle aussi la directive meta robots par type de contenu et par node individuel. Pour les types de contenus qui ne devraient pas être indexés (comme les types de contenus admin uniquement, les pages de confirmation de webform ou les pages de profil utilisateur), règle le meta robots à « noindex, follow » au niveau du type de contenu. Cela empêche Google d'indexer ces pages tout en suivant leurs liens.
Pour les nodes individuels, les éditeurs de contenu peuvent surcharger les balises meta dans le fieldset « Meta tags » sur le formulaire d'édition de node. Forme tes éditeurs à écrire des meta descriptions personnalisées pour le contenu important — le résumé auto-généré n'est souvent pas optimisé pour la recherche. Si tu veux imposer l'écriture de meta descriptions, rends le champ requis via la configuration de l'affichage de formulaire ou utilise un gestionnaire de validation personnalisé.
Le module Metatag supporte aussi les balises hreflang pour les sites multilingues via le sous-module Metatag: hreflang. Si ton site Drupal est multilingue (utilisant le module Translation du cœur), active hreflang et configure-le pour générer automatiquement des balises hreflang liant toutes les versions linguistiques de chaque page.
Génération et configuration du sitemap XML
Installe Simple XML Sitemap via Composer (composer require drupal/simple_sitemap) et active-le. Configure-le à /admin/config/search/simplesitemap. Le module te permet de créer plusieurs sitemaps (utile pour les gros sites avec différentes sections de contenu) et de sélectionner quels types d'entités, bundles et entités spécifiques inclure.
Pour la plupart des sites Drupal, inclus les nodes publiés des types de contenus qui devraient être indexés (articles, pages, produits), les pages de terme de taxonomie publiées qui ont du contenu substantiel et tout type d'entité personnalisé qui génère des pages publiques. Exclus les types de contenus qui sont administratifs, derrière un contrôle d'accès ou intrinsèquement pauvres (comme les soumissions de webform ou les profils utilisateur).
Simple XML Sitemap supporte les réglages priority et changefreq par type de contenu. Bien que Google ait déclaré qu'il ignore largement ces indices, les régler aide à organiser ton sitemap et signale l'importance relative de ton contenu. Règle la priorité de la page d'accueil à 1.0, les types de contenus principaux à 0.8 et le contenu secondaire comme les termes de taxonomie à 0.5.
Le module génère le sitemap à /sitemap.xml par défaut et le divise en plusieurs fichiers quand le compte d'URLs dépasse la limite configurée (par défaut 2000, maximum 50000 par spec sitemap). Pour les gros sites Drupal avec des dizaines de milliers de pages, la génération du sitemap peut être gourmande en ressources. Configure cron pour régénérer le sitemap pendant les heures creuses et règle l'intervalle de régénération de manière appropriée (toutes les 6-24 heures pour la plupart des sites).
Un problème courant avec les sitemaps Drupal est l'accès aux entités. Le système de permissions de Drupal peut empêcher le générateur de sitemap d'accéder aux nodes qui sont visibles par les utilisateurs anonymes mais pas par l'utilisateur cron. Le module Simple XML Sitemap génère le sitemap pendant l'exécution de cron, en utilisant les permissions de l'utilisateur anonyme par défaut. Si tes nodes nécessitent des permissions spécifiques pour être vus, vérifie que les utilisateurs anonymes peuvent y accéder, ou configure le module pour générer le sitemap en utilisant les permissions d'un utilisateur différent.
Après avoir configuré le sitemap, soumets-le à Google Search Console à Sitemaps > Add a new sitemap > tondomaine.com/sitemap.xml. Surveille le statut du sitemap pour les erreurs comme les URLs 404 (nodes supprimés encore dans le sitemap), les URLs bloquées (conflits robots.txt) et les URLs de redirection (nodes avec alias modifiés).
Chemins de node Drupal, alias et contenu en double
Drupal a un problème unique de contenu en double que les autres plateformes CMS ne partagent pas : le contenu est accessible à la fois au chemin de node interne (/node/123) et à l'alias d'URL (/blog/mon-article). Sans configuration correcte, Google peut indexer les deux URLs, créant du contenu en double.
La première défense est le réglage « Enforce clean and canonical URLs » du module Redirect. Quand activé, visiter /node/123 pour un node qui a un alias /blog/mon-article résulte en une redirection 301 vers l'alias. Cela dit à Google que l'alias est l'URL canonique et que le chemin de node devrait être ignoré. Active ce réglage à /admin/config/search/redirect/settings.
La deuxième défense est la balise meta d'URL canonique du module Metatag. Même si un node est d'une manière ou d'une autre accédé à son chemin interne, la balise canonique dans le <head> HTML pointe vers l'URL alias. Google respecte les balises canoniques et consolide les signaux de classement vers l'URL canonique.
La troisième défense est le fichier robots.txt. Ajoute Disallow: /node/ à ton robots.txt pour empêcher Google d'explorer les chemins de node internes entièrement. C'est une approche ceinture et bretelles qui, combinée avec les redirections et les balises canoniques, assure que les chemins de node ne se font jamais indexer.
Drupal crée aussi des doublons potentiels via les pages de terme de taxonomie. Si tu as un vocabulaire appelé « Catégories » avec un terme appelé « Technologie », Drupal crée une page à /taxonomy/term/5 (et, avec Pathauto, un alias comme /categories/technologie) qui liste tous les nodes tagués avec ce terme. Si la page de terme de taxonomie n'a pas de contenu introductif unique — juste une liste de teasers de nodes qui apparaissent ailleurs — Google peut la classer comme contenu pauvre ou en double.
Les pages générées par Views ajoutent une autre couche de complexité. Le module Views de Drupal peut créer des pages qui listent le contenu selon divers critères, avec pagination. Une vue listant tous les articles de blog avec 10 par page crée des URLs comme /blog?page=1, /blog?page=2, etc. Chaque page paginée a un contenu similaire (juste des articles différents). Sans balises de pagination rel="next" et rel="prev" (que Google a dépréciées mais certains praticiens SEO utilisent encore) ou une directive noindex sur les pages paginées, Google peut gaspiller du budget de crawl sur des pages de pagination profonde avec une valeur de contenu décroissante.
Le cache Drupal et son impact sur les balises meta
Drupal a l'un des systèmes de cache les plus sophistiqués de tout CMS, et bien que ce soit généralement un bénéfice de performance, ça peut causer des maux de tête SEO si ce n'est pas bien compris.
Le cache de page Drupal (module Internal Page Cache pour les utilisateurs anonymes, Dynamic Page Cache pour les utilisateurs authentifiés) stocke les pages HTML entièrement rendues. Quand tu mets à jour les balises meta d'un node via le module Metatag, le HTML mis en cache peut continuer à servir les anciennes balises meta jusqu'à ce que le cache soit vidé. Pour les sites avec un cache agressif (TTL d'heures ou jours), ça signifie que les changements SEO peuvent être invisibles à Google pendant une période prolongée.
La solution est de comprendre le système de cache tag de Drupal. Quand tu édites un node, le système de cache tag de Drupal devrait automatiquement invalider toute page mise en cache contenant le contenu de ce node. Ça fonctionne correctement quand les changements de balises meta font partie de l'édition du node (utilisant l'override par node du module Metatag). Cependant, les changements aux défauts de balises meta globaux ou au niveau du type de contenu peuvent ne pas déclencher l'invalidation du cache pour toutes les pages affectées. Après avoir changé les réglages de balises meta globaux, vide manuellement le cache de page du site à /admin/config/development/performance > Clear all caches.
Les couches de cache externes ajoutent une autre dimension. Si ton site Drupal est derrière Varnish, un cache de reverse proxy ou un CDN comme Cloudflare, tu as une couche de cache supplémentaire qui ne connaît pas les cache tags de Drupal. Après avoir vidé le cache interne de Drupal, tu dois aussi vider le cache externe. Pour Varnish, utilise le module Varnish Purge pour intégrer le système de cache tag de Drupal avec le mécanisme de purge de Varnish. Pour Cloudflare, utilise le module Cloudflare pour purger automatiquement le cache CDN quand le contenu Drupal change.
Le module Purge et ses modules associés (Purge Queuer, Purge Processor et plugins spécifiques à la plateforme) fournissent une interface unifiée pour gérer l'invalidation du cache à travers toutes les couches. Pour les besoins SEO, l'exigence clé est : quand une balise meta change sur n'importe quelle page, chaque version mise en cache de cette page (cache interne Drupal, Varnish, CDN) doit être invalidée pour que le prochain crawl de Google voie les balises mises à jour.
Sois particulièrement prudent avec le cache authentifié vs anonyme. Drupal peut servir un contenu différent aux utilisateurs authentifiés (éditeurs, admins) vs aux utilisateurs anonymes (y compris Googlebot). Si ta configuration Metatag inclut des conditions basées sur les rôles utilisateur, assure-toi que la version anonyme a les bonnes balises meta. Teste en te déconnectant (ou en utilisant une fenêtre privée) et en regardant le source de la page pour vérifier les balises meta que Google verra.
Guide étape par étape
Installe la stack de modules SEO de base
Utilise Composer pour installer les modules SEO essentiels : composer require drupal/simple_sitemap drupal/pathauto drupal/metatag drupal/redirect drupal/token. Puis active-les via l'admin Drupal à /admin/modules ou via Drush : drush en simple_sitemap pathauto metatag metatag_open_graph redirect. Ces modules fournissent la fondation pour la génération de sitemap, les alias d'URL, la gestion des balises meta et la gestion des redirections. Vérifie que chaque module est activé et n'a pas d'erreurs de dépendance à /admin/reports/status.
Configure les patterns d'alias d'URL Pathauto
Va dans /admin/config/search/path/patterns et crée un pattern d'URL pour chaque type de contenu. Pour les articles, utilise un pattern comme /blog/[node:title]. Pour les pages, utilise /[node:title]. Pour les produits (si applicable), utilise /products/[node:title] ou /products/[node:field_category:entity:name]/[node:title] pour une hiérarchie basée sur les catégories. Après avoir créé les patterns, va dans /admin/config/search/path/update_bulk et génère en masse les alias pour tout le contenu existant. Puis installe et active le module Redirect pour créer des redirections 301 automatiques des chemins de node internes (/node/123) vers les nouveaux alias.
Configure le module Metatag pour tous les types de contenus
Navigue vers /admin/config/search/metatag et configure les défauts de balises meta. Règle le pattern de titre global à [current-page:title] | [site:name] et l'URL canonique à [current-page:url]. Puis ajoute des overrides spécifiques aux types de contenus : pour chaque type de contenu, clique sur « Add » et configure le titre, la description, l'URL canonique et les directives robots. Règle la description à [node:field_meta_description] si tu as un champ dédié, ou [node:summary] comme fallback. Pour les types de contenus qui ne devraient pas être indexés (webforms, pages internes), règle le meta robots à noindex, follow.
Configure et génère le sitemap XML
Va dans /admin/config/search/simplesitemap et configure quels types d'entités inclure. Active les nodes publiés pour tous les types de contenus publics, active les termes de taxonomie pour les vocabulaires avec un contenu substantiel et exclus les profils utilisateurs, les soumissions de webform et les autres entités non publiques. Règle les priorités de sitemap (page d'accueil 1.0, contenu principal 0.8, contenu secondaire 0.5). Clique sur « Generate » pour créer le sitemap immédiatement, puis visite /sitemap.xml pour vérifier qu'il contient les URLs attendues. Configure l'intervalle cron pour la régénération automatique.
Configure robots.txt pour bloquer les chemins internes
Édite le fichier robots.txt de ton site Drupal (dans le docroot) et ajoute des règles pour bloquer les chemins internes qui ne devraient pas être explorés. Ajoute Disallow: /node/ (bloque les chemins de node internes), Disallow: /admin/ (bloque les pages admin), Disallow: /user/ (bloque les pages de profil utilisateur et de connexion) et Disallow: /search/ (bloque les résultats de recherche interne de Drupal). Ajoute Sitemap: https://tondomaine.com/sitemap.xml en bas. Si tu utilises le module RobotsTxt, gère ces règles à /admin/config/search/robotstxt au lieu d'éditer le fichier directement.
Soumets le sitemap et vérifie dans Google Search Console
Ajoute ton site Drupal à Google Search Console. Pour la vérification, utilise le sous-module Metatag: Verification pour ajouter la balise meta de vérification Google à /admin/config/search/metatag > Global > Verification. Après vérification, va dans Sitemaps dans Google Search Console et soumets ton URL de sitemap. Surveille le rapport de sitemap pour les erreurs. Les erreurs courantes incluent les URLs renvoyant 403 (problèmes de permissions), les URLs renvoyant 301 (alias redirigeant depuis les chemins de node) et les URLs avec des soft 404 (nodes au contenu vide). Corrige chaque catégorie d'erreur avant de resoumettre.
Soumets les pages prioritaires via IndexBolt pour une indexation plus rapide
Après avoir terminé l'installation et la configuration des modules, les sites Drupal ont souvent un backlog de pages qui ont besoin d'indexation, surtout après une migration ou une restructuration majeure. Exporte tes URLs de sitemap et identifie les pages qui ne sont pas encore indexées en utilisant le rapport Pages de Google Search Console. Soumets les pages les plus prioritaires via IndexBolt — concentre-toi sur tes landing pages principales, les nodes de contenu les plus précieux et toute page avec des backlinks entrants qui ont besoin de maintenir leur visibilité dans la recherche. Le HTML propre et rendu côté serveur de Drupal en fait un excellent candidat pour le pipeline d'indexation IndexBolt.
Problèmes courants et comment les résoudre
Les chemins de node (/node/123) et les alias d'URL créent du contenu en double
Cause : Le contenu Drupal est accessible à la fois au chemin de node interne (/node/123) et à l'alias d'URL (/blog/mon-article). Sans l'application d'URL canonique du module Redirect, Google peut découvrir et indexer les deux URLs, créant du contenu en double qui divise les signaux de classement entre deux URLs pour la même page.
Solution : Installe et active le module Redirect, puis va dans /admin/config/search/redirect/settings et active « Enforce clean and canonical URLs ». Cela crée des redirections 301 automatiques de /node/123 vers l'alias d'URL. Configure aussi le module Metatag pour sortir des URLs canoniques pointant vers l'alias. Pour une protection ceinture et bretelles, ajoute Disallow: /node/ à robots.txt pour empêcher Google d'explorer les chemins internes entièrement.
La pagination Views créant des centaines de pages pauvres
Cause : Le module Views de Drupal génère des listes paginées qui créent des URLs comme /blog?page=1, /blog?page=2 jusqu'à /blog?page=50. Chaque page paginée contient un petit sous-ensemble de contenu (typiquement 10-25 items par page) et chaque page semble similaire du point de vue de Google. Les pages de pagination profonde (page 10 et au-delà) ont très peu de valeur de découverte et gaspillent du budget de crawl.
Solution : Pour les Views avec pagination profonde, ajoute une directive noindex aux pages paginées au-delà de la première page. Tu peux faire ça avec le système de tokens du module Metatag ou avec du code personnalisé qui détecte le paramètre page. Alternativement, utilise le pattern « Load more » (scroll infini ou bouton « Load more ») au lieu de la pagination traditionnelle, ce qui garde tout le contenu sur une seule URL. Réduis le nombre total de pages paginées en augmentant le compte d'items par page dans tes réglages de Views.
Les pages de terme de taxonomie avec contenu pauvre se font indexer
Cause : Le système de taxonomie de Drupal crée une page pour chaque terme dans chaque vocabulaire. Les termes avec peu de nodes tagués résultent en pages d'archive pauvres — une page avec un ou deux teasers de contenu et pas de texte unique. Google peut indexer ces pages pauvres mais les classer mal, diluant les signaux de qualité globaux de ton site.
Solution : Ajoute du contenu de description aux termes de taxonomie qui servent de pages de catégorie. Dans le formulaire d'édition de terme de taxonomie, écris 100-300 mots de contenu unique décrivant le sujet. Configure ton template de terme de taxonomie pour afficher cette description en évidence. Pour les vocabulaires où les pages de terme ne devraient pas être indexées du tout (comme les vocabulaires de tagging internes), règle les défauts Metatag pour les termes de ce vocabulaire à noindex. Retire les pages de terme de taxonomie pauvres de ton sitemap en excluant le vocabulaire dans la configuration de Simple XML Sitemap.
Les permissions Drupal bloquent l'accès anonyme au contenu publié
Cause : Le système de permissions granulaire de Drupal peut empêcher par inadvertance les utilisateurs anonymes (y compris Googlebot) d'accéder au contenu publié. Ça arrive quand la permission « View published content » est retirée du rôle anonyme, quand les modules de contrôle d'accès au contenu (Content Access, Node Access) restreignent l'affichage par rôle ou quand les permissions au niveau du champ cachent le contenu aux utilisateurs anonymes.
Solution : Va dans /admin/people/permissions et vérifie que le rôle utilisateur anonyme a la permission « View published content » activée pour tous les types de contenus qui devraient être indexés. Si tu utilises des modules de contrôle d'accès au contenu, audite leur configuration pour assurer que les nodes publiés sont accessibles aux utilisateurs anonymes. Teste en te déconnectant complètement et en visitant tes pages de contenu — si tu vois une page accès refusé, les permissions sont mauvaises. Vérifie aussi que le module Simple XML Sitemap peut accéder au contenu pendant cron (il tourne comme utilisateur anonyme par défaut).
Le cache servant des balises meta périmées après les changements SEO
Cause : Le cache de page agressif de Drupal (Internal Page Cache, Dynamic Page Cache, Varnish ou CDN externe) stocke du HTML entièrement rendu y compris les balises meta. Quand tu mets à jour les balises meta via le module Metatag — surtout les défauts globaux ou au niveau du type de contenu — le HTML mis en cache peut continuer à servir les anciennes balises meta pendant des heures ou des jours, selon ta configuration de TTL de cache.
Solution : Après avoir fait des changements de balises meta au niveau global ou du type de contenu, vide tous les caches à /admin/config/development/performance > Clear all caches. Si tu utilises Varnish, purge aussi le cache Varnish (ban req.http.host == "tondomaine.com" dans Varnish CLI). Si tu utilises Cloudflare ou un autre CDN, purge le cache CDN via son tableau de bord ou son API. Vérifie les balises meta mises à jour en visitant une page dans une fenêtre de navigation privée et en regardant le source. Pour une fiabilité continue, installe le module Purge pour automatiser l'invalidation du cache à travers toutes les couches.
Conflits de modules causant des balises meta en double ou manquantes
Cause : Plusieurs modules Drupal peuvent tenter de générer les mêmes balises meta. Par exemple, un thème pourrait sortir sa propre balise title, le module Metatag en génère une autre et un module personnalisé en ajoute une troisième. De même, le module SEO Checklist, le module Google Analytics ou d'autres modules contrib peuvent injecter leurs propres balises meta qui entrent en conflit avec la sortie du module Metatag.
Solution : Regarde le source de plusieurs pages de contenu et cherche les balises meta en double — cherche plusieurs balises <title>, plusieurs balises <meta name="description"> ou plusieurs balises <link rel="canonical">. Si des doublons existent, identifie quel module génère chacune. Désactive la source en double — typiquement en retirant la sortie de balise meta du template de thème (vérifie html.html.twig et page.html.twig) et en te fiant uniquement au module Metatag pour toute la génération de balises meta. Le module Metatag devrait être la seule source de vérité pour toutes les balises meta liées au SEO.
Astuces pro
Les sites Drupal sont souvent gros, complexes et critiques pour l'entreprise. Que tu aies des milliers de nodes qui attendent que Google les découvre ou que tu viennes de terminer une migration majeure avec de nouvelles structures d'URL, IndexBolt peut pousser tes pages les plus importantes directement dans le pipeline d'indexation de Google. Arrête d'attendre les sitemaps déclenchés par cron et les cycles de crawl naturels — soumets tes URLs Drupal via IndexBolt et fais-les indexer en heures.
100 crédits gratuits. Aucune carte bancaire requise. Résultats en moins de 24 heures.
Questions fréquentes
Drupal a-t-il des fonctionnalités SEO intégrées ?+
Le cœur Drupal fournit les blocs de construction de base — sortie HTML propre, balise <title> configurable, alias d'URL (depuis Drupal 8 le cœur inclut la gestion d'alias basique) et la capacité de servir des fichiers statiques comme robots.txt. Cependant, Drupal n'inclut pas de sitemap XML, gestion de meta description, URLs canoniques automatiques, données structurées ou gestion des redirections dès le départ. Ces fonctionnalités sont fournies par des modules contribués (Simple XML Sitemap, Metatag, Redirect, Pathauto) qui doivent être installés et configurés séparément.
Quels modules Drupal me faut-il pour le SEO ?+
La stack essentielle de modules SEO Drupal inclut : Simple XML Sitemap pour la génération de sitemap, Pathauto pour les alias d'URL automatiques, Token (requis par Pathauto), Metatag pour la gestion des balises meta, Redirect pour la gestion des redirections 301 et optionnellement le module RobotsTxt pour gérer robots.txt via l'admin. Pour les sites multilingues, ajoute le sous-module Metatag: hreflang. Installe tous les modules via Composer et active-les via /admin/modules ou Drush.
Comment j'empêche les chemins /node/123 d'être indexés ?+
Utilise une approche à trois couches : (1) Installe le module Redirect et active « Enforce clean and canonical URLs » pour rediriger automatiquement 301 /node/123 vers l'alias d'URL. (2) Configure le module Metatag pour régler les URLs canoniques vers le chemin alias. (3) Ajoute Disallow: /node/ à ton robots.txt pour empêcher Google d'explorer les chemins de node internes. Ensemble, ces trois mesures assurent que Google ne voit et n'indexe que tes alias d'URL propres, jamais les chemins de node internes.
Comment je gère les changements d'URL pendant une migration Drupal ?+
Avant la migration, documente toutes les URLs sur ton site actuel en exportant ton sitemap. Après la migration vers Drupal, configure Pathauto pour générer des alias correspondant à ton ancienne structure d'URL quand c'est possible. Pour les URLs qui doivent changer, crée des redirections 301 en utilisant le module Redirect. Tu peux importer en masse les redirections via CSV à /admin/config/search/redirect/import. Après avoir mis en place les redirections, resoumets ton sitemap à Google Search Console et surveille le rapport Pages pour les erreurs 404 qui indiquent des redirections manquantes.
Pourquoi mes pages Views Drupal ne se font pas indexer ?+
Les pages Views peuvent ne pas se faire indexer pour plusieurs raisons : l'URL de la page Views n'est pas incluse dans ton sitemap (ajoute-la manuellement dans les liens personnalisés de Simple XML Sitemap), le contenu de la page est trop similaire à d'autres pages (vues paginées avec contenu qui se chevauche), la page a une mauvaise balise meta robots (vérifie la configuration du module Metatag pour l'affichage Views) ou la page nécessite des permissions que les utilisateurs anonymes n'ont pas. Teste l'URL de la page Views dans l'outil Inspection de l'URL de Google Search Console pour diagnostiquer le problème spécifique.
Puis-je utiliser IndexBolt avec un site Drupal derrière une authentification basique ?+
IndexBolt a besoin d'accéder à tes URLs publiques, donc toute authentification HTTP basique (courante sur les environnements de staging Drupal) doit être retirée pour les pages de production que tu veux indexer. Si ton site de staging a une auth basique, c'est bien — le staging ne devrait pas être indexé. Ton site de production devrait être publiquement accessible sans aucune barrière d'authentification. Les permissions d'accès au contenu de Drupal sont séparées de l'authentification HTTP — tant que les utilisateurs anonymes peuvent voir les nodes publiés, IndexBolt peut soumettre ces URLs pour indexation.