Skip to content
DinoRoyal
2 min read

Why we pick Astro for every SEO-first site

A practical breakdown of why Astro beats Next.js for content-heavy, SEO-critical sites — and the exact setup we use to ship pages that rank and load in under a second.

By

Every time we launch a new content-heavy site — marketing pages, job boards, documentation — the question comes up: Astro or Next.js?

For us, for SEO, the answer is always Astro. Here is why.

The JavaScript tax

A typical Next.js marketing page ships around 180KB of JavaScript before a byte of content loads. An equivalent Astro page ships closer to 5KB. Google’s Core Web Vitals reward the lighter page. Users on slow phones reward it more.

Islands, not whole apps

Astro’s island architecture means you only hydrate the interactive components — a newsletter form, a search box — and leave the rest as HTML. For a blog or a product page that is 95% static content, this is the right tradeoff.

Content collections are the killer feature

Type-safe frontmatter, automatic slug routing, and Zod schemas mean we write markdown and get a typed API for free. No CMS. No database. Every post is a file in a git repo.

Our opinionated setup

  • @astrojs/sitemap for automatic sitemap generation
  • @astrojs/rss for blog feeds
  • @astrojs/mdx for content authors who want components
  • JSON-LD structured data in the base layout
  • trailingSlash: 'never' and format: 'directory' for clean URLs
  • prefetch.prefetchAll with viewport strategy for instant page transitions

When not Astro

If the site is primarily an app behind a login — dashboards, editors, complex state — Next.js still wins. Islands are great, but entire app shells are happier with a full framework.

The takeaway

Content-heavy, SEO-critical, mostly-static sites live and die on Core Web Vitals. Astro optimizes for exactly that case. Every site on this studio uses it for a reason.

Newsletter

Occasional, thoughtful emails

A short note when we ship something or learn something worth sharing. No spam, unsubscribe in one click.

No tracking. Unsubscribe anytime.