web-dev-qa-db-fra.com

Utiliser le fichier robots.txt pour refuser l'accès aux pages spéciales MediaWiki en utilisant la correspondance de sous-chaînes

Je cours n Mediawiki sur le domaine someurl.com/wiki/. Malheureusement, il génère un tas de pages spéciales générées automatiquement qui sont principalement de faible qualité mais qui sont néanmoins massivement analysées par les moteurs de recherche avec des requêtes telles que:

/index.php/Special:Whatlinkshere/some_topic ou aussi /index.php?title=Special:Whatlinkshere&target=some_topic où some_topic est un article du wiki.

Ces demandes semblent avoir très peu d’avantages, mais elles consomment beaucoup de bande passante et en outre, je crains que ces pages générées automatiquement ne soient pas si bonnes pour la qualité de mon site réputation de la qualité in l'évaluation des serchengines.

Comme les requêtes sont généralement effectuées par de "bons" moteurs tels que Google ou Bing, je suis tout à fait sûr qu'ils obéiraient à robots.txt. Donc, j'ai ajouté le fichier robots.txt suivant au dossier de l'URL de base someurl.com (j'ai ajouté le fichier robots.txt complet, même si seule la ligne 1 et 6 sont pertinents pour les requêtes nommées ci-dessus) :

User-agent: *

Disallow: User:
Disallow: Discussion:
Disallow: MediaWiki:
Disallow: Special:

Disallow: /login.php
Disallow: /profile.php

Disallow: /author/
Disallow: /category/
Disallow: /tag/

Ce fichier robots.txt est actif depuis environ deux jours et a déjà été exploré, mais de nombreuses demandes d'URL similaires à celles ci-dessus ont été bloquées.

J'ai donc les questions suivantes maintenant:

1) la logique ci-dessus est-elle correcte et capable de refuser l'accès (à des bots bien comportants). En particulier, je me demande si Disallow: Spezial: fonctionne correctement en tant que caractère générique pour refuser toute demande ayant "Spécial:" dans l'URL ou dans le paramètre. Je me demande également si le ":" dans "Special:" pourrait être un problème.

2) Si oui pourquoi alors il n'y a pas encore d'effet? Je considère que je dois juste accorder plus de temps pour voir l’effet?

3) Est-ce que nier dans le fichier robots.txt mène à la désindexation de ce site à partir des résultats du moteur de recherche? Sinon, comment puis-je désindexer cette énorme quantité d'URL générées automatiquement?

3
Wooz

robots.txt interdire les règles sont toutes des règles "commence par", pas des règles de sous-chaîne.

MediaWiki le suggère l’utiliser dans le fichier robots.txt pour un cas comme le vôtre:

User-agent: *
Disallow: /index.php?
Disallow: /index.php/Help
Disallow: /index.php/MediaWiki
Disallow: /index.php/Special:
Disallow: /index.php/Template
Disallow: /skins/

Google dit qu'il prend en charge une syntaxe plus avancée ainsi que certains autres principaux moteurs de recherche:

Google, Bing, Yahoo et Ask prennent en charge une forme limitée de "caractères génériques" pour les valeurs de chemin d'accès. Ceux-ci sont:

  • * désigne 0 ou plusieurs instances de tout caractère valide
  • $ désigne la fin de l'URL

Pour ces agents utilisateurs, vous pouvez utiliser des règles telles que:

Disallow: *Help
Disallow: *MediaWiki
Disallow: *Special:
Disallow: *Template

D'autres robots finiront par ignorer ces règles, car aucune de vos URL ne commencera par aucune de ces règles.

2
Stephen Ostermiller