En HTML, quand vous permettez à l'utilisateur d'aller sur une autre page, vous tapez <a href="page.html">. Ici, c'est une page web, mais vous pouvez très bien pointer vers un autre site web. Si vous le faites, c'est comme si vous accordiez un crédit à ce site.
Un lien = Un référencement meilleur pour le site lié. C'est le principe de certains moteurs de recherche dont on taira le nom. En effet, plus un site est pointé, plus il est intéressant. Sinon il resterait oublié.
Comment faire pour lier sans donner de crédit ? Eh bien, il suffit de rajouter un paramètre secret comme ainsi <a href="page.html" rel="nofollow">. Le nofollow indique qu'il ne faut pas suivre le lien, donc le crédit ne passe pas.
Ca peut paraître méchant, mais beaucoup de sites en abusent très discrètement. Exemple : dès que vous postez un commentaire sur un "blog", votre site est lié en tant que nofollow. Exemple : Wikipedia et les liens externes. Donc, il est informatiquement louable de ne pas faire à quelqu'un ce qu'il ne vous fait pas en retour.
Si nofollow a été mis en place, c'est entre autre parce que les abuseurs ont profité du système et que maintenant, ce sont les petits développeurs qui trinquent. Alors il a été décidé sur ce site que tous les liens seront codés à la main. Tout site à vocation respectueuse ou scientifique sera lié avec crédit, même si on peut ne rien attendre d'eux en retour (ndlr 12/2009: ce n'est plus vrai).
Si vous avez développé un site et que vous ne voulez plus donner des crédits aux mastondontes, vous pouvez corriger votre site à la main. Mais il existe une astuce qui vous permettra de faire des modifications sélectives et dynamiques.
<?php ob_start(); ?> <html> ... </html> <?php $Page = ob_get_contents(); ob_end_clean(); echo preg_replace('/<a href="http:\/\/www.(site1|site2)\./i', '<a rel="nofollow" href="http:\/\/www.$1.', $Page); //ou plus simplement echo str_replace('<a href="http://', '<a rel="nofollow" href="http://', $Page); ?>
L'expression régulière avec (site1|site2) vous permet de dresser la liste des noms de sites qui vous insupportent. Le second avec str_replace() remplace tous les liens sans exception.
Ceci devrait rétablir un équilibre perdu... Ce site utilise une technique analogue, mais c'est plutôt pour switcher dynamiquement entre 3 modes de fonctionnement relatif à l'URL Rewriting qui est supporté variablement selon les hébergeurs. Ca n'a donc rien à voir.
(ndlr 05/2023: la logique a encore changé via un parseur Markdown)