What is a 404 error and how do you fix it (and soft 404s).
A 404 error is the HTTP status code a server returns when it cannot find a page at the requested address; it is fixed with a 301 redirect for a page that has moved, or, for a page that has been permanently deleted, by leaving it as is or returning 410. According to Google, 404s do not harm the ranking of the rest of the site; what does harm is a valuable address quietly disappearing.
A 404 error is often read as a reason to panic: Search Console shows dozens of addresses in a list, and the word “error” looms large. Yet a 404 is not a defect in itself; it is the correct answer for a page that does not exist. The question is whether that address really should not exist. After a site is rebuilt, the 404 list shows the rows missing from the migration checklist; reading this list and deciding on each address is part of site redesign and migration work.
What causes a 404 error?
- The page was deleted and nothing was put in its place.
- The page moved and its address changed, but the old address was not redirected. This is the most common cause in a site redesign.
- Another site linked to you with a mistyped address.
- There is a broken link within your own site.
- Another site was previously live on the domain, and Google is still trying that site’s addresses.
Do 404 errors hurt rankings?
Google’s Search Console help page answers this plainly: 404s do not harm your site’s indexing or ranking. An address that returns 404 is dropped from the index, and over time Google crawls it less often. Only that address is affected. The real loss happens elsewhere: if a page that used to get traffic and links from other sites moved to a new address in the redesign but the old address returns 404, the value of those links is passed on to nowhere and the visitor is stuck on an error page. That is the 404 that needs fixing.
When should a 404 be fixed, and when should it be left alone?
The decision comes down to one question: does the content at this address have an equivalent on the new site? If it does, the old address is redirected with a 301 to that equivalent. If not, 404 is the correct answer and can be left as is. Google’s help page recommends a fix in these cases: the content has moved, the address is a common misspelling, or it is an address you submitted for indexing. It says you can ignore addresses that never existed, pages deleted without an equivalent and broken addresses generated by a script.
- An equivalent page exists → 301, in a single hop to the equivalent.
- No equivalent, the page was removed on purpose → 404 or 410.
- The address is misspelled but frequently used → 301 to the correct address.
- The address never existed and nobody links to it → do nothing.
- No equivalent, but you want to guide the visitor → not a redirect but a good 404 page: a search box and links to the main sections.
What is the difference between 404 and 410?
According to the HTTP standard (RFC 9110), 404 says the server could not find the requested resource; 410 says the resource is no longer available and that this is likely permanent. 410 is the more definitive statement. According to Google’s status code documentation, however, Google treats the two the same way: if the address is in the index it is removed, if it is newly discovered it is not processed, and its crawl frequency decreases over time. So for Google, 410 is not a stronger signal than 404; for sections closed on purpose, such as a campaign page or a discontinued product group, it keeps the intent explicit in your own records.
- # Apache .htaccess — page removed on purpose
- Redirect gone /kampanya-2021/
- # Nginx
- location = /kampanya-2021/ { return 410; }
- # The Cloudflare _redirects file does not support 410; only 301 · 302 · 303 · 307 · 308
What is a soft 404?
A soft 404 is a page that tells the visitor “page not found” but returns a 200 (success) code from the server. Search Console’s page indexing report shows this on a separate row: the page looks like an error page, but the code does not say so. Google does not index these addresses; on top of that, a real page can also be mistakenly classified as a soft 404. The definition and examples are in the soft 404 entry.
There are three common causes. The first is an error page that returns 200: the server or content management system generates a page for the missing address but does not change the status code. The second is a bulk redirect to the homepage: sending hundreds of old addresses with no equivalent to the homepage during a redesign. Google’s help page says not to do exactly this, because it makes the site’s structure harder to understand. The third is empty or nearly empty pages: a category with no products left, a search page with no results.
What should a good 404 page include?
A 404 page is a page the visitor sees, and it does not have to be a dead end. A good 404 page first says what happened in plain language: the page you are looking for is not here. Then it gives the visitor a next step: links to the site’s main sections, a search box if there is one, contact details. Its only technical requirement is that the server keeps returning the 404 code while showing all of this. No matter how helpful the page is, if it returns 200 it is a soft 404 for Google. On a multilingual site, the 404 page should speak the language the visitor arrived in.
How do you read the 404 list in Search Console?
In the page indexing report, the “Not found (404)” row lists the addresses Google tried to crawl and got a 404 for. Fixing the list from top to bottom is not the goal. The goal is to pick out the valuable ones. Ask three questions: was this address once a real page, does it get links from another site, does it still get impressions in the performance report? If the answer to all three is “no,” that row can wait. If the answer to even one is “yes,” look for an equivalent page. After setting up redirects, testing that every address really goes to the right place is a separate job; its schedule is in the post-migration monitoring guide.
What was in this site’s 404 list?
On September 18, 2026, Search Console showed 114 of this site’s addresses as not indexed; 70 of them were 404s. We checked whether they were our own broken links. They were not: every example we tested live was an address left over from the domain’s previous site — posts starting with /yazi/, posts under /en/writing/, and the /ru/ and /fr/ language roots. Seven of the addresses that got impressions in the last 28 days’ performance report were among them too; in other words, Google was still trying those old addresses in search results.
These addresses have no equivalent on this site: they were another site’s posts and language roots, and this site does not publish in Russian or French. That is why the correct answer is not to redirect them to the homepage or to an unrelated page, but to leave them as 404s. “Fixing” them by sending all of them to the homepage would empty the list but, by Google’s definition, produce soft 404s. For our own checks, our live verification tool also tests that the addresses of source files that should never be published really return 404 in production: if one of these addresses returns 200, the tool turns red.
Emptying the 404 list is not the goal; not losing a valuable address is.
In a site redesign, the takeaway is simple: if you pull the list of old addresses before launch, the 404 list will not surprise you after launch. How to pull that list is explained in the URL inventory entry.
If you don’t want to lose traffic while relaunching your site, website redesign and migration inventories the old addresses, builds a chain-free 301 map and monitors the site for 90 days after the move.