Next.js (App Router defaults) against Astro on what an agent reads
In short
Next.js (App Router defaults): In the App Router, layouts and pages are Server Components by default, and Client Components plus the RSC payload are used to prerender HTML. Next.js (App Router defaults) leads on real status codes, 2 to 1; Astro: a made-up path returned 404 from astro preview, but the build wrote no 404.html.
The sourced difference
Astro prerenders every page to static HTML by default and on-demand rendering is opt-in; the Next.js App Router renders Server Components by default and prerenders HTML, with streaming and client components as the main ways content leaves the initial HTML. Source, read 4 November 2026.
The rubric side by side
| Key | Next.js (App Router defaults) | Astro |
|---|---|---|
| Content in the initial HTML | 2, on by default | 2, on by default |
| Real status codes | 2, on by default | 1, with setup |
| llms.txt generation | 0, not offered | 0, not offered |
| llms.txt linking | 0, not offered | 0, not offered |
| Markdown on request | 1, with setup | 0, not offered |
| JSON-LD output | 1, with setup | 1, with setup |
| OpenAPI exposure | 0, not offered | 0, not offered |
| Fenced, tagged code | 1, with setup | 2, on by default |
| Total | 7 of 16 | 6 of 16 |
The two differ on 3 of the numeric keys: real status codes, markdown on request, fenced, tagged code. Evidence for each score is on the profiles of Next.js (App Router defaults) and Astro.
Verdicts by reader
- Technical SEO
- Both pass a plain fetch with defaults; Astro has fewer ways to lose content.
- Docs owner
- Astro suits docs-like content; Next.js suits apps that also need server logic.
- Front-end developer
- In Next.js keep data fetching in Server Components and call notFound() before streaming.
What each leaves undone
Next.js (App Router defaults)
- Does not generate llms.txt.
- Does not negotiate markdown without a rewrite and handler.
Astro
- Does not generate llms.txt in core.
- Does not negotiate markdown from static output alone.
Work left to the developer: Next.js (App Router defaults), Medium: write llms.txt and a markdown route, add the Accept rewrite, link the file, and keep content in Server Components. Astro, Medium: add a 404 page, write llms.txt and any markdown endpoints, link the file, and add the host rules for 404 and Accept.
Sources
- docs.astro.build: the difference https://docs.astro.build/en/guides/on-demand-rendering/, read 4 November 2026
- Next.js (App Router defaults): documentation https://nextjs.org/docs/app/getting-started/server-and-client-components, read 4 November 2026
- Astro: documentation https://docs.astro.build/en/concepts/why-astro/, read 4 November 2026
Last reviewed 4 November 2026