Selasa, 31 Maret 2026
Jika Anda mendengarkan episode 105 podcast Search Off the Record, Anda mungkin mendengar kami membahas secara mendalam topik yang sangat berarti bagi kami (juga bagi server kami), yaitu cara kerja internal Googlebot.
Sudah sejak lama, nama "Googlebot" mengingatkan pada gambaran sebuah robot tunggal yang bekerja tak kenal lelah menelusuri internet secara sistematis. Namun, kenyataannya sedikit lebih rumit dan jauh lebih menarik. Hari ini, kita akan membahas infrastruktur proses crawling kami, dengan fokus khusus pada hal yang membuat kami pusing, yaitu batas ukuran byte.
Pertama, Googlebot bukan hanya sebuah program tunggal
Mari kita luruskan dulu kekeliruan istilah yang ada selama ini. Pada awal tahun 2000-an, Google hanya memiliki satu produk, sehingga kami hanya memiliki satu crawler. Nama "Googlebot" pun melekat. Namun, saat ini, Googlebot hanyalah pengguna dari sesuatu yang menyerupai platform crawling terpusat.
Saat melihat Googlebot di log server, Anda sebenarnya hanya melihat Google Penelusuran. Puluhan klien lainnya, seperti Google Shopping, AdSense, dan lainnya, semuanya merutekan permintaan crawl mereka melalui infrastruktur pokok yang sama ini dengan nama crawler yang berbeda, lalu yang lebih besar didokumentasikan di situs infrastruktur Crawler Google.
Batas 2 MB: apa yang terjadi pada byte Anda?
Di sinilah bagian yang agak membingungkan. Setiap klien infrastruktur crawler perlu menetapkan beberapa setelan untuk pengambilan datanya. Setelan ini mencakup string agen pengguna, token agen pengguna yang akan dicari di robots.txt, dan jumlah byte yang akan diambil dari satu URL.
Saat ini, Googlebot mengambil hingga 2 MB untuk setiap URL individual (tidak termasuk PDF). Artinya, crawler hanya meng-crawl 2 MB pertama dari sebuah resource, termasuk header HTTP. Untuk file PDF, batasnya adalah 64 MB.
Crawler gambar dan video biasanya memiliki berbagai nilai minimum, dan hal ini sangat bergantung pada produk yang sedang diambil datanya. Misalnya, pengambilan data favicon mungkin memiliki batas yang sangat rendah, tidak seperti Penelusuran Gambar.
Untuk crawler lain yang tidak menentukan batas, defaultnya adalah 15 MB, terlepas dari jenis konten.
Apa pengaruhnya terhadap byte yang dikirim server Anda melalui jaringan?
- Pengambilan data sebagian: Jika file HTML Anda berukuran lebih dari 2 MB, Googlebot tidak akan menolak halaman tersebut. Sebaliknya, pengambilan data berhenti tepat di cutoff 2 MB. Perhatikan bahwa batas ini mencakup header permintaan HTTP.
- Memproses cutoff: Bagian yang didownload tersebut (2 MB byte pertama) diteruskan ke sistem pengindeksan kami dan Web Rendering Service (WRS) seolah-olah itu adalah file yang lengkap.
- Byte yang tidak terlihat: Byte apa pun yang ada setelah batas 2 MB tersebut akan diabaikan sepenuhnya. Byte tersebut tidak diambil, tidak dirender, dan tidak diindeks.
- Mendatangkan resource: Setiap resource yang dirujuk dalam HTML (tidak termasuk media, font, dan beberapa file yang lebih jarang ditemukan) akan diambil oleh WRS dengan Googlebot seperti HTML induknya. Resource tersebut memiliki perhitungan byte per URL sendiri yang terpisah dan tidak dihitung dalam ukuran halaman induk.
Untuk sebagian besar web, payload HTML 2 MB itu sudah sangat besar, dan Anda tidak akan pernah mencapai batas ini. Namun, jika halaman Anda berisi gambar base64 inline yang terlalu besar, blok CSS/JavaScript inline yang sangat besar, atau di bagian awalnya dipenuhi dengan menu-menu berukuran megabyte, Anda bisa saja tanpa sengaja mendorong konten tekstual yang sebenarnya atau data terstruktur penting melewati batas 2 MB. Jika byte penting tersebut tidak diambil, bagi Googlebot, byte tersebut dianggap tidak ada.
Merender byte
Setelah berhasil mengambil byte (hingga batas), crawler akan meneruskan tugas ke WRS. WRS memproses JavaScript dan menjalankan kode sisi klien yang mirip dengan browser modern untuk memahami visual dan status tekstual akhir halaman. Rendering menarik dan menjalankan file JavaScript dan CSS, serta memproses permintaan XHR untuk lebih memahami konten dan struktur tekstual halaman (tidak meminta gambar atau video). Untuk setiap resource yang diminta, batas 2 MB juga berlaku.
Namun, ingatlah bahwa WRS hanya dapat menjalankan kode yang benar-benar diambil oleh crawler. Selain itu, WRS beroperasi secara stateless, sistem ini menghapus penyimpanan lokal dan data sesi di antara permintaan. Hal ini mungkin memiliki implikasi tertentu terhadap cara elemen dinamis yang bergantung pada JavaScript ditafsirkan oleh sistem kami.
Praktik terbaik untuk byte Anda
Untuk memastikan Googlebot dapat mengambil dan memahami konten Anda secara efisien, perhatikan praktik terbaik pada tingkat byte berikut:
- Jaga agar HTML Anda tetap ringan: Pindahkan CSS dan JavaScript yang berukuran berat ke file eksternal. Meskipun dokumen HTML awal dibatasi hingga 2 MB, skrip dan stylesheet eksternal diambil secara terpisah (tunduk pada batasnya masing-masing).
-
Urutan sangatlah penting: Tempatkan elemen yang paling penting,
seperti tag meta,
<title>elemen,<link>elemen, kanonis, dan data terstruktur penting, di bagian atas dokumen HTML. Hal ini memastikan bahwa kemungkinan elemen-elemen tersebut tidak akan ditemukan di bawah cutoff. - Pantau log server Anda: Perhatikan waktu respons server Anda. Jika server Anda kesulitan menyajikan byte, crawler kami akan otomatis berhenti untuk menghindari kelebihan muatan pada infrastruktur Anda, yang akan menurunkan frekuensi crawling Anda.
Perhatikan bahwa batas ini tidak bersifat final dan dapat berubah seiring waktu dengan perkembangan web dan bertambah besarnya ukuran halaman HTML. (Atau menyusut. Semoga saja menyusut.)
Crawling bukanlah sebuah keajaiban; melainkan adalah pertukaran byte yang sangat terorkestrasi dan berskala. Dengan memahami cara infrastruktur pengambilan data pusat kami mengambil dan membatasi byte-byte tersebut, Anda dapat memastikan konten terpenting situs Anda selalu berhasil diproses.
Selamat mengoptimalkan!
Ingin mengetahui detail di balik layar lainnya? Tonton Episode 105 podcast Search Off the Record di YouTube atau di mana pun Anda mendengarkan podcast.