Many WordPress sites have a setting, either in an SEO plugin or a small redirect plugin, that sends every missing URL to the homepage. It looks tidy: users never see an error page. For search engines it causes three problems:

  1. Google treats these as soft 404s. A homepage served for /some-deleted-post/ is not a real answer, so Google ignores it.
  2. Link value from old URLs is lost. An old page with backlinks should redirect to its closest topical match, not to the homepage.
  3. You lose visibility into broken URLs. Real 404s show up in Search Console's "Not found" report. A blanket redirect hides them.

How to fix it

  1. Turn off the "redirect all 404s to homepage" option. In Rank Math, this is the fallback behaviour in the Redirections settings; set it to the default 404 page.
  2. Test with a random URL (/zzz-test/). You should get a real 404 status:
curl -I https://example.com/zzz-test/ 
  1. Export URLs that Google still knows about (Search Console > Pages > Not found, plus any old sitemap) and check which ones had clicks or backlinks.
  2. Create individual 301 redirects only for those, each to its closest equivalent page.
  3. Check for redirect chains (A → B → C) and point each old URL straight to the final destination.
  4. Clear your page cache and re-test.

Make a useful 404 page with search and links to your main sections, so visitors still have somewhere to go.

We ran into this while auditing our own site at Arvand.