Add

Lorem ipsum

Lorem ipsum

Development

29 min read

Headless CMS migration: the complete Sanity + Astro guide (2026)

A headless CMS migration means separating your website's content (managed in a CMS like Sanity) from its presentation (coded with a framework like Astro), with the two talking through an API. You gain full control over technical SEO, a back office built around your team, and an architecture that AI can operate.

What you don't gain automatically: speed. That's the first myth this guide will debunk, with data to back it up.

At the Gemeos web agency, we've been building websites for startups and scale-ups for years, on Webflow, WordPress and now headless. This guide brings together everything we know on the subject: when to migrate, when not to, what it costs, and how to do it without losing a single Google ranking.

Headless CMS migration: a locked monolithic site becomes structured content, delivered by API to a website, an app and AI agents

article summary

  • A headless CMS migration separates content (Sanity) from presentation (Astro), connected through an API.
  • The real gain is not default speed but control: technical SEO, content model, workflows and AI-driven operations.
  • According to HTTP Archive, Astro and Webflow pass Core Web Vitals on about 67% of mobile sites, WordPress on 49%.
  • With AI, building a headless site now costs about the same as a Webflow site, and subscriptions are often lower as the team grows.
  • The audit, content modeling and redirect plan drive most of a migration's SEO outcome.
  • The design system is the real key to agility: it is what lets marketing create pages on its own without breaking the brand.

Want to take it further? Ask:

Headless CMS: the definition in 30 seconds

A headless CMS is a content management system without a "head," meaning without a built-in presentation layer. It stores and structures content, then delivers it via API to any front end: a website, a mobile app, an AI agent, an in-store screen.

By contrast, a monolithic CMS (classic WordPress, Webflow, Drupal, Wix) handles content, design, code, and hosting in a single tool.

Monolithic, headless, hybrid: the three architectures

ArchitecturePrincipleExamples
MonolithicContent, design, and hosting in a single toolWebflow, classic WordPress, Wix, Squarespace
HeadlessThe CMS manages content, a separate framework handles the displaySanity + Astro, Contentful + Next.js, Storyblok + Nuxt
HybridA monolith that also exposes its content via API, or a headless CMS with a visual editorWordPress + WPGraphQL, Webflow Cloud, Sanity with Presentation

Why it's called "decoupled"

On a headless site, your marketing team publishes an article in Sanity. Sanity sends a signal (webhook), and the Astro site fetches the content and regenerates the relevant page. The visitor receives a static HTML page, served from the CDN node closest to them.

Each component can evolve independently. Want to redo the design? The content stays put. Want to switch hosts? The CMS doesn't even know.

Why 2026 is the right time to migrate

Headless has been around for ten years. What has changed is that four recent developments make it accessible and cost-effective for a scale-up, not just for large enterprises.

1. Astro has a secure future

In January 2026, Cloudflare acquired The Astro Technology Company. The framework remains open source under the MIT license, with public governance. Astro 6 shipped in March 2026 with Live Content Collections (content fetched on request, no rebuild) and built-in CSP.

For a company choosing its stack for the next five years, that's a strong signal. Astro is no longer a passion project. It's infrastructure backed by a company that serves a major share of the web.

2. Webflow has overhauled its pricing model

In May 2026, Webflow merged its CMS and Business plans into a single Premium plan ($25/month billed annually, 20,000 CMS items, 40 collections) and launched a Team plan for growing teams, annual only and quote-based.

Good news for small sites: item limits are higher. But for a team of 8 to 15 people publishing in several languages, the bill now comes down to seats, localization, and the Team plan. That's exactly when the headless question comes up.

3. AI agents can now operate a CMS

Since December 2025, the Sanity MCP server has been generally available. In practice, Claude Code, Cursor, or VS Code can read your content schema, create documents, prepare releases, and even guide a migration from WordPress, Contentful, Strapi, or Drupal.

A CMS configured in code becomes a CMS that AI can evolve. A CMS configured by point-and-click, much less so.

4. GEO (Generative Engine Optimization) rewards structured content

ChatGPT, Perplexity, and Gemini cite the sources they understand best: clear definitions, structured data, FAQs, identifiable entities. A headless CMS forces you to structure your content in fields rather than free-form text blocks. That's a direct advantage for getting cited.

Good to know

Astro is used by more than 287,000 active domains, including IKEA, Porsche, Cloudflare, and OpenAI. Webflow Cloud, Webflow's app hosting offering, itself runs on Astro.

The comparison: Webflow vs WordPress vs Drupal vs Sanity + Astro

No platform wins on every criterion. Sanity + Astro wins on control, flexibility, and scalability. Webflow wins on time-to-market and visual autonomy. WordPress wins on ecosystem. Drupal wins on complex institutional needs.

CriterionWebflowWordPressDrupalSanity + Astro
Native performanceGoodVariable (plugins, theme)DecentExcellent if well coded
Technical SEOGood, limited on the fine detailsVery complete via pluginsVery completeFull control
Content modelingCollections, simple referencesCustom post typesVery richUnlimited, fine-grained relationships
Roles and permissionsBasic to intermediateCompleteVery completeComplete (advanced on Enterprise)
Editorial workflowsDrafts, page-by-page publishingPluginsNativeReleases, scheduling, comments, tasks
MultilingualWebflow Localize (paid)Plugins (WPML, Polylang)NativeNative, per field or per document
Design systemWebflow classes and componentsDepends on the themeDepends on the themeCode components, tokens, constrained blocks
AI and agents (MCP)Webflow MCP, DesignerGood: WordPress Studio, MCPLimitedFull MCP, schema in code
Upfront costLowLowHighComparable to Webflow, thanks to AI
3-year cost (team of 10)Medium, grows with seatsMedium, grows with maintenanceHighMedium, stable
Developer dependencyLowMediumHighMedium during the build, low afterward
Lock-inHigh (limited export)LowLowVery low (content in JSON, open source front end)

How to read between the lines

Webflow remains an excellent choice up to a certain stage. For a marketing site of 20 to 200 pages, a small team, and a need to launch fast, it's hard to beat. We use it on a large share of our projects. We covered it in detail in our comparison Webflow or WordPress: which CMS to choose.

WordPress has an unmatched ecosystem, but every plugin adds debt. Beyond a certain volume, maintenance, security, and performance become a line item of their own.

Drupal is built for institutions: very fine-grained permissions, complex content, compliance. It's often oversized for a scale-up. See our Webflow vs Drupal comparison.

Sanity + Astro makes sense when content becomes a strategic asset: multiple languages, multiple teams, programmatic SEO, products or data to sync, or a desire to run the site with AI.

What headless really changes for SEO

Headless doesn't magically make a site faster. It gives you full control over what Google and LLMs receive. The distinction matters, and the data shows it.

The "headless = faster" myth

The HTTP Archive Core Web Vitals report measures the share of sites that pass Google's three metrics (LCP, INP, CLS) for real Chrome users. The 2025 and 2026 numbers are telling:

PlatformSites passing Core Web VitalsSource
Wix80%HTTP Archive, April 2026
Webflow67% (mobile), 79% (desktop)HTTP Archive, November 2025
Astro67%HTTP Archive, April 2026
Drupal64%HTTP Archive, April 2026
WordPress49%HTTP Archive, April 2026

Two takeaways:

  1. Astro does much better than WordPress, but not better than Webflow on average. A poorly built Astro site (unoptimized images, third-party scripts everywhere) can be slow.
  2. Closed platforms score well because they limit what you can do. Less freedom, less risk. Headless flips that logic: total freedom, so performance depends on the quality of the build.

The real promise of headless is a higher ceiling, not a higher floor. With Astro, a well-built site ships zero JavaScript by default and reaches Lighthouse scores close to 100. But that's an engineering choice, not a given.

Good to know

Amplitude got 76% faster by moving from a custom WordPress to Sanity. The gain came less from the CMS than from a clean rebuild of the front end, without ten years of technical debt.

The real gain: control over technical SEO

Here's what a Sanity + Astro site lets you do natively, without workarounds:

SEO leverOn a monolithic CMSWith headless Sanity + Astro
Structured data (JSON-LD)Manual embed, page by pageGenerated automatically from the content model
CanonicalsGlobal or per-page settingRules per content type, with exceptions
HreflangHandled by the localization toolGenerated from translation relationships
SitemapsOne global sitemapSegmented sitemaps (blog, products, languages), with real lastmod
RedirectsList in settings, often cappedDedicated Sanity document, editable by marketing, deployed at the CDN level
RenderingDictated by the platformStatic, server or hybrid, page by page
Internal linkingManualSuggestions and "related articles" blocks based on references
Meta tagsStandard fieldsCustom fields, validations (length, keyword present)
Robots and indexingGlobal settingsRules per type, per language, per environment

Programmatic SEO becomes accessible

This is probably the most underrated lever. Programmatic SEO means generating pages at scale from structured data: one page per integration, per city, per use case, per comparison.

On Webflow, it's possible up to the CMS limits (20,000 items on the Premium plan). With headless, the content model and Astro templates let you generate thousands of pages, each with its own structured data, internal linking and indexing rules.

A typical SaaS example: one page per integration ("Connect [your tool] to HubSpot"), powered by a Sanity document that holds the features, use cases, screenshots and FAQ specific to that integration.

The three SEO risks of a headless migration

  1. Client-side rendering. If the front end loads content in JavaScript after display, Google may index it poorly or late. With Astro, rendering is static or server-side by default: the risk disappears, as long as you don't reintroduce it.
  2. Lost redirects. This is the top cause of traffic drops after a migration. Every old URL must 301 redirect to its new equivalent. We cover this in the checklist.
  3. Leaking previews. Misconfigured preview environments end up indexed. You need strict noindex rules and authentication on everything that isn't production.

To go further on the fundamentals, our guide 9 steps to optimize your Webflow site for SEO still applies whatever your stack.

GEO: getting cited by ChatGPT, Perplexity and Gemini

GEO (Generative Engine Optimization) means optimizing your content so AI answer engines pick it up and cite it. A headless CMS helps on three fronts: structure, consistency and distribution.

Structure: a content model instead of one big block of text

An LLM extracts information better when it has a name. In Sanity, a definition can be a definition field, an FAQ a list of question / answer pairs, a key figure a stat object with its value, source and date.

The result: these elements can be rendered cleanly in semantic HTML, marked up in JSON-LD, and reused across the site with the same wording.

Consistency: a single source of truth

Your pricing, your customer count, your product definition: if this information lives in one place in the CMS and is referenced everywhere, it stays consistent. LLMs penalize contradictory sources.

Distribution: serving machines as well as humans

With Astro, it's easy to generate more than HTML pages:

  • an llms.txt file that summarizes the site and points to key pages
  • markdown versions of each page (for example /blog/my-article.md), lighter for an agent to read
  • JSON feeds for partners or integrations
  • complete JSON-LD markup (Organization, Article, FAQPage, Product, BreadcrumbList)
GEO leverHeadless implementation
Explicit definitionsDedicated field, rendered at the top of the section
FAQStructured object, marked up as FAQPage
Figures and sourcesReusable stat object with source and date
EntitiesReferenced person, company, product documents
Machine accessllms.txt, markdown endpoints, up-to-date sitemaps
FreshnessReal update date, managed by the CMS

Editor experience: a truly agile custom CMS

This is the argument that wins over our clients most, well before performance. With Sanity, the back office isn't a generic tool your team adapts to: it's a tool built around your team.

A custom Studio

Sanity Studio, the editing interface, is an application configured in code. That lets you:

  • Name things the way your team names them. "Integration page", "Customer testimonial", "Offer", rather than "Collection 7".
  • Guide input. Contextual help under each field, examples, character limits, required fields.
  • Prevent mistakes. Validation rules: a meta description over 155 characters, an article without a share image or a page without a keyword can't be published.
  • Organize by role. A "Blog" view for the content manager, a "Product" view for the PMM, a "Legal" view for the legal team.

Visual preview

The long-standing complaint about headless: "you edit forms without seeing the result." That's solved. Sanity's Presentation tool shows the live site next to the fields. Click a heading in the preview and the matching field opens. Edit it, and the preview updates.

Editorial workflows worth the name

NeedSanity
Prepare a launch (10 pages + 3 articles + a new offer)Content Releases: group changes, preview everything together, publish all at once or on a date
Schedule a publicationScheduled publishing
Get a reviewComments on a specific field, assigned tasks
Roll backFull history of every document, one-click restore
Work as a teamReal-time collaborative editing, no conflicts

What marketing does on its own, what stays with dev

Marketing does on its ownDev steps in
Create and publish pages from existing blocksCreate a new block type
Write, translate, scheduleChange the content model
Manage redirects and metaAdd an integration (CRM, analytics, A/B testing)
Launch a campaign through a ReleaseEvolve the design system
Reorganize navigationOptimize performance

The line isn't fixed. With vibe coding (more on that below), part of the right column moves to the left.

Good to know

At Amplitude, moving to Sanity grew active CMS users to 70 people across 10 teams, and SEO content output from 4 or 5 pieces a month to more than 20.

Design system: the real key to agility

People often talk about the CMS when they talk about agility. That's a mistake: a well-configured Studio lets you publish content, but the design system is what lets you create pages. Without it, every new landing page becomes a design and development project again. With it, it's an assembly of blocks that marketing does on its own, on brand.

In other words, the agility of a headless site is decided at design time, not at code time. That's why we treat the design system as a deliverable of the migration in its own right, not as a step in the build.

What a design system changes for your team

Without a design systemWith a design system
Every new page goes through a designer, then a developerMarketing assembles the page alone from existing blocks
Pages drift: three button styles, five shades of grayEvery page follows the brand guidelines, by construction
Translated pages break (longer text, rigid layouts)Blocks are designed to adapt to every language
A new editor takes weeks to master the siteThey learn a library of named blocks in one session
An AI agent produces off-brand pagesIt reuses existing components and produces consistent pages
Every brand update means reworking pages one by oneChange one token and the whole site follows

What a good design system contains

  • Foundations: design tokens (colors, typography, spacing, radii, shadows), defined once and named by intent ("brand background", "secondary text").
  • Components: buttons, cards, tags, forms, with their states and variants.
  • Page blocks: hero, logos, features, testimonials, pricing, FAQ, CTA. These are what marketing works with in Sanity.
  • Usage rules: which block for which goal, how many characters per heading, which combinations to avoid.
  • A single source: the same names in Figma, in the Astro code and in Sanity Studio. The designer, the developer, marketing and the AI agent all talk about the same thing.

Good to know

A well-designed block is drawn once and reused across dozens of pages. It's the only investment in a site that speeds up every page you create afterward.

Example: the interactive blocks in this guide

The eight interactive blocks in this guide (the architecture diagram, the filterable comparison, the Core Web Vitals chart, the page builder demo, the stack, the subscription simulator, the diagnostic and the migration timeline) were built from scratch with Claude Cowork, using the design system of our product, the Gemeos app.

In practice, the agent read our Figma mockups (containers, cards, toggles, tabs, tags, KPI cards), extracted the tokens (colors, shadows, radii, typography), then coded each block using only those foundations. We reviewed and adjusted the content without redesigning a single block: the design system guaranteed consistency.

That's exactly what happens on a well-designed headless site. When the foundations are clear, an AI agent produces new components that look like they've always been part of the site. Without a design system, it would have invented a style for each block.

The block-based page builder

A well-designed headless site gives marketing the freedom to create pages without giving it the ability to break the brand. The constrained block-based page builder is the visible part of the design system.

The principle: one Sanity block = one Astro component. Each section of the site (hero, logo grid, testimonials, pricing table, FAQ, CTA) exists twice:

  • in Astro, as a coded component that follows the design system
  • in Sanity, as a block with its fields (heading, text, image, variant)

Marketing assembles a page by stacking blocks in Sanity. Astro renders each block with the matching component. A new landing page comes together in 20 minutes, with no dev ticket.

Tokens so you never go off brand

Design tokens are the base values of your identity: colors, typography, spacing, radii, shadows. On a headless site, they're defined once in the code and used everywhere.

On the Sanity side, you never offer a free color picker. You offer named variants: "Light background", "Brand background", "Dark background". Marketing picks an intent, and the design system applies the right value.

Guardrails that prevent drift

RiskGuardrail
Headings too long that break the layoutCharacter limit with a counter
Images in the wrong formatEnforced ratio, cropping with a focal point
Pages without a CTARequired CTA block on certain page types
Off-brand colorsNamed variants only
Inconsistent stackingRules: no two heroes, FAQ always at the bottom

That's the difference from a free-form visual tool: you don't ask marketing to have a designer's eye. You give them a system that always produces a good result. And the richer the design system is in blocks and variants, the longer the "marketing does on its own" column gets. It's a topic close to our hearts, and we explain it in why your brand image matters more than you think.

Vibe coding and AI agents on a headless CMS

Vibe coding means building or changing software by describing what you want in natural language to an AI agent, which writes the code. On a headless site, this is a major shift: the site becomes a project your team can evolve with AI, without waiting for the next sprint.

Why headless is a better fit than a visual tool

In Sanity + Astro, everything is code or structured data: the content schema, the components, the design system, the configuration. An AI agent can read all of it, understand all of it and propose changes you can verify.

In a visual tool, the state of the site is locked inside an interface. AI can help, but it works through a narrower API.

What the Sanity MCP server makes possible

MCP (Model Context Protocol) is a standard that lets an AI agent use external tools. The Sanity MCP server, compatible with Claude Code, Cursor, VS Code, Claude Desktop, v0 and Lovable, exposes more than 40 tools:

CategoryWhat the agent can do
DocumentsCreate, search, edit, publish, unpublish
SchemaRead the content model, deploy changes
ReleasesPrepare and schedule a batch of content
MediaGenerate and transform images
SearchSemantic search across content and documentation
MigrationGuided paths from WordPress, Contentful, Strapi, Drupal

A typical workflow: from request to deployment

  1. The growth lead opens Claude Code: "Add a 'Comparison' block with a 3-column table and a highlighted row."
  2. The agent creates the block schema in Sanity and the Astro component, reusing the existing tokens.
  3. It opens a pull request with a site preview.
  4. A developer reviews it in 10 minutes, approves and merges.
  5. The block is available in the Studio for the whole team.

Content agents

Beyond code, AI works directly on content:

  • translate a page into 4 languages while following a glossary
  • fill in missing meta descriptions according to your rules
  • suggest relevant internal links based on existing references
  • detect outdated content (dated figures, discontinued products)

Limits to keep in mind

Vibe coding doesn't remove the need for expertise. It shifts it.

  • Human review is still essential, for code and content alike.
  • Permissions matter. An agent should work with a limited token, on a test dataset before production.
  • Quality depends on the foundation. An agent working on a clean design system produces clean work. On a messy foundation, it amplifies the mess. The interactive blocks in this guide, generated from our app's design system, are a good example.

That's why the initial architecture matters so much: it determines what AI can do well for years to come.

Why Astro (and when to choose Next.js)

Astro is a web framework built for content-driven sites: marketing sites, blogs, documentation, editorial e-commerce. Its core principle is islands architecture: the page is static HTML, and only interactive elements (a form, a calculator) load JavaScript.

Astro vs Next.js for a marketing site

CriterionAstroNext.js
PhilosophyContent first, zero JS by defaultApp first, React everywhere
JavaScript shippedOnly for interactive islandsReact runtime on every page
Default performanceExcellentGood, requires optimization
ComponentsAstro, React, Vue, Svelte can be mixedReact only
HostingAnywhere (Cloudflare, Vercel, Netlify, server)Best on Vercel
Best forMarketing site, blog, docs, programmatic SEOMarketing site + connected app, customer portal
Learning curveGentle (close to HTML)Steeper

When to choose Next.js

If your marketing site and your product share many components, or if the site includes a real application layer (customer portal, complex configurator), Next.js is a sound choice.

That's the case for Allo, the AI phone assistant: their site runs on Next.js with Sanity as the CMS. Same headless logic, different framework.

For a site whose main job is to rank, persuade and convert, Astro is our default choice.

Our reference stack

Here is the architecture we recommend for a B2B scale-up migrating to headless.

Building blockRecommended toolRoleAlternatives
CMSSanityStructured content, Studio, workflowsStoryblok, Contentful, Payload
FrameworkAstroPage generation, componentsNext.js, Nuxt
HostingCloudflare or VercelCDN, server rendering, previewsNetlify
ImagesSanity Image PipelineResizing, modern formats, focal pointCloudinary
FormsDirect CRM integration (HubSpot, Attio)Lead captureFormspree, Tally
AnalyticsGA4 + product analytics toolMeasurementPlausible, PostHog
A/B testingTool connected to Sanity blocksTests without developersNative variants
SearchAlgolia or Sanity searchSite searchPagefind (static)
SEO monitoringSearch Console + crawlerPost-migration trackingScreaming Frog, Ahrefs

{cta}

Costs and TCO: what a headless migration really costs

For a long time, headless cost more: it took weeks of development to model the content, code the components and configure the back office. In 2026, that's no longer true. With AI agents, the Sanity MCP server and Astro components generated from the design system, the cost of building a headless site is now comparable to that of a Webflow site. And on subscriptions, headless is often cheaper as soon as the team grows.

The four cost categories

CategoryWebflowSanity + Astro
Site buildBaselineComparable: schema, components and Studio accelerated by AI
SubscriptionsSite plan + Workspace + seats + LocalizeSanity seats + hosting
Ongoing changesOften done in-houseIn-house or with an AI agent, reviewed by a developer
Hidden costsPlan caps, bandwidth add-ons, seatsDependency maintenance, monitoring

Worked example: a 10-person team

Assumptions: 2 people who need a full seat (design, admin), 8 content editors, a single site. Public annual pricing as of September 2026, excluding tax.

Line itemWebflowSanity + Astro
Site planPremium: $25/monthNot applicable
WorkspaceGrowth: $49/monthNot applicable
Full seats2 × $39 = $78/monthIncluded in Sanity seats
Editor seats8 × $15 = $120/month10 × $15 = $150/month (Growth plan)
HostingIncludedAbout $20/month (Vercel Pro, 1 member) or less on Cloudflare
MultilingualWebflow Localize extraIncluded
Total subscriptionsAbout $272/month, or $3,260/year, excluding LocalizeAbout $170/month, or $2,040/year

In this example, headless comes out about $100/month cheaper, or more than $1,200/year. The gap widens with every language you add and every person who joins the team. The simulator below runs the numbers for your situation.

For details on the Webflow side, see our guides on Webflow plans and pricing and the cost of a Webflow website redesign.

Good to know

Sanity's free plan includes 20 seats and 10,000 documents, but it blocks requests when a limit is reached. The Growth plan bills overages instead of cutting you off: for a production site, that's the plan to budget for.

Should you go headless? The diagnosis

Headless is not a mandatory upgrade. It's an answer to specific problems. If you don't have them, stay on your current stack and invest elsewhere.

The 10 diagnostic questions:

  1. Does your site have more than 300 pages or 5,000 CMS items?
  2. Do you publish in more than two languages?
  3. Do more than 5 people publish on the site regularly?
  4. Do you need approval workflows (review, legal, coordinated launches)?
  5. Does your content need to feed other channels (app, product, partners, AI agents)?
  6. Do you want to do programmatic SEO at scale?
  7. Are you hitting technical limits on your current platform?
  8. Do you have an in-house developer or a long-term agency partner?
  9. Do you want to evolve the site with AI agents?
  10. Is the site a major acquisition channel for your growth?

When not to migrate

We tell our clients as clearly as we tell you here: don't migrate if

  • your site has fewer than 50 pages and rarely changes
  • no one will be able to maintain the code long term
  • your problem is content or conversion, not the platform
  • you need to relaunch the site on a very short timeline, with no room for an audit
  • you're early-stage and your positioning is still going to change

In these cases, a well-built Webflow site will serve you better. We also wrote a guide on how much a website costs to help you set your budget.

The headless migration in 7 steps

A successful headless migration is won before the first line of code. The first three steps (audit, modeling, redirect plan) determine 80% of the SEO outcome.

Step 1: audit the existing site

We inventory everything that has value before touching anything.

  • full site crawl (all URLs, status codes, tags, depth)
  • Search Console export: pages that get clicks and impressions
  • pages that get backlinks
  • inventory of content types, fields, and media
  • inventory of scripts, integrations, and forms

Deliverable: a reference file listing every URL with its traffic, backlinks, and fate (keep, merge, delete).

Step 2: model the content

This is the most strategic step. We define the document types (article, page, case study, integration, author), their fields, and their relationships.

The rule: model content based on what it is, not how it displays. A "testimonial" is a reusable document, not a block of text on a page.

Deliverable: the documented Sanity schema, approved by your marketing team.

Step 3: plan the redirects

Every URL on the old site that has traffic or backlinks needs a destination. Ideally the same URL. Otherwise, a 301 redirect to the closest page.

Deliverable: the old URL → new URL mapping table, imported into Sanity.

Step 4: the design system, then the build

This step decides your team's future agility. We start with design: tokens, components, and the block library, built around the pages marketing will need over the next 12 months, not just the ones that exist today. Only then do we build the Astro components, the page builder, and the templates, and configure the Studio (views, validations, preview).

Deliverable: a documented design system and a working site on a non-indexable staging environment.

Step 5: migrate the content

Migration is done by script, never by hand beyond a few dozen pages. The script pulls the old content (API, CSV export, or crawl), transforms it to the new model, downloads the media, and creates the documents in Sanity.

This is where the Sanity MCP server and an AI agent save the most time: writing the script, transforming rich text, and running consistency checks.

Deliverable: 100% of the content in Sanity, verified by sampling.

Step 6: SEO QA

We compare the old and new sites, URL by URL: title and meta tags, H1, canonicals, hreflang, structured data, internal linking, performance, redirects.

Deliverable: a QA report with no blocking errors.

Step 7: launch and monitoring

DNS cutover, sitemap submission, daily monitoring for 2 weeks, then weekly for 3 months.

Deliverable: a tracking dashboard (indexed pages, 404 errors, rankings, organic traffic).

How long does a migration take?

It depends on the scope. Two 200-page sites can require very different timelines depending on what gets migrated and what gets rebuilt. That's why we never give a timeline before the audit: we estimate it once the scope is known.

What makes the project longerWhat makes it shorter
A full design overhaul at the same time as the migrationAn existing design system, reused as is
Many content types and relationships between themA simple content model (pages, articles, case studies)
Several languages to migrate and maintainA single language at launch, the others later
A large volume of content, a poorly structured sourceA clean export (API or CSV) from the old CMS
Integrations (CRM, product tools, data)Standard forms and analytics
Slow approvals or approvals spread across several teamsA single decision-maker and scheduled approval checkpoints

The most underrated lever: migrate in stages. Launching the blog or one section on headless first lets you validate the approach quickly, then extend to the rest of the site.

The SEO migration checklist

Keep this checklist open for the entire project. Every unchecked item is a risk of losing traffic.

PhaseCheckpoint
BeforeFull crawl of the old site archived
BeforeSearch Console export (last 12 months)
BeforeList of pages with backlinks
BeforeRankings for main keywords recorded
BeforeComplete, approved redirect table
BeforeURL structure kept wherever possible
DuringStaging set to noindex and password-protected
DuringTitle and meta tags migrated as is or improved
DuringOnly one H1 per page
DuringSelf-referencing canonicals
DuringConsistent hreflang across all languages
DuringStructured data validated (Rich Results Test)
DuringImage alt text migrated
DuringInternal linking with no links to old URLs
DuringCore Web Vitals tested on the main templates
DuringSitemaps generated and segmented
DuringProduction robots.txt ready
Launch301 redirects tested in bulk
LaunchNoindex removed from production
LaunchSitemaps submitted in Search Console
LaunchAnalytics and conversions verified
AfterDaily monitoring of 404s and crawl errors (2 weeks)
AfterIndexed pages monitoring
AfterRankings and traffic monitoring (3 months)
AfterMajor backlinks updated to the new URLs

They migrated: examples and results

The examples below share one thing: a headless migration is not a technical project, it's an autonomy project for marketing teams.

Amplitude: from WordPress to Sanity

Amplitude had been running on a custom WordPress site for more than ten years. Only 3 engineers could edit the site, and the team published 4 to 5 pieces of content per month.

After migrating to Sanity, with zero downtime across thousands of pages:

MetricResult
SEO content production18x more
Site speed76% faster
Traffic+19% year over year
Active CMS users70 people across 10 teams
First A/B test+25% conversion

Gong: 400 pages moved off WordPress

Gong, the revenue intelligence platform, migrated more than 400 pages from WordPress to Sanity. The driver behind the project: ending marketing's dependence on the engineering team for every update.

Calendly, Allo, and the SaaS wave

Calendly is one of the B2B SaaS companies that chose Sanity for their website. Allo, the French AI telephony startup, also runs on Sanity, with a Next.js front end. The pattern repeats: when the site becomes an acquisition engine, content moves into a structured CMS.

Cloudflare, IKEA, Porsche: Astro in production

On the framework side, Astro is used by Cloudflare (sites, documentation, blog), IKEA, Porsche, and OpenAI. Webflow itself chose Astro for Webflow Cloud. In other words: even no-code platforms bet on Astro when code is needed.

Still undecided about your starting platform? Our comparisons Webflow vs HubSpot CMS and the best Webflow alternatives give you the big picture.

FAQ

What is a headless CMS?

A headless CMS is a content management system that stores and structures content without handling how it's displayed. Content is delivered via API to one or more front ends (website, app, AI agent). Sanity, Contentful, and Storyblok are headless CMSs.

Does a headless migration cause SEO traffic loss?

Not if it's well prepared. Losses almost always come from missing redirects, tags that weren't migrated, or an indexed staging site. With a complete redirect plan and URL-by-URL QA, traffic stays stable, then grows thanks to better technical control.

How long does a migration to Sanity + Astro take?

It depends on the scope: content volume, number of languages, whether the design is being rebuilt, integrations, and the pace of approvals. That's why we always estimate the timeline after the audit, not before. Migrating in stages, starting with the blog or one section, gets you results faster.

Is headless faster than Webflow?

Not automatically. According to HTTP Archive, Astro and Webflow (mobile) show the same Core Web Vitals pass rate, around 67%. Headless offers a higher ceiling: a well-built Astro site can outperform any platform, but it depends on the quality of the build.

Will my marketing team be able to edit the site without a developer?

Yes, for everything content-related: pages, articles, translations, redirects, meta, launches. With a block-based page builder, they can also create new pages on their own. Creating a new block type, however, requires a developer, or a supervised AI agent.

Why Sanity rather than Contentful or Strapi?

Sanity combines a fully customizable Studio, real-time collaborative editing, visual preview, and a complete MCP server for AI agents. Its Growth plan at $15 per seat per month is still significantly cheaper than most competitors for a team of 5 to 20 people.

Why Astro rather than Next.js?

Astro ships zero JavaScript by default and only loads code for interactive elements. For a site whose job is to rank and convert, it's the best-performing and simplest option to maintain. Next.js is the better choice if the site shares a lot of code with a React application.

Can you migrate gradually?

Yes. You can start with the blog or one section (for example, the integration pages) on headless, in a subfolder, while the rest of the site stays on the current platform. It's often the best way to validate the approach before migrating everything.

How much does a headless CMS cost per month?

Sanity is free for up to 20 seats with strict limits, then $15 per seat per month on the Growth plan. Add front-end hosting (from $0 to a few dozen dollars per month depending on traffic). For a team of 10, subscriptions come to around $170 per month.

Conclusion

A headless CMS migration is not a technical trend. It's the choice to turn your website into an asset that your teams, and soon your AI agents, can evolve without friction, as long as you give it a solid design system.

At Gemeos, we work with startups and scale-ups on Webflow, WordPress, and headless with Sanity + Astro. Our rule is simple: choose the stack that serves the client's growth, not the one that's trendy. If you're asking yourself the question for your site, we always start with the audit.

Published on 27.09.2026

Mis à jour le 27.09.2026

Meet Sacha Da Silva, Co-Founder and Product Designer at Gemeos. He leads projects end-to-end and drives the agency's creative direction.

You might be interested in these articles

Related articles

Development

5 min read

Can you create a Webflow site without coding?

Updated on 10.06.2026 by Sandro DA SILVA

Development
Can you create multilingual sites with Webflow?

Updated on 22.05.2026 by Sandro DA SILVA

Development
Everything you need to know about hosting your Webflow site

Updated on 22.05.2026 by Sandro DA SILVA

Let’s f*****G GO !!

Ready to launch
Your business?

Alexandre

Max

Enora

Bryan

Cannelle

Tiphaine

You'll :heart: our collaboration...