I spent a decade recommending WordPress. Last Friday I turned mine off.
CK Tech Check now runs as plain files on Cloudflare Workers. No database, no PHP, no admin login, no plugin updates on a Tuesday night. This is why the guy who spent ten years recommending WordPress migrated away from it, what actually changed, and who should absolutely not follow me.
Prefer to watch?
This one is a written piece, but the channel covers the same ground: honest tech, tested properly, no sponsor voice. Subscribe to catch what lands next.
If you have been around this site for a while, you know what I was. I was the WordPress guy. For the better part of ten years, if a friend asked me how to build a website, my answer started with WordPress and usually ended with me talking them out of Wix. I wrote Elementor tutorials here. I compared page builders like other sites compare graphics cards. I built client sites on it, my own sites on it, and I defended it in more comment sections than I care to admit.
Last Friday I turned WordPress off. Not the site. The site is faster than it has ever been. Just WordPress.
Every page you are reading is a finished HTML file sitting on a server near you, and nothing gets computed when you visit.
WordPress was the right answer, and I want to be clear about that
It is easy to write the "WordPress is over" post. It is also lazy, and it would be rewriting my own history.
When I went all-in on WordPress, the alternatives were genuinely worse. Site builders locked you into their walled gardens and their pricing. Hand-coding a site meant hand-coding everything: the RSS feed, the sitemap, the SEO tags, the image resizing, comments, search. WordPress gave you all of it for free, with a community that had already solved every problem you were about to have. The plugin ecosystem was the whole argument. You did not build features, you installed them.
That math was correct for a decade. If I could go back, I would make the same call every time.
So why leave now?
Three things, and none of them is "WordPress got bad."
First, my content stopped needing WordPress. Over the last couple of years I rebuilt every post on this site as a self-contained block: the layout, the styles, the schema, everything in one piece of HTML. WordPress was still serving those blocks, but it was not really doing anything to them anymore. It had quietly become a very elaborate way to concatenate files I had already written. When I finally looked at what the database was contributing, the honest answer was: overhead.
Second, the edge platforms grew up. What used to take a stack of paid services is now sitting on Cloudflare's free tier: global hosting, redirects, a contact form that sends real email with no third-party mail service, bot protection on that form, and analytics if you want them. My entire hosting bill is zero dollars a month, and I do not say that as a flex. I say it because "free tier" used to mean "toy," and it does not anymore.
Third, and I will be upfront about this: I did it with an AI collaborator. The honest reason a one-person site cannot leave WordPress is never the hosting. It is the ten thousand small jobs: exporting every page, preserving every URL, every meta tag, every redirect, rebuilding search, testing all of it. That is months of evenings, which is why nobody does it. I did it in two days, working with Claude the way I would work with a very fast contractor: I made every decision, reviewed every change, and did a lot of follow-up testing, and it did the ten thousand small jobs. I am not going to pretend this migration happens on that timeline any other way. Times changed here too, and it would be strange to write an honest post about modern web publishing and leave that part out.
The part I was most wrong about
Going in, I was convinced the media library would be the nightmare. Thirteen hundred images, a decade of accumulation, most of it probably unused. I had been dreading that cleanup for years.
It took four minutes. We copied everything, kept every URL identical, and moved on. The audit even settled an old bet with myself: only about 43 percent of those images are actually used anywhere. The rest can be pruned someday, or never, because storage at this scale is effectively free. The thing I dreaded most was the easiest step of the whole project.
The actual hard parts were smaller and funnier than I expected. A few favorites:
- The cache that would not die. After the DNS switch, the site kept showing me WordPress. I messaged something like "the cache is strong with this one" before we figured out the old pages were still living in the edge cache. One purge later, the new site appeared.
- The comment that outlived its bug. Deep in my stylesheet was a CSS rule with a comment that said, in all caps, DO NOT simplify this, because it worked around a quirk in my old page builder. On the new site, that workaround was the bug. We deleted the thing the comment forbade deleting. The fix had outlived the problem it fixed, which might be the whole migration in one sentence.
- The placeholder nobody mentioned. We found a page on my live site that still said "[Your Site Name]" in the copy. It had apparently said that for years. Nobody told me.
- Too many brands starting with CK. At one point the contact form's bot protection refused to work, and it turned out I had authorized the wrong domain. That one was entirely on me.
What actually got faster
I am a reviewer, so here is the review. This is Cloudflare Workers versus WordPress performance on one site, with the same content and the same design on both sides, measured before and after.
| Metric | WordPress | Static on Workers |
|---|---|---|
| Lighthouse performance (mobile) | 47 to 51 | 89 to 94 |
| Time to first byte | around 600 ms on a good day | 53 ms |
| Total blocking time | seconds of JavaScript | 0 ms |
| Monthly cost | already free, see below | $0, and nothing to maintain |
| Plugin updates | constantly | none, there are no plugins |
| Publishing a change | edit, save, hope the cache clears | push, live in about 3 minutes |
That zero milliseconds of blocking time is my favorite number. It means there is no JavaScript framework chewing on your phone's processor before the page will respond to your thumb. There is simply nothing left to chew.
And it is the same reason the ads left this site earlier this year. Every change I have made in 2026 has been the same change: removing layers that sat between you and the content.
The cost was never the hosting bill
I have to be straight about one row in that table, because it is the one people assume they understand. My WordPress hosting was already free. I run a WP Engine developer account through their affiliate program, so this migration did not save me a single dollar in hosting. If someone tells you a static site is cheaper, they are describing a different situation than mine.
What WordPress was costing me was attention, and the sharpest example is the one I have not written about yet: the Elementor editor.
Everybody benchmarks the visitor's experience. Nobody benchmarks the builder's. Over the last couple of years I have been pushing client homepages harder: more layered, more deliberate, more of the kind of layout that makes somebody stop scrolling. Elementor can absolutely build that. What nobody warns you about is what happens next. The more elaborate the page, the longer the editor takes to open. I have client pages that take minutes to load before I can click a single widget. Not the live page, which is cached and perfectly fine for visitors. The editor. The tool I am supposed to work in.
The reason is structural. Elementor stores a page as one big nested document, and opening the editor means parsing that entire tree and building a live interface for every widget inside it, with all of its content, style and advanced controls, at every responsive breakpoint. That work scales with how ambitious your layout is, and it lands entirely on the person editing. Caching cannot rescue you either, because the editor is the one path that must never be cached.
Here is the shape of it on my own site, which is the easy case: 934 Elementor documents holding about 31 MB of layout data in the database, and the template behind my homepage is 118 KB of that by itself. My blog posts were single HTML blocks by then, which is exactly why my editor stayed usable and why the migration went as smoothly as it did. On a genuinely elaborate client homepage the same structure is several times larger, and that is where minutes-to-open comes from.
I want to be fair, because I still like the tool and I still build in it: this is not a bug, and I cannot hand you a lab benchmark for somebody else's site. It is a ceiling. What bothers me is where the ceiling sits, because I kept hitting it in the exact situation where I least wanted to, which was when I was trying to be more creative rather than less. A tool that gets slower the more ambitious you are is a tool that quietly teaches you to be less ambitious.
So no, free hosting was not enough to keep me. That is the most honest review I can give WordPress after ten years of recommending it.
What I gave up
This would not be a CK Tech Check review if I skipped the downsides, and there are real ones.
There is no admin screen anymore. No dashboard, no visual editor, no logging in from a hotel to fix a typo on my phone. My site is a folder of files in version control, and changing it means editing files and pushing them. My workflow assumes git and an AI assistant I trust with the mechanical work, and the mechanical work is specific: turning a finished draft into page markup, writing the structured data, rebuilding the search index, running the link and schema checks before anything ships, and pushing the result. I still make every editorial call and I still read every change. That is a real prerequisite, and it is not everyone's setup.
There are no plugins to save me. If I want a feature now, somebody builds it. It turns out most features I actually use took an afternoon each to build, and now I own them outright, but "somebody builds it" is doing real work in that sentence.
And there is no ecosystem safety net. WordPress problems have ten thousand forum answers. My problems now have a much smaller audience.
How search works when there is no database
If nothing gets computed when you arrive, how does the search box work? Fair question, and it is the one thing everybody asks me.
The search index is a file. Every time the site builds, a script walks all of my posts and writes out a small JSON file with each title, category, description and question-and-answer pair. Your browser downloads that file the first time you open search and does the matching locally, on your machine, which is why results appear as fast as you can type. Nothing is queried on my end because there is nothing on my end to query. It also means the index can never fall out of date, because it is rebuilt from the posts themselves on every single deploy.
The calculators work the same way, and always did. The sunrise planner and the dashcam storage calculator were JavaScript running in your browser even under WordPress; the database was never involved. Once I noticed that, most of the site's supposedly dynamic features turned out to be static pages with client-side code sitting on top of them.
Exactly one thing genuinely needs a server, and that is the contact form, because sending mail requires a place to send it from. That runs as a small function at the edge instead of a plugin: it checks the bot-protection token, then hands the message to Cloudflare's own email routing. So the two plugins I actually needed got replaced by about a hundred lines that run when someone clicks Send, and by nothing at all the rest of the time.
Who should still use WordPress
Plenty of people, and I mean that.
If your site has multiple authors, or an owner who will never touch a code file, WordPress is still the right call. If you run a store, WooCommerce is still the pragmatic answer. If you rely on plugins doing genuinely complex things for you, or you just want to write and never think about the machinery, the machinery WordPress gives you is still excellent. And the managed hosts have never been better at running it. My hosting at WP Engine was genuinely great to the end, and if you are staying on WordPress, they are still exactly who I would point you at. The platform was never the problem. My site just stopped being the kind of site that needs a platform.
And if you have already decided you want static and you are just weighing WordPress alternatives for a static tech blog, the honest shortlist is short. Use a generator like Astro or Eleventy if you want a framework, a component system and an ecosystem around you. Use plain generated HTML, like I did, if your pages are already finished documents. I went the second way for one unglamorous reason: my posts were already self-contained blocks of HTML, so a framework would have added a layer without removing one. Pick based on what your content already is, not on what is fashionable this year.
The test is simpler than any feature comparison. Does your site compute anything when a visitor shows up? Mine computed nothing. It had computed nothing for two years. I was running a database so that nobody could query it.
The proof was already live before I wrote this
Here is the part I like best. While I was still drafting this post, the new stack quietly published two full lab reviews: the Kioxia Exceria G2 and a counterfeit SanDisk teardown. Nobody emailed me to ask what happened to the site. Nobody noticed the platform underneath had changed at all, which is exactly the outcome you want from a migration.
No editor screen, no database row, no publish button. I write it, we turn it into a page, I push it, and it is live worldwide about three minutes later.
Ten years ago I told everyone WordPress was the way, and I was right. This year the answer changed, and I would rather change with it than defend the old answer out of loyalty. That is the same standard I try to hold every product on this site to. It was only fair to hold my own stack to it too.
Frequently Asked Questions
Is a static site faster than WordPress?
On this site, substantially. Moving the same content and the same design from WordPress to static files on Cloudflare Workers took mobile Lighthouse performance from the high forties to the low nineties, time to first byte from roughly 600 ms to 53 ms, and total blocking time to zero. The reason is structural rather than clever: a static page is already finished when you request it, so there is no database query, no PHP execution and no plugin code between your click and the HTML.
Will I lose my Google rankings if I move off WordPress?
Not if every URL survives the move. That is the whole job. I kept every post and page at its existing address, carried across every redirect that already existed, and preserved the image paths so no embedded image broke. Search engines saw the same URLs returning the same content, faster. The danger in a migration is never the new platform, it is quietly dropping addresses that used to resolve.
How much does it cost to host a static site on Cloudflare?
For a site this size, nothing. Global hosting, redirects, a contact form that sends real email without a third-party mail service, bot protection and analytics all sit inside Cloudflare's free tier. That is the part that genuinely changed in the last few years: the free tier stopped being a toy.
What do you lose by leaving WordPress?
Three real things. You lose the admin screen, so there is no dashboard and no fixing a typo from your phone in a hotel; the site becomes a folder of files in version control. You lose plugins, so any feature you want is one somebody has to build. And you lose the ecosystem, because WordPress problems have ten thousand forum answers and yours will not. Those are genuine costs, not talking points.
Should I move my WordPress site to a static site?
Only if your site does not compute anything when a visitor arrives. If you have multiple authors, a store, a membership area, or an owner who will never open a code file, stay on WordPress; it is still the right tool and managed hosts run it well. If your pages are effectively finished documents being served by a database that nothing queries, the platform is costing you speed and money for no return.
Why does the Elementor editor get so slow on complex pages?
Because the editor has to load the page as one big nested document and build a live control interface for every widget inside it, with content, style and advanced controls at every responsive breakpoint. That cost grows with how elaborate the layout is, and it falls on whoever is editing rather than on visitors, which is why a page can be genuinely fast for readers and painful to work on. Caching does not help, because the editor is the one path that cannot be cached. On my own site there are 934 Elementor documents holding roughly 31 MB of layout data, and that is the simple case; on elaborate client homepages I have waited minutes for the editor to become usable.
Do you migrate client sites off WordPress too, or just your own?
Both, but the answer depends entirely on who edits the content. If a client publishes their own posts every week, taking away their dashboard to save a few hundred milliseconds is a bad trade, so I keep them on WordPress and make WordPress fast instead. If the site is a brochure, a portfolio or a service site that changes a handful of times a year, static hosting is usually the better deal: it is dramatically faster, there is nothing to patch on a Tuesday night, and the hosting bill drops to roughly nothing. Elementor builds port over more easily than people expect, because a finished page is a finished page. The deciding question is never technical taste, it is whether the owner needs a screen to log into.
Why not use headless WordPress instead of static HTML generation?
Because headless keeps the exact part I wanted to retire. Going headless means you still run WordPress, still update PHP and plugins, still pay for a host and still maintain a database, and now you also own a build pipeline and a separate front end. That is two systems to look after instead of one. It is a genuinely good fit when a team needs the editing experience and the front end has to behave like an application. My content was already finished HTML and my database was answering no questions, so going straight to static files removed a system rather than adding one.
Thinking about the same move?
I build and migrate sites for a living, and this one was the proving ground. If you are weighing a move off WordPress, or you just want the speed without the rebuild, the website development page lays out how I work.
See how I build sites Get in touch