← Writing

Wordpress

Moving This Blog From WordPress To A Static Site (Without Losing Anything)

This blog has been running on WordPress since August 2009. Seventeen years, 216 posts, 591 comments – and, if I’m honest, several years of me quietly dreading the little orange “update available” notice every time I logged in.

This weekend, I finally did something about it. The site you’re reading right now is no longer WordPress at all – it’s a completely static site. Every page is a plain HTML file. There’s no database, no plugins, no admin login to protect, and nothing to update on a Tuesday night.

The best part? Nothing was lost in the move. Every post, every comment, every recoverable image and every URL came across intact.

In this blog post, I’m going to walk you through exactly how the conversion was done, step by step – including the part where I handed most of the heavy lifting to an AI assistant.

Why Move Away From WordPress At All?

Don’t get me wrong – WordPress served this site faithfully for seventeen years, and I’d still recommend it for a busy site publishing something new every week.

But this blog is an archive now. The most recent post before this one went up in December 2022. And an archive doesn’t need a database query to show a post from 2011 – the post isn’t going to change.

What an archive does need is to stay online, stay fast and stay secure with as close to zero maintenance as possible. A static site gives you all three. Plus, my hosting bill stays exactly the same whilst the moving parts drop to nil.

The old WordPress site, still on the default Twenty Twenty theme

The old site the day before the move – WordPress on the stock Twenty Twenty theme, untouched since 2022.

Step One – Get Everything Out Of WordPress

The good news is that WordPress is very willing to give your content back.

I used two routes at once, belt and braces. The built-in export tool (Tools > Export in your dashboard) produces a single XML file containing every post, page and comment – mine came to about 2.6MB. And the REST API that ships with every modern WordPress site lets you pull the same content out as tidy, structured data that a program can actually work with.

Between the two, the final count was 216 posts, 3 pages, 591 comments and another 120 pingbacks from other blogs. Everything went into version control before a single thing was changed. If you attempt this yourself, take the full backup first and thank yourself later.

Step Two – Hunt Down The Missing Images

Here’s the part I hadn’t expected. Seventeen years of hosting moves and theme changes had quietly eaten some of the images, and the posts referenced dozens of files that simply weren’t on the server any more.

The fix was the Wayback Machine at archive.org, which it turns out had faithfully archived most of them years ago. Over 70 images came back that way – old ebook covers, screenshots of long-gone forums, the lot.

Four images were beyond saving (and yes, I checked every archive I could find). Rather than leave broken image icons scattered through the posts, each one now shows a small note saying the image is lost to time, along with its original description. Honest beats broken.

The Nasty Surprise Hiding In The Database

Then came the part I really hadn’t expected. Reading through the exported posts, I started finding sentences I definitely never wrote – links to online casino sites, spliced mid-paragraph into the text of seventeen of my old posts. At some point around 2022, the WordPress database had been quietly compromised, and spam had been injected directly into the post content itself.

It was subtle stuff. The site looked completely normal at a glance, and with the blog being quiet, nobody – including me – had noticed a thing. One post had it worst of all: the entire article had been replaced, top to bottom, with casino spam.

Every injected sentence was tracked down and stripped out during the conversion – matched on the spam links themselves rather than on keywords, so none of my actual writing was touched. And the destroyed post? The Wayback Machine came to the rescue a second time with a clean copy from 2019, so the original text is back online today, with a note explaining where it came from.

There’s an accidental moral in there. A static site has no database to inject spam into – this particular problem simply cannot happen again. But if you run an older WordPress site, consider this your nudge to search your own post content for links you don’t recognise. You may not like what you find.

Step Three – Let The AI Do The Heavy Lifting

Now for the interesting bit. I didn’t hand-code 600 pages, and I didn’t sign up for a $49-a-month site builder either.

I gave the whole job to Claude, an AI assistant that can use a computer. It wrote a small site generator from scratch in plain JavaScript – no frameworks, no dependencies to go stale – which reads the exported content and writes out the finished site. That’s 216 posts, 19 topic pages, 354 tag pages and all the rest, over 600 pages in total, rebuilt from source in about two seconds flat!

The same assistant designed the new look you’re seeing now, including the dark mode (try the little toggle in the top corner). Back in 2009 I was paying $200 for a decent header graphic – if you’d told me this was coming, I’d have assumed you were selling something.

The new static homepage in dark mode

The new homepage. Same content, same address – not a database in sight.

Two rules were non-negotiable, though. First, every URL had to stay exactly the same – seventeen years of links from other sites are worth protecting, and all 594 addresses on this site work today precisely as they did last month. Second, the comments had to survive. They’re closed now (this is an archive, after all), but every single one is still sitting on the post where you left it.

A 2011 post on the new site, comments and all

A post from 2011 on the new site – original text untouched, comments preserved, plus a clearly-labelled AI summary up top.

Step Four – Make The Site Readable For AI Too

It’s 2026, and a fair chunk of any website’s readers aren’t people any more – they’re AI assistants reading on someone’s behalf.

So the new site carries an llms.txt file (think robots.txt, but as a guide for AI readers), a machine-readable index of every post, and structured data describing each article to search engines. Each post also opens with a short AI-written summary, clearly labelled as such – the original text underneath is exactly as it was written.

Whether you find that exciting or slightly unsettling, it’s where the web is heading, and it costs nothing to be ready for it.

Step Five – Put It Live

The finished site lives in a private GitHub repository, and the hosting pulls straight from there. When something needs changing, I change the file and push – the site updates itself. No FTP, no admin dashboard, no white screen of death at eleven at night.

And because the whole site is just files, moving host in future would be an afternoon’s job rather than a fortnight’s.

So there you have it – export everything, rescue the images, generate the pages, add the AI-friendly extras and deploy from GitHub. Seventeen years of writing, safely moved into a form that should outlast any particular platform, plugin or fashion.

Over To You

Are you sitting on an old WordPress site that deserves preserving rather than patching? Have you tried handing a job this size to an AI assistant yet?

I’m considering writing the whole process up as a proper step-by-step guide if there’s enough interest. And if you’d like help doing the same for a site of your own, get in touch through the contact page – I’d be happy to talk it through.

Frequently asked

Generated from this post during the 2026 rebuild.

Why convert a WordPress blog to a static site?+
Because an archive that no longer publishes regularly does not need a database, plugins or an admin login – it needs to stay online, fast and secure with zero maintenance. Static HTML files deliver all three, remove the security surface entirely, and make the site trivial to move between hosts.
Was any content lost in the conversion?+
No posts, pages, comments or URLs were lost – 216 posts, 591 comments, 120 pingbacks and all 594 addresses came across intact. Four images could not be recovered from any archive and are marked with an honest "image lost to time" note instead of a broken image icon.
What tools were used for the conversion?+
The WordPress export tool and REST API for extraction, the Wayback Machine for recovering missing images, an AI assistant (Claude) to write a plain-JavaScript static site generator with no dependencies, and GitHub connected to the host for deployment.
What was the malware found during the conversion?+
A database compromise dating from around 2022 had injected casino-spam sentences and links into the text of 18 old posts, and had replaced one post entirely. The injections were identified and removed by matching the spam links themselves, and the destroyed post was restored from a clean 2019 Wayback Machine capture. As a static site with no database, the site is no longer vulnerable to this class of attack.
Can readers still leave comments?+
No – the archive is read-only, so commenting is closed. All existing comments remain visible on their original posts, and the contact page is the way to get in touch.

Thom Lancaster

Writing about internet marketing that doesn't require an apology. Consulting with small teams who sell honestly.

More about me →