Saya perhatikan bahwa Alat Webmaster Google melaporkan banyak sumber daya yang diblokir di situs web saya. Saat ini semua "sumber daya yang diblokir" adalah .css, .js, dan gambar (.jpg, .png) yang saya layani dari Cloudfront CDN.
Saya telah menghabiskan banyak waktu pengujian dan mencoba mencari tahu mengapa google tidak merayapi file-file ini dan melaporkan status "blok sumber daya".
Saat ini saya melayani file-file ini dari beberapa nama host seperti: cdn1.example.com, cdn2.example.com,…
cdn1, cdn2 dan yang lainnya adalah CNAME untuk nama distribusi cloudfront.
Pengujian: Saya sudah mencoba menggunakan langsung distribusi cloudfront (tidak ada CNAME) tetapi masalahnya tetap ada.
Saat ini robots.txt saya terlihat seperti ini:
# 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: /
Dan contoh file diblokir dalam satu halaman contoh:
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/responsif .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
Saya bahkan sudah mencoba mengizinkan semuanya dalam robots.txt tetapi saya selalu memiliki hasil yang sama.
Saya juga telah melihat dengan hati-hati pada pengaturan CloudFront di Amazon dan tidak melihat apa pun yang dapat dikaitkan (Saya tidak menggunakan dan tidak pernah menggunakan opsi: "Batasi Akses Penampil (Gunakan URL yang Ditandatangani atau Cookie yang Ditandatangani)".
Saat ini saya telah menghabiskan banyak waktu untuk menyelidiki hal ini dan tidak memiliki ide lagi.
Adakah yang bisa memikirkan alasan mengapa Googlebot akan diblokir dari merayapi file yang dihosting di Amazon CloudFront?
*
di akhir "awalan" URL./test*
sama dengan/test
.Jawaban:
Jadi, solusinya tampaknya Amazon cloudfront juga mengevaluasi saya
robots.txt
dan entah bagaimana menggunakan aturan sintaksis yang berbeda dari google.Versi kerja saya
robots.txt
adalah sebagai berikut:Catatan yang sangat penting untuk mengatakan bahwa ini tidak menjalankan fungsi yang sama persis seperti sebelumnya. Bahkan, saya mengeluarkan semua baris kosong, wildcard dan arahan "izinkan". Berarti hasil akhirnya tidak sama ... tapi saya pikir cukup dekat untuk saya. Misalnya itu tidak mengecualikan halaman tag ketika dikirimkan dalam string kueri ...
Tiga catatan penting:
Jika Anda mengujinya dengan ini jangan lupa membatalkan
robots.txt
validasi dalam distribusi cloudfront untuk setiap iterasi. Hanya memeriksa Anda dilayani versi terakhir tidak cukup.Saya tidak dapat menemukan definisi
robot.txt
sintaks yang dipahami oleh amazon cloudfront. Jadi, itu coba-coba.Untuk menguji hasil, gunakan alat "ambil dan render" dari google webmaster dan penguji ramah seluler mereka ( https://www.google.com/webmasters/tools/mobile-friendly/ )
Saya tidak mengerti mengapa cloudfront memvalidasi dan mengevaluasi saya
robots.txt
. File ini adalah "kesepakatan" dengan saya dan perayap yang datang ke situs saya. Amazon tidak memiliki bisnis di tengah. Bercak dengan sayarobots.txt
benar-benar bodoh.Tidak pernah terlintas dalam pikiran saya bahwa cloudfront bisa menjadi yang kedua menebak
robots.txt
sintaksis saya .sumber
Buat robots.txt dalam ember.
Buat asal lain untuk distribusi cloudfront Anda.
Tetapkan prioritas bucket Anda lebih tinggi daripada situs web Anda.
Validasikan robots.txt situs Anda di Cloudfront.
Setelah melakukan hal di atas, Google akan membaca situs robots.txt ketika merayapi situs Anda dan akan melihat robots.txt yang berbeda ketika mengikuti tautan dari cdn Anda.
sumber
Google tidak memblokir sumber daya eksternal agar tidak diindeks menggunakan robots.txt di root situs utama. Menggunakan sub domain, cdn atau lainnya digolongkan sebagai domain eksternal karenanya satu-satunya cara untuk memblokir konten adalah dengan menggunakan respons header pada file yang dilayani oleh CDN itu sendiri, atau dengan menggunakan robots.txt pada cdn atau sub domain .
Menggunakan:
Jika hanya memblokir gambar yang bersifat lokal, Anda harus melakukan hal yang sama pada CDN.
Kemungkinannya adalah masalah respons tajuk dan Anda harus melakukan 'CURL' pada salah satu file di CDN. Seharusnya terlihat seperti:
Hal-hal yang harus diperhatikan adalah:
sumber
check the robots.txt on your CloudFront distribution
saya mengatakan ini juga! Satu-satunya cara untuk memblokir gambar yang diindeks pada CDN adalah x-robots-tag dan robots.txt pada CDN itu sendiri, lagi-lagi disebutkan.Mengetahui masalahnya: CloudFront membaca robots.txt dan mencegah penyajian konten, tetapi mengurai beberapa perbedaan dari robot yang seharusnya, saya kira.
Misalnya, konten berikut di robots.txt:
Disallow: */wp-contents/ Allow: */wp-contents/themes/
Ketika Googlebot mendapatkannya sendiri, indeks itu; Ketika CloudFront membacanya, itu tidak mempertimbangkan arahan 'Izinkan', dan melarang untuk melayani apa pun di dalamnya
*/wp-contents/themes/
.Jawaban singkat: periksa robots.txt pada distribusi CloudFront Anda, mungkin itu masalahnya. Batalkan dan perbarui dengan versi yang diperbaiki dan itu akan berfungsi!
sumber