The 404 vs 410 status code question generates more forum threads than it deserves. Both codes tell a crawler the page is not there. The 410 adds one piece of information, that the removal is intentional and permanent, and being precise about that is worth doing. But the choice between the two rarely decides an outcome. What decides it is whether the URL should return an error in the first place, or send people somewhere useful.
What the 410 Gone status code means
MDN Web Docs defines it precisely: “The HTTP 410 Gone client error response status code indicates that the target resource is no longer available at the origin server and that this condition is likely to be permanent. A 410 response is cacheable by default.”
The last sentence of that definition is the one most guides skip. Because a 410 is cacheable by default, browsers and caches in between may store the response. That suits a removal you are sure about. It is awkward for one you might reverse next month, because some clients may keep treating the URL as gone after you restore it.
MDN is just as clear about when not to use it: “If server owners don’t know whether this condition is temporary or permanent, a 404 status code should be used instead.” That sentence is the whole rule in miniature. A 404 makes no promise about the future. A 410 does, so only send one when you can keep the promise.

404 vs 410 status code: how Google treats each
Google Search Central’s guidance is blunt: “URLs that are already indexed and return a 4xx status code are removed from the index.” Both 404 and 410 sit in that 4xx class. Whichever one you send, a URL that keeps returning it will drop out of Google’s index.
You will read that a 410 gets a page removed faster, or that a 404 is “softer” and keeps the page’s signals alive for longer. Google’s documentation, as quoted above, makes neither promise, so treat both claims as unproven. If your only goal is getting a dead URL out of the index, either code does the job.
Where the 410 earns its place is in meaning. It records a decision. Anyone reading your server logs or crawl data later, including you, can tell a deliberate removal from a broken link or a typo in a URL. MDN also notes that “Clients should not repeat requests for resources that return a 410 response”, which is exactly the behaviour you want for a page that is never coming back.
| Response | What it says | Google indexing | Use it when |
|---|---|---|---|
| 404 Not Found | Not here; no claim about the future | Indexed URLs returning 4xx are removed | You are unsure, or the URL never existed |
| 410 Gone | No longer available; “likely to be permanent” (MDN) | Indexed URLs returning 4xx are removed | You removed the page on purpose, for good |
| 301 redirect | Moved permanently to another URL | The destination is indexed instead | A page serves the same need |

When to use a 410, a 404 or a redirect
The order of the decisions matters more than the code at the end of them. Work through these in sequence for every URL you are retiring.
- Is there another page that answers the same need? Send a 301 redirect to it. Our guide to 301 vs 302 redirects covers which redirect to use.
- Did you remove the page deliberately, with no replacement and no plan to bring it back? Return a 410.
- Are you unsure, might the page return, or did the URL never exist? Return a 404.
Discontinued products are the textbook case. If a product has a direct successor, the redirect helps the visitor and keeps the link value pointed somewhere relevant. If the whole line is gone and nothing replaces it, a 410 is the accurate answer. Redirecting every dead product to the homepage is the common mistake: it sends people somewhere they did not ask to go and tells them nothing about what happened.

Seasonal and temporarily out-of-stock pages belong in the other column. If the page will be back, it should not return a 410 at all. Keep it live with a clear note, or return a 404 if you must take it down, and save the permanent signal for permanent removals.
How to serve a 410
Most servers and content management systems return a 404 automatically when a page is deleted. A 410 usually has to be set on purpose. On Apache, one line in the site configuration or an .htaccess file does it:
On nginx, return the code from a location block:
Some WordPress redirect plugins include a 410 option alongside 301 and 302, so check yours before editing server files. Then test the result rather than assuming it worked. A request for the headers of https://example.com/old-page/ should come back with HTTP/1.1 410 Gone. If it returns 200 with a “page not found” message in the body, you have a soft error, which is worse than either code.

Clean up the links after you remove a page
The status code is half the job. MDN’s guidance for 410s is that “website owners should remove or replace links that return this code.” That means internal links in your navigation, body copy and related-post blocks, and the URL’s entry in your XML sitemap. A sitemap that lists gone pages asks crawlers to fetch URLs you have told them not to request again.
Our post on 404 errors and SEO covers how to find broken internal links at scale; the same crawl catches 410s. If you are retiring many URLs at once during a rebuild, the same logic applies: Semrush’s migration checklist advises that old URLs with no equivalent “should be set to serve a 410 status code”. Our site migration SEO checklist puts that step in context.

Do not overthink the code
The honest limitation here is that there is no public data showing how much faster, if at all, Google drops a 410 than a 404. Google’s documentation treats them as the same class, and any claim of a measurable difference is anecdote. If speed matters, watch the Pages report in Google Search Console rather than relying on the code to do something special.

So the practical rule is short. Redirect when a real successor exists. Send a 410 when you removed a page deliberately and will not bring it back. Send a 404 when you are not sure. Then remove the links pointing at the dead URL, take it out of your sitemap, and check the response headers yourself. Get those steps right and the choice of code is a detail that keeps your logs readable, not a ranking lever. Spending an afternoon arguing over 404 or 410 while dozens of internal links still point at retired pages is effort in the wrong place.
Frequently asked questions
Is a 410 better than a 404 for SEO?
Not in any documented way. Google removes indexed URLs that return any 4xx code. A 410 is more precise about intent, which helps you and other clients, not rankings.
When should I use a 410 status code?
When you removed a page on purpose, have no replacement for it and will not bring it back. If you are unsure, MDN says to use a 404.
Should I redirect deleted pages instead?
Only when another page serves the same need. Redirecting everything to the homepage misleads visitors; a clean 410 or 404 is better.
Can I undo a 410?
Yes, but a 410 is cacheable by default, so some clients may keep treating the URL as gone for a while. Do not use it for temporary removals.
The takeaway Redirect when a successor exists, 410 for deliberate permanent removals, 404 when unsure. Then fix the links and the sitemap, which matter more than the code.

