Empêcher les robots d'explorer une partie spécifique d'une page


28

En tant que webmaster en charge d'un petit site disposant d'un forum, je reçois régulièrement des plaintes des utilisateurs selon lesquelles le moteur de recherche interne et les recherches externes (comme lors de l'utilisation de Google) sont totalement pollués par les signatures de mes utilisateurs (ils utilisent de longues signatures et cela fait partie de l'expérience du forum parce que les signatures ont beaucoup de sens dans mon forum).

Donc, fondamentalement, je vois deux options à partir de maintenant:

  1. Rendu de la signature sous forme d'image et lorsqu'un utilisateur clique sur "l'image de signature", elle est redirigée vers une page qui contient la signature réelle (avec les liens dans la signature, etc.) et cette page est définie comme non explorable par la recherche araignées moteur). Cela consommerait de la bande passante et nécessiterait un peu de travail (parce que j'aurais besoin d'un moteur de rendu HTML produisant l'image, etc.) mais évidemment cela résoudrait le problème (il y a de minuscules problèmes dans la mesure où la signature ne respecterait pas le jeu de polices / couleurs de les utilisateurs mais mes utilisateurs sont très créatifs avec leurs signatures de toute façon, utilisant des polices / couleurs / tailles personnalisées, etc. donc ce n'est pas vraiment un problème).

  2. Marquage de chaque partie de la page Web contenant une signature comme étant non explorable.

Cependant, je ne suis pas sûr de la suite: est-ce quelque chose qui peut être fait? Pouvez-vous simplement marquer des parties spécifiques d'une page Web comme non explorables?

Réponses:


8

Voici la même réponse que j'ai fournie à la balise noindex pour Google sur Stack Overflow:

Vous pouvez empêcher Google de voir des parties de la page en plaçant ces parties dans des iframes bloqués par le fichier robots.txt.

robots.txt

Disallow: /iframes/

index.html

This text is crawlable, but now you'll see 
text that search engines can't see:
<iframe src="/iframes/hidden.html" width="100%" height=300 scrolling=no>

/iframes/hidden.html

Search engines cannot see this text.

Au lieu d'utiliser des iframes, vous pouvez charger le contenu du fichier caché à l'aide d'AJAX. Voici un exemple qui utilise jquery ajax pour ce faire:

his text is crawlable, but now you'll see 
text that search engines can't see:
<div id="hidden"></div>
<script>
    $.get(
        "/iframes/hidden.html",
        function(data){$('#hidden').html(data)},
    );
</script>

L'ajout / l'injection de contrôle à l'aide d'AJAX aidera-t-il à interdire et à empêcher de l'explorer de la même manière?
Pranav Bilurkar

Tant que l'emplacement depuis lequel AJAX va chercher est bloqué par le fichier robots.txt.
Stephen Ostermiller

Pourriez-vous s'il vous plaît consulter ce webmasters.stackexchange.com/questions/108169/… et suggérer le cas échéant.
Pranav Bilurkar

Tant que l'emplacement depuis lequel l'AJAX va chercher est bloqué par le fichier robots.txt - veuillez développer à ce sujet.
Pranav Bilurkar

2
Google pénalise ceux qui cachent leur javascript de l'exploration, afin d'éviter les abus. Est-ce la même chose pour les iframes?
Jonathan

7

Une autre solution consiste à encapsuler le sig dans un span ou div avec un style défini sur display:nonepuis à utiliser Javascript pour le supprimer afin que le texte s'affiche pour les navigateurs avec Javascript activé. Les moteurs de recherche savent que cela ne s'affichera pas et ne devraient donc pas l'indexer.

Ce bit de HTML, CSS et javascript devrait le faire:

HTML:

<span class="sig">signature goes here</span>

CSS:

.sig {
display:none;
}

javascript:

<script type="text/javascript"> 
$(document).ready(function()
  {
      $(".sig").show();
  }
</script>

Vous devrez inclure une bibliothèque jquery .


4
+1 et j'y ai pensé mais cela ne serait-il pas considéré comme une forme de "camouflage" par diverses araignées?
WebbyTheWebbor


1
Je pense que c'est assez soigné :-)
paulmorriss

Cela pourrait, dans la définition la plus stricte, être considéré comme un camouflage. Cependant, il pouvait imprimer toute la signature avec javascript en utilisant un document.write ("") ;. Google n'indexe rien en javascript. support.google.com/customsearch/bin/…
Athoxx

Je pense que Google pourrait indexer ces paragraphes, même s'ils sont masqués à l'aide de CSS. L'option la plus sûre consiste à ne pas inclure du tout le texte dans le HTML. (Nous pouvons utiliser JavaScript pour injecter le texte lors de l'exécution.)
wrygiel

3

J'ai eu un problème similaire, je l'ai résolu avec css mais cela peut aussi être fait avec javascript et jquery.

1 - J'ai créé une classe que j'appellerai " disallowed-for-crawlers" et je placerai cette classe dans tout ce que je ne voulais pas que le robot Google voie, ou je la placerais dans une plage avec cette classe.

2 - Dans le CSS principal de la page, j'aurai quelque chose comme

.disallowed-for-crawlers {
    display:none;
}

3- Créez un fichier CSS appelé disallow.css et ajoutez-le au robots.txt pour qu'il ne soit pas autorisé à l'explorer, afin que les robots n'accèdent pas à ce fichier, mais l'ajoutez comme référence à votre page après le css principal.

4- disallow.cssJ'ai placé le code:

.disallowed-for-crawlers {
    display:block !important;
}

Vous pouvez jouer avec javascript ou css. Je viens de profiter du disallow et des classes css. :) j'espère que ça aide quelqu'un.


Je ne suis pas sûr que cela fonctionne en raison du fait que les robots d'exploration n'accèdent pas au fichier .css (est-ce une chose? ils ne l'indexent pas. Même si c'est le cas, que faites-vous pour afficher le contenu aux utilisateurs humains?
Σπύρος Γούλας

Le contenu est affiché lorsque l'étape 4 est chargée pour l'utilisateur humain car il est autorisé à voir ce fichier (disallow.css). Et à propos des robots chargeant CSS, c'est ce que font les moteurs de recherche respectables de nos jours, c'est ainsi qu'ils déterminent quand un site Web est adapté aux mobiles ou non, les robots qui ne le respectent pas ne valent pas la peine de s'inquiéter, les principaux moteurs de recherche lisent css et javascript pour explorer pages, ils le font depuis environ ... presque 6 ans maintenant? peut-être plus.
Rolando Retana

Pouvez-vous fournir des sources qui soutiennent cette affirmation? Veuillez consulter webmasters.stackexchange.com/questions/71546/… et yoast.com/dont-block-css-and-js-files et surtout ici webmasters.googleblog.com/2014/10/… où ce que vous décrivez est représenté comme une mauvaise pratique.
Σπύρος Γούλας

C'est une mauvaise pratique si je voulais que Google voit mon site Web normalement et je bloque tous les CSS, et c'est une mauvaise pratique parce qu'ils interprètent le CSS, mais dans ce cas spécifique, je bloque un fichier spécifique, pas tous les CSS, OP demande pour empêcher Google de lire une section de la page. mais je ne veux pas que Google explore ces sections, donc je bloque un seul CSS (pas tous, un seul). Et pour étayer ce que vous avez dit? celui que les robots d'exploration lisent JS et CSS? c'est aussi simple que d'accéder à vos outils Google pour les webmasters et jetez un œil à "Récupérer comme un robot", vous y verrez comment ils lisent css et js.
Rolando Retana

De plus, dans mon cas spécifique, je ne veux pas faire quelque chose de louche avec Google Crawler, je ne veux tout simplement pas que Google lise une section d'informations qui peut sembler répétitive dans toutes les pages. Comme les numéros de téléphone, les adresses, les produits connexes ou les informations qui ne sont pas pertinentes pour Google à explorer.
Rolando Retana

2

Une façon de procéder consiste à utiliser une image de texte plutôt que du texte brut.

Il est possible que Google finisse par être assez intelligent pour lire le texte de l'image, de sorte qu'il ne soit pas complètement à l'épreuve du temps, mais cela devrait bien fonctionner pendant au moins un certain temps à partir de maintenant.

Il y a un tas d'inconvénients à cette approche. Si une personne a une déficience visuelle, c'est mauvais. Si vous voulez que votre contenu s'adapte aux appareils mobiles par rapport aux ordinateurs de bureau, c'est mauvais. (etc)

Mais c'est une méthode qui fonctionne actuellement (quelque peu).


Dans quelle mesure cela fonctionne-t-il si vous utilisez correctement l'altage et le titre?
Jayen

Je n'ai pas essayé, mais il semble probable que Google les explore. C'est une limitation majeure de cette approche.
James Foster

1

C'est facile.

Avant de diffuser votre page, vous devez savoir s'il s'agit d'un bot, d'un ordinateur ou d'un téléphone. Vous devez ensuite définir le contenu en conséquence. Il s'agit d'une pratique courante à l'heure actuelle et des fonctionnalités de base de certains CMS.

Il existe de nombreuses solutions sur SE pour effectuer une redirection basée sur USER AGENT qui peuvent être mises dans votre htaccess. Si cela convient à votre logiciel de forum, vous pouvez exécuter un code différent sur la même base de données pour fournir ce dont Google a besoin sans les paillettes et les réglages.

Alternativement, vous pouvez mettre une petite ligne dans votre code PHP qui fait un 'si USER AGENT == Googlebot alors n'affiche pas les signatures'.

Si vous ne pouvez vraiment pas faire cela, vous pouvez demander à mod_proxy de servir au bot et l'utiliser pour supprimer tout ce que votre code php génère que le bot n'a pas besoin de voir.

Techniquement, Google n'approuve pas que leur moteur de recherche affiche une page différente de ce que voit le visiteur normal du site, mais à ce jour, ils n'ont pas retiré la BBC et d'autres qui fournissent un contenu spécifique au navigateur / IP / visiteur de leurs résultats de moteur de recherche . Ils ont également des moyens limités pour voir si leur bot a été «floué».

La solution alternative de masquer le contenu avec CSS pour qu'il soit réactivé par un script est également un peu une zone grise. Selon leurs propres directives relatives aux outils pour les webmasters du 20/6/11, ce n'est pas une bonne idée:

http://www.google.com/support/webmasters/bin/answer.py?answer=66353

Ce n'est peut-être pas une tablette coulée dans le béton, mais elle est à jour et par Google.

L'astuce de masquer le contenu ne fonctionnera pas avec la minorité de personnes qui ne disposent pas de javascript, cela peut ne pas être une grande préoccupation, cependant, attendre que le document se charge et ensuite montrer les signatures ne sera pas une expérience de visualisation satisfaisante comme vous le ferez pensez que la page a été chargée, puis elle sautera au fur et à mesure que les signatures cachées s'affichent pour ensuite pousser le contenu vers le bas de la page. Ce type de chargement de page peut être irritant si vous avez un net-top bas de gamme, mais peut ne pas être perceptible si vous avez une machine de développement rapide sur une connexion Internet rapide.


6
@ ʍǝɥʇɐɯ: servir un contenu différent en fonction de qui accède à la page est un peu mal vu et peut vous pénaliser dans le moteur de recherche pour autant que je le comprenne. Je préfère de loin la solution JavaScript de paulmorris.
WebbyTheWebbor

@ ʍǝɥʇɐɯ: erf, si le contenu personnalisé est le nom du jeu, il en va de même pour JavaScript. La dernière fois que j'ai vérifié que le Web dans son ensemble ne fonctionnait plus vraiment bien sans JavaScript installé (GMail, FaceBook, Google Docs, débordement de pile, Google+ - oui, je l'ai déjà;) - etc.). Je ne vois pas la nécessité de critiquer la solution de paulmorris basée sur la fausse prémisse que JavaScript n'étant pas disponible serait un problème.
WebbyTheWebbor

@ ʍǝɥʇɐɯ: Vous aimerez peut-être cela de Matt Cutts (responsable du référencement chez Google) sur ce même sujet: theseonewsblog.com/3383/google-hidden-text C'était l'excellent commentaire de paulmorris publié en commentaire de son excellente réponse. Je suis désolé, mais appeler JavaScript "idiot" sur un tel forum est proche de la pêche à la traîne.
WebbyTheWebbor

... et nous obtenons ensuite cette question: webmasters.stackexchange.com/questions/16398/… - 'bourrage de mots clés' est idiot. Désolé pour ça.
ʍǝɥʇɐɯ

Je pense que cela relève du "camouflage" et que ce n'est donc pas une bonne pratique.
Σπύρος Γούλας

0

Non, il n'y a aucun moyen d'empêcher les robots d'explorer des parties de pages. C'est une page entière ou rien.

Les extraits dans les résultats de recherche Google sont généralement tirés de la méta description sur la page. Vous pouvez donc faire en sorte que Google affiche une partie spécifique de la page en la mettant dans la balise meta description. Avec le contenu généré par l'utilisateur, il est difficile d'obtenir de bons extraits, mais prendre le premier message du fil fonctionnerait probablement.

La seule autre façon dont je peux penser est d'utiliser Javascript. Quelque chose comme Paulmorriss a suggéré mai fonctionner, mais je pense que les moteurs de recherche toujours le contenu s'il est en HTML. Vous pouvez le supprimer du HTML, le stocker dans la chaîne Javascript, puis le rajouter au chargement de la page. Cela devient cependant un peu complexe.

Enfin, une chose à garder à l'esprit: si Google affiche les signatures des utilisateurs dans leurs extraits, il a décidé que c'était la partie la plus pertinente pour la requête de l'utilisateur.


1
le problème n'est pas tant Google montrant les signatures des utilisateurs dans leurs extraits que ces pages spécifiques obtenant ce classement élevé dans Google en premier lieu. Le problème ici est précisément que Google peut penser que les signatures sont pertinentes alors qu'elles ne le sont pas réellement: je veux dire, c'est exactement ce que ma question concerne.
WebbyTheWebbor

@Webby, je ne comprends pas, pourquoi ne voulez-vous pas que vos pages soient bien classées? Avez-vous des exemples de pages et de requêtes pour que nous puissions voir de quoi vous parlez? Et si Google affiche une signature dans les résultats de recherche, elle est pertinente pour cette requête de recherche, même si elle n'est pas pertinente pour la page elle-même.
DisgruntledGoat

1
Je ne peux pas donner d'exemples mais je veux que mon site / forum se classe bien et il le fait très bien. Le problème est que parmi les résultats de recherche (qui sont tous principalement pour mon site / forum de toute façon parce que c'est essentiellement le site sur le sujet), quelles devraient être les vraies pages d'entrée sont inondées de signatures. Je veux dire, je veux vraiment faire ce que j'ai demandé dans la question. Et les photos ou JavaScript ça va être.
WebbyTheWebbor

@Webby, vos réponses ont été un peu déroutantes mais vous semblez impliquer que vos signatures d'utilisateur sont toutes des pages distinctes (URL) et apparaissent donc comme des résultats distincts dans les SERP. Dans ce cas, vous pouvez bloquer ces pages via robots.txt. Sinon, essayez la solution de méta description que j'ai publiée ci-dessus, car cela atténuera certainement le problème.
DisgruntledGoat

0

Vous pouvez mettre la page dans un PHP si avec un "else" qui mène à un captcha qui donne la clé de la partie if.

Je m'en fiche vraiment car si les informations d'identification de l'utilisateur ne correspondent pas sur ma page, elles obtiennent une page vierge ou sont envoyées à la page de connexion.

<?php
session_start();

if(empty($_SESSION['captcha']) or $_SESSION['captcha'] != $key){
    header("Location: captcha.php");
}

if(!empty($_SESSION['captcha']) and $_SESSION['captcha'] == $key){

"the page"

}
?>

$key devrait être un hachage de la journée en cours ou quelque chose qui change donc il ne suffit pas d'ajouter la valeur à la session.

Écrivez dans le commentaire si vous voulez que j'ajoute un exemple de captcha parce que je n'en ai pas sur moi maintenant.


Cette réponse suppose que le site Web utilise ou que le développeur connaît PHP, ce qui n'est peut-être pas vrai. De plus, cela rend l'accès au contenu difficile pour les utilisateurs, ce qui n'est pas une bonne chose.
John Conde

Je peux acheter que tout le monde ne connaît pas PHP mais un captcha peut être "quelle est la couleur de l'herbe", même les personnes aveugles le savent.
Alfons Marklén

-3

4
Non. Googleoff et Googleon ne sont pris en charge que par Google Search Appliance. Googlebot les ignore pour la recherche sur le Web. Référence: pouvez-vous utiliser googleon et les commentaires googleoff pour empêcher Googlebot d'indexer une partie d'une page? Vous avez lié à la documentation Google Search Appliance et un commentaire sur l'article auquel vous avez lié indique également que cela ne fonctionne pas pour Googlebot.
Stephen Ostermiller

@StephenOstermiller oh c'est vrai! Darn
Luke Madhanga
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.