Nota SPIP-Contrib : Cette contrib à fait débat avant sa publication sur les sujets de la consommation de ressources engendrée par les expressions rationnelles, et de son efficacité réelle contre les spammeurs. Il apparaît que ce débat sera plus profitable et instructif pour tous mené via le présent forum public plutôt qu’en privé, d’où cette mise en ligne. A noter pour exemple que cette méthode est utilisée entre autres sur Wikipedia pour la gestion des liens sortants.
Mise à jour : Lors du débat concernant cette fonctionnalité, on m’a très justement fait remarquer que l’utilisation de l’expression eregi_replace n’était pas forcément adaptée. Le code ci-après a donc été modifié par la fonction str_replace qui par contre l’est plus.
Principe
Suite au spam massif des commentaires de blogs (Une catégorie de spammeurs cherche principalement à obtenir des liens vers leurs sites afin d’en accroitre la popularité) , les principaux moteurs de recherche (Google, Yahoo, MSN) se sont entendus en 2005 afin de mettre en place une balise HTML « bloquante » sur certains liens. Cette dernière permet en quelques sortes de signaler aux moteurs de recherche qu’un lien ne doit pas être suivi et donc pas pris en compte dans le calcul de popularité d’un site web. Cette balise est rel=nofollow et s’emploie de la sorte :
<a href='http://www.site.tld' rel='nofollow'>site à visiter</a>
Ce code rel=« nofollow » n’empêche bien entendu pas les visiteurs ou spammeurs de poster des liens, mais cherche surtout à décourager ceux qui ne cherchent qu’à accroitre la popularité de leur site, en leur faisant savoir que les liens posés ne seront pas pris en compte par les moteurs
Afin de protéger les commentaires d’un de mes sites j’ai donc mis au point une petite fonction toute simple qui permet de rajouter un rel="nofollow"
sur tous les liens présents dans le texte.
Pour utiliser cette fonction vous devez donc avoir à la racine de votre site SPIP un fichier mes_fonctions.php (à partir de la version 1.9) ou mes_fonctions.php3 pour les versions antérieures. Si ce fichier n’existe pas créez le. Vous pouvez avoir un topo sur l’utilisation de ce fichier sur le site officiel SPIP : http://www.spip.net/fr_article901.html
Installation
Dans ce fichier vous mettez ces quelques lignes :
<?
// Ajout de nofollow sur les liens (pas mal à utiliser sur les commentaires pour éviter le spam)
function nofollow($texte){
$texte=str_replace("<a href","<a rel='nofollow' href",$texte);
return $texte;
}
?>
Utilisation
Vous pouvez alors utiliser ce filtre comme un filtre normal sur les balises de texte et principalement comme moi les commentaires de vos articles
[(#TEXTE|nofollow)]
Si vous souhaitez également mettre cette balise nofollow sur le lien hypertexte proposé dans le forum allez dans le squelette inc_forum.html et cette fois-ci rajouter rel=« nofollow » dans le lien texte
<:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out" rel="nofollow">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a>
Mais là rien à voir avec la fonction présenté ci-dessus.
Pour vos utilisateurs
Signalez quelque part sur votre site que des rel=« nofollow » sont placés sur les liens des commentaires.
Quelques ressources traitant de la balise rel=« nofollow »
La spécification rel=« nofollow »
- http://microformats.org/wiki/rel-nofollow-fr
- http://googleblog.blogspot.com/2005/01/preventing-comment-spam.html
Discussions par date d’activité
6 discussions
Faudrait carrement mettre des liens javascript dans des fichiers externes, perso j’ai supprimer les comments tellement j’avais de spam
Répondre à ce message
Suite au débat en off, l’auteur a fait évoluer le code, après une remarque judicieuse de Nicolas.
Les changements sont notés en haut de page dans l’encart.
L’article a aussi été un peu plus documenté sur l’utilisation de la balise rel=nofollow et son usage face au spam.
Répondre à ce message
Si cet article a fait débat, cela fut en l’absence totale de son auteur, qui ne s’est plus manifesté après avoir rédigé l’avoir écrit, ne serait-ce pour corriger les coquilles évidentes.
Répondre à ce message
bonjour
je ne comprend pas ,quand je mets rel=nofollow parfois cela marche et d’autres fois non
ou faut il le mettre au debut du lien et a quel niveau
par exemple dans ce lien on le met ou
http://www.fvd.fr/
vous pouvez le mettre où vous souhaitez dans votre lien. J’ai pris l’habitude de le mettre de suite après
<a
mais cela peut très bien être après lehref
ou letitle
le cas échéant.Il est possible que le moteur de recherche ait tout de même suivi le(s) lien(s) :
- avant que vous n’installiez la balise
rel="nofollow"
- à partir d’autres pages ou liens ne présentant pas l’attribut
- parce que bon lui semble. On a déjà remarqué que Google suivait une partie des liens nofollow à sa guise, il ne transmettrait pas le jus de popularité à l’url par contre. Il n s’agit pas d’une balise noindex (qui n’existe d’ailleurs pas sur un attribut lien (
<a>
), seulement dans ma balise meta<title>
Répondre à ce message
Bonjour à tous,
J’ai le code suivant dans mes boucles d’articles :
Il y a un truc qui m’échappe avec cette balise :
Quand je rentre des liens SPIP dans le SURTITRE d’un article, par exemple
[nom du lien->url du lien]
, le lien s’affiche bien.Par contre, quand je rentre le lien de la même façon dans le SOUSTITRE, là par contre le lien ne s’affiche plus et je vois apparaitre dans l’article
[nom du lien->url du lien]
!Qqun peut-il m’aider SVP ?
Un grand merci d’avance !
Problème résolu, il suffisait d’appliquer (#SURTITRE*|propre|nofollow) ou (#SOUSTITRE*|propre|nofollow), en fait c’est pareil pour les 2 ...
Répondre à ce message
Bonjour
A l’inverse, je désire enlever le « nofollow » sur les liens de mon pied de page ou dans le plan de mon site. Comment faire ? Car pour un bon référencement je suis embêté...
Il vous faut aller dans le dossier de squelette : DIST/ ou SQUELETTE-DIST/ selon votre version et modifier cela directement dans les squelettes . Il me semble inc-pied.html pou le bas de page et certainement plan.html pour le plan de site .
Merci. J’ai bien sûr regardé ces fichiers mais justement, je ne trouve rien qui crée des liens « nofollow ». Pourtant ceux-ci apparaissent en « nofollow » lorsque je vérifie (Firefox avec extension Quirk SearchStatus) donc je pensais à une fonction cachée dans le moteur de spip, peut-être en rapport avec les liens « spip_out » ou je ne sais quoi... merci en tout cas pour ta réponse et pour les futures :)
Déjàdans plan.html si tu veux que la page soit indexée tu dois changer la balise meta
et dans inc-pied.html tu verras dans la structure des liens qu’il y l’attribut
rel="nofollow"
que tu dois retirer sur chaque lien
Exemple :
<a href="#ENV{skel}" title="<:voir_squelette:>" rel="nofollow"><:squelette:></a>
à changer en
<a href="#ENV{skel}" title="<:voir_squelette:>"><:squelette:></a>
Merci
Dans plan.html j’ai changé la balise meta, par contre dans inc-pied.html (spip 2.0) l’attribut rel=« nofollow » n’y apparaissait pas, mais parce que j’avais retiré le lien « voir le squelette ». Les autres liens sont donc suivis maintenant (plan, mentions légales). J’ai donc laissé tel quel et ça fonctionne visiblement.
J’ai également ajouté un fichier robots.txt à la racine de mon site avec un contenu approprié, en plus.
Merci encore !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |