403 Terlarang

Pahami arti HTTP 403 Forbidden, cara Google menangani halaman yang diblokir, penyebab umum seperti kontrol akses dan WAF, serta langkah memperbaiki 403 untuk SEO.

Pertama kali diterbitkan: 27 Jun 2026 · Terakhir diperbarui: 22 Agu 2026 · Advanced
Bahasa
1 sinyal bukti di halaman ini

403 Forbidden berarti server memahami permintaan tetapi menolak akses; penolakan itu tidak harus berkaitan dengan kredensial. Berbeda dari 404 dan 401, 403 adalah penolakan aktif. Untuk SEO, halaman yang terus mengembalikan 403 kepada Googlebot tidak diindeks dan halaman yang sudah diindeks dapat dihapus, dengan hasil yang menyerupai noindex tetapi melalui mekanisme berbeda karena Google tidak dapat membaca konten dari respons 4xx. Googlebot tidak pernah mengirim kredensial, sehingga 403 pada halaman publik layak diselidiki—penyebabnya bisa CDN/WAF, blokir IP atau user-agent, plugin keamanan, atau kesalahan izin. Jangan gunakan 403 untuk throttle crawling; gunakan 429/503 sebentar bila memang perlu. Periksa niat terlebih dahulu karena 403 pada staging, admin, atau konten berpagar sering kali benar.

TL;DR — 403 berarti server memahami permintaan lalu menolaknya berdasarkan akses—berbeda dari 404 (hilang) dan 401 (autentikasi). Untuk pengindeksan, hasilnya menyerupai noindex: Google tidak mengindeks URL 403 dan menghapus URL yang sudah diindeks, walau mekanismenya (blokir server/CDN/WAF) sama sekali berbeda dari meta tag. Karena Googlebot tidak pernah mengirim kredensial, 403 kepada Googlebot hampir selalu salah konfigurasi—paling sering penyaringan bot CDN/WAF (Bot Fight Mode Cloudflare), blokir IP/UA server, plugin keamanan, atau .htaccess/izin. 403 tidak memengaruhi laju crawl—jangan gunakan untuk throttle (gunakan 429/503). Dan kasus kebalikannya penting: 403 pada robots.txt sendiri diperlakukan permisif, sedangkan 403 pada halaman adalah blokir keras.

403 vs 401 vs 404—bangun model mental yang benar

Ketiganya terus-menerus tercampur, padahal perbedaannya menentukan diagnosis. Definisi dasarnya berasal dari spesifikasi HTTP, RFC 9110 §15.5.4: server memahami permintaan tetapi menolak memenuhinya. Beberapa nuansa di bagian yang sama lebih penting daripada yang sering diakui:

  • Penolakan tidak harus tentang kredensial. RFC 9110 mengizinkan 403 karena alasan yang tidak terkait autentikasi—403 tidak selalu membuktikan peminta “dikenal” atau kredensial terlibat. Jangan membaca setiap 403 sebagai cerita autentikasi.
  • 403 tidak harus mengakui sumber daya itu ada. Spesifikasi secara eksplisit mengizinkan origin server yang ingin menyembunyikan keberadaan sumber daya terlarang untuk merespons dengan 404. Jadi sebaliknya juga benar: 404 tidak selalu berarti “tidak pernah ada”—kadang berarti “ada, tetapi saya tidak ingin Anda tahu.”
  • 401 vs. 403 bukan sekadar “lebih lemah vs. lebih kuat.” 401 adalah tantangan autentikasi—spesifikasi mengharuskannya membawa header WWW-Authenticate yang memberi tahu cara autentikasi. 403 tidak memiliki kewajiban tersebut; ini penolakan lebih luas yang tidak menjanjikan autentikasi ulang (dengan kredensial yang sama atau berbeda) akan mengubah hasil. Versi bahasa sederhana MDN: 403 “similar to 401, except that … authenticating or re-authenticating makes no difference. The request failure is tied to application logic, such as insufficient permissions.” (terjemahan) “mirip dengan 401, kecuali autentikasi atau autentikasi ulang tidak mengubah apa pun; kegagalan terkait logika aplikasi seperti izin yang tidak memadai.” Evidence for this claim A 403 response means the server understood the request but refuses to fulfill it, and authenticating does not necessarily make a difference. Scope: RFC 9110 defines the protocol semantics; it does not identify the application, firewall, or policy responsible for a specific response. Confidence: high · Verified: IETF: RFC 9110 §15.5.4 — 403 Forbidden
  • 404 Not Found, sebagai pembanding, biasanya berarti “tidak ada apa-apa di sini”, meski lihat poin penyembunyian di atas.

Perbedaan itu menjelaskan mengapa 403 kepada Googlebot layak diperiksa lagi, bukan diterima begitu saja. 401 kepada bot pada halaman khusus anggota mungkin berfungsi—area itu memang memerlukan login. 403 kepada bot pada halaman yang seharusnya publik berarti suatu aturan memutuskan peminta tidak diterima; namun, seperti di bawah, pastikan dahulu halaman itu memang dimaksudkan publik sebelum menyebutnya bug.

Cara Google menangani 403 (hasil menyerupai noindex; mekanismenya tidak)

Google memasukkan 403 ke keluarga 4xx lainnya. Dari dokumentasi Search Central: “Google doesn’t index URLs that return a 4xx status code, and URLs that are already indexed and return a 4xx status code are removed from the index.” (terjemahan) “Google tidak mengindeks URL yang mengembalikan kode status 4xx, dan URL yang sudah diindeks lalu mengembalikan kode status 4xx dihapus dari indeks.” Selain itu: “All 4xx errors, except 429, are treated the same: Google crawlers inform the next processing system that the content doesn’t exist.” (terjemahan) “Semua kesalahan 4xx, kecuali 429, diperlakukan sama: crawler Google memberi tahu sistem pemrosesan berikutnya bahwa konten tidak ada.” Google juga mencatat frekuensi crawl URL yang sudah dikenal berkurang bertahap semakin lama URL mengembalikan 4xx—efek per-URL, terpisah dari laju crawl situs secara keseluruhan. Evidence for this claim Google does not index 4xx URLs and removes already-indexed 4xx URLs over time. Scope: Google's crawler documentation supports the indexing outcome for persistent 403 responses, not the article's analogy to noindex. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers

Jadi hasilnya menyerupai noindex: halaman tidak masuk indeks, dan jika sudah ada, keluar seiring waktu. Namun mekanismenya benar-benar berbeda, bukan hanya kosmetik: tag noindex harus diambil dan diparsing dari HTML agar berlaku, sedangkan 403 menghentikan Google membaca konten apa pun—tidak ada halaman untuk diproses. Dua jalur berbeda yang kebetulan berujung pada hasil sama, yaitu tidak muncul di Penelusuran. Karena itu, dalam panduan HTTP Status Codes saya saya menyebut 403 sebagai “the client is known but doesn’t have access rights,” (terjemahan) “klien dikenal tetapi tidak memiliki hak akses,” dan mencatat bahwa 4xxs membuat halaman keluar dari indeks—meski “dikenal” di sana adalah ringkasan laporan Google, bukan klaim bahwa setiap 403 melibatkan peminta berkredensial.

Mengapa 403 kepada Googlebot layak diselidiki (tidak selalu kesalahan)

Bagian ini bertumpu pada dokumen bantuan Page Indexing Google. Untuk halaman yang memang ingin diindeks, Google menjelaskan bahwa Googlebot tidak pernah memberikan kredensial; karena itu 403 yang muncul sebagai penolakan kredensial menandakan konfigurasi akses yang keliru dan halaman tidak akan diindeks. Bacalah dalam konteks: ini panduan khusus laporan untuk halaman yang diasumsikan ingin Anda indeks, bukan klaim universal bahwa setiap 403 kepada Googlebot adalah bug. Googlebot tidak melakukan autentikasi, sehingga 403 yang dirumuskan sebagai “kredensial Anda tidak cukup” tidak sepenuhnya berlaku—tetapi banyak 403 tidak berkaitan dengan kredensial, dan server dapat secara sah memutuskan Googlebot (atau siapa pun) tidak memperoleh sumber daya, titik.

Sebelum mengejar perbaikan, tanyakan: apakah ini halaman yang benar-benar ingin Anda jadikan publik dan indeks? Jika staging, area admin, paywall, atau apa pun yang digate, 403 kepada Googlebot benar dan tidak perlu diperbaiki (lihat “Kapan 403 sebenarnya wajar” di bawah). Jika memang publik, kemungkinan besar aturan salah mengenai peminta—WAF menandai crawler, blokir rentang IP mencakup rentang Google, atau plugin keamanan terlalu paranoid—tetapi saya tidak memiliki data andal tentang frekuensi tiap penyebab, jadi anggap daftar berikut kandidat pemeriksaan, bukan diagnosis. Panduan Google untuk halaman yang seharusnya publik: izinkan pengguna tanpa login, atau izinkan Googlebot tanpa autentikasi setelah identitasnya diverifikasi.

403 tidak memengaruhi laju crawl—jangan gunakan untuk throttle

Orang kadang memakai 403 (atau 404) agar Googlebot mundur dari server yang kewalahan. Jangan. Google tegas bahwa 401 dan 403 bukan alat pembatasan laju crawl: kode 4xx selain 429 tidak memengaruhi laju tersebut. Perhatikan ruang lingkupnya: Google secara terpisah mengatakan frekuensi crawl URL yang dikenal berkurang semakin lama URL menghasilkan 4xx—itu penyempitan minat pada satu URL, bukan throttle laju crawl seluruh situs. Jika membutuhkan yang terakhir, 403 tidak melakukannya.

Gary Illyes menulis artikel khusus tentang ini (Don’t 404 my yum): “All 4xx HTTP status codes (again, except 429) will cause your content to be removed from Google Search.” (terjemahan) “Semua kode status HTTP 4xx (sekali lagi, kecuali 429) akan membuat konten Anda dihapus dari Google Penelusuran.” Tuas darurat yang benar adalah 500, 503, atau 429 selama jendela singkat (jam, bukan hari) —dan itu pun bukan izin bebas: Google memperingatkan respons 5xx yang menetap berhari-hari juga berisiko menghapus halaman dari indeks. Barry Schwartz merangkum dampak insiden sebelumnya: situs “lost load[s] of their pages from our index because they were serving them with a 403 status code instead of a 503.” (terjemahan) “kehilangan banyak halaman dari indeks karena menyajikannya dengan kode 403, bukan 503.” 503 dipahami sementara; 403 membuat Anda dihapus dari indeks.

Jebakan robots.txt: 403 pada robots.txt permisif, bukan restriktif

Inilah perbedaan yang hampir selalu dilewatkan artikel lain, dan ini membalik intuisi. 403 pada halaman adalah blokir keras. Namun 403 pada file robots.txt itu sendiri diperlakukan sebaliknya. Dari spesifikasi robots.txt Google: “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (terjemahan) “Crawler Google memperlakukan semua kesalahan 4xx, kecuali 429, seolah-olah file robots.txt yang valid tidak ada. Artinya Google menganggap tidak ada pembatasan crawl.” Evidence for this claim A 403 on `/robots.txt` is handled differently from a 403 on a page: Google treats a non-429 4xx robots response as if no valid robots file exists and assumes no restrictions from that file. Scope: robots.txt fetch only Confidence: high · Verified: How Google interprets the robots.txt specification

Jika firewall mulai mengembalikan 403 untuk robots.txt, Google menyimpulkan Anda tidak memiliki aturan dan crawl dengan bebas—termasuk jalur yang ingin Anda larang. Versi Illyes yang berwarna: jika ada aturan yang melarang “dirty laundry” (terjemahan) “aib Anda”, kini Googlebot juga mengetahuinya. Jangan samakan “robots.txt saya mengembalikan 403” (Google mengabaikan aturan) dengan “halaman saya mengembalikan 403” (URL dihapus dari indeks). Efeknya berlawanan, dan salah mendiagnosis membuat Anda memperbaiki hal yang keliru.

Cara Bing menangani 403

Sejujurnya, dokumentasi publik Bing tentang 403 lebih tipis daripada dokumentasi Google, jadi saya membatasi klaim. Bingbot ditolak oleh mekanisme yang sama dengan Googlebot—aturan robots.txt, blokir IP/user-agent di tingkat server, dan aturan WAF/firewall. Bing Webmaster Tools menampilkan kesalahan crawl melalui peringatan crawl-error. Kesimpulan praktisnya sama di kedua mesin: izinkan crawler terverifikasi melewati lapisan keamanan, dan verifikasi bot melalui rentang IP yang dipublikasikan serta reverse DNS, bukan dengan mempercayai string user-agent. Memperbaiki Googlebot tidak otomatis memperbaiki semua bot; periksa alat kedua mesin setelah perubahan WAF.

Penyebab umum (tidak diurutkan—saya tidak memiliki data prevalensi lintas situs)

Perlindungan bot CDN/WAF—penyebab yang paling kurang dilayani dalam konten SEO saat ini. Saya akan mulai memeriksa ini pada 2026, meski tidak dapat memastikan seberapa sering dibanding penyebab lain. Bot Fight Mode dan Super Bot Fight Mode Cloudflare, WAF Managed Rules, serta aturan firewall khusus rutin mengembalikan 403 kepada Googlebot dan Bingbot sebagai kerusakan sampingan. Tandanya: blokir terjadi di edge, sehingga server origin dan CMS terlihat bersih sementara GSC tetap melaporkan 403. Periksa Security Events di dasbor CDN untuk melihat crawler ditantang atau diblokir.

2. Blokir IP atau user-agent di tingkat server/hosting. Sebagian host memblokir berdasarkan user-agent atau membatasi laju secara default, dan blokir rentang IP untuk lalu lintas abusif dapat menangkap rentang crawler.

3. Salah konfigurasi robots.txt / .htaccess. Deny from yang tersisa atau aturan rewrite rusak dapat melarang seluruh direktori. (Ingat jebakan robots.txt di atas.)

4. Plugin keamanan. Wordfence, iThemes Security, dan alat serupa dikirim dengan default pemblokiran bot agresif yang dapat menangkap crawler sah.

5. Dinding login / konten terautentikasi. Apa pun di balik autentikasi akan menghasilkan 403s untuk bot—Googlebot tidak pernah login. Ini sering disengaja (lihat bagian terakhir).

6. Kesalahan izin file/direktori. Penyebab klasik admin server. Di WordPress, Rank Math mendokumentasikan nilai wajar—direktori 755/750, file 644/640, wp-config.php 400/440—serta “regenerate .htaccess” melalui pengaturan Permalinks sebagai perbaikan umum.

7. Malware / situs yang disusupi menyuntikkan aturan akses buruk, dan 8. pemblokiran geo yang tidak sengaja menangkap rentang IP crawler.

Mendiagnosis 403—pisahkan lapisan mana yang mengeluarkannya

Sebagian besar panduan langsung menyuruh “nonaktifkan plugin”. Keterampilan sebenarnya adalah menemukan lapisan yang menolak permintaan—kode status 403 saja tidak memberi tahu; Anda memerlukan header respons, log, atau entri peristiwa keamanan yang menunjuk CDN, WAF, aplikasi, host, izin, geografi, atau cache sebelum menyebut penyebab. Jangan langsung menyimpulkan “pasti WAF” tanpa bukti. Berikut perbedaan perbaikannya menurut lapisan:

  1. GSC Page Indexing → “Blocked due to access forbidden (403)” untuk melihat URL terdampak, lalu URL Inspection → Test Live URL untuk respons langsung.
  2. Reproduksi dengan curl, ganti user-agent, untuk memastikan status yang dikirim server:
    # As a generic client
    curl -I https://example.com/page/
    # Spoofing Googlebot's UA (tests UA-based rules)
    curl -I -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/page/
    Jika UA browser biasa mendapat 200 tetapi UA Googlebot mendapat 403, Anda menemukan aturan user-agent.
  3. Periksa status robots.txt sendiri (apakah juga 403? masalahnya berbeda—lihat di atas).
  4. Tinjau Security Events CDN/WAF untuk crawler yang ditantang atau diblokir.
  5. Verifikasi crawler benar-benar Googlebot melalui reverse + forward DNS, bukan string UA (yang mudah dipalsukan).
  6. Isolasi dengan menonaktifkan bertahap—satu aturan WAF atau plugin setiap kali—sampai 403 hilang.

Memperbaikinya—allowlist bot dengan cara yang benar

Perbaikan yang menggoda adalah mengizinkan string user-agent Googlebot. Jangan berhenti di sana—string UA mudah dipalsukan, jadi allowlist hanya berdasarkan UA adalah celah keamanan yang membiarkan scraper mana pun yang mengaku Googlebot masuk. Verifikasi dengan benar:

  • Konfirmasikan bot melalui reverse DNS + forward DNS atau terhadap rentang IP yang dipublikasikan Google/Bing.
  • Sebagian besar CDN/WAF menyediakan kategori “verified bots” yang melakukan validasi ini; pilih itu daripada aturan UA mentah.
  • Perbaiki aturan spesifik (WAF managed rule, satu aturan firewall, satu setelan plugin), bukan menonaktifkan seluruh keamanan.
  • Lalu Validate Fix di laporan Page Indexing GSC dan, bila mendesak, minta pengindeksan ulang melalui URL Inspection.

Kapan 403 sebenarnya wajar—jangan “perbaiki” ini

Tidak setiap 403 adalah bug. 403 tepat dan disengaja untuk situs staging, area admin, bagian privat anggota, dan konten berbayar/berpagar yang memang tidak ingin Anda indeks. Dalam audit Ahrefs atau Screaming Frog, 403 pada area itu bukan masalah—perbaikan hanya diperlukan jika halaman yang seharusnya publik dan dapat diindeks terblokir tanpa sengaja. Jangan refleks menyelesaikan setiap 403 dari audit; pastikan dulu halaman memang ingin Anda masukkan ke indeks.

Untuk keluarga yang lebih luas—perbedaan 4xx dan 5xx, serta posisi 403—lihat panduan Kode Status HTTP dan Dampaknya bagi SEO saya, serta pendalaman saudara 401 Unauthorized dan 404 Not Found dalam klaster ini.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.