Mas Ahmad SafwanSEO & AI Search Knowledge Base Cari
Menu

Technical SEO menengah

HTTP Status Code untuk SEO

Kode status adalah kalimat pertama yang diucapkan server ke Googlebot sebelum konten apa pun. Referensi ini disusun per kode: apa yang dilakukan Google saat menerimanya, dan kesalahan yang biasanya menyertainya.

Oleh Diterbitkan 5 menit baca

Setiap respons HTTP dimulai dengan tiga digit. Digit pertama menentukan kelasnya: 2xx berhasil, 3xx dialihkan, 4xx kesalahan di sisi klien (URL-nya), 5xx kesalahan di sisi server. Google mendokumentasikan perlakuan spesifik untuk kode-kode yang paling sering ditemui, dan itulah yang dirangkum di bawah.

Tabel ringkas

KodeNamaPerlakuan GoogleDiindeks?
200OKDiteruskan ke antrean indexing.Bisa
301Moved PermanentlyDiikuti; target jadi kandidat canonical yang kuat.Target
302FoundDiikuti; sumber tetap kandidat canonical.Sumber
304Not ModifiedGoogle memakai salinan yang sudah ada. Hemat crawl.Tetap
307 / 308Temporary / Permanent RedirectSetara 302 / 301 untuk kanonikalisasi.Sumber / target
401 / 403Unauthorized / ForbiddenDianggap tidak bisa diakses. URL dikeluarkan dari indeks setelah beberapa kali gagal.Tidak
404Not FoundKonten dihapus dari indeks setelah dikonfirmasi. Google tetap sesekali mencoba lagi.Tidak
410GoneDiperlakukan sama dengan 404 menurut dokumentasi Google.Tidak
429Too Many RequestsDianggap Google sebagai sinyal server kelebihan beban (diperlakukan seperti server error); crawl diperlambat.Tetap sementara
500 / 502 / 504Server errorGoogle memperlambat crawl. Kalau terus-menerus, URL dikeluarkan dari indeks.Tetap sementara
503Service UnavailableSinyal "coba lagi nanti". Pilihan yang benar untuk maintenance singkat. Bila berhari-hari, URL mulai dikeluarkan.Tetap sementara

2xx

200 OK

Satu-satunya kode yang membuat halaman diproses lebih lanjut. Masalahnya justru ketika 200 dipakai untuk halaman yang seharusnya bukan 200: halaman "tidak ditemukan" yang tampil cantik tapi statusnya 200 (soft 404), halaman kosong, atau halaman error aplikasi yang dibungkus template normal. Google mendeteksi soft 404 dari isi dan memperlakukannya seperti 404, tapi baru setelah meng-crawl. Sementara itu crawl terbuang dan laporan jadi keruh.

204 No Content

Berhasil tapi tanpa isi. Google memperlakukannya seperti soft 404. Jarang ditemui di halaman HTML, lebih sering di endpoint API yang tak sengaja tertaut.

3xx

Dibahas lengkap di redirect 301 vs 302. Yang perlu diingat di sini: dokumentasi Google menyatakan crawler-nya mengikuti sampai 10 hop untuk halaman, tapi hanya lima hop untuk robots.txt. Redirect chain panjang memperlambat crawl dan, di batas tertentu, dilaporkan sebagai "Redirect error".

304 Not Modified

Server menjawab 304 kalau Googlebot mengirim header If-Modified-Since atau If-None-Match dan halaman belum berubah. Google memakai versi yang sudah ada dan menghemat bandwidth kedua pihak. Server statis biasanya sudah mendukungnya; aplikasi dinamis sering tidak. Untuk situs besar ini cara murah menghemat crawl.

4xx

404 Not Found dan 410 Gone

Keduanya memberi tahu Google bahwa halaman tidak ada. Dokumentasi Google menyatakan semua 4xx kecuali 429 diperlakukan sama: konten dianggap tidak ada. Pernyataan lama John Mueller bahwa 410 diproses "sedikit lebih cepat" boleh dianggap perbedaan yang bisa diabaikan. Yang lebih penting: 404 bukan masalah SEO dengan sendirinya. Setiap situs punya 404, dan Google tidak menghukum situs karenanya. 404 jadi masalah kalau (a) halamannya sebenarnya masih ingin tampil, (b) ada banyak internal link yang mengarah ke sana, atau (c) halaman itu punya link dari luar yang sinyalnya hilang, dalam hal itu pertimbangkan redirect ke halaman setara.

Laporan "Not found (404)" di Page indexing mencantumkan URL yang pernah Google ketahui. URL lama dari bertahun-tahun lalu bisa terus muncul di sana. Itu normal dan tidak perlu "diperbaiki" kecuali URL-nya memang seharusnya ada.

Soft 404

Istilah Google untuk halaman yang mengembalikan 200 tapi isinya menyatakan "tidak ditemukan", atau halaman yang isinya nyaris kosong, atau redirect massal ke halaman yang tidak relevan (misalnya semua URL lama ke beranda). Google mengeluarkannya dari indeks. Perbaikannya: kembalikan status yang benar (404/410), atau isi halamannya, atau redirect ke halaman yang setara.

401 dan 403

Halaman butuh login atau dilarang. Googlebot tidak login, jadi halaman itu tidak diindeks. Masalah muncul kalau firewall atau CDN memblokir Googlebot dengan 403 karena dianggap bot: gejalanya halaman-halaman penting berubah status ke "Blocked due to access forbidden (403)". Verifikasi Googlebot lewat reverse DNS atau daftar IP resmi Google, bukan lewat string user-agent saja.

429 Too Many Requests

Server minta klien memperlambat. Dokumentasi Google menyebut 429 sebagai satu-satunya 4xx yang diperlakukan seperti server error: laju crawl dikurangi. Untuk robots.txt pun, 429 adalah satu-satunya 4xx yang tidak diperlakukan sebagai "tidak ada berkas". Kalau rate limiter mengembalikan 429 ke Googlebot secara rutin, crawl situs melambat tanpa terlihat di laporan lain selain Crawl stats.

5xx

500, 502, 504

Server gagal. Google memperlambat crawl saat menemui banyak 5xx, dan kalau sebuah URL terus-menerus 5xx, ia dikeluarkan dari indeks. Lonjakan 5xx paling cepat terlihat di laporan Crawl stats (Settings → Crawl stats) pada grafik "By response". Log server menunjukkan URL mana yang terdampak.

503 Service Unavailable

Kode yang benar untuk maintenance terjadwal atau kelebihan beban singkat. Google membacanya sebagai "sementara, coba lagi" dan mempertahankan halaman di indeks. Header Retry-After adalah praktik HTTP yang baik untuk klien lain; dokumentasi Google tidak menyebut Googlebot memakainya. Kalau 503 bertahan berhari-hari, Google mulai memperlakukannya seperti error permanen. Ingat juga bahwa 503 pada robots.txt menghentikan crawl seluruh situs selama 12 jam pertama.

Contoh 503 untuk maintenance
# Apache: maintenance sementara, semua halaman 503 kecuali dari IP kantor
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.7$
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
Header always set Retry-After "3600" env=REDIRECT_STATUS

Cara melihat kode status

# Satu URL, header saja
curl -sI https://www.example.com/halaman/

# Ikuti redirect dan tampilkan rantainya
curl -sIL https://www.example.com/halaman/ | grep -iE "^(HTTP|location)"

# Berpura-pura jadi Googlebot (untuk melihat apakah server membedakan)
curl -sI -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://www.example.com/

Untuk skala besar, crawler desktop mengekspor kode status semua URL beserta halaman yang menautkannya, sehingga internal link ke 404 dan chain redirect bisa diperbaiki dari sumbernya. Untuk melihat apa yang benar-benar diterima Google, bukan yang diterima laptop kita, pakai URL Inspection → Test live URL, karena CDN dan firewall bisa menjawab berbeda untuk Googlebot.

Rujukan

  1. HTTP status codes, network errors, and DNS errors Google Search Central
  2. Verifying Googlebot and other Google crawlers Google Search Central
  3. RFC 9110: HTTP Semantics, status codes IETF

Tentang penulis

Ahmad Safwan menulis dan mendokumentasikan pembelajaran tentang SEO, technical SEO, search visibility, dan perkembangan AI Search di situs ini. Koreksi dan pertanyaan lewat halaman kontak.

Lanjut membaca

  • Crawling vs indexingpemula

    Dua proses berbeda dengan alat kontrol berbeda, dan kenapa di-crawl tidak berarti diindeks.

  • Robots.txtmenengah

    Sintaks, aturan pencocokan Google, contoh berkas, dan lima kesalahan yang sering terjadi.

  • XML sitemappemula

    Format, batas, lastmod yang jujur, dan apa yang tidak dilakukan sitemap.