Google non esegue la scansione dei file CDN


11

Ho notato che Google Webmaster Tools sta segnalando molte risorse bloccate nel mio sito Web. In questo momento tutte le "risorse bloccate" sono .css, .js e immagini (.jpg, .png) che offro da Cloudfront CDN.

Ho passato molto tempo a testare e cercare di capire perché Google non esegue la scansione di questi file e segnala uno stato di "blocco di risorse".

Attualmente offro questi file da diversi nomi host come: cdn1.example.com, cdn2.example.com, ...

cdn1, cdn2 e gli altri sono CNAME per il nome della distribuzione cloudfront.

Test: ho provato a utilizzare direttamente la distribuzione cloudfront (senza CNAME) ma il problema persiste.

Attualmente il mio robots.txt è simile al seguente:

# Google AdSense
User-agent: Mediapartners-Google
Disallow:

#Google images
User-agent: Googlebot-Image
Disallow: /

User-agent: *
Disallow: /homepage
Disallow: /index.php*
Disallow: /uncategorized*
Disallow: /tag/*
Disallow: *feed
Disallow: */page/*
Disallow: *author*
Disallow: *archive*
Disallow: */category*
Disallow: *tag=*
Disallow: /test*
Allow: /

Ed esempi di file bloccati in una pagina di esempio:

  • cdn1.example.com/wp-content/plugins/wp-forecast/wp-forecast-default.css

  • cdn9.example.com/wp-content/plugins/bwp-minify/min/?f=wp-content/themes/magazine/css/font-awesome.min.css,wp-content/themes/magazine/css/responsive css

  • cdn5.example.com/wp-content/themes/magazine/images/nobg.png

  • cdn6.example.com/wp-content/plugins/floating-social-bar/images/fsb-sprite.png

  • cdn5.example.com/wp-content/uploads/2013/11/Design-Hotel-3-80x80.jpg

  • cdn5.example.com/wp-content/uploads/2013/11/Marta-Hotel-7-270x225.jpg

Ho anche provato a consentire tutto in robots.txt ma ho sempre lo stesso risultato.

Ho anche esaminato attentamente le impostazioni di CloudFront su Amazon e non ho visto nulla che potesse essere correlato (non uso e non ho mai usato l'opzione: "Limita accesso al visualizzatore (Usa URL firmati o Cookie firmati)".

In questo momento ho passato molto tempo a esaminare questo aspetto e non ho più idee.

Qualcuno può pensare a un motivo per cui Googlebot sarebbe bloccato dalla scansione dei file ospitati in Amazon CloudFront?


Hai esaminato le intestazioni di risposta HTTP di queste "risorse bloccate"? Quale errore esatto segnala GWT? Se sono stati bloccati da robots.txt, dovrebbe segnalarlo.
Mr White,

Commenti minori sul file robots.txt ... Gli URL hanno il prefisso abbinato per impostazione predefinita, quindi non è mai necessario che *alla fine dell'URL "prefisso". /test*è lo stesso di /test.
Mr White,

Ciao, non posso esaminare le intestazioni, perché non so cosa stia ottenendo googlebot. Ho appena ricevuto il messaggio: "Googlebot non è riuscito a ottenere tutte le risorse per questa pagina. Ecco un elenco:" e quindi l'elenco di tutti i file ospitati dalla CDN (js, css e immagini) con "Motivo": "Bloccato".
Tonelot,

Dal momento che sto chiedendo di "recuperare e renderizzare" vedo anche che il rendering manca degli stili e delle immagini ....
tonelot

Inoltre, grazie per la nota sulla sintassi robots.txt.
Tonelot,

Risposte:


7

Quindi, la soluzione sembra essere che Amazon cloudfront valuti anche il mio robots.txte in qualche modo usi regole di sintassi diverse da Google.

La versione funzionante di my robots.txtè la seguente:

User-agent: Googlebot-Image
Disallow: /
User-agent: *
Disallow: /homepage
Disallow: /uncategorized
Disallow: /page
Disallow: /category
Disallow: /author
Disallow: /feed
Disallow: /tags
Disallow: /test

Una nota molto importante per dire che questo non esegue esattamente le stesse funzioni di prima. In effetti, ho eliminato tutte le righe vuote, i caratteri jolly e le direttive "consentite". Ciò significa che il risultato finale non è lo stesso ... ma penso che sia abbastanza vicino per me. Ad esempio, non esclude le pagine dei tag quando viene passato nella stringa di query ...

Tre note importanti:

  1. Se stai testando questo, non dimenticare di invalidare la robots.txtdistribuzione cloudfront per ogni iterazione. Basta controllare che ti venga servita l'ultima versione non è sufficiente.

  2. Non sono riuscito a trovare da nessuna parte una definizione della robot.txtsintassi compresa da Amazon Cloudfront. Quindi, è stato tentativi ed errori.

  3. Per testare i risultati usa lo strumento "fetch and render" del webmaster di google e del loro tester per dispositivi mobili ( https://www.google.com/webmasters/tools/mobile-friendly/ )

Non capisco perché cloudfront sta convalidando e valutando il mio robots.txt. Questo file è un "affare" con me e con i crawler che arrivano sul mio sito. Amazon non ha affari nel mezzo. Fare casini con il mio robots.txtè semplicemente stupido.

Non mi è mai venuto in mente che cloudfront potrebbe essere il secondo a indovinare la mia robots.txtsintassi.


2

Crea un file robots.txt in un bucket.

Crea un'altra origine per la tua distribuzione cloudfront.

Imposta la priorità del tuo bucket più in alto rispetto al tuo sito web.

Invalida il robots.txt del tuo sito su Cloudfront.

Dopo aver fatto quanto sopra, Google leggerà i siti robots.txt durante la scansione del tuo sito e vedrà i diversi robots.txt quando segue i collegamenti dal tuo cdn.


1

Google non impedisce l'indicizzazione delle risorse esterne tramite l'utilizzo di un file robots.txt nella radice del sito principale. Utilizzando un sottodominio, un cdn o altro viene classificato come dominio esterno per cui l'unico modo per bloccare il contenuto è utilizzare una risposta di intestazione sul file servito dalla stessa CDN, oppure utilizzare un robots.txt sul cdn o sottodominio .

usando:

#Google images
User-agent: Googlebot-Image
Disallow: /

Dovresti bloccare solo immagini locali, dovrai fare lo stesso sulla CDN.

È probabile che si tratti di un problema di risposta dell'intestazione e dovresti fare un "CURL" su uno dei file sulla CDN. Dovrebbe assomigliare a:

HTTP/1.0 200 OK
Cache-Control: max-age=86400, public
Date: Thu, 10 May 2012 07:43:51 GMT
ETag: b784a8d162cd0b45fcb6d8933e8640b457392b46
Last-Modified: Tue, 08 May 2012 16:46:33 GMT
X-Powered-By: Express
Age: 7
Content-Length: 0
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: V_da8LHRj269JyqkEO143FLpm8kS7xRh4Wa5acB6xa0Qz3rW3P7-Uw==,iFg6qa2KnhUTQ_xRjuhgUIhj8ubAiBrCs6TXJ_L66YJR583xXWAy-Q==
Via: 1.0 d2625240b33e8b85b3cbea9bb40abb10.cloudfront.net (CloudFront)
Connection: close

Le cose da cercare sono:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
X-Robots-Tag: googlebot: noindex

Ciao, grazie per la risposta. Ma il mio problema non è come impedire che le immagini vengano indicizzate. Per evitare confusione l'ho tolto da robots.txt e i risultati sono gli stessi. Googlebot continua a lamentarsi che è bloccato su file che ospito su cloudfront e non so perché. Altre idee? Grazie per l'attenzione
yu

Ti manca capito, so che non vuoi che sia bloccato ... quindi perché ho detto in fondo per garantire che la tua risposta di intestazione NON stia facendo un tag X-robot, anche tu dici che l' check the robots.txt on your CloudFront distributionho detto anche io! L'unico modo per bloccare le immagini indicizzate sul CDN è il tag x-robots e un robots.txt sul CDN stesso, di nuovo menzionato.
Simon Hayter

1

Ho scoperto il problema: CloudFront legge il file robots.txt e impedisce di pubblicare il contenuto, ma immagina che sia diverso da ciò che i robot dovrebbero.

Ad esempio, il seguente contenuto su robots.txt:

Disallow: */wp-contents/ Allow: */wp-contents/themes/

Quando Googlebot lo ottiene da solo, lo indicizza; Quando CloudFront lo legge, non considera la direttiva "Consenti" e vieta di servire qualsiasi cosa all'interno */wp-contents/themes/.

Risposta breve: controlla il file robots.txt sulla tua distribuzione CloudFront, potrebbe essere il problema. Invalida e aggiorna con una versione corretta e dovrebbe funzionare!


Cloudfront non "legge" robots.txt né "considera" il suo contenuto, né "impedisce" di nulla. Ricorda che ciò che ottieni dal cloudfront quando recuperi un oggetto non ti dice nulla di ciò che otterrebbe una persona da un'altra posizione del bordo, se il suo bordo memorizzasse nella cache uno precedente o successivo rispetto a quello del tuo. Inoltre, i caratteri jolly principali sono probabilmente una ricetta per comportamenti imprevisti, poiché l'esclusione dei robot "standard" non è ben standardizzata.
Michael - sqlbot,

"CloudFront legge il file robots.txt" - È un file robots.txt ospitato su CloudFront stesso? Il "carattere jolly iniziale" sembrerebbe anche non necessario, se gli URL sono simili a quelli indicati nella domanda.
Mr White,

Ciao. Sicuramente il cloudfront sta leggendo il mio robots.txt. E sicuramente non accetta la stessa sintassi di Google. Avevo già provato a rimuovere il file robots.txt e non ho visto risultati perché non ho richiesto e invalidato nel cloudfront. Presumevo che non fosse necessario perché mi veniva servita l'ultima versione. Il test richiede molto tempo perché ogni modifica richiede una richiesta di invalidazione che richiede un'eternità per essere completata. torno tra qualche ora con una versione funzionante. Non so perché sia ​​necessario questo tipo di "intelligenza" ... ma è lì e penso che non dovrebbe. miguel
tonelot

Lo stesso robots.txt presente sul mio apache è quello ottenuto dal cloudfront. L'ho determinato empiricamente.
Snagnever,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.