Not found (404)
Where you see it: Search Console → Indexing → Pages → Why pages aren’t indexed
Googlebot requested this URL and your server said the page doesn’t exist. That isn’t a penalty: Google expects 404s for pages you removed. Fix the ones that still matter, with a 301 to the right page, and let the others stay 404.
Fix the 404s that had traffic or links; leave the rest.
Google’s help says most 404s aren’t worth fixing. The ones that are: a URL in your sitemap, a URL your own pages still link to, and an old address that earned clicks or links from other sites. The rest, including addresses that never existed, can stay a 404.
Check the URL Search Console listed
Paste the URL as the report lists it. The redirect checker requests it like a crawler and shows the status code at every hop.
Redirect report
Enter a URL to see every hop it passes through, with the status code at each step.
Reading the result
- Redirects 0 and Final status 404 or 410: the URL is still gone. Right for removed content; anything else needs a 301.
- One Permanent hop, then Final status 200: the redirect works. After a recrawl, Google files the URL under Page with redirect.
- The chain ends on HTTP 404 after a hop: the rule points at a page that was renamed or deleted later. Edit its target.
- A Permanent hop you never created: WordPress redirected an old post slug or guessed a similar one. Check the destination.
The same tool with its full guide: Redirect Checker
Why it happens on WordPress
Most WordPress 404s trace back to something you changed, a plugin you switched off, or a link someone else got wrong. The example URLs usually share a shape, and the shape names the cause.
Posts you trashed, unpublished or scheduled
Trash a post, switch it to Draft or Private, or schedule it, and visitors who aren’t logged in, Googlebot included, get a 404. Since WordPress 5.6, a post restored from the Trash comes back as a draft, still 404ing until you publish it.
A renamed slug, especially on a page
Edit a post’s slug and core saves the old one as _wp_old_slug and 301s it to the new address. Pages aren’t covered: rename one or move it under another parent, and the old URL can 404 unless a redirect plugin caught the change.
A new permalink structure
Changing Settings → Permalinks, say from /2021/03/post-name/ to /post-name/, moves every post address at once. WordPress catches some old addresses itself, but not reliably; hundreds of 404s sharing the old date shape point here.
Plugins and themes that created the URLs
Portfolios, events, recipes and courses often live in a custom post type that a plugin or theme registers. Deactivate it or switch themes and they all 404 overnight. Switching SEO plugin moves your sitemap too: Yoast SEO and Rank Math use /sitemap_index.xml, core uses /wp-sitemap.xml.
Deleted media
Delete a PDF or image from the media library and its file URL returns 404, as does its attachment page where those are on. Posts linking to the download now lead nowhere.
Links you don’t control
Another site mistypes your URL, a forum cuts it short, a scraper invents paths. Google follows links from anywhere, so addresses that never existed on your site appear here too. They cost you nothing.
How to fix it
Decide per URL, in batches. This order finds the 404s worth saving first.
1. Find where Google picked the URL up
Inspect an example URL from the report. Under Page indexing, Discovery lists submitted Sitemaps containing it and a Referring page Google may have followed; a blank one doesn’t prove nothing links there.
2. Check what the URL was worth
In Performance → Search results, filter by the page over the longest date range: clicks mean searchers used it. In Links → External links → Top linked pages, look for it: outside links earn a redirect even without clicks. The broken link checker finds your own pages that still link to it.
3. Choose 301, 404 or 410
Each URL gets one of four answers.
- It moved, or a newer page covers the same ground: 301 to that page.
- You removed it on purpose and nothing replaces it: leave the 404, or send a 410. Google’s help says it treats the two the same.
- It went by mistake: restore it from Posts → Trash or a backup, then publish it.
- It never existed: leave it. If many people mistype the same address, a redirect is a kindness.
4. Add the 301 where your redirects already live
Keep rules in one tool and aim each at the final address, never at another redirect.
- Rank Math: turn on Redirections in Rank Math SEO → Dashboard → Modules, then add rules in Rank Math SEO → Redirections, where 410 Content Deleted is one of the types. Auto Post Redirect in General Settings → Redirections adds a 301 when a slug changes.
- Yoast SEO Premium: Yoast SEO → Redirects. Trash a post or change its URL and it offers a redirect or a 410.
- Redirection (free): Tools → Redirection, old path as source, new URL as target. Its Error (404) action can answer with 410 instead.
- Server: .htaccess on Apache, or ask your host.
5. Map an old permalink structure with one pattern
When the URLs share an old shape like /2021/03/post-name/, one regex rule replaces hundreds. In Redirection, tick Regex, source ^/\d{4}/\d{2}/([^/]+)/?$, target /$1/; Rank Math and Yoast SEO Premium accept regex too. Test a few old URLs and make sure it can’t catch a live one.
6. Remove the dead URL from your own site
Update the post, menu item, widget or button that links to it. SEO plugin sitemaps drop trashed posts by themselves; a static sitemap.xml file in the site root does not.
The statuses next to this one
A missing or moved page can surface under several labels, depending on what your server sent.
| Status | What Google got | What to do |
|---|---|---|
| Not found (404) | A 404 from your server | Redirect if it had value, otherwise leave it |
| Soft 404 | A 200 for a page that looks empty or broken | A real 404, a redirect, or more content |
| Page with redirect | A redirect it followed | Nothing, unless your links or sitemap still use it |
| Redirect error | A loop, an over-long chain, or a bad target | Break the loop, or point the first rule at the final page |
| Server error (5xx) | Your server failed | Check your host’s error logs; the page isn’t missing |
Check the fix in Search Console
Fix first, then decide whether Validate fix is worth a click. It passes only if no URL Google rechecks still answers 404, and it ends with Failed the moment one does.
- Run each redirected URL through the redirect checker: one Permanent hop, then a Final status of 200.
- Click Request indexing on the destinations of your most valuable old URLs.
- If every listed URL now redirects or loads, open Not found (404) in Indexing → Pages and click Validate fix. Google’s help gives most validations up to about two weeks.
- If the list also holds addresses you are letting go, skip validation. Those stay listed for a while, and a removal request won’t clear them; the redirected ones move on as Google recrawls them.
Can RankHive fix this?
Yes, for 404s that need a redirect or a link change. RankHive can add an exact-path 301 to the replacement and fix post and page links that still point at the dead URL. It isn’t a 404 monitor, so keep checking this report.
What it writes, once you approve
- An exact-path 301 from the old address to the page you choose.
- Links inside posts and pages repointed from the dead URL to the live one.
- A post left in Drafts by mistake, published again.
What it can’t do here
- Send a 410: its redirects are 301s only.
- Match a pattern: a permalink change needs a regex rule elsewhere.
- Edit links in menus, widgets, theme templates, or WooCommerce products and categories.
- Restore a post from the Trash.
- Read this report’s 404 list or click Validate fix; its Search Console access is read-only.
Every change is drafted next to the current value and waits for your approval. Each one written is logged in the Change Log, with Revert.
Check the rest of your site while you’re here
The free site check reads your public pages for titles, meta descriptions, headings, canonical tags and schema, and shows what needs fixing. If you sign up, RankHive reads your Google Search Console data every week, drafts the fixes, and writes the ones you approve to WordPress. Nothing changes on your site until you say yes.
Related issues
- Soft 404Worth fixing, but first decide whether the page should exist.
- Page with redirectUsually leave it; tidy your own links that still use the old address.
- Blocked due to other 4xx issueFix it if the page should be in Google; leave it if the code is deliberate.
- URL Inspection toolNothing to fix: it’s the tool you diagnose and confirm fixes with.
Common questions
Do 404 errors hurt my rankings?
Not the rest of the site: Google’s help says 404s don’t harm how your site is indexed or ranked. A dead URL loses only its own traffic and the value of links pointing at it.
Should I redirect all 404s to my homepage?
No. Google says many old URLs redirected to an unrelated page such as the homepage can be treated as soft 404s. Redirect to the closest match or leave the 404.
Is a 410 better than a 404?
Not for Google, which currently treats 410 Gone the same as 404 Not found. A 410 says the removal was deliberate; either is fine.
Why does Search Console show 404s for pages I never created?
Google follows links from anywhere, including typos on other sites and spam pages. If the URL never existed and gets no visits, leave it; it does no harm.
Sources
Checked against these pages on .
- Google Search Console Help: 404 (Page not found) errors
- Google Search Console Help: Page indexing report
- Google Search Console Help: URL Inspection tool
- Google: How HTTP status codes affect Google’s crawlers
- Google Search Central: Redirects and Google Search
- WordPress Developer Reference: wp_old_slug_redirect()
- Rank Math: How to set up redirections