Setiap kali Anda membuka sebuah halaman, browser mengirim permintaan ke server, dan server selalu menjawab dengan kode status tiga angka. Kode 200 berarti halaman ditemukan dan dikirim. Biasanya kode ini tidak pernah Anda lihat karena halamannya langsung tampil. Kode yang paling sering muncul ke permukaan justru 404 Not Found. Arti 404 not found sederhana: server bisa dihubungi, tetapi tidak menemukan apa pun di alamat yang Anda minta.

Kesalahan yang memicu 404 bisa datang dari dua arah. Pengunjung bisa salah mengetik alamat, sementara pemilik situs bisa menghapus atau memindahkan halaman tanpa meninggalkan petunjuk. Artikel ini membahas keduanya, mulai dari cara membaca halaman 404, langkah perbaikan di server, hingga dampaknya di Google.

404 Not Found Artinya Server Aktif, tetapi Alamatnya Kosong

Not found artinya "tidak ditemukan". Secara utuh, 404 not found artinya server menerima permintaan Anda, memeriksanya, lalu menyatakan tidak ada konten di alamat tersebut. Jadi error 404 adalah jawaban, bukan kegagalan koneksi.

Pembedaan ini penting bagi pengunjung awam. Halaman 404 menandakan internet Anda berjalan normal, domainnya aktif, dan server situs itu hidup. Yang tidak ada hanya satu alamat spesifik di dalamnya. Halaman lain di situs yang sama umumnya tetap bisa dibuka.

Posisi 404 akan lebih jelas kalau kita mengikuti perjalanan sebuah permintaan. Pertama, DNS mencari alamat server. Bila langkah ini gagal, browser menampilkan DNS_PROBE_FINISHED_NXDOMAIN. Kedua, browser menghubungi server. Bila server diam, yang muncul adalah ERR_CONNECTION_TIMED_OUT. Kode 404 baru mungkin muncul di langkah ketiga, setelah server menerima permintaan dan mencari halamannya.

Arti 404 Not Found: permintaan lolos DNS dan koneksi, lalu server tidak menemukan halamannya, beda dari NXDOMAIN dan timeout.
Arti 404 Not Found: permintaan lolos DNS dan koneksi, lalu server tidak menemukan halamannya, beda dari NXDOMAIN dan timeout.

Kelompok kode 4xx sendiri sudah ada sejak spesifikasi HTTP/1.0 (RFC 1945) yang terbit pada Mei 1996. Spesifikasi itu menggolongkan 4xx sebagai kesalahan yang tampaknya berasal dari sisi klien, yaitu browser atau pengguna. Karena itu, 404 secara resmi dianggap sebagai "permintaan yang menunjuk alamat keliru", walaupun dalam praktiknya penyebabnya sering ada di pihak pemilik situs. Sebaliknya, kode 5xx seperti 502 Bad Gateway menandakan server sendiri yang gagal memenuhi permintaan yang sah.

HTTP 404 Menurut Standar: Sementara, Permanen, atau Disembunyikan

Definisi HTTP 404 yang berlaku sekarang tertulis di RFC 9110 (2022). Ada tiga hal di dalamnya yang sering terlewat.

  1. 404 tidak menyatakan berapa lama: Kode ini tidak memberi tahu apakah halamannya hilang sementara atau selamanya. Untuk halaman yang sengaja dihapus permanen, standar menyediakan kode 410 Gone.
  2. 404 boleh dipakai untuk menyembunyikan: Server boleh membalas 404 untuk halaman yang sebenarnya ada tetapi terlarang, supaya keberadaannya tidak bocor. Pembahasan lengkapnya ada di artikel beda error 403 dan 404.
  3. 404 boleh disimpan di cache: Respons 404 termasuk heuristically cacheable. Artinya, browser dan CDN boleh menyimpannya walaupun server tidak memberi instruksi cache apa pun.

Poin ketiga punya akibat praktis yang akan kita temui lagi di section penyebab. Halaman yang baru diunggah bisa tetap tampil 404 selama beberapa menit karena jawaban lama masih tersimpan.

Membaca Halaman 404: Siapa yang Sebenarnya Menjawab

Tampilan halaman error 404 not found berbeda-beda, dan perbedaan itu memberi petunjuk tentang siapa yang menjawab. Berikut tiga bentuk yang paling sering muncul.

  1. Apache bawaan: judul besar "Not Found" disusul kalimat The requested URL was not found on this server.
  2. Nginx bawaan: tulisan "404 Not Found" di tengah dengan kata nginx di kaki halaman, kadang disertai nomor versi seperti nginx/1.24.0.
  3. Halaman kustom: halaman ber-logo dan bermenu situs, buatan CMS atau tema, yang biasa disebut 404 page not found kustom.

Teks halaman bawaan Apache di atas kami ambil langsung dari Apache 2.4.67 saat menguji artikel ini. Halaman polos seperti itu menandakan permintaan tidak pernah sampai ke aplikasi seperti WordPress. Sebaliknya, halaman 404 bermenu berarti aplikasi sudah berjalan, hanya saja tidak menemukan artikel atau produk dengan alamat tersebut.

Tampilan 404 Not Found bawaan Apache dan Nginx dibanding halaman 404 kustom yang bermenu situs dan berkotak pencarian.
Tampilan 404 Not Found bawaan Apache dan Nginx dibanding halaman 404 kustom yang bermenu situs dan berkotak pencarian.

Cara Mengatasi 404 Not Found sebagai Pengunjung

Sebagai pengunjung, Anda tidak bisa memperbaiki server orang lain. Namun, ada lima langkah yang sering cukup untuk menemukan halaman yang dicari.

  1. Periksa ejaan alamat: Perhatikan tanda hubung, garis bawah, dan huruf besar. Pada server Linux, /Laporan.pdf dan /laporan.pdf dianggap dua berkas berbeda karena sistem berkasnya case sensitive.
  2. Potong alamat ke folder induk: Ubah situs.com/blog/2023/judul-lama menjadi situs.com/blog. Dari halaman daftar itu, artikelnya biasanya bisa ditemukan lewat judul.
  3. Gunakan pencarian: Pakai kotak pencarian situs tersebut, atau ketik site:situs.com kata kunci di Google.
  4. Muat ulang tanpa cache: Tekan Ctrl+Shift+R di Windows atau Cmd+Shift+R di Mac. Langkah ini membantu bila halaman baru saja dipulihkan tetapi browser masih menyimpan jawaban 404 yang lama.
  5. Buka arsip lama: Tempel alamatnya di web.archive.org. Halaman yang sudah dihapus pemiliknya sering masih tersimpan di sana.

Kalau kelima langkah itu gagal, halaman tersebut kemungkinan besar memang sudah tidak ada. Melaporkannya ke pemilik situs tetap berguna, karena tautan rusak itu mungkin juga dialami pengunjung lain.

Penyebab Error 404 di Website Anda Sendiri

Di sisi pemilik situs, 404 hampir selalu berasal dari perubahan yang tidak disertai pemberitahuan ke alamat lama. Lima penyebab berikut mencakup sebagian besar kasus.

Mengganti slug satu artikel, atau mengganti struktur permalink seluruh situs, langsung mematikan alamat lama. Tautan dari situs lain, bookmark, dan hasil pencarian tetap menunjuk alamat lama itu. Tanpa redirect 301, semuanya berakhir di 404.

Berkas belum terunggah atau salah folder

Unggahan lewat FTP yang terputus atau berkas yang tertaruh di luar folder publik juga menghasilkan 404. Folder publik ini adalah document root, yaitu public_html di kebanyakan hosting cPanel. Berkas yang tersimpan satu tingkat di atasnya tidak akan pernah bisa diakses dari browser.

Huruf besar-kecil nama berkas

Situs yang dikembangkan di Windows atau macOS lalu dipindahkan ke server Linux sering terkena masalah ini. Di laptop, Logo.PNG dan logo.png dianggap sama, sedangkan di server keduanya dianggap berbeda. Gambar atau halaman yang normal saat diuji lokal tiba-tiba membalas 404 setelah tayang.

Aturan .htaccess WordPress hilang

Gejalanya khas: beranda terbuka normal, tetapi semua artikel membalas 404. WordPress memakai aturan penulisan ulang di berkas .htaccess untuk menerjemahkan alamat cantik ke index.php. Berkas itu bisa hilang saat migrasi atau tertimpa plugin. Cara memulihkannya sudah kami bahas di artikel permalink.

404 yang tertahan di cache

Seperti dijelaskan di section standar, respons 404 boleh disimpan. Pada Cloudflare, respons 404 dan 410 untuk berkas yang di-cache disimpan 3 menit secara bawaan bila server tidak mengirim header cache. Jadi, kalau Anda baru saja mengunggah berkas yang tadinya hilang, tunggu beberapa menit atau bersihkan cache sebelum menyimpulkan unggahannya gagal.

Tidak Semua Error 404 Perlu Diperbaiki

Membuka access log server untuk pertama kalinya sering mengejutkan. Ada ratusan baris 404 untuk alamat yang tidak pernah Anda buat, misalnya /wp-login.php di situs non-WordPress, /.env, /xmlrpc.php, atau /phpmyadmin. Baris seperti itu berasal dari bot pemindai otomatis yang mencoba alamat umum di jutaan situs. Untuk permintaan seperti itu, 404 justru jawaban yang benar.

Google pun tidak meminta semua 404 dihilangkan. Panduan Search Console menyebut bahwa 404 hanya perlu diperbaiki untuk URL yang Anda tautkan sendiri atau yang tercantum di sitemap. Halaman yang memang dihapus tanpa pengganti wajar membalas 404.

Cara mengatasi error 404 sesuai prioritas: perbaiki tautan internal, redirect 301 URL ber-backlink, biarkan sisanya 404.
Cara mengatasi error 404 sesuai prioritas: perbaiki tautan internal, redirect 301 URL ber-backlink, biarkan sisanya 404.

Dari situ, prioritas perbaikan bisa dibagi tiga lapis.

  1. Ditautkan dari halaman Anda sendiri: Ini paling mendesak, karena pengunjung Anda sendiri yang tersandung. Perbaiki tautannya di halaman asal.
  2. Punya backlink atau pernah ramai dikunjungi: Alamat lama ini masih membawa pengunjung dan nilai dari situs lain. Pasang redirect 301 ke halaman pengganti yang setara.
  3. Tidak dikenal, tidak ditautkan, dan tidak punya riwayat: Biarkan tetap 404. Membuat redirect untuk alamat seperti ini hanya menambah beban konfigurasi tanpa manfaat.

Cara Mengatasi Error 404 di Server

Langkah berikut berlaku untuk server berbasis Apache maupun Nginx, termasuk hosting cPanel yang menyediakan akses ke berkas log.

Langkah #1: Pastikan Kodenya Memang 404

Halaman bertulisan "tidak ditemukan" belum tentu membalas kode 404. Periksa kode status sebenarnya dengan perintah berikut:

Bash
curl -sI https://situs.com/alamat-yang-dicek

Baris pertama keluarannya menunjukkan kode yang dikirim server, misalnya HTTP/2 404 atau HTTP/1.1 404 Not Found. Kalau baris itu berbunyi 200 padahal isinya pesan error, Anda sedang menghadapi soft 404. Tanpa terminal, Anda bisa melihat kolom Status di tab Network pada DevTools browser.

Langkah #2: Daftar URL 404 Terbanyak dari Access Log

Error log tidak bisa diandalkan untuk mencari 404. Dalam uji kami pada Apache 2.4.67, permintaan ke berkas yang tidak ada tidak menulis satu baris pun ke error log pada tingkat log bawaan. Catatannya hanya ada di access log, di kolom kode status. Perintah berikut menghitung alamat yang paling sering membalas 404 pada log berformat combined, yaitu format bawaan Apache dan Nginx:

Bash
awk '$9 == 404 {print $7}' access.log \
  | sort | uniq -c | sort -rn | head -20

Kolom ke-7 adalah alamat yang diminta, dan kolom ke-9 adalah kode status. Untuk mengetahui halaman mana yang menautkan alamat rusak tersebut, tampilkan kolom referer:

Bash
awk '$9 == 404 && $11 != "\"-\"" \
  {print $11, $7}' access.log \
  | sort | uniq -c | sort -rn | head

Baris dengan referer dari domain Anda sendiri masuk lapis pertama prioritas di section sebelumnya. Di Linux, log umumnya berada di /var/log/nginx/ atau /var/log/apache2/. Di cPanel, log mentahnya tersedia lewat menu Raw Access. Penjelasan lebih lengkap tentang jenis log ada di artikel log server.

Langkah #3: Putuskan Nasib Tiap URL

Setiap URL 404 yang penting hanya punya tiga kemungkinan tindakan.

KondisiTindakanKode
Halaman terhapus tidak sengajaKembalikan halamannya200
Konten pindah ke alamat lain yang setaraRedirect permanen ke alamat baru301
Konten sengaja dihapus, tanpa penggantiBiarkan tidak ditemukan404 atau 410

Redirect 301 hanya tepat kalau halaman tujuan benar-benar setara. Mengarahkan artikel "tutorial cPanel" ke beranda tidak menolong pengunjung yang mencari tutorial itu.

Langkah #4: Pasang Halaman 404 Kustom tanpa Mengubah Kodenya

Halaman 404 kustom membantu pengunjung menemukan jalan, asalkan kode statusnya tetap 404. Di Apache, tambahkan baris berikut ke .htaccess atau konfigurasi virtual host:

APACHE
ErrorDocument 404 /404.html

Di Nginx, gunakan direktif error_page di blok server:

Nginx
error_page 404 /404.html;

Keduanya bekerja dengan internal redirect, sehingga browser tetap menerima kode 404. Jebakannya muncul saat path diganti alamat lengkap seperti https://situs.com/404.html. Dalam uji kami di Apache 2.4.67, bentuk itu membuat server membalas 302 Found dan mengarahkan browser ke halaman 404. Nginx berperilaku serupa, dan bentuk error_page 404 =200 mengubah kode secara terang-terangan. Ulangi Langkah #1 setelah memasang halaman kustom untuk memastikan kodenya masih 404.

Halaman 404 kustom dengan path lokal tetap membalas 404, sedangkan alamat lengkap membalas 302 lalu 200 (soft 404).
Halaman 404 kustom dengan path lokal tetap membalas 404, sedangkan alamat lengkap membalas 302 lalu 200 (soft 404).

Isi halaman 404 kustom yang baik cukup tiga hal: pesan singkat bahwa halaman tidak ditemukan, kotak pencarian, dan tautan ke beranda atau kategori populer. Hindari pengalihan otomatis ke beranda setelah beberapa detik. Pengunjung jadi tidak sempat memahami bahwa alamat yang mereka buka sudah tidak berlaku.

Langkah #5: Pantau Laporan di Search Console

Laporan Page indexing di Google Search Console memisahkan URL berstatus Not found (404) dari Soft 404. Periksa keduanya setiap kali ada perubahan struktur alamat, misalnya setelah migrasi atau ganti tema. URL di kelompok Soft 404 perlu didahulukan karena biasanya berasal dari konfigurasi yang keliru.

404, Soft 404, dan SEO: Hal yang Perlu Anda Pertimbangkan

Kekhawatiran paling umum soal error 404 adalah peringkat situs turun. Kenyataannya lebih tenang, tetapi ada beberapa konsekuensi yang perlu dipahami.

  1. URL 404 dikeluarkan dari indeks, situsnya tidak dihukum: Google tidak mengindeks URL yang membalas kode 4xx. URL terindeks yang mulai membalas 404 akan dikeluarkan secara bertahap. Dokumentasi Google juga menyatakan kode 4xx selain 429 tidak memengaruhi kecepatan crawl situs.
  2. Redirect semua 404 ke beranda tidak menolong: Cara ini terlihat rapi, tetapi Google membacanya sebagai soft 404. Pernyataan itu disampaikan John Mueller dari Google dan diberitakan Search Engine Roundtable pada 2016. Pengunjung pun kehilangan petunjuk bahwa halaman yang dicari sudah tidak ada.
  3. 410 dan 404 nyaris sama di mata Google: Google memperlakukan semua kode 4xx selain 429 dengan cara yang sama. Menurut Mueller pada 2018, 410 kadang hanya keluar dari indeks beberapa hari lebih cepat. Pakai 410 bila Anda yakin kontennya tidak akan kembali, tetapi jangan berharap hasil yang berbeda jauh.
  4. Soft 404 lebih merepotkan daripada 404 asli: Halaman error yang membalas 200 atau 302 membuat Googlebot terus merayapi alamat kosong. Masalah ini juga tidak terlihat oleh pemilik situs yang hanya memeriksa tampilan di browser.
  5. Halaman 404 kustom tetap perlu ringan: Bot pemindai bisa menembakkan ratusan permintaan ke alamat acak dalam hitungan menit. Halaman 404 yang memuat database dan belasan skrip ikut membebani server pada setiap permintaan itu. Halaman HTML statis sederhana sudah memadai.

Pertanyaan Seputar Error 404

Apakah halaman 404 berarti saya diblokir oleh situs tersebut?

Tidak. Situs yang memblokir Anda umumnya membalas 403 Forbidden atau menampilkan halaman tantangan keamanan. Halaman 404 justru menandakan server melayani Anda seperti pengunjung lain, hanya saja alamat yang diminta tidak ada.

Kenapa angkanya 404, apakah benar dari nomor ruangan di CERN?

Cerita tentang "ruang 404" di CERN yang menyimpan berkas web pertama beredar luas, tetapi wiki yang dikelola di domain CERN menyebutnya mitos. Angka ini lahir dari sistem penomoran kode respons HTTP. Digit pertama menunjuk kelompok, yaitu 4 untuk kesalahan dari sisi klien. Dua digit berikutnya hanya nomor urut di dalam kelompok itu, tanpa makna khusus.

Berapa lama halaman 404 hilang dari hasil pencarian Google?

Google tidak menyebut angka pasti. Dokumentasinya hanya menyatakan URL yang mulai membalas 404 dikeluarkan secara bertahap, dan frekuensi crawl ke alamat itu terus menurun. Untuk menghapus lebih cepat, gunakan alat Removals di Search Console. Alat ini menyembunyikan URL sekitar enam bulan sambil menunggu Google memproses kode 404-nya.

Kapan sebaiknya memakai 410 alih-alih 404?

Gunakan 410 untuk konten yang Anda hapus dengan sengaja dan tidak akan pernah kembali, misalnya halaman promo yang sudah berakhir. Untuk halaman yang hilang tanpa sebab jelas atau mungkin dipulihkan, tetap gunakan 404. Standar HTTP sendiri menyatakan 404 adalah pilihan yang tepat saat server tidak tahu apakah ketiadaannya permanen.

Kesimpulan

404 Not Found adalah jawaban sah dari server yang aktif, bukan tanda situs rusak. Bagi pengunjung, langkah tercepat adalah memeriksa ejaan alamat dan mencari ulang lewat situs atau Google. Bagi pemilik situs, mulailah dari access log dan perbaiki 404 yang ditautkan dari halaman sendiri. Pasang redirect 301 untuk alamat yang punya riwayat, lalu biarkan sisanya tetap 404. Pastikan juga halaman 404 kustom Anda benar-benar membalas kode 404, bukan 200 atau 302.

Semoga artikel ini membantu.