410 Gone
Penggunaan
Ketika pesan error 410 Gone diterima, klien mengetahui bahwa alamat tersebut pernah valid, tetapi sumber dayanya sudah tidak ada lagi. Inilah respons yang dikembalikan setelah sebuah sumber daya kedaluwarsa, misalnya dokumen yang tersedia sebagai bagian dari penawaran berbatas waktu. Jika server tidak memperkirakan penghapusan tersebut bersifat permanen, 404 digunakan sebagai gantinya.
Kode status ini berguna untuk pemeliharaan situs web dan memberi sinyal kepada klien untuk menghapus tautan ke sumber daya tersebut. Respons ini dapat di-cache secara default. Klien dan perantara menyimpan 410 tanpa perlu direktif Cache-Control yang eksplisit. Klien yang berperilaku baik tidak mengulang permintaan tersebut, berbeda dengan 404 yang percobaan ulangnya bisa berhasil di kemudian hari.
Kasus penggunaan yang umum mencakup promosi yang telah berakhir, endpoint API yang usang, dan konten arsip yang dihapus secara permanen.
Dampak SEO
Mesin pencari seperti Google tidak akan mengindeks URL dengan status respons 410. URL yang sebelumnya terindeks akan dihapus dari hasil pencarian. Halaman yang mengembalikan kode ini tidak memboroskan anggaran perayapan. Google memperlakukan 404 dan 410 secara identik. Keduanya menghapus konten dari indeks dengan laju yang sama. Mengembalikan 200 dengan konten error atau mengalihkan URL yang telah dihapus ke beranda alih-alih merespons dengan 410 akan menciptakan soft 404, yang memboroskan anggaran perayapan dan mengikis kepercayaan terhadap sinyal server situs.
Contoh
Klien meminta sebuah sumber daya dan server merespons dengan 410 Gone karena promosi telah berakhir dan kontennya tidak lagi tersedia.
Permintaan
GET /holiday-promotion-Jan-2021.pdf HTTP/1.1
Host: example.com
Respons
HTTP/1.1 410 Gone
Content-Type: text/html
Content-Length: 133
<html>
<head>
<title>Promotion Expired</title>
</head>
<body>
<p>The promotional period has ended.</p>
</body>
</html>
Cara memperbaiki
Ketika 410 muncul secara tak terduga, periksa berkas konfigurasi server untuk mencari aturan yang tidak disengaja. Di Apache, telusuri httpd.conf dan .htaccess untuk entri RewriteRule dengan flag [G] (Gone) atau direktif Redirect gone. Di nginx, cari return 410 di dalam blok location pada konfigurasi server. Plugin CMS dan pembaruan terbaru kadang menambahkan aturan 410 tanpa peringatan. Nonaktifkan plugin yang baru dipasang untuk mengisolasi sumbernya.
Jika penghapusan memang disengaja, perbarui sitemap agar URL tersebut dikecualikan dan hapus tautan internal yang mengarah ke sumber daya itu.
Di WordPress, plugin seperti Redirection atau Yoast SEO mengelola respons 410 melalui antarmuka admin tanpa perlu menyunting berkas server secara langsung.
Jika penghapusan tidak disengaja, pulihkan sumber daya tersebut atau penggantinya dan kembalikan 200. Ketika halaman pengganti tersedia di URL yang berbeda, pengalihan 301 lebih tepat daripada 410.
Referensi kode
.NET
HttpStatusCode.Gone
Rust
http::StatusCode::GONE
Rails
:gone
Go
http.StatusGone
Symfony
Response::HTTP_GONE
Python3.5+
http.HTTPStatus.GONE
Java
java.net.HttpURLConnection.HTTP_GONE
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_GONE
Angular
@angular/common/http/HttpStatusCode.Gone