|
Comment aider les robots d'indexation à référencer correctement vos pages ?
[Format de balises et jeux de caractères]
[Contrôler ce qui doit être exploré]
[Analyse du contenu par les robots]
[Pages en double et multilingues]
[Protocoles HTTP et robots]
Nouveau ! Cette page est disponible en deux variantes
Thème clair
[Thème sombre]
Et cet article va vous expliquer comment gérer cela pour l'indexation
Je vais vous présenter aujourd'hui les subtilités de référencement
que j'ai découvertes à l'occasion de la
remise en ligne de mon site.
Rapidement, j'ai été confronté à la multitude de robots d'indexation qui parcourent
désormais le Web en parmenance. Vu qu'il ne s'agit que de programmes, et pas toujours
très futés, il est nécessaire d'utiliser les bonnes balises HTML afin qu'ils puissent
interpéter correctement votre contenu et les relations entre vos pages.
Le but ici n'est pas de faire un cours exhaustif de HTML, mais plutôt de synthétiser
en un seul endroit, comme j'ai l'habitude de le faire sur
La Revue, des informations qui se trouvent sur Internet
mais sur une multitude de sites, et avec parfois des informations contradictoires.
Vous pourrez également bénéficier de mon retour d'expérience ! Toutes les indications
de cette page sont employées sur mon propre site.
Le saviez-vous ? La plupart des robots parcourant le Web sont buggués !
Cela inclut ceux des géants d'Internet, dont Google. C'est pour cette raison qu'il
est indispensable de suivre quelques règles simples.
Certaines des explications qui suivent pourraient vous paraître triviales, mais
il vaut mieux faire tout son possible afin qu'il n'y ait pas de surpises !
Utiliser les bons formats de balises et spécifier le jeu de caractères
Toutes les balises HTML sont insensibles à la casse, mais il est généralement
recommandé de les écrire en minuscules.
Un élément important et méconnu, c'est que toutes les balises doivent normalement
être fermées, et pas seulement celles qui servent de délimiteurs comme
<b>texte en gras</b>.
Il faut donc théoriquement écrire
<img src="/revue/images/rev20/hidden-clipart.jpg" /> et même
<hr />. Ce n'est pas spécialement respecté sur le Web,
que ce soit sur les gros sites ou même par les éditeurs HTML... Mais quand il
s'agit de balises destinées aux robots, autant les formater strictement.
Les balises <meta>, situées dans l'en-tête de votre page
- la section <head>...</head> -
figurent parmi les plus importantes et notamment celle vous permettant de définir
le jeu de caractères utilisé par votre page. C'est absolument indispensable
pour que votre texte soit correctement interprété par les robots, mais aussi
par les navigateurs.
Dorénavent, l'UTF-8 est correctement supporté à peu près partout et c'est
ce que je vous conseille d'utiliser. Vous pouvez vérifier que votre fichier HTML
contient bien des caractères UTF-8 avec un file sous UNIX :
Une fois ceci fait, il vous suffit de déclarer le jeu de caractères utilisé dans
une page au client HTTP (navigateur ou robot) comme ceci :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Cette balise doit se trouver dans les 1024 premiers octets de votre fichier HTML.
Contrôler ce qui doit être exploré
Les robots d'indexation définissent un certain quota d'exploration
à chaque site
Et si vous venez de mettre en ligne le vôtre, il y a fort à parier que celui-ci
sera assez faible au début. Il augmentera progressivement
en fonction du nombre de clics sur les résultats de recherche menant à vos pages,
mais dans un premier temps, il vous faut donc définir ce que
les robots ne doivent pas explorer afin d'être économe.
Cela se fait au moyen du fameux fichier robots.txt qui doit toujours
se situer à la racine du nom de domaine. Il doit contenir des caractères UTF-8.
Par défaut, les robots sont toujours autorisés à explorer tout un site. Vous allez
donc plutôt ajouter des règles Disallow :
- Pour bloquer le répertoire
/private utilisez :
User-agent: *
Disallow: /private
- Pour bloquer un robot en particulier, spécifiez son
User-agent (cela
suppose qu'il se déclare en tant que tel, bien entendu) :
User-agent: Googlebot
Disallow: /
- Pour bloquer l'exploration et l'indexation directe de certains fichiers
sur votre site, vous pouvez en indiquer les extensions comme ceci :
User-agent: *
Disallow: /images/*.gif$
Disallow: /images/*.jpg$
Disallow: /*.pdf
Disallow: /downloads/*.zip$
Vous avez également la possibilité de spécifier un sitemap dans
votre fichier robots.txt, listant toutes les pages indexables,
dans le format de votre choix. Le plus courant c'est le XML. Vous ajoutez
ainsi à votre robots.txt :
Sitemap: https://www.theraphit.com/sitemap.xml
A noter que dans ce cas précis, le chemin doit être un URL absolu, incluant le
protocole. Le sitemap n'a rien d'indispensable mais il est recommandé
s'il est impossible aux robots de découvrir toutes les pages à indexer d'un site
en suivant les liens internes. Il offre également l'avantage de pouvoir spécifier
des informations supplémentaires comme la date de la dernière mise à jour d'une page,
ainsi qu'une priorité d'exploration.
Ce fichier sera public, tout comme le robots.txt, donc vous ne devez
pas y faire figurer de pages ou de chemins privés ! Pour vous faire une meilleure
idée des syntaxes, vous pouvez d'ailleurs consulter
mon sitemap ainsi que
mon fichier robots.
En dehors de cela, se présentera le cas où vous souhaiterez ne
pas faire indexer une page, bien qu'elle figure dans un répertoire dont l'exploration
est autorisé. Cela peut-être utile s'il s'agit d'une page complémentaire vers laquelle
vous ne souhaitez pas qu'un visiteur soit orienté directement via une recherche.
Pour cela, vous devez utiliser le mot clé noindex avec une
balise <meta> spécialement destinée aux robots :
<meta name="robots" content="noindex" />
En plus du noindex, il est aussi possible d'ajouter le mot clé
nofollow indiquant qu'aucun des liens figurant dans la page ne doit
être suivi, par exemple si ceux-ci mènent à d'autres pages elles aussi exclues
de l'indexation :
<meta name="robots" content="noindex,nofollow" />
Une seule balise <meta> de type robots doit être
présente, aussi il faut bien veiller à mettre les deux mots clés ensemble, dans la même.
A noter que le nofollow n'est pas scrupuleusement respecté par
les robots... Ceux-ci peuvent tout de même continuer de suivre les liens,
donc si une page contient un lien privé ou vers une page qu'un robot
ne doit pas visiter, il faut impérativement recourir au fichier robots.txt
pour en bloquer l'exploration. Théoriquement un lien menant, dans une page
indexable, vers une page qui ne l'est pas doit lui-même spécifier le
nofollow comme ceci :
<a href="https://www.theraphit.com/revue/rev20a.html" rel="nofollow">contenu disponible sur une page non-indexée</a>
Une fois encore, cela n'est pas toujours pris en compte par les robots, mais cela
maintient une certaine cohérence.
En revanche le noindex lui, est fiable ! Cela n'empêchera pas
une page d'être explorée, mais vous pouvez être sûr qu'elle ne sera pas indexée.
C'est aussi la méthode à privilégier pour retirer une page des résultats
de recherche sur un moteur. Pour l'avoir testé à plusieurs reprises, je peux
vous garantir que cela fonctionne !
Dans ce cas précis, n'oubliez donc pas également
de la retirer de votre fichier sitemap si vous en avez un.
Il faudra bien évidemment que cette page soit de nouveau visitée par les robots
pour que cela soit pris en compte, ce qui peut nécessiter plusieurs semaines.
Comment les robots analysent-ils le contenu vos pages ?
De nos jours, les moteurs intègrent dans leurs bases de données l'intégralité
du texte d'une page et même, si vous l'avez autorisé via votre fichier
robots.txt, l'ensemble des images ainsi que leurs descriptions.
Cependant il ne faut pas croire que placer ou répéter plusieurs mots clés
dans le corps de votre page permettra à un robot d'indexation de comprendre
ce dont il s'agit. Ca n'est pas inutile, mais autant vous le dire de suite :
globalement, ça ne fonctionne pas
Le texte le plus important de votre page du point de vue du référencement,
c'est ce qui est délimité par la balise <title>...</title>.
Il s'agit de l'élément principal servant à l'indexation. Votre titre
doit contenir les phrases-clés que les visiteurs potentiels sont susceptibles
d'entrer sur un moteur de recherche, tels que « référencement web »
ou « gnu hurd » - votre titre doit comporter idéalement entre
70 et 80 caractères pour ne pas être tronqué, donc vous n'allez pas pouvoir tout mettre !
A vous de choisir judicieusement.
A côté de cela, il est également indispensable d'insérer une
balise <h1>...</h1> dans votre page.
Cela peut paraître vieillot, et surtout inutile si c'est le contenu
du <title> qui compte, mais
ne pas le faire pénalisera votre référencement.
Il ne doit y avoir qu'un seul <h1> dans une page, mais
le contenu de celui-ci n'a pas à reproduire celui du <title>,
comme vous pourrez parfois le lire sur Internet. J'ai des pages très correctement
référencées où les textes délimités par les deux balises sont assez différents.
De la même façon, les balises de sous-titres secondaires
telles que <h2>...</h2> et suivantes sont loin d'être
inutiles, car elles peuvent servir à former le petit résumé de la page qui
apparaît sous le lien dans les moteurs de recherche. Il fut un temps ou c'était
la fameuse balise <meta name="description" content="..." /> qui
remplissait ce rôle, mais il faut savoir qu'il n'y a désormais aucune garantie là-dessus.
La plupart du temps, je peux même vous dire que le contenu de cette balise n'est pas
utilisée. Néanmoins veillez à en ajouter une, avec un texte de 150 à 180 caractères,
car il s'agit également d'un élément pénalisant si vous ne le faites pas.
Un petit mot rapide au sujet des mots-clés et de leur balise
<meta name="keywords" content="..." />... C'est
totalement suranné. Google annonce même officiellement ignorer la balise -
bon il est toujours difficile de démêler le vrai du faux avec eux lorsque l'on parle de
leurs algorithmes - mais en pratique je peux vous confirmer que je n'ai constaté
aucun impact, alors que je continue d'en insérer sur mes pages. Un peu pour le côté
« nostalgie » sans doute... Mais je n'y apporte plus un soin particulier
comme ce fut nécessaire au 20ème siècle.
Enfin, si vous autorisez l'exploration de vos images, veillez à
ne pas oublier l'attribut alt="..." de la balise
<img> pour chacune d'entre elles.
Ceux-ci vont spécifier les mots-clés qui seront utilisés pour la recherche d'image
des moteurs, et cela peut vous amener des visiteurs supplémentaires. Une omission
entraînerait un malus.
Par ailleurs, de nos jours Internet est très régionalisé. Les moteurs de recherche
ont tendance à orienter les requêtes formulées dans une langue en priorité vers
les pages rédigées dans cette même langue. Si vous proposez un contenu unique
dans la vôtre, je vous conseille d'indiquer celle-ci au tout début de votre page :
<html lang="fr">
Notez que vous pouvez spécifier les variantes locales telles que en_GB
ou fr_CA. Petite précision intéressante : si vous souhaitez insérer du texte
dans une autre langue tel qu'une citation ou un lien que vous estimez pertinent,
vous pouvez le préciser avec la balise
<span lang="...">...</span>
en utilisant les mêmes codes.
Pages en double et pages multilingues
Les moteurs de recherche détestent le contenu dupliqué.
La principale raison est qu'en un tel cas, ils ne peuvent déterminer quel doit être
le lien à afficher dans les résultats de recherche. Il y a plein de raisons
qui peuvent conduire à la duplication de contenu, mais pour commencer, ce
peut-être tout simplement lié au fonctionnement des serveurs ou des protocoles.
Ainsi les trois différents URL :
http://www.theraphit.com/revue/
https://www.theraphit.com/revue/
https://www.theraphit.com/revue/index.html
Correspondent exactement à la même page, et ce pour de pures raisons techniques.
Un contenu dupliqué peut se retrouver pénalisé dans les résultats de recherche,
voire il est possible qu'aucune page ne soit indexée. Pour éviter
cela, il est nécessaire d'utiliser le mécanisme d'URL canonique. Il s'agit
d'ajouter à l'en-tête de la page une balise <link> portant
l'attribut rel=canonical comme ceci :
<link rel="canonical" href="https://www.theraphit.com/revue/" />
Tous les doublons purement « logiques » seront ainsi identifiés comme tels.
La notion de contenu dupliqué s'applique aussi toutefois aux pages ayant
un contenu similaire non nécessairement identique, ce que les robots
sont aussi capables de détecter. Le meilleur exemple, c'est lorsque vous
avez des versions desktop/mobile de vos pages, ou bien une version
thème clair/thème sombre, comme celle-ci.
Dans ce cas, il vous suffit d'ajouter une balise canonique pointant vers
la page que vous souhaitez voir apparaître dans les résultats de recherche :
version desktop, thème clair... Ainsi, bien que la variante « thème sombre »
de cette page soit un fichier différent nommé rev34-dark.html,
celui-ci inclut une balise canonique pointant
vers rev34.html qui est celle en thème clair. La version alternative
se retrouve automatiquement exclue du référencement, et cela évite une situation
de doublon. Il n'est pas nécessaire d'utiliser le noindex dans ce cas,
et je recommanderais même de ne pas le faire, histoire de ne pas provoquer une
ambigüité du côté de chez nos amis les robots.
Un type de contenu dupliqué particulier, ce sont les variations linguistiques
d'une même page. Dans ce cas bien précis, appliquer la méthode précédente en
indiquant par exemple la page en anglais comme étant canonique exclut les pages
traduites du référencement, alors qu'on aimerait bien qu'une page écrite dans une
autre langue soit proposée aux locuteurs de celle-ci dans les résultats
de recherche.
Pour que toutes les pages dans les différentes langues soient indexées, il faut
pour cela employer l'attribut hreflang="..." des balises
<link> et il convient d'être extrêmement rigoureux avec.
En effet, ne pas correctement les utiliser ou les confondre avec les balises
canoniques sera totalement contre-productif.
Voici la marche à suivre :
-
Chaque variante linguistique doit comporter sa propre balise canonique, pointant
vers elle-même
-
Des balises portant l'attribut
hreflang identifiant toutes les
variantes doivent être présentes dans chacune des autres pages
-
Une balise
<link> avec la valeur hreflang="x-default"
de l'attribut peut éventuellement ajoutée pour spécifier quelle variante le moteur
de recherche doit présenter lorsqu'aucune ne s'applique à la langue supposée de
l'utilisateur du moteur de recherche
L'article n° 14 de La Revue au sujet du proxy Reddit TheRaphit.com est
disponible en français et en
anglais.
Ainsi, figure dans l'en-tête de la page en français :
<link rel="canonical" href="https://www.theraphit.com/revue/rev14.html" />
<link rel="alternate" hreflang="fr" href="https://www.theraphit.com/revue/rev14.html" />
<link rel="alternate" hreflang="en" href="https://www.theraphit.com/revue/reddit-proxy.html" />
<link rel="alternate" hreflang="x-default" href="https://www.theraphit.com/revue/reddit-proxy.html" />
Et dans l'en-tête de la page en anglais :
<link rel="canonical" href="https://www.theraphit.com/revue/reddit-proxy.html" />
<link rel="alternate" hreflang="fr" href="https://www.theraphit.com/revue/rev14.html" />
<link rel="alternate" hreflang="en" href="https://www.theraphit.com/revue/reddit-proxy.html" />
<link rel="alternate" hreflang="x-default" href="https://www.theraphit.com/revue/reddit-proxy.html" />
La variante par défaut, lorsque l'utilisateur du moteur de recherche n'a pas configuré
son navigateur en français ou ne se connecte pas depuis une adresse IP d'une région
francophone (évaluer cela et choisir entre les différentes possibilités est purement
du ressort des moteurs eux-mêmes), sera ici celle en anglais.
Il est extrêmement important de ne pas oublier de lister la page elle-même
parmi les rel="alternate" même si cela paraît ne pas avoir de sens.
Cela s'appelle l'auto-référencement, et c'est indispensable. Ne pas le faire
sera considéré comme un mauvais emploi de hreflang et
empêchera la bonne indexation des pages.
Pour le sitemap.xml il faut plus ou moins respecter les mêmes règles,
avec la syntaxe propre à ce fichier. Par exemple, toujours pour
l'article n° 14, cela donne :
<url>
<loc>https://www.theraphit.com/revue/rev14.html</loc>
<xhtml:link
rel="alternate"
hreflang="fr"
href="https://www.theraphit.com/revue/rev14.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://www.theraphit.com/revue/reddit-proxy.html"/>
<xhtml:link
rel="alternate"
hreflang="x-default"
href="https://www.theraphit.com/revue/reddit-proxy.html"/>
<lastmod>2025-09-28T10:22:00+00:00>/lastmod>
<priority>0.60</priority>
</url>
<url>
<loc>https://www.theraphit.com/revue/reddit-proxy.html</loc>
<xhtml:link
rel="alternate"
hreflang="fr"
href="https://www.theraphit.com/revue/rev14.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://www.theraphit.com/revue/reddit-proxy.html"/>
<xhtml:link
rel="alternate"
hreflang="x-default"
href="https://www.theraphit.com/revue/reddit-proxy.html"/>
<lastmod>2025-10-19T16:11:00+00:00</lastmod>
<priority>0.60</priority>
</url>
Les blocs <url>...</url> d'une page ne doivent
pas nécessairement se suivre, vous pouvez par exemple regrouper ensemble tous
ceux d'une langue donnée.
Les différents protocoles HTTP... Et les robots
Poussés par Google et Apple, qui veulent que l'expérience de leurs utilisateurs
sur Internet soit « sécurisée », les éditeurs de sites Web sont
progressivement passés du protocole HTTP à sa version chiffrée HTTPS dans
le courant des années 2010. Désormais, il est absolument nécessaire qu'un
site soit accessible en HTTPS pour être bien référencé.
Théoriquement, à l'aide des balises canoniques, vous pourriez maintenir l'accès
à vos pages via les deux protocoles. Mais bien que théorie et pratique
soient en théorie la même chose, ce n'est pas le cas en pratique.
La plupart des robots d'indexation s'embrouillent entre le HTTP et le HTTPS,
et finissent totalement perdus.
Celui de Google s'en sort à peu près bien, mais celui de Microsoft (bingbot)
n'arrive définitivement pas à retrouver ses petits. De plus, parcourir les
pages HTTP et HTTPS nécessite d'autant plus de budget d'exploration.
C'est pour cela que je vous recommande vivement de rediriger les accès via HTTP vers
le protocole HTTPS directement au niveau de votre serveur, avec un
code 301. A partir du moment où je l'ai fait, j'ai constaté une
nette amélioration de l'indexation sur Bing. Et il faut savoir que la
base de Bing est utilisée par les moteurs de recherche alternatifs tels
que DuckDuckGo, Brave ou Yahoo (un survivant).
Sur Lighttpd, le serveur HTTP(S)
que j'utilise, vous pouvez employer l'exemple de bloc de configuration suivant :
$HTTP["host"] =~ "(^|\.)theraphit\.com$" {
$HTTP["host"] != "www.theraphit.com" {
url.redirect = (
"^(.*)$" => "https://www.theraphit.com$1",
)
}
$HTTP["scheme"] == "http" {
url.redirect = (
"^(.*)$" => "https://www.theraphit.com$1",
)
}
server.document-root = "/usr/local/www"
}
Eh ouais, ici pas besoin de payer 200 boules pour une formation pérave
à un random influvoleur pour obtenir les petits tricks. ;)
Au passage, cette configuration est un « deux en un » : il y a
la redirection du HTTP vers le HTTPS, et celle des URLs avec le nom de domaine
seul (comme http://theraphit.com/) vers www.theraphit.com.
A nouveau, cela permet d'éviter que les robots ne s'embrouillent, mais également
certains navigateurs - beaucoup font leurs requêtes directement sur le nom du domaine,
et il est nécessaire de le gérer !
Dans votre fichier sitemap.xml ainsi que dans vos différentes
balises <meta>, veillez dès lors à spécifier uniquement
des URLS débutant par 'https://' et ce même si le port 80 (HTTP) de
votre serveur reste ouvert.
De manière générale, il faut garder à l'esprit que le référencement est
un jeu de patience... Une fois tout correctement mis en place, les moteurs de
recherche ont une certaine « inertie ». Mais si vos
pages ont été correctement préparées, vous générerez du clic
puis de plus en plus de visites !
Pour finir, je vais à nouveau renouer avec la tradition des
vieilles pages de mon site, et vous proposer quelques liens externes.
-
A delightful reference for HTML Symbols, Entites and ASCII Character Codes
Les différents codes utilisables en HTML pour insérer des caractères spéciaux,
du type © pour ©, ✓
pour ✓. Ce site est une véritable mine, il y a absolument tout ! Notamment
pas mal de symboles mathématiques. Utiliser les codes standard permet de vous
assurer que les moteurs de recherche afficheront correctement les extraits
de votre site, sous votre lien.
-
Using Emojis in HTML
Complémentaire au précédent, ici ce sont les codes des différents « emojis »
tels que 🙂😎👍 que vous trouverez. Il y a aussi
quasiment tout, et ça vient du W3C donc c'est officiel. Je sais que j'ai régulièrement
dit du mal d'eux, mais leur guide du HTML (accessible via le même site) reste
une référence. Ces codes UTF-8 peuvent être insérés dans le titre d'une page
et lui donner un caractère inhabituel, ce qui incitera au clic !
-
Guide de Google sur le fichier robots.txt
Il est en français, ça vient de Google, donc vous pouvez être sûr de la fiabilité
de l'information. :-) Il a aussi l'avantage d'aborder ce qu'il n'est pas possible ou
pas recommandé de faire avec ce fichier.
-
Web Crawlers - Top 10 Most Popular
Cette page vous aidera à identifier les différents User-agent des
robots d'explorations les plus courants, pour pouvoir les utiliser avec votre
fichier robots.txt. Vous y trouverez également quelques informations
sur leur fonctionnement et leur but - qui n'est pas toujours la simple indexation
de pages.
La Revue de TheRaphit.com
![[Compteur]](https://webcounter.theraphit.com/scripts/Count.cgi?dd=B&ft=1&df=revue.dat)
Nombre de visiteurs
depuis le 13 mai 1997.
[Accueil]
[C'est quoi ?]
TheRaphit's Web Site - La dernière homepage du Web
[(Tout)2 Evangelion]
Webzine : La Revue
[Manga Pink Zone]
[Mathématiques]
[Nouveautés]
[Zone de téléchargement]
Site créé le 16 janvier 1997
©1997-2025 by TheRaphit
www.theraphit.com
|