HTTP 410 Gone – Free, Online, Private
410 Gone means the resource used to exist and is gone on purpose.
What HTTP 410 means
410 tells the client the resource is not coming back and links to it should be removed. It is stronger than 404, which might mean the URL was never valid. Search engines treat 410 as a reason to drop a URL faster. Use it for a retired API or a deleted article you do not want recreated at the same path.
410 Gone belongs to the 4xx client error class. Clients that only look at the class will group it with its neighbors. Clients that care about the exact code should use the narrower rule on this page, because the class is only the first digit.
When you see HTTP 410
When you see HTTP 410 Gone, stop on that exact status line. 410 Gone means the resource used to exist and is gone on purpose. The trace that usually produces it: An API version was removed and old clients still call it. The 4xx client error class only tells you the first digit. A neighbor in that class is a different fault, and the fix on this page does not transfer to it.
Return 410 when you know the resource is permanently gone. Use 404 when you do not know, or when you do not want to promise permanence. Do not use 410 for a temporary unpublish. That is 404 or 403. A 410 should stay 410. Flipping it back to 200 later confuses clients you told to forget the URL.
How to fix HTTP 410
To fix HTTP 410, change the condition that made the server choose Gone. Delete stored links and bookmarks to this URL. Do not retry. If a person followed a link, show the message. Do not automatically request a parent path unless you documented that. Do not retry. The status says the answer will not change. If the log line is a different code, leave this page. The mix-up people make with 410 is this one: 404 is 'not found', which includes never existed. 301 is 'it moved'. 204 is 'the request succeeded and I have nothing to show'. 410 is 'it existed and it is finished'.
- A deleted page was given 410 so crawlers drop it.
- A client treated 410 as transient and retried every hour.
- The body included a replacement URL that should have been a 301 instead.
An access log that only stores 410 is not enough to tell these apart. Keep the method, the path, and a request id. Do not keep the Authorization header or a request body that might be a token. The status explains the outcome. It is not a place to echo secrets back to the client either.
Example response
HTTP 410 GoneHTTP/1.1 410 Gone
Content-Type: text/plain
This URL has been retired.
If there is a replacement, 301 or 308 is usually better, because clients will follow it. 410 is for the case with no successor. The body can say that in a sentence. Do not 410 a URL you might reuse next month.
What the client should do
Delete stored links and bookmarks to this URL. Do not retry. If a person followed a link, show the message. Do not automatically request a parent path unless you documented that.
410 may be cached. A long lifetime is appropriate because you promised the resource is gone. Do not cache it for a year if you might resurrect the URL.
Do not retry. The status says the answer will not change.
Codes people confuse with HTTP 410
404 is 'not found', which includes never existed. 301 is 'it moved'. 204 is 'the request succeeded and I have nothing to show'. 410 is 'it existed and it is finished'.
Frequently asked questions
Will search engines drop a 410 faster than a 404?
That is the usual guidance. 410 says the removal is intentional.
What if the resource moved?
Use 301 or 308. 410 tells clients to forget the URL, not to follow a new one.
Can I reuse a 410 URL later?
You can, but you told clients to drop it. Prefer a new URL.
Should clients retry?
No.
What should I do first when I see HTTP 410?
Read the status as 410 Gone specifically. 410 Gone means the resource used to exist and is gone on purpose. Then check the cause that matches the request you sent, starting with: An API version was removed and old clients still call it.