Avec la récente mise à jour de Google, un Robots.txt
Le fichier est encore plus important qu’avant. La mise à jour Robots.txt
de Joomla autorise maintenant le répertoire des modèles (ou plutôt ne = interdire le). Mais j'ai vu des cas où Google veut accéder à /modules/
(et aussi /libraries/
pour les sites utilisant le framework Gantry).
Pourquoi le fichier par défaut robots.txt interdit-il ces répertoires, alors que de nombreuses extensions peuvent en avoir besoin?
Pour répondre à votre question, je pense que vous devez comprendre le rôle de robots.txt
, qui, vu les très récents modifications de la convivialité pour les mobiles dans l'algorithme de Google, est un sujet sur lequel je viens de travailler. .
robots.txt
existe pour "demander" que les moteurs de recherche et autres agents utilisateurs de ce type n'indexent pas le contenu spécifié du site Web dans le fichier. La grande majorité des sites Web contiennent des fichiers qui n'ont aucun sens à indexer car ils sont internes au fonctionnement du site (Joomla, ainsi que la plupart des autres CMS, etc.). Joomla 3.x est livré avec un robots.txt
qui permet l'indexation de la racine, du dossier/media et du dossier/templates car ceux-ci contiennent le fichier nécessaire au rendu "correct" de la page.
Maintenant, le format de robots.txt
est pas réellement défini beastie, mais en gros, il contient un ou plusieurs "groupes" de spécifications d'URL, chaque "groupe" correspondant à un agent utilisateur spécifique. (dans la plupart des cas, lisez ceci comme "bot de moteur de recherche").
D'après mon expérience, la plupart des fichiers robots.txt
ne possèdent qu'un seul "groupe" pour l'agent utilisateur, qui est *
(c'est-à-dire tous les types d'agent utilisateur). Dans ces "groupes", une séquence de lignes spécifiant chacune une "action", puis un chemin (soit un répertoire, par exemple /admininistrator/
ou un ensemble de fichiers, par exemple /images/*.html
ou un fichier spécifique /administrator/index.php
). Exemple extrait:
User-agent: *
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Maintenant, le "problème" se pose parce que la seule "action" acceptée universellement est Disallow
, c'est-à-dire "s'il vous plaît, agent utilisateur, n'indexez pas le chemin spécifié à droite". J'utilise cette formulation parce que robots.txt
n'est qu'un mécanisme de demande, c'est-à-dire que ses actions ne sont pas contraignantes, l'agent de visite peut choisir de respecter les actions ou de les ignorer.
En l'occurrence, Googlebot autorise l'utilisation d'une action Allow
, mais à l'heure actuelle, il s'agit du seul moteur de recherche à indiquer que tel est le cas. Je vous conseille donc de ne pas vous en fier .
En gros, le problème se résume à ceci: vous ne voulez pas que les fichiers "internes" qui font fonctionner Joomla soient indexés, mais vous ne voulez pas non plus en révéler trop à la structure interne de votre site Web. pas tout à fait mutuellement exclusif, mais ne sont pas loin.
Compter entièrement sur Disallow
signifie que je pense que vous ne disposez pas de beaucoup d’options pour arriver à un robots.txt
qui soit gérable, ne dit pas trop aux malintents mais en résulte dans Google et al indexant seulement ce que vous voulez.
L’approche que j’ai choisie (à ne pas faire chez nous) consiste à patcher /libraries/joomla/document/document.php
afin de modifier subtilement le comportement des méthodes addScript
et addStyleSheet
. Pour moi, ce qu’ils font maintenant, c’est de vérifier s’il existe une version du script/feuille de style spécifié à un emplacement tel que /media/<original path>
et aussi de vérifier s’il existe des versions minifiées de .js
et .css
fichiers (la minification est un tout autre sujet). J'ai ensuite un script que j'exécute régulièrement et qui vérifie partout Disallow
dans le robots.txt
qui contient les fichiers multimédias et les copie dans le même type d'URL, mais sous /media
.
Ainsi, j’utilise aussi Gantry, mais les fichiers gantry sont maintenant copiés dans /media
et, comme mon robot.txt
n’inclut aucune référence à /media/
, les ressources nécessaires pour "corriger" "rendu ne sont pas bloqués mais j’ai également un fichier robots.txt
minimal et gérable.
Le fichier par défaut robots.txt
Ressemble actuellement à ceci:
User-agent: *
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/
Selon l'excellente réponse de @Mark Bradley, le format du fichier robots.txt n'est pas bien défini, mais si vous souhaitez principalement autoriser Google à accéder aux ressources qu'il souhaite voir, je suggère de modifier le fichier robots.txt par défaut afin d'inclure des instructions permettant à les dossiers pouvant éventuellement contenir des fichiers CSS et JS tels que celui-ci ou similaire:
User-agent: *
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Allow: /components/*.css
Allow: /components/*.js
Disallow: /components/
Allow: /includes/*.css
Allow: /includes/*.js
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Allow: /layouts/*.css
Allow: /layouts/*.js
Disallow: /layouts/
Allow: /libraries/*.css
Allow: /libraries/*.js
Disallow: /libraries/
Disallow: /logs/
Allow: /modules/*.css
Allow: /modules/*.js
Disallow: /modules/
Allow: /plugins/*.css
Allow: /plugins/*.js
Disallow: /plugins/
Disallow: /tmp/
Remarques:
Les robots d'indexation Web recherchent la règle la plus spécifique ou la plus longue lors de la détermination de la règle à appliquer. Par exemple, Allow: /modules/*.css
Remplace Disallow: /modules/