WordPress vs Astro: why we switched after 15 years.
After 15 years on WordPress, we moved our agency site to Astro. Our PageSpeed score hit 99. Here's how.
We're a web design agency. Our job is building fast, effective websites for clients. And for years, our own site was running on a bloated WordPress theme with 8 plugins, a page builder we'd outgrown, and load times that would embarrass us if any client ever checked.
The cobbler's children had no shoes. We finally fixed that.
Why WordPress stopped making sense.
Let's be clear: WordPress is brilliant. It powers 40% of the web for good reason. We still build WordPress sites for clients who need content management, e-commerce, or complex publishing workflows.
But for our own agency site—a marketing site with a handful of pages, a few articles, and some interactive components—WordPress was overkill. We were running a full database, PHP backend, and caching layer to serve what was essentially static content.
The problems had been piling up:
- Speed: Mobile PageSpeed hovered around 60. Plugins loaded scripts whether the page needed them or not
- Security: Weekly plugin updates, constant vulnerability patches, login brute-force attempts
- Maintenance: Database backups, SSL renewals, PHP version upgrades, constant plugin updates
- Design constraints: The page builder dictated what we could build. We were working around the tool instead of with it
We weren't getting hacked or losing clients over it. But every time we audited a client's site and recommended performance improvements, there was a quiet hypocrisy in the room.
Why Astro.
We evaluated Next.js, Nuxt, Gatsby, and Astro. Each had merits. We chose Astro for one reason: it ships zero JavaScript by default.
That might sound like a technical detail, but it's the whole point. Most frameworks send a JavaScript runtime to every visitor's browser whether they need it or not. Astro only sends JavaScript for components that actually require interactivity. Everything else is plain HTML and CSS.
For a marketing site, this is transformative. The vast majority of our pages—service descriptions, articles, portfolio pieces—don't need JavaScript at all. They're content. Astro treats them as content and delivers them accordingly.
Where we do need interactivity—our AI chatbot, contact forms, the project planner—Astro lets us drop in React components that only hydrate when needed. The rest of the page stays lightweight.
The numbers.
Here's what actually changed:
- PageSpeed: 60 → 99
- First Contentful Paint: 3.8s → 0.7s
- Largest Contentful Paint: 4.2s → 0.7s
- Total Blocking Time: 1.2s → 0ms
- Cumulative Layout Shift: 0.31 → 0.014
- Plugins: 8 → 0
- Database: MySQL → none needed
- Security patches: weekly → never
These aren't vanity metrics. Faster sites rank higher, convert better, and cost less to run. Google has been explicit about page speed as a ranking factor since 2021. We went from fighting our own infrastructure to having it work for us.
What this means for SEO.
Performance and SEO are inseparable now. Google's Core Web Vitals—the metrics listed above—directly influence search rankings. A site that scores 99 on PageSpeed isn't just faster for visitors; it's more visible to search engines.
But the SEO gains go beyond speed. With WordPress, our HTML was bloated with page builder markup—nested divs, inline styles, and scripts that search engines had to wade through to find the actual content. Astro outputs clean, semantic HTML. Every heading, every paragraph, every list is exactly what it should be. Nothing more.
We also replaced our SEO plugin with something better: structured data baked directly into each page. Every article has proper schema.org markup—Article type, author, publisher, dates—written in code, not generated by a plugin that might break on the next update. Every service page has its own meta title, description, and Open Graph tags, controlled precisely.
Then there's JavaScript. WordPress page builders load render-blocking scripts on every page, forcing Google's crawler to wait before it can index content. Astro ships zero JavaScript by default. Googlebot sees your content immediately. No waiting, no rendering delays, no hydration overhead.
The result: better crawlability, cleaner indexing, stronger Core Web Vitals, and structured data that search engines can actually trust. SEO plugins gave us a dashboard. Astro gave us the fundamentals those plugins were trying to simulate.
What we kept. What we killed.
Not everything from the WordPress era was bad. The content strategy, the messaging, the portfolio—all of that carried across. We weren't starting from scratch on brand. We were rebuilding the delivery mechanism.
What we killed:
- The page builder – replaced with hand-coded Tailwind CSS. More control, faster output, no bloat
- Google Analytics – replaced with Vercel Speed Insights. Lighter, no cookie banner needed, still gives us the data we actually use
- Contact form plugins – replaced with a custom React form hitting our own API. Spam filtering, rate limiting, and email delivery we fully control
- SEO plugins – replaced with proper meta tags, structured data, and semantic HTML baked directly into each page
What we added:
- An AI chatbot – trained on our services and pricing, it qualifies leads 24/7 and emails us conversation summaries
- An AI project planner – clients describe their project, we get an instant brief and budget estimate
- Proper security headers – Content Security Policy, XSS protection, and referrer policies configured at the edge
The honest downsides.
It's not all sunshine. Here's what we traded away:
No visual editor. WordPress lets anyone update content through a browser. Our Astro site requires code changes. For us, that's fine—we're developers. For a client who needs to publish blog posts weekly, WordPress or a headless CMS is still the right choice.
Smaller ecosystem. WordPress has a plugin for everything. Need a booking system? Install a plugin. Need testimonials? Plugin. With Astro, you build what you need or integrate third-party services via APIs. That takes more skill but produces cleaner results.
Learning curve. Our team already knew React and TypeScript, so Astro was a natural fit. If your team lives in PHP and WordPress, the jump is significant.
Should you do this?
Maybe. It depends on what your website actually needs to do.
Astro makes sense if your site is primarily content and marketing pages, you want maximum performance, you have developers who can maintain it, and you don't need non-technical users editing content daily.
WordPress still makes sense if you need a CMS for regular publishing, you rely on specific plugins for business functionality, your team isn't comfortable with code deployments, or you need e-commerce with WooCommerce.
The right tool depends on the job. We just realised our own job had changed, and our tool hadn't kept up.
The real lesson.
Rebuilding our site wasn't really about technology. It was about practising what we preach.
We tell clients that speed matters, that modern web standards matter, that every second of load time costs conversions. We should be the proof of that argument, not the exception to it.
The site you're reading this on loads in under a second, scores 99 on PageSpeed, and has never had a security vulnerability. That's not a sales pitch. That's just what happens when you pick the right tool for the job.
Wondering if your website is holding you back? We build fast, modern sites that actually perform. Let's talk about yours.
Get in Touch