What "static" actually means now
"Static" still drags 1998 behind it: hand-edited HTML, broken image icons, a webmaster email in the footer. That's not what anyone means by it anymore. A modern static site is generated. The content lives in plain files (Markdown, JSON, whatever fits the material), a build tool pours those files through templates, and the output is finished HTML, ready to serve. The build tool I use is Eleventy, and the wider approach goes by the name JAMstack.
The part that matters is when the work happens. On a WordPress site, each page is assembled while your visitor waits: PHP runs, a database answers queries, the pieces get stitched together, then the page ships. On a static site, every page was built before anyone asked for it. The build runs on my machine or a CI server whenever the content changes, and what sits on the host is a folder of plain files. Nothing is left to compute at request time, which means there's very little left to break at request time.
Database-backedRuns every visit
- A visitor asks for the page
- PHP starts up
- The database answers its queries
- The pieces get stitched together
- The page ships, and the visitor stops waiting
StaticRuns once per change
- The build runs, on my machine or a CI server
- Templates pour the content files through
- Finished HTML lands in a folder
Then every visit is one step: a CDN hands over the file.
The maintenance you stop doing
Run a WordPress marketing site for a year and you learn its rhythm: core updates, plugin updates, the plugin that breaks another plugin after an update, the PHP version bump your host emails about, the database that needs backups, and a security plugin watching the login page for brute-force attempts. None of it is hard. All of it is recurring, and someone has to do it or pay for it.
Here's the equivalent list on the static side: almost nothing. There is no database to host, back up, or breach. There's no server-side runtime to patch, because nothing runs on the server; it just hands out files. Hosting is cheap or free (GitHub Pages and Netlify both serve sites like this for nothing at small-business scale). And most of the attack surface simply isn't there. You can't SQL-inject a folder of HTML. There's no admin login to brute-force because there is no admin login.
| Recurring job | WordPress | Static |
|---|---|---|
| Core and plugin updates | WordPressOngoing | StaticNone to install |
| Plugins breaking each other | WordPressWhenever they collide | StaticNo plugins |
| PHP version bumps | WordPressWhen the host emails | StaticNothing runs on the server |
| Database backups | WordPressOngoing | StaticNo database |
| Watching the login page | WordPressOngoing | StaticNo admin login to watch |
Both columns describe a small marketing site, the size this note is about
You also get version control as a side effect. The content is files, so every change has an author, a date, and an undo. "Who changed the pricing page in March" stops being a mystery and becomes a one-line command.
Fast by default
A static page skips the two slowest steps of serving a page, the database queries and the per-request rendering, because both already happened at build time. What's left is a CDN handing a file to a browser, usually from a machine physically near the visitor. That's about as fast as the web gets.
Google measures this. Core Web Vitals feed into how pages rank, and prebuilt pages tend to clear those thresholds by doing less, not by optimizing harder. To be fair: static is not automatically fast. You can still bury a prebuilt page under three megabytes of JavaScript. But the defaults are on your side. On a database-backed site you work for the speed; on a static site you have to work to lose it.
The receipts
I'd rather show my work than make claims, so here's what I've shipped as an Eleventy developer, at both ends of the size range.
SongSuey is a music credits site: 170+ artists, 1,700+ albums, and 22,000+ hand-verified track credits, every one of them served as a static page. Eleventy 3 builds the whole thing from JSON data files, GitHub Actions runs the build, and GitHub Pages serves it for free. Thousands of data-heavy pages, zero database, nothing to patch.
PureCSS.com goes a step further: it publishes itself. A daily cron job rebuilds and redeploys the site with nobody at the desk. It was set up once, and it has been quietly shipping ever since.
And it isn't just my own projects. At a previous job I built the site for Soarveyor, a drone-inspection company: an Eleventy build served from a CDN, images handled by Cloudinary, and a git-based CMS layered on top so the team could edit content without ever seeing a line of code. A normal company site, with normal non-technical editors, running on the JAMstack.
When static is the wrong tool
This is the part the sales pages skip. I build database-backed sites too, so I'll tell you plainly where static loses:
- Frequent, non-technical editors. If five people publish every day and none of them will touch git, WordPress's editing experience is genuinely good and worth its upkeep. A static site can get a CMS layer, like Soarveyor's, but that's a workflow you set up and teach, not something you get for free.
- Ecommerce. Carts, inventory, checkout, customer accounts: that's an application, not a brochure. Use Shopify or something like it, and spend your energy making that fast.
- Logged-in anything. User accounts, dashboards, saved state. Third-party services can bolt some of this onto a static front end, but past a certain point you're building an app and should just build an app.
- Very large sites. Build times grow with page count. SongSuey's few thousand pages build comfortably; a few hundred thousand pages is a different conversation and a different architecture.
Hybrids cover a lot of the middle ground: a static marketing site in front of a Shopify checkout, or a headless CMS feeding the build so editors get a friendly interface while visitors still get flat files.
What a migration looks like
If you're on WordPress and this sounds appealing, the move is less dramatic than it sounds. The shape of it: export the content, rebuild the templates (usually an upgrade, since old themes accumulate cruft), map every old URL to its new home with redirects so your Google rankings survive the switch, then point DNS once everything checks out. Your visitors shouldn't notice anything except that the site got faster.
-
Step 01
Export the content
Out of the database and into plain files.
-
Step 02
Rebuild the templates
Usually an upgrade, since old themes accumulate cruft.
-
Step 03
Map every old URL
Redirect each one to its new home, so your rankings survive the switch. This is the step to be fussy about.
-
Step 04
Point DNS
Last, and only once everything else checks out.
The one decision to make early is the editing workflow, because going static makes you choose one on purpose: git if your editors are technical, a CMS layer if they aren't, or structured data files if the content really lives somewhere else anyway, the way SongSuey's credits live in JSON. Pick it before the build starts, not after.
The short version
For a lot of small businesses around Chicago, the marketing site is five to fifteen pages plus a blog that gets a post a month. That is exactly the site static was made for: faster by default, close to free to host, and nothing to update on a Tuesday night.
If that sounds like your site, look over what I offer or get in touch and tell me what you're running today. If you need an Eleventy developer, that's me. And if WordPress or a full application is actually the right call for your situation, I'll tell you that instead.