Après des années d’attente, nous sommes enfin en mesure de modifier le fichier Robots.txt
sur nos boutiques Shopify (à la fois basic et Shopify Plus).
Voici comment le modifier, quand vous devez le personnaliser et en quoi il est utile pour le référencement.
Qu’est-ce que le robots.txt ?
Le fichier robots.txt se compose de règles qui indique aux robots d’exploration quelles pages peuvent ou ne peuvent pas être consultées. Une règle se compose d’une directive, qui peut être Allow
ou Disallow
, et d’une valeur du chemin d’URL associé. Par exemple : Disallow: /collections/all*
Ce fichier se trouvera toujours à cette adresse : votresite.com/robots.txt
Les robots comme Googlebot ou bingbot tiennent en compte ce fichier et respectent ses consignes avant de venir explorer votre site.
Quel est son but en SEO ?
Grâce au fichier robots.txt, les propriétaires de sites peuvent apporter les modifications suivantes :
- Autoriser ou interdire l’accès de certaines URL à l’exploration.
- Ajouter des règles de délai d’exploration pour certains crawlers
- Ajouter des URLs sitemap supplémentaires
- Bloquer certains crawlers
Rappel SEO : Ne bloquez pas l’accès à des pages via le robots.txt avant de les avoir retirées des résultats de recherche (balise noindex).
Comment créer et modifier le robots.txt sur Shopify ?
Toutes les boutiques ont par défaut un fichier robots.txt préconfiguré et optimisé par Shopify lui-même. Si vous souhaitez toutefois le personnaliser, voici comment faire :
- Ouvrez votre Tableau de bord
- Allez dans Boutique en ligne > Thèmes
- Sur votre thème, cliquez sur Actions > Modifier le code
- Dans le dossier Modèles (Templates), cliquez sur Ajouter un nouveau modèle
- Dans la case Sélectionnez un modèle à créer, remplacez « Article » par > Robots.txt
- Cliquez sur « Créer le modèle »
Cela va créer un fichier robots.txt.liquid
avec le code suivant :
Note : Nous vous conseillons vivement de ne pas toucher à ces règles, elles sont optimisées pour Shopify.
Maintenant que l’on a créé le fichier, on va pouvoir le personnaliser comme on veut.
Personnaliser robots.txt.liquid
Il y a 3 personnalisations qu’on veut apporter à ce fichier :
- Ajouter une nouvelle règle à un groupe existant
- Enlever une règle d’un groupe existant
- Ajouter des règles faites sur mesure
Un groupe renvoie à un ensemble de règles pour des robots spécifiques.
Ajouter une nouvelle règle à un groupe existant
Voici le fichier modifié pour inclure quelques règles par défaut que nous avons tendance à utiliser pour les clients :
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules -%}
{{ rule }}
{%- endfor -%}
{%- if group.user_agent.value == '*' -%}
{{ 'Disallow: /collections/all*' }}
{{ 'Disallow: /*?q=*' }}
{{ 'Disallow: /collections/*/*' }}
{{ 'Disallow: /blogs/*/tagged/*' }}
{%- endif -%}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
Ce que dit ce code c’est que si le user_agent
(nom du robot) est égal à *, qui s’applique à tous les bots, alors interdit ce qui suit :
/collection/all*
– Cela bloquera la collection par défaut contenant tous les produits incluant la pagination./*?q=*
– Cette commande empêche l’exploration des url avec le paramètre de recherche « query », souvent utilisé comme un hack sur les types de pages vendeurs ou collection./collection/*/*
– Ça va bloquer les url en doublon d’accès aux produits (prudence avec lui, il peut empêcher les produits d’être parcourus si vous n’avez pas personnalisé les liens internes)/blogs/*/tagged/*
– Celui-là empêchera les tags de blog d’être parcouru
Le (*) est un caractère générique qui signifie « tout ce qui se trouve ici », c’est-à-dire que pour l’exemple /*?q=*
toutes /urls?q=parametres
sera bloquées.
Si vous souhaitez réutiliser le fichier robots.txt par défaut, supprimer simplement le fichier robots.txt.liquid
que vous venez de créer.
Enlever une règle par défaut d’un groupe existant
Ce n’est pas recommandé, mais si vous avez besoin, les règles par défaut peuvent être supprimées du fichier robots.txt.
Voilà le robots.txt par défaut de Shopify :
we use Shopify as our ecommerce platform
User-agent: *
Disallow: /a/downloads/-/*
Disallow: /admin
Disallow: /cart
Disallow: /orders
Disallow: /checkout
Disallow: /8203042875/checkouts
Disallow: /8203042875/orders
Disallow: /carts
Disallow: /account
Disallow: /collections/*sort_by*
Disallow: /*/collections/*sort_by*
Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*
Disallow: /*/collections/*+*
Disallow: /*/collections/*%2B*
Disallow: /*/collections/*%2b*
Disallow: /blogs/*+*
Disallow: /blogs/*%2B*
Disallow: /blogs/*%2b*
Disallow: /*/blogs/*+*
Disallow: /*/blogs/*%2B*
Disallow: /*/blogs/*%2b*
Disallow: /*?*oseid=*
Disallow: /*preview_theme_id*
Disallow: /*preview_script_id*
Disallow: /policies/
Disallow: /*/*?*ls=*&ls=*
Disallow: /*/*?*ls%3D*%3Fls%3D*
Disallow: /*/*?*ls%3d*%3fls%3d*
Disallow: /search
Disallow: /apple-app-site-association
Sitemap: YOURWEBSITE.COM/sitemap.xml
# Google adsbot ignores robots.txt unless specifically named!
User-agent: adsbot-google
Disallow: /checkout
Disallow: /carts
Disallow: /orders
Disallow: /8203042875/checkouts
Disallow: /8203042875/orders
Disallow: /*?*oseid=*
Disallow: /*preview_theme_id*
Disallow: /*preview_script_id*
User-agent: Nutch
Disallow: /
User-agent: AhrefsBot
Crawl-delay: 10
Disallow: /a/downloads/-/*
Disallow: /admin
Disallow: /cart
Disallow: /orders
Disallow: /checkout
Disallow: /8203042875/checkouts
Disallow: /8203042875/orders
Disallow: /carts
Disallow: /account
Disallow: /collections/*sort_by*
Disallow: /*/collections/*sort_by*
Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*
Disallow: /*/collections/*+*
Disallow: /*/collections/*%2B*
Disallow: /*/collections/*%2b*
Disallow: /blogs/*+*
Disallow: /blogs/*%2B*
Disallow: /blogs/*%2b*
Disallow: /*/blogs/*+*
Disallow: /*/blogs/*%2B*
Disallow: /*/blogs/*%2b*
Disallow: /*?*oseid=*
Disallow: /*preview_theme_id*
Disallow: /*preview_script_id*
Disallow: /policies/
Disallow: /*/*?*ls=*&ls=*
Disallow: /*/*?*ls%3D*%3Fls%3D*
Disallow: /*/*?*ls%3d*%3fls%3d*
Disallow: /search
Disallow: /apple-app-site-association
Sitemap: YOURWEBSITE.COM/sitemap.xml
User-agent: AhrefsSiteAudit
Crawl-delay: 10
Disallow: /a/downloads/-/*
Disallow: /admin
Disallow: /cart
Disallow: /orders
Disallow: /checkout
Disallow: /8203042875/checkouts
Disallow: /8203042875/orders
Disallow: /carts
Disallow: /account
Disallow: /collections/*sort_by*
Disallow: /*/collections/*sort_by*
Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*
Disallow: /*/collections/*+*
Disallow: /*/collections/*%2B*
Disallow: /*/collections/*%2b*
Disallow: /blogs/*+*
Disallow: /blogs/*%2B*
Disallow: /blogs/*%2b*
Disallow: /*/blogs/*+*
Disallow: /*/blogs/*%2B*
Disallow: /*/blogs/*%2b*
Disallow: /*?*oseid=*
Disallow: /*preview_theme_id*
Disallow: /*preview_script_id*
Disallow: /policies/
Disallow: /*/*?*ls=*&ls=*
Disallow: /*/*?*ls%3D*%3Fls%3D*
Disallow: /*/*?*ls%3d*%3fls%3d*
Disallow: /search
Disallow: /apple-app-site-association
Sitemap: YOURWEBSITE.COM/sitemap.xml
User-agent: MJ12bot
Crawl-Delay: 10
User-agent: Pinterest
Crawl-delay: 1
Par exemple, enlevons la règle /account
, voici un exemple de code pour faire ça :
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules -%}
{%- unless rule.directive == 'Disallow' and rule.value == '/account' -%}
{{ rule }}
{%- endunless -%}
{%- endfor -%}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
Ce que nous lui disons c’est : s’il y a une ligne « Disallow » avec la valeur « /account », n’affiche pas cette règle.
Ajouter des règles personnalisées
Si vous souhaitez ajouter une règle qui ne s’applique pas à un groupe par défaut de shopify (*, adsbot-google, AhrefsBot, AhrefsSiteAudit, Nutch, MJ12bot et Pinterest) alors vous pouvez l’ajouter à la toute fin du fichier.
Par exemple, si vous voulez bloquer la WayBackMachine vous pouvez ajouter le code suivant :/
User-agent: ia_archiver
Disallow: /
Ou si vous voulez plutôt ajouter un sitemap que vous venez de créer, vous pouvez ajouter ce code-ci :
Sitemap: [sitemap-url]
Pourquoi personnaliser le robots.txt ?
Si vous n’êtes pas dans le SEO, vous pouvez vous demander s’il est important de personnaliser ce fichier.
Oui, pour 2 raisons :
- Le budget de Crawl
- Les contenus pauvres
Le budget de Crawl
Dans la partie SEO Technique, le référenceur s’intéresse au budget de crawl. Kézako ? Ce terme représente le nombre de pages limites que Googlebot va crawler sur un site web lors de chaque passage.
Plus simplement :
Les moteurs de recherche ne peuvent pas crawler l’entièreté du web régulièrement, il y a trop de contenus pour ça. Ils utilisent donc des algorithmes pour décider de la quantité de ressources à allouer à chaque site web.
Si votre site requiert plus de ressources qu’il n’en a allouées, alors des pages peuvent être ignorées lors du crawling régulier.
En SEO, on veut que les moteurs de recherche comme Google ou Bing crawlent régulièrement notre site web pour suivre les améliorations apportées. Si des pages ne sont pas crawlées, ils n’auront aucune idée de ce qui a pu changer, alors vous ne verrez aucune progression dans vos positions.
C’est d’autant plus important quand des pages de moins bonne qualité sont analysées au détriment de celles bien conçues.
Quand les experts SEO discutent du crawl budget, ils réfléchissent à comment tirer le meilleur de ce fameux budget alloué.
En utilisant le robots.txt, on peut spécifiquement bloquer certaines pages ou répertoires du crawl, ce qui réduit le budget d’exploration gaspillé.
Les contenus pauvres
Le contenu pauvre désigne des pages de votre site avec peu de valeur ajoutée pour l’internaute et les moteurs.
Je m’explique :
Si vous vous rendez dans votresite.com/collections/vendors?q=brand
, vous verrez une page par défaut créée pour tous les vendeurs dans votre tableau de bord shopify.
Il n’y a ni contenus, ni description, et elle ne peut pas être personnalisée.
Cette page en l’état, n’a pas vraiment d’intérêt. On se doute que Google ne la positionnera pas dans ses résultats, c’est ce qu’on appelle une page au « contenu pauvre ».
La meilleure solution dans ce cas-là serait de supprimer ou de bloquer cette page, puis de créer manuellement une nouvelle collection shopify pour viser juste les vendeurs /noms de marque qui est entièrement personnalisable.
Quelques questions
Dois-je bloquer les flux .atom ?
Un flux RSS ou Atom est important pour certains besoins spécifiques comme par exemple :
- Relayer automatiquement des infos sur les réseaux sociaux.
- Récupérer dynamiquement toutes les données d’un catalogue de produit (Google Shopping, Comparateur…)
- Autres…
Sur une boutique shopify, les flux .atom peuvent remonter dans la Search Console comme « Explorée, actuellement non indexée ». Si vous pensez ne pas en avoir besoin, vous pouvez les bloquer via le fichier robot.
Disallow: /*.atom$
Disallow: /*.ATOM$
Je l’ai ajouté deux fois car le fichier robots.txt est sensible à la casse, mais vous pouvez supprimer la règle en majuscule si vous le souhaitez.
Dois-je bloquer les robots de spam ?
Vous souhaitez empêcher les robots de spam malveillants d’espionner votre site ? Utile également pour pouvoir analyser des données de visites fiables (Google Analytics). Vous pouvez identifier ces bots grâce à vos logs puis les bloquer. La liste des bots fréquemment bloqués se trouve ici.
Conclusion
Nous espérons n’avoir perdu personne en route, c’est assez technique.
Nous vous rappelons de faire très attention avec ce fichier si vous n’êtes pas un développeur ou que vous n’êtes pas dans le SEO.
Il est possible de bloquer l’accès à tout votre site et de créer de sérieux problèmes avec cette fonctionnalité.
Vous pouvez aussi tester vos règles en utilisant l’outil de test du robots.txt par google, dans la GSC (Google Search Console).
En espérant que ce guide vous est venu en aide, si vous avez besoin d’aide dans ce domaine, n’hésitez pas à faire appel à nous.
Partagez vos commentaires si vous avez d’autres astuces dans le robots.txt de Shopify. Merci !