When I rebuilt michaelsoriano.com without WordPress, I had a problem: years of old posts, project pages, and inbound links. Deleting it all would've torched years of SEO. Keeping WordPress running just for the archive meant maintaining PHP updates and security patches for a site I no longer touched.
So I froze it. The whole old site is now static HTML, served from archive.michaelsoriano.com. No PHP, no database, nothing to patch. Here's exactly how.
The short answer
The Simply Static plugin crawls your WordPress site and exports every page as plain HTML. You take that export, put it on a subdomain, and point your old URLs at it with 301 redirects. Total cost: zero. Total maintenance going forward: zero.
The export
Install Simply Static, hit generate, and it crawls the site like a visitor would, saving each page as an HTML file with its assets. A few things I learned:
Watch for absolute URLs. If the export bakes in absolute URLs pointing at the old domain, do a find-and-replace across the files before you upload. Do it before, not after. You'll thank yourself.
Check the dynamic bits. Anything that needed PHP is now dead: contact forms, search, comments. For an archive, that's fine. Nobody needs to comment on a 2019 project post. But know what's gone before you flip the switch.
Give it time. Years of WordPress means a pile of files once you count uploads and thumbnails. Let the generation finish and don't close the tab.
The hosting
Plain Apache virtual host on the subdomain, nothing fancy. Static files don't need anything else. I ran certbot for HTTPS with auto-renew, same as any other vhost.
The redirect map
This is the part that actually matters. Old links exist out in the world: Google results, other sites, bookmarks. Break them and you lose the SEO value you're trying to preserve.
My rules:
- Homepage and contact stay on the new site. Those are the pages people actually want. They live at michaelsoriano.com now.
- Everything else 301s to the archive, preserving the path. /portfolio/old-project/ goes to archive.michaelsoriano.com/portfolio/old-project/. Same path, different subdomain. Google follows 301s and transfers the ranking.
- Private stuff gets a 403, not a redirect. Old client project files that were never public don't get archived. They get blocked.
- Keep the 301s for at least a year. Google needs time to update its index. A year is the safe minimum.
One thing I haven't fixed
The archive's robots.txt still points to the old sitemap on the main domain. It's harmless, nothing reads it, but it's sloppy. It's on my list.
The honest take
Total time was an afternoon. Total ongoing cost is zero: no WordPress updates, no security patches, no database backups for a site I never touch.
If you're rebuilding and your old site has any inbound links at all, don't just delete it. Freeze it. Future you, the one who doesn't want to maintain a WordPress install from 2019, will be grateful.