Perintah dan konteks
Sebuah situs multibahasa memiliki halaman publik, halaman terotentikasi, dan halaman pratinjau sementara. Tim menambahkan jalur pratinjau ke robots.txt dengan Disallow, menambahkan noindex ke halaman, dan menggunakan satu canonical URL untuk setiap bahasa. Setelah peluncuran, URL pratinjau masih muncul di pencarian dan beberapa halaman bahasa memiliki URL terindeks yang salah. Jelaskan batas-batas dari ketiga sinyal tersebut dan usulkan rencana migrasi serta verifikasi.
Apa yang sedang diuji oleh pewawancara
- Apakah Anda memisahkan perayapan (crawling), pengindeksan (indexing), dan pemilihan URL yang diinginkan.
- Apakah Anda mengetahui bahwa perayap yang diblokir oleh robots.txt mungkin tidak dapat melihat noindex.
- Apakah Anda dapat menangani meta robots HTML,
X-Robots-TagHTTP, canonical, pengalihan (redirects), dan konflik. - Apakah Anda dapat merancang pemeriksaan multibahasa, cache, rollback, dan Search Console.
Pertanyaan klarifikasi untuk diajukan terlebih dahulu
- Apakah tujuannya untuk memblokir perayapan, memblokir pengindeksan, atau menggabungkan URL duplikat?
- Haruskah perayap pencarian mengambil halaman tersebut untuk menemukan noindex atau canonical-nya?
- Apakah halaman pratinjau memerlukan otentikasi, dan bisakah tautan eksternal atau sitemap mereferensikannya?
- Apakah halaman bahasa merupakan terjemahan satu-ke-satu dengan canonical dan hreflang masing-masing?
- Di mana header dan tag ini diatur: CDN, server aplikasi, atau template HTML?
Kerangka jawaban 30 detik
Saya memisahkan perayapan, pengindeksan, dan kanonisasi. robots.txt mengontrol apakah perayap boleh meminta sumber daya; noindex mengontrol apakah halaman yang diambil masuk ke dalam indeks; canonical adalah preferensi untuk URL duplikat atau hampir duplikat, bukan pengalihan. Halaman pratinjau harus diotentikasi atau dapat dirayapi dengan noindex. Halaman bahasa produksi harus mengarah ke dirinya sendiri secara kanonis (self-canonicalize) dan saling mereferensikan silang dengan hreflang. Saya akan memverifikasi respons yang dirender, akses perayap, perilaku cache, dan laporan Search Console.
Jawaban mendalam langkah demi langkah
Langkah 1: Tentukan tiga bidang kontrol (control planes)
robots.txt di root situs menjawab apakah perayap boleh meminta suatu jalur. Ini tidak menghapus URL yang sudah diindeks dan tidak menjamin bahwa URL yang ditemukan melalui tautan eksternal akan tetap berada di luar hasil pencarian. noindex adalah arahan pengindeksan tingkat halaman untuk pratinjau, hasil pencarian, atau halaman non-publik lainnya. canonical adalah sinyal pemilihan URL untuk konten duplikat atau hampir duplikat.
Langkah 2: Jangan sembunyikan noindex di balik Disallow
Ketika suatu jalur juga di-Disallow, perayap mungkin tidak mengambil halaman tersebut dan oleh karena itu tidak dapat melihat tag meta robots atau X-Robots-Tag: noindex. Untuk membuat noindex dapat diamati, izinkan perayapan dan kembalikan noindex dalam HTML atau header HTTP. Konten sensitif memerlukan otentikasi atau otorisasi, bukan arahan perayap. Selama migrasi, hapus blokir perayapan dan tunggu perayapan ulang serta pembaruan indeks.
Langkah 3: Pilih pembawa noindex tingkat halaman
HTML dapat menggunakan meta name="robots" content="noindex,follow"; sumber daya non-HTML dan gateway dapat menggunakan X-Robots-Tag. Uji template dan header respons, serta batalkan validasi (invalidate) objek CDN yang kedaluwarsa. follow dapat mempertahankan penemuan tautan untuk halaman yang dimaksudkan agar tetap berada di luar indeks, tetapi ini bukan kontrol akses dan perilaku perayap tetap berlaku.
Langkah 4: Rancang pemetaan canonical dan bahasa
Setiap halaman bahasa yang dapat diindeks umumnya harus memiliki canonical absolut, dapat dijangkau, dan mereferensikan diri sendiri dengan status, skema, host, dan jalur yang konsisten. Jangan menganoniskan setiap terjemahan ke bahasa default atau terjemahan tersebut dapat digabungkan sebagai duplikat. Gunakan hreflang untuk versi alternatif, dan pastikan sitemap, tautan internal, dan canonical menggunakan rangkaian URL kanonis yang sama.
Langkah 5: Tangani migrasi, pengalihan, dan cache
Gunakan pengalihan permanen sisi server untuk migrasi URL; canonical halaman lama tidak menggantikan pengalihan. Sebelum mengirimkan sitemap, verifikasi respons 200 halaman baru, canonical, arahan robots, dan hreflang. Batalkan validasi respons CDN berdasarkan URL dan header agar edge konsisten. Rollback harus mempertahankan pengalihan dan kebijakan pengindeksan lama alih-alih mengekspos versi campuran.
Langkah 6: Bangun jalur diagnosis yang dapat diamati
Periksa akses robots.txt terlebih dahulu, lalu periksa HTML langsung dan header respons untuk membandingkan noindex dan canonical dengan template. Selanjutnya, periksa status perayapan dan indeks Search Console, canonical yang dipilih Google, waktu perayapan terakhir, dan penemuan sitemap. Catat URL, bahasa, status, canonical, arahan robots, usia cache, dan versi rilis untuk tujuan audit.
Langkah 7: Tentukan pengujian penerimaan dan regresi
Buat asersi untuk setiap jenis halaman: pratinjau dapat dirayapi dan noindex; halaman bahasa produksi mengembalikan 200 dan melakukan self-canonicalize; URL lama melakukan 301 ke URL baru; halaman yang dilindungi tidak membocorkan konten. Uji aturan robots untuk batas huruf besar/kecil dan garis miring penutup, konflik HTML/header, pembatalan validasi cache multi-edge, dan status Search Console yang disampling.
Contoh jawaban berkualitas tinggi
Sinyal-sinyal ini menyelesaikan masalah yang berbeda: robots.txt mengontrol permintaan, noindex mengontrol penyertaan indeks, dan canonical menyarankan URL yang lebih disukai di antara duplikat. Halaman pratinjau tidak bisa diblokir sekaligus diharapkan mengekspos noindex; biarkan perayap mengambilnya dengan noindex, dan gunakan otentikasi untuk rahasia. Setiap halaman bahasa produksi harus melakukan self-canonicalize dan menggunakan hreflang, sementara sitemap dan tautan internal saling cocok. Gunakan pengalihan 301 untuk migrasi, lalu verifikasi robots, respons langsung, cache, log perayapan, dan Search Console lapis demi lapis.
Kesalahan umum
- Memperlakukan robots.txt sebagai mekanisme penghapusan yang terjamin.
- Memblokir halaman dan mengharapkan perayap membaca noindex-nya.
- Menganoniskan setiap halaman bahasa ke satu bahasa saja.
- Memeriksa sumber HTML sambil mengabaikan header CDN dan objek kedaluwarsa.
- Menggunakan canonical sebagai pengganti pengalihan yang diperlukan atau kontrol akses.
Pertanyaan lanjutan dan tanggapan
Pertanyaan lanjutan 1: Mengapa URL yang diblokir masih dapat muncul di hasil pencarian?
Perayap mungkin menemukan URL melalui tautan eksternal tetapi tidak dapat mengambil kontennya. Mesin pencari masih dapat menampilkan URL atau informasi terbatas. Untuk memblokir pengindeksan, buat halaman dapat diambil dengan noindex atau wajibkan otentikasi.
Pertanyaan lanjutan 2: Apakah canonical merupakan arahan wajib?
Ini adalah sinyal yang dapat diabaikan. Konten, pengalihan, tautan internal, sitemap, dan tag canonical harus selaras; canonical bukan merupakan kontrol akses atau jaminan penghapusan.
Pertanyaan lanjutan 3: Bagaimana jika pratinjau harus tetap dapat ditemukan melalui tautan?
Izinkan perayapan dan kembalikan noindex. Jika pratinjau bersifat sensitif, gunakan login, signed URL, atau mekanisme kontrol akses lainnya. Jangan bergantung pada robots.txt untuk menyembunyikan rahasia.
Pertanyaan lanjutan 4: Bagaimana cara menyelesaikan konflik antara header HTTP dan meta robots?
Hasilkan keduanya dari satu sumber kebijakan halaman dan ambil sampel respons asal (origin) serta edge. Jangan menebak sinyal mana yang menang; periksa respons sebenarnya, HTML, dan dokumentasi mesin pencari target, lalu keluarkan satu kebijakan eksplisit.
Pertanyaan lanjutan 5: Bagaimana cara menguji perulangan canonical multibahasa?
Ambil setiap URL bahasa dan verifikasi canonical absolut, dapat dijangkau, dan mereferensikan diri sendiri. Kemudian verifikasi timbal balik hreflang dan kode bahasa, serta pastikan bahwa sitemap dan tautan internal tidak mengarah ke host lama atau bahasa yang salah.