Web

Comment rendre votre Drupal SEO friendly ?

by Marine Durand 15 septembre 2020

Ce n’est un secret pour personne, le SEO a une place plus qu’importante dans la vie d’un projet, c’est pour cela qu’il faut lui accorder une grande attention et ce dès les premiers développements. 

Trois catégories composent le référencement naturel : le SEO On page, le SEO technique et le SEO Off page. Dans cet article je parlerai uniquement de SEO technique. Pour en savoir plus sur le SEO Off page, je vous invite à lire cet article dédié à ce sujet.

Il existe un certain nombre de points à mettre en place pour améliorer son SEO et justement Drupal, grâce à sa communauté Open Source, possède toutes les clés pour vous aider à booster votre SEO

Cette partie technique doit être mise en place avant la sortie du projet et non après ou au dernier moment dans l’urgence !

Tout au long de votre lecture, gardez en tête la règle d’or : tout ce qui est bon pour l’expérience utilisateur sera bon pour votre SEO.

Configurer les balises Meta tags sur Drupal

Les Meta tags vont transmettre aux moteurs de recherche comme Google des informations importantes sur vos pages. 

S’il y a bien un module indispensable en termes de SEO sur Drupal, c’est Metatag et ses sous-modules (compatibles Drupal 8 & Drupal 9). Il vous permettront de gérer les balises les plus courantes comme la balise title, la meta descriptions, mais aussi les moins courantes.

La configuration de base du module est assez complète mais vous pouvez aussi très bien la personnaliser. D’ailleurs je vous le recommande car Metatag apporte un certain nombre de champs, et il est facile de s’y perdre. 

Vous pourrez voir tout au long de cet article que ce module est indispensable pour les balises meta, mais pas seulement !

Voici mes petits tips de configuration (/admin/config/search/metatag) :

  • N’hésitez pas à regarder la configuration du module pour ajouter des valeurs par défaut à l’aide du système de token.
  • Si vous avez besoin d’une configuration spécifique pour une entité, par exemple un type de contenu, créez une configuration propre à ce type de contenu.
  • Désactivez les groupes de balises qui ne vous sont pas utiles pour certains types de contenu, cela vous évitera de vous perdre au milieu de champs utiles comme inutiles.

Pour ajouter des balises meta manuellement il ya le hook hook_page_attachments_alter().

/**
* Implements hook_page_attachments_alter().
*/
function kaliop_test_page_attachments_alter(array &$attachments)
{
 $attachments['#attached']['html_head'][] = [
   [
     '#tag'        => 'meta',
     '#attributes' => [
       'name'    => 'robots',
       'content' => 'noindex',
     ],
   ],
   'description',
 ];
}

 

Webinar spécial Drupal 9 : embarquez pour le futur de Drupal

Visionner le webinar

Mettre en place les données structurées sur Drupal

Les données structurées permettent à Google de mieux comprendre le contenu d’une page, mais également de donner des informations supplémentaires à l’internaute. 

On se base ici sur un “cercle du SEO” : si j’offre des informations complètes et rapides à mon internaute, et que mon résultat dans les SERP (Search Engine Result Page) est plus visible, alors je gagne en trafic, et donc cela améliore mon référencement de manière générale

Il est possible d’ajouter les données structurées manuellement à l’aide du vocabulaire de Schema.org. Vous y trouverez toute la documentation et tous les exemples nécessaires pour la mise en place de ces données structurées.

Le module Schema Metatag (compatible Drupal 8 & Drupal 9) est là pour vous simplifier la tâche. Il vous évitera de vous perdre dans le format des données structurées. Cependant, vous pouvez rapidement vous sentir noyé.e par tous les champs mis à disposition pour administrer les données, ce qui peut le rendre complexe à prendre en main. Mais une aide est mise à disposition dans le back office.

aide schema.org back office Drupalaide schema.org back office Drupal

Dans cet exemple, j’ai utilisé les tokens pour saisir automatiquement les données. Le module est une extension de Metatag, ce qui vous donne la possibilité dans la configuration du module d’ajouter des tokens dans les champs pour automatiser la saisie des données. Mais si vous le souhaitez, vous pouvez tout aussi bien modifier ces données pour chaque contenu.

À l’aide de l’outil de Test des résultats enrichis de Google, vous pouvez tester si vos données structurées sont correctement configurées. 

Pour vous donner un exemple j’ai effectué le test avec les données structurées générées par le module.

Exemple de données structurées avec le module Schema Metatag

Exemple de données structurées avec le module Schema Metatag

Personnaliser la page 404 pour une meilleure expérience utilisateur

Pour un utilisateur, se retrouver sur une page 404 est une mauvaise expérience qui le pousse à quitter le site. C’est pour cette raison que vous devez personnaliser cette page, et ainsi limiter la perte de trafic. On rentre donc encore une fois dans ce “cercle du SEO” : si j’offre une meilleure expérience à mon utilisateur à travers une page 404 complète et utile pour lui, la perte de trafic est réduite et donc c’est meilleur pour mon référencement. 

Search 404 (compatible Drupal 8 & Drupal 9) est le module qui permet de personnaliser au mieux la page 404. À la réception d’une erreur 404, il lancera une recherche sur votre site par rapport aux mots-clés de l’URL et affichera les résultats trouvés.

Je vous conseille de modifier la configuration par défaut pour adapter la page à vos attentes. 

Tips

  • La recherche avancée est par défaut activée uniquement pour les administrateurs. Si vous souhaitez la rendre accessible à vos utilisateurs, vous pourrez le faire depuis l’interface de gestion des permissions (/admin/people/permissions). 
  • Le module ne vous permet pas de modifier les champs présents dans le formulaire de recherche avancée. Si par exemple vous voulez modifier le formulaire ou altérer les données envoyées, vous devrez utiliser un hook.
/**
* Implements hook_form_alter()
*
*/
function kaliop_test_form_alter(&$form, FormStateInterface $form_state, $form_id)
{
 if ($form_id === 'search_form') {
   // Votre code
$form['#validate'][] = 'custom_validation';
 }
}

function custom_validation(&$form, FormStateInterface $form_state){
// Votre code
}

Optimisation de la performance de votre site Drupal

Même si le temps de chargement impacte peu pour le positionnement, il a une grande importance pour l’utilisateur et les robots d’indexation. Une page trop lente à charger est une raison pour laquelle les robots peuvent ne pas indexer votre page. 

Et puis, en tant qu’utilisateur, qui aime attendre 10 secondes pour que sa page charge ? 

Pour éviter une perte de trafic due à une mauvaise expérience utilisateur, ou éviter les pages trop lentes pour être indexées, je vais vous présenter plusieurs tips qui pourront vous aider.

L’outil de Google PageSpeed Insights vous permettra de tester les performances des pages et vous apporte des conseils pour améliorer les résultats obtenus. 

La gestion du cache

La mise en cache des pages est un des piliers pour optimiser le temps de chargement de votre site.

Drupal possède un système de cache puissant. A nous, en tant que développeurs, de ne pas en faire n’importe quoi. Par exemple éviter de faire ceci dans votre code, c’est-à-dire de supprimer le cache d’une page :

$build['#cache']['max-age'] = 0;


L’API cache de Drupal nous donne les moyens de gérer au mieux cette partie. Je vous conseille donc de vous plonger dans la documentation de la gestion de cache pour comprendre ses trois points fondamentaux : Cache tags, Cache contexts, Cache max-age.

Minification des ressources CSS / JS

À l’aide du back office dans la partie performance optimiser les ressources, vous avez la possibilité de configurer ces optimisations :

Minification des ressources CSS / JS dans Drupal

Optimiser les images pour améliorer le SEO sur Drupal

Les images peuvent être un fardeau pour la performance, voici quelques points clés pour réduire ce temps de chargement :

  • Privilégiez le lazy loading pour charger vos images. 
  • Redimensionnez les images à l’aide des styles d’images.

Optimisation des images sur Drupal

De plus il ne faut pas oublier que les robots parcourent les images de votre site. Pensez donc à les optimiser au moment de l’upload de vos images à travers le nom du fichier, la balise alt… Vous trouverez tous les conseils nécessaires dans l’article L’art d’optimiser les images.

Utiliser le module AMP (Accelerated Mobile Pages) de Drupal

Les utilisateurs mobiles sont beaucoup moins patients, ils attendent du contenu rapide. C’est dans le but d’améliorer l’expérience utilisateur que la norme AMP existe. Elle a pour objectif d’améliorer des performances d’un site sur mobile. 

Le format AMP est une version allégée d’un site pour mobile. Il est très recommandé de l’utiliser, mais sa mise à en place entraînera plus de temps de développement

Le module Drupal AMP  (compatible Drupal 8 & Drupal 9) est là pour ça, mais il faudra obligatoirement un Thème AMP. Vous pouvez utiliser un des thèmes inclus dans AMP Theme, ou comme votre propre Thème AMP, qui hérite ou non d’un thème normal.

Une fois le module installé, vous aurez la possibilité depuis la page de configuration (/admin/config/services/amp) de gérer l’affichage des différents types de contenus.

Pour cette partie je ne rentrerai pas dans plus de détails techniques, il serait nécessaire de lui consacrer un article entier.

Pour tester la compatibilité mobile de vos pages, Google à mis en place l’outil AMP Test.

Les outils de contrôles/tests indispensables en SEO

Tout au long de l’article, vous avez à votre disposition des liens pour tester vos différentes parties, mais en voici d’autres : 

  • L’indispensable Google Search Console pour votre référencement
  • Semrush l’outil SEO le plus complet (payant)
  • SEO Checklist : ce module est uniquement là pour vous aider à être le plus efficace sur la partie SEO technique à l’aide d’optimisations à mettre en place. Il n’est malheureusement pas encore compatible Drupal 9.

Module SEO checklist sur Drupal

  • Real-time SEO est à mettre à disposition des contributeurs : il leur donnera tous les tips pour optimiser leur contenu. Comme SEO Checklist, il n’est pas encore présent pour Drupal 9.

Penser Mobile First avant tout

Je ne vais pas rentrer dans les détails car cet article explique tout sur le sujet Mobile-First index : quel impact pour votre stratégie SEO en 2020 ?. Mais il est toujours bon de rappeler que penser Mobile First lors des débuts du projet doit être votre priorité ! 

Depuis Drupal 8, tout est pensé mobile friendly, tous les thèmes du core sont responsive. Si vous développez votre thème, vous devrez alors continuer à respecter cette règle.

Bien évidemment, si vous avez la possibilité d’utiliser le format AMP mentionné plus haut, votre projet ne pourra être que Mobile Friendly.

Pour tester si votre site est compatible au format mobile, vous avez l’outil Test mobile friendly de Google. Il vous permettra aussi grâce à ses conseils d’améliorer la partie mobile. 

Configurer le Robots.txt

Vous retrouverez ce fichier à la racine de votre projet. C’est l’un des premiers fichiers lus par les crawlers (robots). Il indique quelle partie du site ne doit pas être explorée. Mais attention, cela n’empêchera pas vos pages de remonter dans les SERP. Par exemple si d’autres pages possèdent un lien pointant vers la vôtre, elle peut être indexée. Si vous ne souhaitez pas qu’une page soit indexée il faudra utiliser la balise Meta “noindex”. Pour cela, le module Metatag met à disposition une checkbox. 

Désindexer une page sur Drupal

<meta name="robots" content="noindex" />

Si votre projet est un multisite et que vous avez besoin d’un fichier robots.txt différent pour chaque site, il y a le module RobotsTxt (compatible Drupal 8 & Drupal 9). Il vous permettra de configurer depuis le back office un fichier différent pour chacun d’eux (il vous faudra supprimer ou modifier le nom du fichier à la racine pour que ceux du module soient pris en compte).

La documentation de google vous guidera pour la création du robots.txt.

La gestion des URLs sur Drupal

Avoir des URLs propres sera un plus pour l’expérience utilisateur, mais aussi pour le référencement de votre site. La communauté Drupal met à disposition des modules qui vous permettent de garder des URLs claires, mais bien entendu c’est aussi à vous de construire vos URLs en respectant les bonnes pratiques.

Pathauto (compatible Drupal 8 & Drupal 9) est un outil indispensable pour tous les projets Drupal. Il crée automatiquement des alias d’URLs pour vos contenus (Media, Noeud, Taxonomy, Utilisateur, etc…). Depuis le back office, vous avez la possibilité de modifier ces Patterns (vous pouvez voir ça comme les formats d’URLs) en vous aidant de tokens pour construire automatiquement vos URLs. Le contributeur aura quand même l’autorisation, si elle lui est attribuée, de surcharger l’alias généré d’un contenu.

Le module Pathauto sur Drupal

Anticiper les redirections

Il est important de mettre en place une redirection quand votre URL change, pour qu’elle puisse garder son niveau de popularité et vous éviter de perdre du trafic. Le module Redirect redirige vos anciennes URLs vers les nouvelles (compatible Drupal 8 & Drupal 9). Il est complémentaire à Pathauto puisqu’il crée automatiquement des redirections 301 lorsque les alias sont modifiés. La configuration de base du module est complète, vous pouvez cependant depuis l’interface lui apporter des ajustements (/admin/config/search/redirect/settings).

Sitemap XML

Le fichier sitemap liste les URLs de votre site dans un fichier au format XML, il favorise l’indexation de vos pages par les moteurs de recherche. Mais Google préféra la navigation naturelle pour indexer vos pages, alors ne misez pas tout sur ce fichier.

Tous les CMS possèdent des extensions pour la génération de sitemap. Simple XML Sitemap (compatible Drupal 8 & Drupal 9) est actuellement le module le plus utilisé sur Drupal. L’interface de configuration du module peut sembler à priori complexe, mais c’est sans compter sur les commentaires intuitifs qui vous expliqueront à quoi sert chaque champ.

Vous pourrez indiquer la position de votre sitemap dans le robots.txt :

Sitemap: http://www.mon-site.com/sitemap.xml

Conclusion

En suivant ces différentes recommandations, vous avez la possibilité d’optimiser au mieux votre SEO technique. Mais comme évoqué en introduction, le SEO ce n’est pas que la partie technique, c’est aussi la partie On page et Off page. Ces trois parties sont complémentaires, vous ne pourrez pas avoir un bon positionnement dans les SERP sans avoir travaillé sur ces trois parties.

À vous de jouer !

Marine Durand

Marine Durand

Développeuse Web spécialisée dans la techno Drupal

Ce qui me plait dans ce métier : l’évolution constante sur les différentes technos et le fait d’apprendre en permanence de nouvelles choses et manières de faire. J’aime le travail en équipe et être en lien avec les clients. Ce qui me plait dans Drupal : sa grande communauté Open Source et sa flexibilité.

Commentaires

Ajouter un commentaire

Votre commentaire sera modéré par nos administrateurs

Vous avez un projet ? Nos équipes répondent à vos questions

Contactez-nous