2012-01-11 10 views
6

Ci sono molte informazioni sulla situazione opposta, quando le persone cercano di avere contenuti in HTML, visibili ai bot di Google, ma non visibili agli utenti, nel mio caso, ho bisogno di cose opposte - per nascondere parte del codice HTML da google bot . La domanda sarebbe come?Come dire a google bot di saltare parte dell'HTML?

Flash non è una risposta,
preferirebbero non utilizzare le cose ajax di fantasia anche (soprattutto perché ne ho bisogno subito, non il documento pronto),
anche robots.txt non è una risposta, perché funziona su URL, non su parti della pagina. Qualche css/semplice javascript funzionante, c'è qualche tag html speciale per questo?

+0

_perché_ vorresti nascondere le informazioni da Googlebot? Qual è lo scopo di farlo? Ci possono essere altri modi per raggiungere l'obiettivo che nascondere HTML. – cdeszaq

+0

Uhmz .. Sono abbastanza sicuro che googlebot non sappia leggere le immagini ... – Nobita

+0

mmm e che ne dici di usare un iframe? puoi creare un html separato, escluderlo in robots.txt e nella tua pagina chiamare de html su un iframe – MCSI

risposta

8

Forse un lato server codifica Base64 e poi la decodifica sul lato client potrebbe funzionare?

Codice:

<!-- 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> 

Come appare al 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

Buona idea. Per grandi quantità di HTML puoi usare AJAX (se hai jQuery o quasi qualsiasi altra libreria, è davvero facile ... se non hai una libreria, è ancora facile da implementare e potrebbe essere una soluzione migliore di base64 dato che non devi codificare il tuo html ogni volta che lo cambi) – rickyduck

+0

Questa soluzione non funziona, perché [Googlebot è in grado di analizzare ed eseguire JavaScript] (http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157) al giorno d'oggi. – modiX

+1

@modiX non era la soluzione migliore nemmeno allora, è un po 'hacky. Ma il cliente di OP lo voleva in questo modo. Tuttavia, se Google sta eseguendo JS e indicizza i risultati, i CSS possono essere utilizzati tramite 'display: none' AFAIK Google rispetta gli elementi nascosti e non indicizza i contenuti. – vanneto

0

semplice, creare un'immagine con il testo non si vuole Google per vedere

+0

Downvote, Google ha un OCR sofisticato per le capacità di immagine. –

+0

solo per documenti PDF o hai un riferimento? – Rodolfo

4

Creare un Div, caricare il contenuto del div (Ajax) da un file HTML che risiede in una directory protetto da robot. Esempio. /index.html

Da qualche parte sulla testata. (Controllare http://api.jquery.com/jQuery.ajax/)

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

... qualche parte del corpo

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

creare una directory "hiddenfrombots" e mettere il followin nelle radici .htaccess

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

Ora come il bot di Google capisce javascript & ajax ... controlla anche robots.txt per gli url chiamati tramite ajax? –

+0

Sì, lo fa! Se metti l'url-s da chiamare tramite Ajax in una cartella specifica, puoi semplicemente dire a Google-robots di ignorare quella cartella. –

2

Se puoi utilizzare PHP, puoi solo pubblicare i tuoi contenuti se non Googlebot:

Ecco come ho potuto risolvere questo problema.

0
  • Caricare il contenuto tramite una chiamata AJAX
  • Ma creare un file JS (per esempio: noGoogleBot.js) che contiene la funzione che implementa la chiamata AJAX:

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

Poi nel tuo robots.txt

User-agent: * 
Disallow: /noGoogleBot.js 

Quindi tutti i div che vengono caricati l'utilizzo della funzione in noGoogleBot verrà bloccato. Googlebot (o qualsiasi altro crawler) ignorerà il contenuto di noGoogleBot.js.

2

Questo dovrebbe fare il trucco:

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

Per ulteriori informazioni consulta il link alla pagina Googles che lo descrive in modo più approfondito.

Excluding Unwanted Text from the Index

+2

Solo per le appliance di ricerca di Google –

Problemi correlati