Astro vs WordPress: a real-world Lighthouse comparison
Two identical landing pages. One in WordPress with a popular theme. One in Astro. The Lighthouse scores, side by side, with the exact configuration.
I get asked this every week: “yes, Astro is faster — but how much faster, on a real page, with real content?”
So I built the same landing page twice.
The test page
Same hero, same three feature cards, same testimonials, same contact form, same images. About 1200 words of copy. Five photographs, sized for the layout (so no naive 4K originals shrunk by CSS — that would not be fair).
Both versions live on the same edge network, same region.
The WordPress version
- WordPress 6.5
- A popular freemium business theme (Astra)
- Elementor for the page layout
- Yoast for SEO
- A caching plugin (WP Rocket)
- Cloudflare in front
This is, by any reasonable measure, a tuned WordPress install. Not a worst case.
The Astro version
- Astro 5
- Tailwind for utility CSS
- The built-in
<Image>component - Deployed to the same CDN
No plugins, because plugins are not a thing.
The numbers
| Metric | WordPress | Astro |
|---|---|---|
| Lighthouse Performance | 62 | 100 |
| Lighthouse SEO | 92 | 100 |
| First Contentful Paint | 1.8 s | 0.3 s |
| Largest Contentful Paint | 3.2 s | 0.6 s |
| Total Blocking Time | 410 ms | 0 ms |
| Page weight | 2.1 MB | 180 KB |
| Requests | 64 | 9 |
The WordPress page is not broken. It works. It scores 62 on Performance, which is yellow — a polite “could do better.” But the LCP is 5x slower and the page weighs 11x more.
Where the WordPress weight comes from
If you open the network tab on the WordPress page, you see:
- jQuery (still, in 2026)
- Three different font CSS files from three different plugins
- An Elementor runtime
- A theme JavaScript bundle
- A cookie-banner script
- A reCAPTCHA script that fires before the user has done anything
- The Yoast schema injection script
- An analytics script
- A handful of plugin-specific stylesheets
None of these is doing anything wrong. They are each, individually, fine. Collectively they are why the page takes three seconds to paint.
The Astro page ships the HTML, one CSS file, and one tiny script for the contact form. That is the whole list.
Why this matters for SEO
Google has used Core Web Vitals as a ranking signal since 2021. LCP, CLS and INP all feed into it. A page with a 0.6 s LCP is, all other things equal, ranking higher than the same content with a 3.2 s LCP.
If you write the same article and publish it twice — once on WordPress, once on Astro — Google’s own measurements will quietly nudge the Astro version up the results page.
Caveats
This test is a landing page. The gap narrows on a complex application (a multi-tenant SaaS, for example, where most of the page is dynamic and personalised). The gap widens on a content site (a blog, a marketing site, a portfolio), which is most of the web.
If you are reading this and your site is a content site — the difference is at least this big. Probably bigger.