When your browser hits a 404, it means the server is responding fine — it just can’t find what you asked for at that URL. The server is alive. The specific page or file is not. That distinction matters when you’re trying to figure out what to fix.
What a 404 status code actually tells you
HTTP 404 (Not Found) means the server received your request and understood it, but couldn’t find the resource at the address you gave it. This is different from a 503 (server offline or overloaded) or a connection timeout (server completely unreachable). If you’re seeing 404, the site itself is functioning — the problem is with the specific URL.
From a visitor’s perspective: a “Page Not Found” message and a dead end. From a site owner’s perspective: a broken request that’s worth investigating, because it’s either a typo, a deleted page, a moved page without a redirect, or a misconfigured server.
The most common causes
A URL was mistyped or the link is outdated. The most frequent cause. Someone followed a link from three years ago, or typed the address slightly wrong. Nothing is broken on your server — the requested path just doesn’t exist. These show up in your access logs as 404s, but they’re often not yours to fix unless the stale link is one you control.
A page was deleted without a redirect. You removed a blog post, retired a product page, or cleaned up old content — without telling inbound links where to go. Every bookmark, search result, and external link pointing to that URL now hits a 404. If the page had traffic or links from other sites, that’s both a user experience problem and an SEO issue.
A page was moved to a new URL without a redirect. You restructured your site, changed a slug, or moved content into a different category — and the old URL no longer exists. Anything already indexed by search engines or bookmarked by visitors now returns 404 until you add redirects.
A broken or missing .htaccess file (WordPress). On WordPress, the .htaccess file in your public_html directory is what translates readable URLs like /blog/my-post/ into the actual file path the server needs. If this file is missing, corrupted, or has invalid rules, you’ll get 404s on posts and pages even though the content exists in the database.
WordPress permalinks not flushed. After a migration, plugin install, or certain server changes, WordPress can lose its URL rewriting rules. The fix is usually trivial and takes 10 seconds.
A file uploaded to the wrong path. For non-WordPress sites, or for specific file references like images, PDFs, or downloads — the file either doesn’t exist at the path being requested, or the path in your code doesn’t match where the file actually lives on the server.
How to fix it if you’re a visitor
Check the URL for typos, especially near the end. Try navigating from the site’s homepage instead of using the direct URL. If it’s a page you expect to exist on an active site, the site owner probably moved it without setting up a redirect — try searching the site directly. If you need to reach the owner, most sites have a contact page accessible from the homepage.
How to fix it if you own the site
Step 1: Figure out whether the page should exist. Before fixing anything, determine whether the URL was ever valid. Pull up Google Search Console and check the Pages or Coverage report — GSC lists every URL it has tried to crawl that returned 404. Compare that list against anything you’ve deleted, moved, or renamed recently.
Step 2: On WordPress, flush your permalinks first. Go to Settings > Permalinks in your WordPress admin and click Save Changes without changing anything. This regenerates the .htaccess rewrite rules and resolves most WordPress 404s that appear after a migration or plugin change. If that doesn’t work, check whether your .htaccess file exists in public_html and contains the standard WordPress rewrite block:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
If the file is missing or that block isn’t there, you can recreate it via cPanel’s File Manager. Access .htaccess from public_html (you may need to enable “Show Hidden Files” in the File Manager settings).
Step 3: If content was deleted or moved, add a 301 redirect. A 301 redirect tells browsers and search engines that the content now lives somewhere else, permanently. For WordPress, the Redirection plugin handles this without touching .htaccess directly. For Apache-based hosting without WordPress, add a redirect rule to .htaccess:
Redirect 301 /old-page-path/ https://yourdomain.com/new-page/
Use the closest equivalent page as the destination, not just the homepage. If a blog post on Topic A was deleted, redirect to a related article — not to your homepage.
Step 4: Check GSC for the bigger picture. If you’ve had a site migration, restructure, or permalink change, do a full audit rather than fixing 404s one by one. In GSC, filter the Pages report for “Not found (404)” and export the list. Any URL with historical impressions or inbound links from other sites is worth a redirect. The rest can be left alone.
When 404s matter for SEO — and when they don’t
Not every 404 is a problem. Pages that never existed, or pages with no traffic and no inbound links, can return 404 indefinitely without affecting your site’s ranking. Google doesn’t penalise 404s — it simply stops trying to index those URLs.
What matters: if a URL has links pointing to it from other sites, or if it appeared in search results with real traffic, a 404 means that value is sitting idle. A 301 redirect captures it and passes it to a relevant page that still exists. For a recently migrated site especially, auditing your 404s in the first few weeks after launch is worth doing — stale links accumulate fast during a migration and can quietly drain traffic from pages that used to rank.
The short version
A 404 error means the server responded but couldn’t find the page. On WordPress, start with Settings > Permalinks > Save Changes — this resolves most post-migration and post-plugin 404s in seconds. If the page was deleted or moved intentionally, add a 301 redirect pointing the old URL to the closest equivalent page still on your site. For anything more systematic, Google Search Console’s 404 report shows you exactly which URLs are returning errors and whether any of them had meaningful traffic.
Since this article is on a hosting provider’s blog: 404 errors after a migration are often a server-configuration issue rather than a code problem. Missing .htaccess rules, permalink structures that don’t survive the move, or caching layers still serving old URL paths are the usual culprits. We see these regularly on sites migrated to CanSpace, and they’re typically resolved in one support ticket.
If you’re troubleshooting a post-migration 404 issue on a CanSpace account, our support team can check your .htaccess, flush permalink rules, and pull pages from nightly backup if needed. Our hosting plans include nightly backups and full support for this kind of issue. If you’re still on a US-based host and considering a move, the migration process itself is covered in detail on our why-Canadian hosting explainer.




