Astro SEO: what Astro does for you, and what it doesn’t
Astro is a strong fit for SEO because it sends finished HTML. It won’t write your titles, canonical tags or redirects, though. Here’s the checklist, plus what running bushe.co, an Astro site with 5,500+ pages, has taught me.
Is Astro good for SEO?
Yes, with one catch. Astro builds pages on the server and, in its own words, sends zero JavaScript by default, so every page reaches Google as finished HTML with the words already in it. Pages also tend to load fast, which helps Core Web Vitals. The catch: Astro is a framework, not an SEO plugin. Titles, descriptions, canonical tags, structured data and redirects are yours to set up, once, in your layouts.
What Astro handles for you
- HTML first. Pages are rendered on the server, either at build time or on request. Interactive parts load as small “islands” only where you add them, so the text never waits on a script.
- Images. Astro’s
<Image />component resizes and converts local images and sets their width and height, so the page doesn’t jump while it loads (Cumulative Layout Shift). Images you put inpublic/are served as they are, with no processing. - Sitemaps, with one add-on. The official
@astrojs/sitemapintegration writessitemap-index.xmlwhen you build. It needs yoursiteURL in the config, and it can’t list dynamic routes rendered on demand. - A real 404 page. A
src/pages/404.astrofile builds to404.html, which most hosts pick up on their own.
The Astro SEO checklist: what you still set up
- A title and description for every page. Pass them into one layout that writes the
<head>, and make each one unique. A page that falls back to the site name is a page you forgot. - Canonical tags. Set
siteinastro.config.mjsand print one canonical URL per page. Pick one form, with or without the trailing slash, and use it in canonicals, the sitemap and internal links. Astro’strailingSlashoption only covers the dev server and pages rendered on demand; for static files, your host decides what/pageand/page/return. - Structured data. Add JSON-LD in a
<script type="application/ld+json">tag, built withJSON.stringify, for articles, FAQs, breadcrumbs or your business. - Share tags. Open Graph and Twitter titles, descriptions and an image, from the same layout.
- robots.txt. Put it in
public/with a line pointing to your sitemap. - Redirects, ideally at your host. On a static Astro site with no adapter, the
redirectsconfig makes pages that redirect with an instant meta refresh, not a server 301. Google treats an instant meta refresh as a permanent redirect, but its docs offer it as the fallback when server-side redirects aren’t possible. If your host has redirect rules, use them for moved pages. - Noindex pages out of the sitemap. Thank-you pages, drafts and demos should carry
noindexand stay out of the sitemap. - Internal links. Astro won’t add related posts or breadcrumbs for you. Link new pages from pages Google already visits.
What we learned running bushe.co on Astro
bushe.co moved to Astro on May 13, 2026, and now builds more than 5,500 pages. In September 2026 it got 6,293 clicks from Google search, up from 75 in April, the month before the move. Most of that growth came from new pages, not from the framework, but it shows an Astro site can grow that big without SEO trouble. Two habits mattered more than any setting:
- Compare every page before each deploy. A script compares each page’s title, description, canonical, headings, links and schema between the live build and the new one, and lists every difference. It caught blog dates printed a day early on 821 pages, because the build ran on Los Angeles time while the dates were stored in UTC. It also caught a headline drawn inside an SVG, which left a page with an empty H1.
- Keep the sitemap to pages you want indexed. Of those 5,500+ pages, the sitemap lists about 4,460. The rest, like demo pages for concept sites, are noindex and left out.
Astro vs WordPress for SEO
Neither one ranks a page by itself; Google ranks content, relevance and page experience. WordPress gets the basics done with plugins: an SEO plugin for titles and sitemaps, a caching plugin for speed. Astro gets them done in code: you set titles and the sitemap up once in the layout, and pages are fast because they’re plain HTML. Astro’s edge is speed and fewer moving parts. WordPress’s edge is that someone who doesn’t code can change SEO settings in a dashboard.
If you’re moving a WordPress site over, the risk isn’t Astro; it’s changed URLs and lost titles. My WordPress to Astro migration service keeps both, and Astro CMS options covers how your team will edit afterward.
Sources: Astro’s docs on why Astro, images, the sitemap integration and the configuration reference, and Google’s redirects guide, checked October 18, 2026. bushe.co numbers are from its own Google Search Console.
Frequently asked questions
Is Astro good for SEO?
Yes. Astro sends finished HTML with no JavaScript by default, so search engines get the full text of every page without running scripts. You still set up titles, descriptions, canonical tags, structured data and redirects yourself.
Does Astro make a sitemap automatically?
Only with the official @astrojs/sitemap integration, which writes the sitemap when you build. It needs your site URL in the config, and it can’t list dynamic routes that are rendered on demand.
Does Google index Astro sites?
Yes. An Astro page is ordinary HTML, so Google crawls and indexes it like any other page. Whether it ranks depends on the content and links, the same as any site.
Do I need an SEO package for Astro?
No. Community packages can write meta tags for you, but one layout component that takes a title, description and canonical URL does the same job. bushe.co uses its own layout.
Moving to Astro without losing rankings?
Every URL mapped, redirects set at your host, and each page’s title, description and headings compared before the switch. Quotes start at $5,000, fixed after a free audit.
See WordPress to Astro migration