(par
CostalMartignier,
DavidDelon et
CharlesNepote)
Problème fonctionnel
Certaines pages HTML générées par les moteurs de wiki n'ont aucun intérêt à être indexées par un moteur de recherche.
On peut aisément
constater que Google indexe des pages qui n'ont aucune utilité comme par exemple
http://www.wakkawiki.com.
1. Le cas trivial de la page d'édition d'une page
La page d'édition d'une page, par exemple
http://www.wikini.net/wakka.php?wiki=PrevenirLIndexationDesRobotsDeRecherche/edit pour cette présente, n'a aucun intérêt à être indexée du fait qu'elle ne fait que reprendre les informations de la page originelle.
2. Les cas plus discutables des autres types de page "techniques"
- les revisions ;
- les referers quand ils existent (dans le cas de WikiNi : ?wiki=XxxxZZZ?/refferers?global=1) ;
- les pages d'identification des utilisateurs ; etc.
Le cas précis du moteur WikiNi
A mon sens, certaines données peuvent être exclues de facto :
- la page d'édition relative à chaque page : XxxxZzzz/edit
- la page d'appropriation d'une page : XxxxxZzzzz?/claim
Certaines pages posent des questions de fond :
- est-il intéressant ou non d'exclure les pages "versionnées" (archivées) par les robots d'indexation ? Un utilisateur peut justement vouloir recherche une information qui n'apparaît plus.
- est-il intéressant ou non d'exlure les références à la page en cours, sachant que les références améliorent un peu l'indexation (indexation de la page où se situent les références -- ce qui n'a du coup peut-être pas grand intérêt) ?
--
CharlesNepote
Réalisation technique dans le moteur WikiNi
Plusieurs méthodes sont envisageables.
1. La création d'un fichier robots.txt à la racine du site
Pas si simple que ça, à mon avis, puisqu'il s'agit de créer un fichier contenant des directives pour les robots or,
Note also that regular expression are not supported in either the User-agent or Disallow lines. The '*' in the User-agent field is a special value meaning "any robot". Specifically, you cannot have lines like "Disallow: /tmp/*" or "Disallow: *.gif". (
http://www.robotstxt.org/wc/exclusion.html ).
En clair il n'est pas possible de donner une instruction du style :
Disallow: .*\/edit
--
DavidDelon
Je me demande s'il n'est pas possible d'écrire en revanche :
Google possède une
pour permettre l'exclusion avec des expressions rationnelles.
2. L'utilisation de balises "meta"
Par ailleurs, on peut toujours utiliser les balises meta pour gérer les exclusions (
http://www.robotstxt.org/wc/meta-user.html). Je sais qu'elles ne sont pas encore gérées par tous les moteurs d'indexation, mais cette technique semble gagner du terrain :
- "Many, but not all, search engine robots will recognize this tag and follow the rules for each page" (indique SearchTools?.com, un des portails de référence sur le sujet).
- "It is growing in importance" (mentionne également searchengineworld.com).
- "Most search engines look for this META tag and will only index and/or spider the pages you want to be indexed" (ajoute enfin submitcorner.com).
Google semble
cette méthode ; l'outil
wget,
aussi.
--
CharlesNepote
C'est cette methode (les Meta) qui me semble la plus simple à mettre en place; google la reconnait, si j'ai bien compris.
On peut déja la mettre en place pour edit et claim.
Le code à mettre est le suivant :
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
--
DavidDelon
Le code php est assez simple. Pour prévenir l'indexation des pages éditées, par exemple, il suffit d'ajouter dans /actions/header.php :
<?php $method = explode ("/", $_REQUEST["wiki"]); if ($method[1]=="edit") { echo "<meta name=\"robots\" content=\"noindex, nofollow\" />\n"; } ?>
--
CharlesNepote
La seule chose qui arrête les robots, en dehors des exclusions spécifiées dans le fichier de directive, se sont les formulaires et le javascript.
(à suivre ...)
salut tout le monde, j'ai realise cela avec ce code.........
../actions/header.php
<?php
if ($this->GetMethod() == 'show')
echo "<META NAME=\"ROBOTS\" CONTENT=\"INDEX, FOLLOW\" />";
else
echo "<META NAME=\"ROBOTS\" CONTENT=\"NOINDEX, NOFOLLOW\" />";
?>
je ne sais pas encore si ca marche, parceque google etait pas encore une autre fois
sur ma site :-)
mais en veras.........
--
CostalMartignier
Pourquoi pas, après tout seul le resultat de la méthode show est interressant ... Si tous le monde est d'accord on retient cette solution pour
WikiNi. Merci Costal pour cette idée.
--
DavidDelon
D'accord. Sauf que XHTML requiert d'utiliser des minuscules dans le code (<meta name="robots" content="index, follow" />). --
CharlesNepote
La solution définitive adoptée sur
WikiNi est le code suivant :
<?php if ($this->GetMethod() != 'show')
echo "<meta name=\"robots\" content=\"noindex, nofollow\"/>\n";
?>
WikiNi a encore des progrès à faire en terme de qualité d'indexation.
- il semble qu'il indexe certaines pages 2 à 3 fois ; par exemple une recherche via Google sur DownloadWikiNi donne :
- tout ceci est confirmé sur un autre site, ou j'obtiens avec Google :
Je vais réfléchir à une meilleure méthode de "filtrage".
--
CharlesNepote
Voici ma première proposition après quelques test : dans /actions/header.php, il faut remplacer :
<?php if ($this->GetMethod() != 'show')
echo "\n";?>
par
<?php if (($this->GetMethod() != 'show') or (isset($_REQUEST['phrase'])) or ($_REQUEST['show_comments'] == '0') or (isset($_REQUEST['time']))
echo "\n";?>
De cette manière, sont indexées les pages
mais pas les pages :
On limite donc les dégats. Qu'en pensez-vous ? Pour moi, j'ai une seule certitude, c'est qu'il ne sert strictement à rien d'indéxer :
- websemantique.org/PagePrincipale?show_comments=0 : complètement redondant avec la page sans l'indication du show_comments=0
- websemantique.org/RechercheTexte&phrase=PagePrincipale : aucun intérêt
- websemantique.org/PagePrincipale&time=2004-01-20%2013:06:57 : dangereux car on les moteurs vont ainsi indexer beaucoup de bruit et potentiellement du SPAM qui aurra été effacé des pages mais qui sera présent dans les révisions
Les referrers, qu'on ne filtre pas actuellement, peuvent aussi contenir du SPAM : il faudrait que les pages de referrers ne soit pas indexée, au moins en attendant qu'on trouve une solution de filtrage des referrers.
Je me demande aussi dans quelle mesure on ne devrait pas aussi ne pas indexer les commentaires, qui reprennent la page dans son intégralité : websemantique.org/
PagePrincipale?show_comments=1
S'il n'y a pas d'objection, je passerai la modif en CVS d'ici lundi 31 mai 2004 (
AIntegrerAuCVS).
--
CharlesNepote
Pour éviter que les liens "edit", revision (la date/heure), etc ne soient suivis par les robots, pourquoi tout simplement ne pas les afficher quand ils visitent? Il serait facile de faire un cas special si user_agent est un robot connu, et ne pas afficher les liens qui de toute façon ne leur servirait à rien?
Comment vérifier ce qui est pris en compte par les robots ?
Le logiciel "wget" est un robot aspirateur de site qui reconnaît
. L'aspiration d'un site par "wget" permet donc de se faire une idée assez précise de ce qu'un robot va parcourir.
- wget [en] pour Linux (fournit en standard avec la totalité des distributions Linux) et pour Windows (pour Windows, ne pas oublier d'installer les bibliothèques SSL).
- gWget [fr] : présentation d'une interface graphique à wget Unix (le site officiel est ici).
- wgetgui [en], une interface graphique à wget pour Windows.
- [fr], par Stéphane Le Solliec.
Stéphane Le Solliec mentionne dans son article une commande qui permet de télécharger un site et donc de savoir ce qui est parcouru :
wget -rkpE http://nom-de-site.org/
Télécharge en local, en peu de temps, tout le site nom-de-site.org. Explication des options :
-r : récursif
-k : corrige les chemins pour que les liens en local ne soient pas cassés (très utile pour moi qui commence toujours mes liens par un / pour recevnir à la racine du site)
-p : page : se débrouille pour télécharger un max de trucs qui font que la page html sera correctement visible. (j’ai pas tout compris mais ça semble aider à avoir un bon mirroir local)
-E : rajoute .html à la fin de tout ce qui est téléchargé avec un type text/html mais dont le nom ne termine pas par .html. C’est formidable, car cela permet qu’un site tel que le miens, dont les pages n’affichent pas leur extentions, soient consultables off-line, depuis un disque dur.
Attention cependant à ne pas abuser de wget : wget provoque le téléchargement massif de toutes les pages d'un site ; il peut, à ce titre, provoquer des ralentissements pour les autres utilisateurs ; dans certains cas, il peut mettre le site à genoux ; nous vous recommandons l'usage de l'option
-w seconds ou "seconds" représente le nombre de secondes entre chaque téléchargement de page (nous recommandons l'usage de
-w 4 qui correspond à 15 pages par minutes soit 900 pages heures, ce qui est largement suffisant pour un petit site.
--
CharlesNepote