Crawling Edisi Desember: CDN dan crawling

Selasa, 24 Desember 2024

Jaringan penayangan konten (CDN) sangat cocok untuk mengurangi latensi situs Anda dan umumnya mencegah terjadinya masalah terkait traffic web. Itulah tujuan utama CDN: menayangkan konten dengan cepat meskipun situs Anda mendapatkan banyak traffic. Huruf "D" dalam CDN adalah "Delivery", yaitu menayangkan atau mendistribusikan konten ke seluruh dunia, sehingga waktu transfer kepada pengguna Anda juga lebih cepat daripada hanya menghosting di satu pusat data di suatu tempat. Dalam postingan ini, kita akan mempelajari cara menggunakan CDN untuk meningkatkan crawling dan pengalaman pengguna di situs Anda. Kita juga akan melihat beberapa nuansa crawling situs yang didukung CDN.

Rangkuman: Apa itu CDN?

Pada dasarnya, CDN adalah perantara antara server asal (tempat situs Anda berada) dan pengguna akhir, serta berfungsi menayangkan (beberapa) file untuk mereka. Secara historis, fokus utama CDN adalah penyimpanan cache, artinya setelah pengguna meminta URL dari situs Anda, CDN akan menyimpan konten URL tersebut dalam cache-nya untuk sementara sehingga server Anda tidak perlu menayangkan file tersebut lagi untuk beberapa waktu.

CDN dapat mempercepat situs Anda secara signifikan dengan menayangkan konten kepada pengguna dari lokasi yang dekat dengan mereka. Misalnya, jika pengguna di Australia mengakses situs yang dihosting di Jerman, CDN akan menayangkan konten kepada pengguna tersebut dari cache-nya di Australia, sehingga mengurangi proses bolak-balik dari ujung ke ujung. Meskipun dengan kecepatan cahaya, jauhnya jarak pasti tetap berpengaruh.

Terakhir, CDN adalah solusi yang luar biasa untuk melindungi situs Anda dari kelebihan beban dan beberapa ancaman keamanan. Dengan jumlah traffic global yang dikelola CDN, CDN dapat membuat model traffic yang andal untuk mendeteksi anomali traffic dan memblokir akses yang tampaknya berlebihan atau berbahaya. Misalnya, pada 21 Oktober 2024, sistem Cloudflare secara independen mendeteksi dan memitigasi serangan DDoS 4,2 Tbps (intinya: itu besar sekali) yang berlangsung sekitar satu menit.

Cara CDN dapat membantu situs Anda

Anda mungkin memiliki server tercepat dan uplink terbaik dengan harga termahal, jadi Anda mungkin merasa tidak semuanya sudah dalam kondisi paling optimal, tetapi CDN dapat menghemat uang Anda dalam jangka panjang, terutama jika situs Anda berukuran besar:

  • Penyimpanan cache di CDN: Jika resource seperti media, JavaScript, dan CSS, atau bahkan HTML Anda ditayangkan dari cache CDN, server Anda tidak perlu menghabiskan komputasi dan bandwidth untuk menayangkan resource tersebut, sehingga mengurangi beban server dalam prosesnya. Biasanya, hal ini juga memungkinkan halaman dimuat lebih cepat di browser pengguna, yang juga dapat meningkatkan konversi.
  • Perlindungan dari traffic berlebih: CDN sangat andal dalam mengidentifikasi dan memblokir traffic yang berlebihan atau berbahaya, sehingga pengguna dapat mengunjungi situs Anda meskipun bot berperilaku aneh atau pelaku kejahatan membebani server Anda.
    Selain perlindungan dari traffic berlebih dan traffic yang buruk, Anda dapat menggunakan cara tersebut untuk memblokir traffic yang tidak Anda inginkan, baik itu crawler spesifik, klien dengan pola tertentu, atau sekadar troll yang terus-menerus menggunakan alamat IP yang sama. Meskipun Anda juga dapat melakukannya di server atau firewall, biasanya akan jauh lebih mudah untuk menggunakan antarmuka pengguna CDN.
  • Keandalan: Beberapa CDN dapat menayangkan situs Anda kepada pengguna meskipun situs Anda sedang tidak aktif. Tentu saja hal ini mungkin hanya berfungsi untuk konten statis, tetapi hal itu mungkin sudah cukup untuk memastikan pengguna Anda tidak beralih ke situs lain.

Singkatnya, CDN adalah solusi sempurna untuk situs Anda, terutama jika situs tersebut akan (atau bahkan sudah) menerima traffic dalam jumlah besar. Jika demikian, sebaiknya gunakan CDN sesuai dengan kebutuhan Anda berdasarkan faktor seperti harga, performa, keandalan, keamanan, dukungan pelanggan, skalabilitas, dan ekspansi mendatang. Konsultasikan dengan penyedia hosting atau CMS Anda untuk mengetahui opsi yang tersedia (dan apakah Anda sudah menggunakan CDN).

Pengaruh crawling terhadap situs yang menggunakan CDN

Dilihat dari sisi crawling, CDN memang dapat membantu, tetapi juga dapat menyebabkan beberapa masalah crawling (meskipun jarang terjadi). Berikut penjelasannya.

Pengaruh CDN terhadap frekuensi crawling

Infrastruktur crawling kami dirancang untuk memungkinkan frekuensi crawling yang lebih tinggi pada situs yang didukung oleh CDN, yang dapat diketahui berdasarkan alamat IP layanan yang menayangkan URL yang diakses oleh crawler kami. Umumnya sistem ini berfungsi dengan baik, kecuali dalam kondisi tertentu.

Misalnya, hari ini Anda mulai membuat situs foto stok dan kebetulan memiliki 1.000.007 foto yang harus dipublikasikan. Anda meluncurkan situs dengan halaman landing, halaman kategori, dan halaman detail untuk semua konten Anda, sehingga Anda memiliki banyak sekali halaman. Kami menjelaskan dalam dokumentasi kami tentang batas kapasitas crawl bahwa meskipun Google Penelusuran ingin meng-crawl semua halaman ini secepat mungkin, crawling juga tidak boleh sampai membebani server Anda. Jika respons server Anda mulai melambat saat menerima peningkatan jumlah permintaan crawling, Google akan menerapkan throttling untuk mencegah server Anda kelebihan beban. Batas throttling ini jauh lebih tinggi jika infrastruktur crawling kami mendeteksi bahwa situs Anda didukung oleh CDN, dan mengasumsikan bahwa tidak masalah untuk mengirim lebih banyak permintaan serentak karena server Anda kemungkinan besar dapat menanganinya. Hal tersebut membuat webshop Anda di-crawl lebih cepat.

Namun, pada akses pertama URL, cache CDN masih "dingin". Hal ini menunjukkan bahwa kontennya belum di-cache oleh CDN karena belum ada yang meminta URL tersebut, sehingga server asal Anda tetap perlu menayangkan URL tersebut setidaknya sekali untuk "memanaskan" cache CDN. Proses ini juga sangat mirip dengan cara kerja penyimpanan cache HTTP.

Singkatnya, meskipun webshop Anda didukung oleh CDN, server Anda harus menayangkan 1.000.007 URL tersebut setidaknya sekali. CDN hanya dapat membantu Anda dengan cache-nya setelah penayangan awal tersebut. Proses ini akan membebani "anggaran crawling" Anda secara signifikan dan frekuensi crawling mungkin akan meningkat selama beberapa hari; pertimbangkan hal ini jika Anda berencana meluncurkan banyak URL sekaligus.

Pengaruh CDN terhadap rendering

Seperti penjelasan dalam postingan blog Crawling Edisi Desember tentang crawling resource pertama kami, memisahkan resource ke nama host atau nama host CDN-nya sendiri (cdn.example.com) dapat memungkinkan Web Rendering Service (WRS) kami merender halaman Anda dengan lebih efisien. Meskipun umumnya efektif, praktik ini mungkin dapat menghambat performa halaman karena beban koneksi ke nama host yang berbeda, jadi Anda perlu mempertimbangkan dengan cermat pengalaman halaman dengan performa rendering sebelum menerapkannya.

Jika Anda mendukung host utama dengan CDN, cukup kueri satu nama host, dan resource rendering penting kemungkinan akan ditayangkan dari cache CDN sehingga server Anda tidak perlu menayangkannya (dan tanpa mengganggu pengalaman halaman).

Kesimpulannya, pilih solusi yang paling sesuai untuk bisnis Anda, baik itu membuat nama host terpisah (cdn.example.com) untuk resource statis, mendukung nama host utama Anda dengan CDN, ataupun melakukan keduanya. Infrastruktur crawling Google mendukung kedua opsi tersebut tanpa masalah.

Pemblokiran CDN yang terlalu protektif

Karena CDN ingin selalu melindungi situs Anda dari kelebihan beban dan kecenderungan crawler saat meng-crawl situs, terkadang bot yang sebenarnya Anda inginkan di situs masuk daftar yang tidak diberi akses CDN, biasanya di Firewall Aplikasi Web (WAF). Hal ini akan mencegah crawler mengakses situs Anda, yang pada akhirnya dapat mencegah situs Anda muncul di hasil penelusuran. Pemblokiran ini dapat terjadi dalam beberapa cara, yang di antaranya sangat memengaruhi kehadiran situs Anda di hasil penelusuran Google, dan tidak mudah (atau tidak mungkin) bagi Anda untuk mengontrolnya karena hal itu terjadi di sisi CDN. Khusus di postingan blog ini, kami membaginya ke dalam dua kategori: pemblokiran total dan pemblokiran parsial.

Pemblokiran total

Pemblokiran total terjadi ketika CDN mengirimkan respons ke permintaan crawl yang berupa error atau sejenisnya. Di antaranya yaitu:

  • Kode status HTTP 503/429: Mengirim kode status ini adalah cara yang lebih disarankan untuk menandakan pemblokiran sementara. Tindakan ini akan memberi Anda waktu untuk menanggapi pemblokiran yang tidak disengaja oleh CDN.
  • Waktu tunggu jaringan habis: Waktu tunggu jaringan habis dari CDN akan menyebabkan URL yang terpengaruh dihapus dari indeks penelusuran Google, karena error jaringan ini dianggap sebagai "hard" error yang bersifat terminal. Selain itu, error ini bisa jadi juga sangat memengaruhi frekuensi crawling situs Anda karena error ini memberi sinyal kepada infrastruktur crawling kami bahwa situs kelebihan beban.
  • Pesan error acak dengan kode status HTTP 200: Juga disebut soft error, yang ini cukup mengganggu. Jika Google menganggap pesan error ini sama dengan "hard" error (misalnya HTTP 500), Google akan menghapus URL tersebut dari Penelusuran. Jika Google tidak dapat mendeteksi pesan error sebagai "hard" error, semua halaman dengan pesan error yang sama dapat dihapus sebagai duplikat dari indeks penelusuran Google. Google cenderung kurang memprioritaskan crawling ulang URL yang dianggap duplikat. Akibatnya, proses pemulihan dari masalah ini bisa memakan waktu yang lebih lama.

Pemblokiran parsial

Masalah serupa dapat muncul saat CDN Anda menampilkan interstisial "are you sure you're a human".

Crawler mempertanyakan makhluk yang disebut manusia

Crawler kami sebenarnya yakin bahwa dirinya BUKAN manusia dan tidak berpura-pura menjadi manusia. Crawler hanya ingin meng-crawl situs. Namun, saat interstisial muncul, hanya halaman itu yang mereka lihat, bukan situs Anda yang sebenarnya. Untuk interstisial verifikasi bot ini, sebaiknya kirimkan sinyal yang jelas dalam bentuk kode status HTTP 503 ke klien otomatis seperti crawler bahwa konten tidak tersedia untuk sementara. Tindakan ini akan memastikan bahwa konten tidak otomatis dihapus dari indeks Google.

Men-debug pemblokiran

Jika terjadi pemblokiran total dan parsial, cara termudah untuk memeriksa apakah semuanya berfungsi dengan benar adalah dengan menggunakan Alat Inspeksi URL di Search Console dan mengamati gambar yang dirender: jika gambar menampilkan halaman Anda, berarti semuanya baik-baik saja; jika gambar menampilkan halaman kosong, error, atau halaman dengan tantangan bot, sebaiknya periksa CDN Anda.

Selain itu, untuk membantu mengatasi pemblokiran yang tidak disengaja ini, Google, mesin telusur, dan operator crawler lainnya memublikasikan alamat IP masing-masing untuk membantu Anda mengidentifikasi crawler kami dan, jika dirasa perlu, menghapus IP yang diblokir dari aturan WAF, atau bahkan memasukkannya ke dalam daftar yang diberi akses. Tempat Anda dapat melakukannya bergantung pada CDN yang digunakan; untungnya, sebagian besar CDN dan WAF mandiri memiliki dokumentasi yang mendetail. Berikut beberapa dokumentasi yang dapat kami temukan setelah melakukan sedikit penelusuran (per publikasi postingan ini):

Jika ingin situs Anda muncul di mesin telusur, sebaiknya periksa apakah crawler yang Anda inginkan dapat mengakses situs Anda. Perlu diingat bahwa IP dapat otomatis masuk ke daftar yang tidak diberi akses, tanpa sepengetahuan Anda, jadi sebaiknya periksa daftar blokir dari waktu ke waktu untuk kesuksesan situs Anda di penelusuran dan aspek lainnya. Jika daftar yang tidak diberi akses sangat panjang (tidak seperti postingan blog ini), coba cari beberapa segmen pertama dari rentang IP-nya, misalnya, daripada mencari 192.168.0.101, Anda cukup mencari 192.168.

Postingan ini menjadi penutup seri postingan blog Crawling Edisi Desember kami. Semoga Anda menikmatinya sama seperti kami menikmati proses penulisannya. Jika ada pertanyaan atau masukan, seperti biasa, Anda tahu ke mana harus mengirimnya.


Ingin mempelajari crawling lebih lanjut? Lihat seluruh seri Crawling Edisi Desember: