410 Gone
The resource existed and has been permanently removed with no forwarding address. Stronger and more useful than 404 when you know the removal is final.
At a glance
- Status code
- 410 Gone
- Class
- 4xx, client error, the request itself is the problem
- Defined in
- RFC 9110
- Cacheable by default
- yes
- Response body
- Optional.
In detail
410 is a commitment. It tells caches, crawlers and clients to stop asking, and to remove any references they hold.
Use it for deliberately retired content: a discontinued product page, an expired campaign, a deleted account. Use 404 when you genuinely do not know.
Search engines drop 410 URLs faster than 404 URLs. If you want something out of an index quickly and permanently, 410 is the stronger signal.
Examples
HTTP/1.1 410 Gone
Content-Type: text/html
<h1>This page has been retired</h1>Things that catch people out
- 410 is permanent. Bringing the URL back later means fighting caches and crawlers that took you at your word.
- Returning 410 for a resource that a user might legitimately regain access to (a suspended account) is wrong. That is 403.
Try it: HTTP Request Builder
Build a request with any method, headers and body, send it, and read the status line the server returns.
HTTP Request Builder
LOCAL · Browser-OnlyBuild and test HTTP requests with custom headers and body
Authentication
Headers
Generate Code
curl -X GET 'https://api.example.com/endpoint' \
-H 'Content-Type: application/json'Showing a sample URL. Enter your endpoint above to update the snippet.
Related HTTP status codes
All http status codes →404 Not Found
The server has no representation for this URL and will not say whether it ever did. The most common status code on the web after 200.
301 Moved Permanently
The resource has a new permanent URL, given in Location. Search engines transfer ranking signals to the target and clients may cache the redirect.
451 Unavailable For Legal Reasons
Access is denied because of a legal demand, such as a court order or a government blocking request.
411 Length Required
The server refuses the request because it did not include a Content-Length header.
412 Precondition Failed
A conditional header on the request, such as If-Match or If-Unmodified-Since, evaluated to false, so the server did not perform the action.
413 Content Too Large
The request body is larger than the server is willing to process. Formerly called Payload Too Large.
Tools for this
- HTTP Request Builder Free online HTTP request builder - build and test HTTP requests with custom headers and body
- HTTP Headers Checker Free online HTTP headers checker - view HTTP response headers for any URL