Cette page discute des possibilités d'améliorer l'indexation du Wiki par les robots de recherche.
Problématique
L'objectif visé est évidement que le Wiki soit "bien" classé (en haut de la liste du sujet recherché), mais surtout qu'il soit classé correctement (qu'on le trouve effectivement lors d'une recherche sur un de ses sujets).
Propositions
Transformation des MotWiki en Mot Wiki dans la barre de titre
Pour les moteurs de recherche il vaut mieux avoir dans le titre de la page entre autres endroits "Guide Immobilier Paris" plutôt que "GuideImmobilierParis" je n'ai rien trouvé sur Wikini à ce sujet, alors à moins que je sois passé à côté (merci de me le dire sur cette page !!) voici la fonction que j'ai trouvé sur le CVS de
PhpWiki :
<?php
/**
* Split WikiWords in page names.
*
* It has been deemed useful to split WikiWords (into "Wiki Words") in
* places like page titles. This is rumored to help search engines
* quite a bit.
*
* @param $page string The page name.
*
* @return string The split name.
*/
function split_pagename ($page) {
if (preg_match("/\s/", $page))
return $page; // Already split --- don't split any more.
// FIXME: this algorithm is Anglo-centric.
static $RE;
if (!isset($RE)) {
// This mess splits between a lower-case letter followed by
// either an upper-case or a numeral; except that it wont
// split the prefixes 'Mc', 'De', or 'Di' off of their tails.
$RE[] = '/([[:lower:]])((?<!Mc|De|Di)[[:upper:]]|\d)/';
// This the single-letter words 'I' and 'A' from any following
// capitalized words.
$sep = preg_quote(SUBPAGE_SEPARATOR, '/');
$RE[] = "/(?<= |${sep}|^)([AI])([[:upper:]][[:lower:]])/";
// Split numerals from following letters.
$RE[] = '/(\d)([[:alpha:]])/';
foreach ($RE as $key => $val)
$RE[$key] = pcre_fix_posix_classes($val);
}
foreach ($RE as $regexp) {
$page = preg_replace($regexp, '\\1 \\2', $page);
}
return $page;
}
?>
Il y a plusieurs inconvénients, c'est fait pour l'anglais, je n'ai pas testé et je ne sais pas comment l'implémenter dans wikini de la façon la plus logique car je ne connais pas encore la structure de votre projet, alors si un développeur pouvait rendre un petit coup de main, peut être en proposant vite fait une suggestion, basée sur le code çi-dessus, car ça peut être utile à pas mal de personnes, non ?
merci, a+
-- Bastien
- Les moteurs font leur indexation sur les en-têtes et le corps des pages. Vu que les en-têtes sont souvent mal spécifiées, ils indexent de plus en plus sur le corps, donc ça ne devrait pas poser trop de problèmes. Mais je laisse CharlesNepote préciser vu qu'il en sait certainement plus long que moi sur le sujet.
- Quant à l'implémentation, elle se ferait sans doute au niveau du fichier actions/header.php, puisque c'est lui qui prépare les en-têtes des pages. Pour ma part j'opterais plus pour donner la possibilité à l'auteur d'une page d'en spécifier lui-même le titre (voir même d'autres attributs). J'imagine plusieurs façons de le faire : soit via une directive en première ligne de page (par exemple &title Le Guide immobilier de Paris), soit via une interface de gestion des attributs de page qui seraient alors stoqués dans la base. Cette dernière façon rejoint une discussion de fond sur un WikiNiSemantique et mettra donc plus de temps à se mettre en place.
- -- ProgFou
- Dans le cadre d'une page déjà bien optimisée, pour parfaire le système. La balise titre est quand même principalement utilisée ne serait-ce que dans google. L'implementation dans le fichier actions/header.php oui bien sûr, mais puisque ça pourrait être utile aussi dans le corps de la page, la partie éditable, peut être il faut placer la déclaration de la fonction dans un fichier quelque part dans un dossier précis ? pour respecter la structure existante ?
- -- Bastien
Ailleurs des espaces :
- le premier wiki historique a adopté les espaces dans les titres mais non dans le corps du document
- c'est également le comportement par défaut de PhpWiki
- OpenWiki:OpenWiki (interwiki) adopte la séparation pour les liens comme pour les titres
- Wikipédia adopte une solution particulièrement intéressante puisque une référence est une suite de caractères entre double crochets, permettant les espaces
Avantages :
- meilleure indexation
- meilleure accessibilité pour les utilisateurs de terminaux dont l'écran est étroit : sur un PDA ou un téléphone un titre aussi long que celui de cette page risque de dépasser la largeur de l'écran et de ne pas être lu
- meilleur confort visuel pour les utilisateurs, notamment pour les longs titres comme celui de cette page
- meilleure accessibilité pour les aveugles (à vérifier) ; je pense qu'un lecteur vocal rend très mal les mots wikis alors qu'il lira correctement des mots séparés (je crois qu'on peut tester Jaws sur Windows, à voir)
Inconvénients :
- utilisation moins intuitive du wiki : les utilisateurs novices auront plus de mal à comprendre le sens des mots wikis qui apparaissent collés en édition et séparés en visualisation
- dans certains cas, problème de copier/coller : si je veux copier un MotWiki d'une page vers une autres, je suis alors obligé de supprimer les espaces en trop
- nécessite de différencier les liens internes des liens externes (?)
- risque de quelques effets de bord bizares : "Ameliorer L Indexation", "Wiki Ni", etc. sont-ils rares ?
Voir aussi :
PrevenirLIndexationDesRobotsDeRecherche ParametrerLeHeadDesDocumentsHTMLWikiNi
Ailleurs
La séparation des mots, ne serait-ce que dans le titre de la page, semble être connu dans la communauté wiki. Tout le monde ne la considère pas comme une bonne pratique.