The short answer
- Crawlers get the same text from all three. Full content, title, description and canonical were in the raw HTML every time.
- All three scored 100 on Lighthouse's SEO check, and the text appeared equally fast: 428, 428 and 440 ms in a simulated test.
- The difference is JavaScript. Astro and plain HTML sent 0 KB. Next.js sent 129.5 KB, with the page text included twice in the HTML.
- Our pick for this site is Astro, because a mostly-text site gets nothing from that JavaScript. No framework earns you rankings by itself.
When we chose the technology for this website, the founder asked a fair question: why Astro, when Next.js is so widely used? We couldn't answer that with a blog post from someone else, so we tested it. We built the same page three ways, with the same text, the same styling and no interactive features.
How we tested
- The page: about 1,800 words of real text, 12 headed sections, 12 FAQ answers in
detailstags, JSON-LD and 7 linked routes. - Versions: Astro 7.4.5, Next.js 16.4.5 and hand-written HTML. Next.js was given its best chance: static export, Server Components only, no client components and link prefetching turned off.
- Serving: the same small local server with Brotli compression, for all three.
- Phone profile: 6 Mbps, 85 ms round trip and a 4× slower processor, with a 6× run for cheaper phones. 6 Mbps and 85 ms are close to India's 75th-percentile connection in Alex Russell's 2026 performance research.
- Tool: Lighthouse 13.6, 5 runs per version per speed, interleaved so no version always went first. We report medians.
What crawlers receive
| Check | Plain HTML | Astro | Next.js |
|---|---|---|---|
| All text in raw HTML, without running JS | Yes | Yes | Yes |
| Title, description, canonical in head | Yes | Yes | Yes |
| Lighthouse SEO score | 100 | 100 | 100 |
| Raw HTML size | 13.9 KB | 13.8 KB | 36 KB |
| Readable text as a share of the HTML | 85% | 85% | 33% |
| Copies of each sentence in the HTML | 1 | 1 | 2 |
| Copies of the JSON-LD block | 1 | 1 | 2 |
Next.js repeats the text because it embeds a copy of the page data for React to use in the browser. We found no evidence that this hurts rankings, and Google can handle it. It's just extra bytes in a file that some crawlers read as plain text.
What your phone has to do
| Measure (4× slower processor) | Plain HTML | Astro | Next.js |
|---|---|---|---|
| JavaScript sent | 0 KB | 0 KB | 129.5 KB |
| JavaScript files | 0 | 0 | 7 |
| Total download | 5.7 KB | 5.7 KB | 137.6 KB |
| Main content visible (simulated) | 428 ms | 428 ms | 440 ms |
| Ready to respond (simulated) | 428 ms | 428 ms | 672 ms |
| Time running JavaScript | 10 ms | 11 ms | 226 ms |
| Total processor work | 239 ms | 215 ms | 530 ms |
On the 6× slower run, Next.js spent 383 ms running JavaScript and 883 ms on total processor work, against 14 ms and 379 ms for Astro.
A problem with our first method. Using real-time throttling, all three versions, including the plain HTML, randomly jumped to a load time of almost exactly 2.5 seconds. Because this hit identical pages at random, we treat it as a test artefact and report the simulated timing above. We kept the byte counts and processor figures from those runs, as they weren't affected.
What happens on real websites
Our test is one small page. HTTP Archive's Chrome UX data shows real visitors on real sites, for September 2026:
| Mobile origins with good Core Web Vitals | Astro | Next.js |
|---|---|---|
| Worldwide | 71.1% of 47,277 | 35.7% of 395,345 |
| India | 48.7% of 5,728 | 21.2% of 62,418 |
Please don't read this as "Astro makes you twice as fast". People use Next.js for large, complex apps and Astro mostly for content sites, so these groups aren't comparable. It only tells you what tends to happen with each in the wild.
So does this affect SEO, AEO and GEO?
- Google: it can read all three. Speed is one signal among many, and all three pages pass here. Choosing Astro alone won't move your ranking.
- AI crawlers: what matters is that the text is in the HTML. All three pass. Next.js is only risky if you render content in the browser.
- People: 240 ms less delay and 130 KB less data is a small but real gain on a cheap phone or a slow connection, and it stays that way as the site grows.
Which should you use?
- Mostly text, few interactions (a business site or a blog): Astro. Nothing is sent unless you ask for it.
- A few pages that rarely change: plain HTML is fine. It gets harder once you have many pages sharing a header and footer.
- A real application with logins and dashboards: Next.js. Its JavaScript is doing real work there, and it's fine for SEO if rendered on the server.
- You already know one well: that counts for a lot. A framework you can maintain beats a theoretically better one you can't.
What this test can't tell you
- It's a single simple page. A heavier page would show larger differences.
- It's a lab test, not real users, and no real phone was used. The processor slowdown is an estimate.
- The page has no images or web fonts, so absolute times are unusually low.
- We couldn't test rankings directly, because that needs live sites over months.
- Next.js is better than this for many apps. This only compares what a mostly-text page needs.
Common questions
Is Astro better than Next.js for SEO?
For what crawlers read, no. A pre-rendered Next.js page gave Google and AI crawlers the same full text as Astro in our test. Astro's advantage is that it sends no JavaScript by default, which matters for speed on slower phones, not for reading.
Does Next.js hurt SEO?
Not if pages are pre-rendered or server-rendered. Ours scored 100 on Lighthouse SEO. It sent 129.5 KB of JavaScript that a simple page doesn't need, and put the page text in the HTML twice, but nothing in that stops it ranking.
Should I switch my site from Next.js to Astro for SEO?
Usually not, if your Next.js site is already server-rendered and passes Core Web Vitals. Fix the pages and the content first. Switching frameworks doesn't earn rankings on its own.
Do AI crawlers run JavaScript?
Vercel's published analysis found that the major AI crawlers it monitored, including OpenAI's and Anthropic's, didn't run JavaScript, while Googlebot and Applebot do. That research is from December 2024, so check for updates, but it's safest to have your main text in the HTML.
Sources
- HTTP Archive Technology Report: Core Web Vitals by technology, mobile, September 2026
- Vercel, The rise of the AI crawler, December 2024
- Alex Russell, The Performance Inequality Gap, 2026: India's connection figures