2012-01-11 9 views
6

Hay mucha información sobre situaciones opuestas, cuando la gente intenta tener cosas en HTML, que son visibles para los bots de Google, pero no visibles para los usuarios, en mi caso, necesito lo opuesto: ocultar parte del html de google bot . La pregunta sería ¿cómo?¿Cómo decirle a google bot que se saltee parte de HTML?

Flash no es una respuesta,
prefiere no usar cosas de fantasía también ajax (principalmente porque lo necesito de inmediato, no en el documento listo),
también robots.txt no es una respuesta, ya que funciona en urls, no en partes de la página. ¿Funcionaría cualquier css/simple javascript especial, alguna etiqueta especial html para esto?

+0

_por qué_ hacer que desea ocultar información del robot de Google? ¿Cuál es el propósito de hacerlo? Puede haber otras formas de lograr el objetivo que ocultar HTML. – cdeszaq

+0

Uhmz .. Estoy bastante seguro de que googlebot no sabe cómo leer imágenes ... – Nobita

+0

mmm ¿qué pasa con el uso de un iframe? puedes crear un html separado, excluirlo en robots.txt, y en tu página llamar a html en un iframe – MCSI

Respuesta

8

Tal vez un servidor codificación base64 y luego decodificar en el lado del cliente podría funcionar?

Código:

<!-- visible to Google --> 
<p> Hi, Google Bot! </p> 

<!-- not visible from here on --> 
<script type="text/javascript"> 
document.write ("<?php echo base64_encode('<b>hey there, user</b>'); ?>"); 
</script> 

¿Cómo se ve a la bot:

<!-- visible to Google --> 
<p> Hi, Google Bot! </p> 

<!-- not visible from here on --> 
<script type="text/javascript"> 
document.write (base64_decode("B9A985350099BC8913==")); 
</script> 
+0

Buena idea. Para grandes cantidades de HTML puede usar AJAX (si tiene jQuery o casi cualquier otra biblioteca, es realmente fácil ... si no tiene biblioteca, sigue siendo fácil de implementar y puede ser una mejor solución que base64 ya que no tiene que codificar su html cada vez que lo cambie) – rickyduck

+0

Esta solución no funciona, porque [Googlebot es capaz de analizar y ejecutar JavaScript] (http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157) hoy en día. – modiX

+1

@modiX no fue la mejor solución incluso en ese entonces, es un poco hacky. Pero el cliente de OP lo quería de esta manera. Aún así, si Google está ejecutando JS e indexando los resultados, CSS se puede usar a través de 'display: none' AFAIK Google respeta los elementos ocultos y no indexa los contenidos. – vanneto

0

sencilla, crear una imagen con el texto que no quiere Google para ver

+0

Downvote, Google tiene un OCR sofisticado para las capacidades de imagen. –

+0

afaik solo para documentos PDF, o tiene alguna referencia? – Rodolfo

4

Crear un Div, Cargar el contenido de la Div (Ajax) a partir de un archivo html que reside en un directorio protegido por robots. Ejemplo. /index.html

En algún lugar del encabezado. (Marque http://api.jquery.com/jQuery.ajax/)

$.ajax({ 
    url: '/hiddendirfrombots/test.html', 
    success: function(data) { 
    $('#hiddenfrombots').html(data); 
    } 
}); 

... alguna parte del cuerpo

<div id="hiddenfrombots"></div> 

crear un directorio "hiddenfrombots" y poner el followin en las raíces .htaccess

User-agent: * 
Disallow: /hiddenfrombots/ 
+0

Ahora, como el bot de Google entiende javascript & ajax ... ¿comprueba robots.txt también para las URL llamadas a través de ajax? –

+0

Sí lo hace! Si pones tu url-s para ser llamado a través de Ajax en una carpeta específica, puedes decirle a los robots de Google que ignoren esa carpeta. –

2

Si puede usar PHP, simplemente publique su contenido si no es Googlebot:

// if not google 
if(!strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot")) { 
    echo $div; 
} 

Así es como pude resolver este problema.

0
  • Carga tu contenido a través de una llamada Ajax
  • Pero crear un archivo JS (por ejemplo: noGoogleBot.js) que contiene la función que implementa la llamada AJAX:

    $.ajax({ 
        url: 'anything.html', 
        success: function(data) { 
        $('#anywhere').html(data); 
        } 
    }); 
    

Entonces en su robots.txt

User-agent: * 
Disallow: /noGoogleBot.js 

Así que todos los divs que están cargados usar la función en noGoogleBot será bloqueado. Googlebot (o cualquier otro rastreador) ignorará el contenido de noGoogleBot.js.

2

Esto debe hacer el truco:

<!--googleoff: index--> 
<p>hide me!</p> 
<!--googleon: index--> 

Para obtener más información, visite el enlace a la página de Google que lo describe con mayor profundidad.

Excluding Unwanted Text from the Index

+2

Solo para dispositivos de búsqueda de Google –

Cuestiones relacionadas