← Back
JUNE 21, 2026

How to stop paying for WordPress hosting and migrate all your sites for free

I had a pile of WordPress sites sitting on Cloudways and a couple of other hosts. Some were real, with actual visitors. A lot were half-dead clones and staging copies I'd spun up at some point and forgotten about.

I couldn't be bothered to rebuild them in something modern like Astro. They get a bit of traffic, just not enough to justify the effort. But I did want to keep them online for the long haul. Partly as a reference, partly for the memories, and partly because a few of them still pull visitors.

The thing that really got to me was the upkeep. Plugins and WordPress core updates kept quietly breaking the sites, so every few weeks I'd lose an afternoon babysitting installs I otherwise never touched. And I was paying every single month for the privilege.

So I handed Claude Code my hosting API key and let it work out a full approach: not just keep the sites online, but back up the complete WordPress installs so I'd never lose them. To save you the trial and error, I've written the whole thing up as a playbook you can hand straight to your own agent: the agentic WordPress migration playbook.

Here's what happened.

It backed up all 34 sites, properly

Not the "download a zip and pray" kind of backup. For each site it pulled the full files and the database, then proved the backup actually worked by spinning the site up as real, running WordPress inside Docker and checking it rendered.

A backup you've never tested isn't a backup. It's a hope.

To really make sure, I ran a test. I spawned fresh agents with zero context, no instructions, pointed them at nothing but the backup folder, and asked each to bring a specific old site back to life. They worked it out on their own and rebuilt fully working sites from scratch. That's the moment I actually trusted it.

It kept the 12 sites I wanted, for free

It rebuilt them as static copies and put them on Cloudflare Pages. Same sites, identical look and behaviour on mobile and desktop. It pulled all the HTML, CSS and JavaScript, hosted the lot on Cloudflare Pages, then pointed the real domains at them through Cloudflare.

Honestly, the result is better than what I had. Same look, zero monthly cost, and faster than before. There's no server and no database behind them anymore, which also means no more plugin updates, no more WordPress updates, and nothing left to hack. They'll just sit there, looking exactly the same, for as long as the domains are paid.

The old WordPress hosting is gone. I cancelled it. I'm no longer paying north of $400 a month, and not one of the public sites blinked during the switch.

A bonus on top of all that

All of them now feed into a self-hosted Umami analytics dashboard, so I can finally see which of these old sites still pull real traffic and which ones I can quietly retire. It's cookieless and privacy-friendly, so there was no consent banner to bolt on either.

A backup archive built to last

Just in case I ever want the full WordPress versions back, it built an archive designed to survive:

  • The exact old software needed to run these sites.
  • A plain-HTML snapshot of every one you can open in any browser with zero setup.
  • A written guide for restoring them by hand if Docker stops existing someday.
  • Checksums so I can tell if a file ever quietly rots.

Three independent ways to get any site back, decades from now.

If you want to do the same

The playbook linked up top covers the whole method, including the genuinely fiddly part: getting the static copies to render correctly. Page-builder sites like Elementor load half their content with JavaScript, which a naive copy misses completely, so the first exports came out with broken fonts, frozen animations, and blank sections. Getting that right took real work.

Hopefully the playbook helps you do the same. If you're still paying every month for WordPress sites you barely touch, you probably don't need to be.

One note if you want to try this yourself: the agent doing the work here was Claude Opus 4.8, running at its highest reasoning effort (xhigh). Any capable coding agent should be able to replicate it, but the fiddly parts (the static exports especially) really reward a strong frontier model, so your mileage will depend on what you point at it.