
A 404 means the server is working but the address requested does not exist. It is a normal and necessary response. If you type the wrong address, a 404 is the correct result. The problem only starts when a page that should exist returns a 404, or when the site returns a 404 for pages other sites link to.
| Situation | Is it a problem | What to do |
|---|---|---|
| A visitor mistyped the address | No | Make sure the 404 page is clear and offers a search |
| Every subpage returns 404, the front page works | Yes | The permalinks or .htaccess are broken |
| A deleted page that still receives traffic | Yes | A 301 redirect to the closest equivalent page |
This is the clearest fault and also the easiest to fix. The front page works because it does not need the permalink rules, but everything else goes to a 404. In WordPress the cause is almost always missing .htaccess rules. Go to Settings and Permalinks and press save without changing anything. WordPress writes the rules back. If the file is not writable, WordPress shows you the rules to add by hand.
The same symptom appears after a site migration if .htaccess was not copied. Hidden files are not shown by default in an FTP client, so they are easy to forget.
When a page is deleted or its address changes, the old address still receives traffic from search engines and from links on other sites. Leave a 404 only if there is no replacement. Otherwise set up a 301 redirect to the closest equivalent page. A 301 tells the search engine that the address has moved permanently and carries the value the page had gathered over to the new address.
Do not redirect everything to the front page. If the target does not match what the visitor was looking for, the search engine treats it as a soft 404 and the redirect gains you nothing.
A 404 page must return an actual 404 status code, not a 200. This is a common mistake. The page looks like an error message but tells the server layer that everything is fine, so the search engine indexes non-existent addresses forever. A good 404 page says what happened, offers a search and links to the main sections.
Google Search Console lists the addresses where the crawler has hit a 404, and the server log shows the addresses real visitors requested. Go through the list once and decide on each one separately. Redirect it or let it die. Most of it is junk that does not need to go anywhere.
We work out which kind of 404 you have, fix the permalinks and put the necessary redirects in place in one go, so old links and search results lead somewhere again.
See how we repair a broken site »
ERR_TOO_MANY_REDIRECTS, the site redirects itself in circles »