Saya merilis pembaruan sitemap dengan sekitar 3.000 halaman baru di bawah /en/blog/.... Tidak lama kemudian, Yandex Webmaster menunjukkan pola yang tidak saya duga: Yandex mencoba merayapi jalur yang bersesuaian di /blog/..., tanpa prefix /en.
Jika URL tersebut langsung mengembalikan 404, saya bisa saja mendapat ribuan upaya crawl yang sia-sia ke jalur yang tidak ada. Untungnya, saya sudah memasang redirect 308 permanen dari route tanpa prefix bahasa ke URL bahasa Inggris yang sebenarnya.
Lapisan routing defensif kecil ini ternyata jauh lebih berguna daripada yang saya perkirakan.
Apa yang benar-benar saya amati
- Saya menerbitkan sitemap dengan sekitar 3.000 halaman baru berstruktur
/en/blog/.... - Setelah itu Yandex Webmaster menunjukkan Yandex mencoba merayapi URL yang bersesuaian di
/blog/.... - Jalur alternatif tersebut sudah dilindungi oleh redirect 308.
- Alih-alih berakhir sebagai 404, request diarahkan ke URL
/en/blog/...yang dituju.
Ada satu koreksi penting dari cara saya menceritakan kejadian ini sebelumnya: saya tidak bisa membuktikan bahwa Yandex “salah mem-parsing sitemap”. Saya melihat jalur yang tidak diharapkan setelah pembaruan sitemap, tetapi urutan waktu saja tidak membuktikan penyebab internal. Mesin pencari dapat menemukan URL dari berbagai sinyal dan sumber historis. Tanpa bukti lebih kuat, pernyataan yang akurat hanyalah bahwa Yandex merayapi jalur yang tidak saya harapkan.
Perbedaan ini penting. Crawler meminta URL aneh adalah observasi. Menjelaskan secara pasti mengapa ia memilih URL tersebut adalah klaim yang berbeda.
Mengapa redirect 308 membantu
Logika redirect saya memperlakukan jalur pendek sebagai alias permanen dari URL yang dilokalkan:
/blog/example-post -> 308 -> /en/blog/example-postJadi walaupun crawler masuk melalui URL yang tidak diduga, ia tetap mencapai halaman yang memang ingin saya sajikan.
308 Permanent Redirect adalah redirect HTTP permanen yang mempertahankan method dan body request. Untuk request GET crawler biasa, mempertahankan method biasanya bukan bagian terpenting; dalam kasus ini yang berguna adalah sifatnya yang secara eksplisit permanen. Dokumentasi Yandex Webmaster saat ini mengklasifikasikan 301 dan 308 sebagai redirect permanen.
Dokumentasi resmi Yandex Webmaster tentang redirect.
Ini bukan berarti 308 otomatis lebih baik daripada 301 untuk SEO. Dalam kasus saya, 308 sudah terpasang dan menjalankan fungsi yang saya butuhkan: URL yang tidak diharapkan tidak menjadi jalan buntu.
Redirect adalah safety net, bukan perbaikan sitemap
Redirect membatasi dampak masalah, tetapi tidak membuat crawl tambahan menjadi hal yang diinginkan. Setiap redirect yang tidak perlu menambah satu request dan satu hop. Rule yang terlalu luas juga bisa menyembunyikan kesalahan dalam pembuatan URL jika kita berhenti mencari sumber URL yang salah.
Jika sitemap sendiri berisi URL lama atau URL yang langsung redirect, solusi yang benar adalah memperbaiki sitemap dan menunjuk ke URL final. Redirect seharusnya melindungi jalur lama, alternatif, atau yang ditemukan secara tidak sengaja; bukan membenarkan data URL yang ceroboh.
Dalam kasus saya, sitemap sudah menggunakan /en/blog/.... Redirect hanya membuat situs lebih toleran ketika crawler datang melalui /blog/....
Apa yang akan saya periksa sekarang
- Buka sitemap yang benar-benar ter-deploy. Jangan hanya percaya generator; periksa file final dan sampel URL.
- Periksa response akhir. URL yang ingin diindeks idealnya langsung menuju halaman yang benar tanpa rantai redirect yang bisa dihindari.
- Uji jalur alternatif yang dapat diprediksi. Jika URL lama atau tanpa prefix punya tujuan permanen, mapping harus eksplisit dan satu-ke-satu.
- Hindari redirect chain.
A -> B -> Clebih sulit dianalisis daripadaA -> C. - Bandingkan laporan crawler dengan bukti server bila memungkinkan. Webmaster tools berguna, tetapi tidak selalu menunjukkan dari mana URL pertama kali ditemukan.
- Jangan menyimpulkan ranking dari crawling saja. Crawling, indexing, ranking, dan traffic adalah tahap yang berbeda.
curl -I https://example.com/blog/example-post
HTTP/2 308
location: https://example.com/en/blog/example-postContoh ini hanya ilustrasi. Intinya adalah memeriksa status dan tujuan yang tepat, bukan menganggap rule routing pasti bekerja.
Apa yang bisa dan tidak bisa saya simpulkan
Saya bisa memastikan bahwa redirect 308 yang sudah ada mencegah request /blog/... yang tidak diharapkan berakhir di 404 dan mengirimkannya ke URL tujuan.
Saya tidak bisa memastikan bahwa parser sitemap Yandex adalah penyebabnya. Saya juga tidak mengukur kenaikan ranking, peningkatan indexing, atau jumlah traffic tertentu yang “terselamatkan”. Klaim seperti itu akan melampaui bukti yang saya miliki.
Pelajaran yang saya pegang lebih sempit dan lebih berguna: arsitektur URL sebaiknya mampu menoleransi kesalahan yang dapat diprediksi di batas sistem. Sitemap yang bersih tetap menjadi garis pertahanan pertama. Lapisan redirect permanen yang presisi adalah yang kedua.
Dengan keduanya, jalur crawler yang tidak terduga jauh lebih kecil kemungkinannya berubah menjadi ribuan URL mati.