How to Fix WordPress Pages Returning 404 (Only the Homepage Works)
Your homepage loads but every other page says 404 Not Found. The server is not handing pretty URLs to WordPress. Fix .htaccess, mod_rewrite, Nginx try_files or the rewrite rules.
Field guides by topic
Choosing, moving and working with a web host, plus what to check when the server itself is the problem.
Your homepage loads but every other page says 404 Not Found. The server is not handing pretty URLs to WordPress. Fix .htaccess, mod_rewrite, Nginx try_files or the rewrite rules.
Changed your URLs or domain? Build a complete old-to-new map, pick the right status code, put the rules in the right layer and test every line before and after launch.
Moved a WordPress site and it keeps sending you to the old domain or staging address? Find which layer is redirecting, then fix the database URLs safely, constants, DNS and CDN origin.
Bounces mention Spamhaus, Barracuda or “blocked using”? Learn how DNS blocklists work, how to check them by hand, and how to fix the cause before you request removal.
Broken image icons, blank boxes or images that never appear. Read the status code, then fix paths, permissions, hotlink rules, WebP, lazy load or srcset.
A 403 means something refused the request on purpose. Read the headers and body to find which layer sent it, then fix that layer without switching off security.
Products vanish from the cart, the mini cart shows the wrong count, or checkout says your session has expired. Trace the session cookie, then fix cache rules and domains.
Product pages load fine but cart, checkout and filtered shop pages crawl. Measure the uncached path, then fix fragments, geolocation, variations, lookup tables and object cache.
Pick the right restore point, restore from a host snapshot, a backup plugin or raw files plus a SQL dump, and keep the orders and comments that arrived since.
Move WordPress without a migration plugin: dump the database, copy the files, import, run a safe search-replace, test through your hosts file, then switch DNS.
No backup? Check host snapshots, CDN caches, the Wayback Machine and old copies first, then rebuild from feeds and uploads, or rescue a database MySQL will not start.
Move a WordPress site to a newer PHP version without downtime: check support dates, scan plugins for incompatible code, test on staging, switch per site and roll back fast.
Search the field manual
Or jump straight to a symptom
Press / to search from any page, Esc to close