A marketing site has two jobs: rank in Google and convert visitors. Most stacks compromise both. We rebuilt atico3.com in Astro a year ago. Mobile Lighthouse sits at 90, desktop at 99, and updating content is faster than the PHP site it replaced.
Here’s when Astro is the right call. And when it isn’t.
What Astro actually is
Astro is a static-site framework that ships zero JavaScript by default. You write components in React, Vue, Svelte, or its own .astro syntax. At build time it produces HTML. Interactive parts (a calendar, a search bar, a form) load JS only on the elements that need it.
The contrast matters. A Next.js page hydrates with React on load: 80–120 KB of JavaScript runtime, even for a static landing page. WordPress themes ship their own runtime plus whatever page builder is on top. Astro renders the same page with no framework runtime at all. Any JavaScript on your page is what you chose to add: an analytics tag, an animation library, a form widget. You pay only for what you opted into, not for hydration overhead.
If your marketing site spends 80% of its JavaScript budget hydrating things that never change, you’re paying for nothing.
For a portfolio site, a SaaS marketing page, a blog, a case study collection: 95% of the content doesn’t change between sessions. Hydrating it on every load is overhead.
When Astro is the right call
Performance is a measurable KPI
1 Think with Google 2 web.dev: Vitals business impact 3 Shopify: Store speed and conversion
If you’re in B2B SaaS and a slow mobile site loses leads, Astro removes most of the work. Lighthouse Performance, Core Web Vitals, and Time to Interactive all improve when you stop shipping unused JS. We took atico3.com from a mobile Lighthouse score of 63 to 90 in one afternoon by fixing cache headers, deferring Google Tag Manager, and optimizing the LCP image. None of that work is Astro-specific. It’s the kind of pass we run on client sites too. But Astro doesn’t fight you on it.
Most content is static or CMS-driven
Case studies, blog posts, landing pages, pricing tables. Astro’s content collections handle the common shapes (Markdown with frontmatter, typed schemas, glob loaders) without external dependencies. Add Sanity or Contentful when your content team grows past two or three writers.
SEO matters and you’re not chasing app-shell pageviews
Astro emits clean semantic HTML on the first byte. Google indexes it the same way it indexes a 2005 blog. AI Overviews and ChatGPT citations parse server-rendered HTML more reliably than JS-rendered pages. If part of your traffic strategy is being cited by LLMs, this is non-negotiable.
You want islands, not full SPAs
Need a booking widget, a search box, an interactive pricing calculator? Astro lets you drop a React, Vue, or Svelte component into one section without converting the whole site. The rest of the page stays static.
You’re shipping with AI assistance
This is the practical reason we mention Astro alongside React and Next.js. Astro has a smaller API surface and less magic than Next.js. AI assistants ship working Astro code on the first try more often than Next.js, where edge cases around server components, the app router, and caching behaviour produce subtle bugs. For small teams using AI to compress timelines, that delta is real.
When Astro is the wrong call
Astro is wrong when your marketing site IS the app.
Your marketing site is the app
If your homepage is a dashboard, has authenticated routes, real-time updates, or a complex user flow, use Next.js or Remix. Astro can handle some of this with adapters, but you’ll fight the framework on every feature.
Your team is React-only and won’t learn .astro files
The .astro syntax is essentially HTML with JavaScript expressions. The learning curve is about a week for a React developer. But if you have one engineer who pushes back, don’t fight it. A site shipped in Next.js is better than a site stalled in framework debates.
You need edge personalization or split-testing at scale
Edge middleware, server-side personalization, complex feature flags. Possible with Astro adapters (Netlify, Vercel, Cloudflare), but the integration is rougher than Next.js. If you live in Vercel and use their split-test tooling daily, stay there.
How to decide for your project
The framework that fits is usually obvious once you stop conflating “marketing site” with “app”.
Three questions in order. Stop at the first one that resolves.
- Will this site grow into a logged-in product or dashboard? If yes, use Next.js or Remix. The marketing pages can live in the same app, or run separately on Astro and benefit from independent deploys.
- Will the marketing site have more than ~10 pages with shared layout and SEO requirements? Use Astro.
- Is it a single landing page with no content updates planned? Anything works. Astro is still the smallest and fastest, but a Framer page will ship faster if you don’t have a dev team.
The first two questions cover most cases.
The actual reason this matters
A marketing site is a sales tool. Every second of load time costs leads. Every JavaScript error in the console costs trust. Every WordPress security alert costs an engineer’s afternoon. Picking the right framework isn’t a developer preference. It’s a business decision that compounds for years.
For most marketing sites, that decision is Astro.
Migrating to Astro?
We move marketing sites off WordPress, Webflow, Framer or custom stacks onto Astro — including 301 redirect maps, schema markup, and Core Web Vitals tuning. SEO doesn't drop during the swap.
Talk to us