Rendre une phrase invisible aux robots.

Nouveau WRInaute
Bonjour à tous !

Je cherche un moyen simple de rendre certains mots invisible aux robots via une expression régulière (donc ni image ni utilisation de USER_AGENT)

$texte = eregi_replace ("(mot1|mot2|mot3)", "<script>document.write('\\0');</script>", $texte);

On peut compliquer un peu le truc en placant le document.write dans une fonction …

Mais le pb c’est que je suis pas sure que ça soit fiable à 100% (surtout sans passer par une fonction). Et ça m’ennuie d’utiliser le javascript pour les personnes qui ne l’ont pas actif sur le navigateur.

Si quelqu’un a une astuce.

A ma connaissance il n’y a pas balise html <noindex> pour cadrer des textes à ne pas indexer … dommage. Pourtant si j’indique sur mon site que je ne fait pas de planche à voile ça m’embête beaucoup que des utilisateurs qui tape « planche à voile » tombe sur mon site :)
 
WRInaute discret
Hello,

Deux constatations:
- Très peu de monde à le javascript désactivé
- Si de toute façon le texte n'est pas très "pertinent" (tu ne veux pas que les moteurs le voient) donc ce n'est pas très important qu'une petite partie de tes visiteurs ne voient pas certains textes.

Une suggestion:
- Utilise du flash
 
WRInaute accro
ah ben ca c'est nouveau. maintenant, on ne veut plus des visiteurs mdr :)

dès que tu emploi le mot "javascript" tu ne peux pas associer l expression "fiable à 100%". mais si tu as "planche à voile" dans ton texte, c est bien que ton site en parle.

a part interdire l indexation de la page complete, je vois pas trop de moyen PROPRE et FIABLE
 
Nouveau WRInaute
Le javascript est souvent activé c’est vrai, mais une solution sans serais quand même mieux.

Si de toute façon le texte n'est pas très "pertinent" (tu ne veux pas que les moteurs le voient) donc ce n'est pas très important qu'une petite partie de tes visiteurs ne voient pas certains textes.

Je prend un autre exemple alors :
Je suis streap-teaser pro (je garde le string :). mais je reçoit souvent des propositions pour de l’escorting. J’indique donc : « Je ne suis pas escort ! ».
Ça m’embête d’apparaître pour escort …
 
Nouveau WRInaute
Oups désolé wri si des visiteurs arrivent sur ce forum à la recherche d’escortes :)
tu n’as plus qu’a faire comme moi :
Chercher un moyen d’empêcher les moteurs de lirent ce mot dans ton forum :)

tu mets le mot dans une image ?

T'image si je dois remplacer tout les mots d’un forum par une image… en plus cela ne serra pas esthétique chaque forum utilise sa propre feuille de style et sa propre police de caractères …
 
WRInaute accro
si tu définis
$escorte = 'esc<font class="hidden">fdsefsx</font>orte';

que tu définis "hidden" dans ton css,

et que ton contenu est

Je ne propose pas de service d' $escorte

Ou un truc dans le genre ?

-> Affichage à l'écran = "Je ne propose pas de service d'escorte"

-> Affichage au bot = "Je ne propose pas de service d'escfdsefsxorte".

Si quelqu'un qui s'y connait mieux en masquage de texte veut bien corriger, je pense que tu auras ta solution.

@+
 
Nouveau WRInaute
si ca interresse quelqu'un la fonction preg_replace_callback permet de recuperer le mot dans une fonction ... pratique


Code:
function noindex ($word) {
return ($word[0]);
}

echo preg_replace_callback('(mot1|mot2)', "noindex", $texte);
 
Nouveau WRInaute
voila le code complet :

Code:
<style>
.noindex { display: none; }
</style>

<?php

function noindex ($word) {
	$moitie = round(strlen($word[0])/2);
	$debut = substr($word[0],0,$moitie);
	$fin = substr($word[0],$moitie);
	return ($debut."<span class=\"noindex\">z</span>".$fin);
}

$texte = 'dqdqdsqsd escort qdsqdqdq porno sdsdds'; 

echo preg_replace_callback('(escort|porno)', "noindex", $texte);

?>
 
Discussions similaires
Haut