From WordPress to Astro: The False Simplification of the Modern Web
We regularly see enthusiastic articles from developers or IT managers explaining why they have finally taken the plunge: leaving “good old” WordPress behind to migrate to a static site generator like Astro. The narrative is almost always identical. They talk about clean architecture, restored performance, absolute security, and, above all, the simplification of their infrastructure. Following the headless trend, whose overhyped promises I previously analyzed, we are now witnessing the wave of all-static architecture.
Yet, when you take a closer look at the stack put in place to replace a simple WordPress instance, there is plenty of reason to be skeptical.
The “Simplified” Architecture in Practice

Consider the textbook setup of this popular new stack:
- Content is no longer saved in a database through a visual admin panel, but written in JSON or Markdown and versioned in a Git repository.
- A rendering engine (Astro) pulls these files during a build step to generate static HTML files.
- The site is deployed to a global network such as Cloudflare Pages.
- Images and media assets are no longer uploaded directly to a media library, but stored separately in an object bucket like Cloudflare R2 on a dedicated domain.
- Every single dynamic feature, down to a basic contact form, requires calling a separate API micro-service or serverless function on the side.
This setup is framed as the pinnacle of modern engineering and common sense. In reality, it is a textbook example of over-engineering driven by hype.
Moving Complexity Is Not Simplifying It
In the old paradigm, WordPress consolidated everything in one place: a server, a PHP/MySQL database, and a user-friendly dashboard where any team member could draft an article, attach an image, and hit “Publish.”
In the supposedly simplified new paradigm, fixing a typo or adding a company update requires editing data files, managing Git commits, triggering CI/CD pipelines, monitoring storage buckets, and maintaining serverless functions for dynamic elements.
This shift carries an organizational cost that rarely gets discussed: the entire publishing chain now rests on the shoulders of people who know how to use Git. The communications intern who used to publish updates independently must now open a ticket. The marketing manager who used to fix a typo in thirty seconds now waits for the next build and deployment cycle. We have not just shifted technical complexity; we have turned every team member into a requester, and every developer into a bottleneck.
For a developer who spends their day inside a terminal and on GitHub, this workflow feels second nature. But pretending that it represents a simplification for overall business management is an illusion. Complexity has not been eliminated; it has simply been fragmented across half a dozen third-party cloud services and build tools.
One might object that a more comfortable alternative exists: connecting Astro to a visual headless CMS such as Sanity or Storyblok to give the admin interface back to non-technical users. That is true, and it is telling: to recreate the dashboard that WordPress offered natively, you must now pay a monthly SaaS subscription, learn a proprietary content model, and maintain the integration layer connecting it to your build pipeline. The CMS was not eliminated; it was outsourced, billed monthly, and made dependent on a third vendor.
Speed at All Costs, But for Whom?
Performance and SEO arguments come up incessantly. A static site is indisputably faster out of the box than a poorly configured WordPress installation bloated with dozens of unnecessary plugins, burdened by an unoptimized wp_options table, and weighed down by heavy page builders like Elementor.
To be fair, those bloated WordPress sites certainly exist, and they are even in the majority. In fact, I have already written extensively about my frustrations with the project’s direction. But blaming WordPress itself for slow loading speeds is a lazy shortcut. A clean WordPress site, hosted on a decent server with an effective caching layer like WP Rocket or Nginx FastCGI cache, delivers the exact same output as a static site: pre-rendered HTML pages served in a few dozen milliseconds, without the Jamstack complexity.
Migration blog posts rarely make fair comparisons. On one side, they present WordPress on shared hosting, choked by a page builder, taking several seconds to serve uncached pages. On the other, a static site served by Cloudflare’s global anycast network. Comparing the worst possible legacy setup with the best distribution network on the planet inevitably makes the CMS look guilty. Yet, that same WordPress site, stripped of its page builder and placed behind the very same CDN, would yield equally impressive Lighthouse scores.
As for security, let us look at the facts directly, especially as recent news highlights the issue: the wp2shell vulnerability, disclosed on July 17, 2026, allowed unauthenticated remote code execution within the core of WordPress without requiring a single plugin. It was a worst-case scenario, and on the surface, it seems to validate the static approach. However, the aftermath proved the opposite point: an emergency patch was issued, and forced automatic updates were deployed across the entire global ecosystem within hours. That rapid response is precisely what a mature, twenty-year-old centralized system enables. Conversely, the npm ecosystem upon which every Astro project relies suffers chronically from supply chain attacks, compromised packages, and hijacked maintainer accounts, with no equivalent forced remediation mechanism. The honest lesson of wp2shell is not “abandon WordPress,” but “keep automatic updates enabled.” Aside from that, a properly hardened WordPress site, starting with HTTP security headers that few bother to configure, does not carry a risk profile that justifies reinventing the entire publishing architecture of a marketing website.
Maintenance Has Not Vanished; It Just Speaks a Different Language
Another recurring promise is “less maintenance.” This is perhaps the weakest argument of all.
An Astro project relies on a package.json file pulling in hundreds of transitive npm dependencies. Major versions release in rapid succession, third-party integrations break over API changes, and lockfiles become hazardous after eighteen months of neglect. Anyone who has reopened a front-end codebase left untouched for two years knows the painful friction behind a simple npm install.
By contrast, the twenty-year backward compatibility of WordPress is precisely what modern developers look down on out of snobbery. A site built in 2010 still runs today after routine updates. One may dislike the legacy code required to make that possible, but one cannot simultaneously claim that a stack requiring constant dependency churn is the one that demands “less maintenance.” Maintenance has not disappeared; it simply moved from the wp-admin update screen to the inner workings of the npm ecosystem.
What About Digital Sovereignty?
Finally, there is an angle that migration posts routinely ignore: where does your infrastructure actually live?
The quintessential “simplified” stack uses Cloudflare Pages for hosting, Cloudflare R2 for assets, Cloudflare CDN in front, and Cloudflare Workers for dynamic logic. In other words, your entire digital presence, including content, assets, distribution, and business logic, resides in the hands of a single American vendor subject to the Cloud Act. You trade an open-source CMS that can be hosted on any provider, migrated in an evening using a simple SQL dump and rsync, for a bespoke architecture where every component is tied to a vendor ecosystem. Cloudflare understands this strategy well, to the point of building its own CMS: ecosystem lock-in is a deliberate strategy, not a side effect.
Reversibility matters. A WordPress site can be exported, moved, and handed over to any agency. A bespoke assembly of Markdown files, CI pipelines, and Edge functions can only be maintained by the person who built it, and no one else.
A Technical Choice Driven by Fashion
Astro is a well-crafted technical tool, enjoyable for front-end developers to use and highly performant at what it was designed to do. To anticipate a common objection, it is worth clarifying the scope here: Astro is no longer just a static site generator; it handles server-side rendering on the Edge effortlessly. But my critique is not aimed at Astro itself, but rather at the narrative presenting pure static architecture as a universal simplification. The fact that the tool can handle dynamic rendering does not invalidate this critique; it simply demonstrates how teams eventually end up reintroducing, piece by piece, the dynamic behavior they claimed to eliminate. Furthermore, credit should be given where it is due: when an infrastructure management firm whose team lives in Git migrates its own marketing site to a static setup, that decision aligns logically with their internal culture and daily workflow. Every team is free to choose tools that match their operational habits.
The issue lies not with the technology or these specific use cases, but with the surrounding narrative and its uncritical adoption. This gospel of static liberation is being sold to companies where no employee will ever make a Git commit, much like how Docker and Kubernetes were pitched for three-page brochure sites. Re-architecting a stack simply to use the latest industry tools is a valid personal preference among enthusiasts. Presenting it as a universal “simplification” is a clear case of tech blindness.
Sometimes, a battle-tested, self-hosted, reversible CMS that anyone can manage remains the right tool for the job. You do not need a distributed cloud infrastructure across a tech giant just to display three news pages and a contact form. True engineering maturity in 2026 is not about stacking cloud services; it is knowing when you do not need them.