Google Membutuhkan 9X Lebih Banyak Waktu untuk Merangkak JS Daripada HTML | Hanya satu

Google Membutuhkan 9X Lebih Banyak Waktu untuk Merangkak JS Daripada HTML |  Hanya satu

Bisakah Google merayapi konten JavaScript? Tentu.

Tetapi apakah itu merayapi konten JavaScript seperti halnya HTML? Tidak dengan jarak jauh. Saya baru saja menjalankan eksperimen yang menunjukkannya.

Hasil: Google membutuhkan 9x lebih banyak waktu untuk merayapi halaman JavaScript vs halaman HTML biasa.

Hal ini menunjukkan adanya rendering antrian dalam jalur pengindeksan Google, dan menunjukkan bagaimana menunggu dalam antrean ini dapat secara drastis memengaruhi seberapa cepat konten Anda dirayapi dan diindeks.

Dan itu satu lagi alasan untuk mendorong sebanyak mungkin konten Anda ke dalam HTML biasa.

Percobaan

Saya ingin memeriksa berapa lama waktu yang dibutuhkan Google untuk merayapi satu set halaman dengan konten JavaScript vs halaman HTML biasa. Jika Google hanya dapat mengakses halaman tertentu dengan mengikuti tautan internal yang disuntikkan JavaScript, maka saya dapat mengukur berapa lama waktu yang dibutuhkan Google untuk mencapai halaman tersebut dengan melihat log server kami.

Jadi bersama-sama dengan Marcin Gorczyca, kami membuat subdomain dengan dua folder. Setiap folder memiliki satu set halaman seperti ini:

Contoh halaman HTML dari eksperimen kedalaman perayapan

Salinan dibuat oleh AI.

Salah satu folder (/html/) berisi halaman yang dibuat hanya dengan HTML. Artinya Googlebot dapat mengikuti tautan internal ke laman berikutnya (dalam kasus di atas, “Burung Unta”) tanpa mengambil sumber daya tambahan atau merender apa pun.

Pada saat yang sama, /js/ folder berisi halaman yang memuat semua kontennya menggunakan vanilla JavaScript (tanpa menggunakan kerangka kerja JavaScript apa pun). Jadi, sampai Google mengambil file skrip JavaScript tambahan (yang digunakan di semua halaman dalam folder) dan merender halaman tersebut dengan menjalankan JavaScript, sebagian besar halaman akan kosong:

Contoh halaman JavaScript dari eksperimen kedalaman perayapan

Setelah merender JavaScript, Google akan menemukan salinan yang dihasilkan AI, serupa (tetapi berbeda!) dengan salinan di folder /html/, serta tautan internal, seperti halnya dengan halaman HTML.

Di kedua folder, ada total tujuh halaman, enam di antaranya hanya dapat diakses melalui tautan internal tersebut.

Kami melakukan ping ke Google tentang keberadaan halaman pertama di setiap folder, dan kami kemudian menunggu semua halaman dirayapi.

Hasil

Butuh Google 313 jam untuk sampai ke halaman ketujuh terakhir dari folder JavaScript.

Dengan HTML, hanya butuh 36 jam. Itu hampir 9 kali lebih cepat.

Bagan yang menunjukkan perbedaan waktu antara berapa lama waktu yang dibutuhkan Google untuk merayapi folder dengan halaman JS vs halaman HTML

Penundaan bervariasi tergantung pada seberapa dalam Googlebot masuk ke halaman eksperimental, tetapi selalu substansial. Bahkan dengan tautan internal pertama yang disuntikkan JavaScript, Googlebot membutuhkan waktu dua kali lebih lama untuk mengikutinya dibandingkan dengan tautan HTML (52 jam vs 25 jam). Saat masuk lebih dalam ke folder, penundaan menjadi lebih ekstrem.

Grafik yang menunjukkan perbedaan waktu yang dibutuhkan Googlebot untuk membuka halaman berturut-turut di folder HTML dan JS eksperimen

Takeaways

Sejujurnya, Saya tidak menyangka hasilnya akan begitu berbeda untuk JavaScript dan HTML.

Pada tahun 2019, saya menulis artikel untuk menanggapi klaim Google bahwa penundaan antara perayapan dan rendering adalah 5 detik pada median. Tetapi saat itu, penelitian kami di Onely terutama berfokus pada penundaan antara konten yang dipublikasikan dan diindeks.

Dalam eksperimen sederhana ini, kami mengukur sesuatu yang berbeda. Pada dasarnya, kami mengukur berapa lama waktu yang dibutuhkan Googlebot untuk mengikuti tautan dalam konten yang dimuat dengan JavaScript versus tautan dalam konten HTML biasa.

Jadi sekarang kita tahu ada perbedaan yang sangat signifikan. Tetapi pertanyaannya tetap: mengapa?

Biasanya, anggaran perayapan akan menjadi faktor penjelasan yang mungkin. Setiap file tambahan yang diperlukan untuk merender halaman adalah permintaan tambahan yang harus dibuat oleh Googlebot, yang berkontribusi terhadap anggaran perayapan Anda. Sebagai Erik Hendriks dari Google mengatakan selama WMConf 2019“volume perayapan akan naik 20 kali lipat saat saya mulai merender.”

Namun dalam kasus percobaan kami, hanya ada satu file JavaScript yang diperlukan untuk rendering di semua halaman. Google hanya meminta file itu saat merayapi halaman pertama dan kedua di dalam folder /js/. Tampaknya tidak masuk akal bahwa satu permintaan tambahan ini akan menyebabkan Google membutuhkan waktu 9x lebih lama untuk merayapi folder /js/.

Kembali ke artikel kuno saya tentang penundaan rendering, Martin Splitt mengatakan yang berikut selama KTT Pengembang Chrome November 2019:

(…) tahun lalu Tom [Greenaway] dan saya berada di panggung ini dan memberi tahu Anda, “Yah, Anda tahu, ini bisa memakan waktu hingga seminggu, kami sangat menyesal untuk ini.” Lupakan ini, oke? Karena angka-angka baru terlihat jauh lebih baik. Jadi kami benar-benar memeriksa angka-angka dan menemukan bahwa, ternyata pada median, waktu yang kami habiskan antara merangkak dan benar-benar merender hasil ini adalah – pada median – lima detik!

Jika ini benar, maka itu berarti hal berikut terjadi dengan eksperimen saya (mari kita bicara tentang Googlebot mendapatkan dari halaman kedua ke ketiga di folder /js/, hanya untuk memperjelas contohnya):

  1. Halaman kedua dirayapi.
  2. 5 detik kemudian (di median — mari kita buat satu jam!) halaman kedua dirender dan Google menemukan tautan ke halaman ketiga.
  3. Halaman ketiga dirayapi setelah menunggu dalam antrian perayapan untuk 164 jam.

Pada saat yang sama, halaman ketiga di folder /html/ dirayapi tiga jam setelah halaman kedua ditemukan. Setelah 165 jam, sudah 129 jam sejak Googlebot menemukan halaman ketujuh terakhir dalam folder itu!

Orang mungkin menyimpulkan bahwa Google kurang memberikan prioritas untuk merayapi halaman yang ditautkan dengan tautan yang disuntikkan JavaScript. Tapi ini tidak masuk akal — mengapa Google kurang memberikan prioritas pada tautan perayapan yang sudah ditemukan?

Jadi bagi saya, hanya ada satu penjelasan yang tersisa: Ada penundaan yang signifikan antara halaman yang dirayapi dan dirender, dan itulah mengapa Google butuh waktu lama untuk menemukan dan merayapi halaman berturut-turut di folder /js/.

Karena rendering membutuhkan sumber daya komputasi tambahan, halaman yang memerlukan rendering harus menunggu dalam antrian rendering selain antrian perayapan yang berlaku untuk semua halaman.

Tentu saja, Google dapat menetapkan prioritas rendering yang lebih tinggi ke halaman populer, dan penundaannya mungkin tidak selalu begitu signifikan. Namun sebelum Anda menganggap ini bukan masalah bagi Anda, jalankan eksperimen di situs web Anda dan periksa berapa banyak waktu yang dihabiskan laman Anda dalam antrean rendering.

Inilah takeaway utama saya: antrian rendering sangat nyata dan bisa secara signifikan memperlambat proses penemuan Googlebot di situs web Anda. Khusus untuk situs web yang mendorong keluar banyak konten dan membutuhkannya untuk diindeks dengan cepat, seperti situs berita, ini adalah masalah kritis.

Jika Anda menggunakan JavaScript untuk menghasilkan konten APAPUN, mungkin lebih baik untuk merender semuanya di sisi server. Kami sudah mengetahuinya selama bertahun-tahun, tetapi eksperimen ini hanyalah satu argumen lagi untuk memilih rendering sisi server demi SEO.