Webflow to Sanity
Migrate from Webflow to Sanity
Sanity holds content. It does not render anything. So the useful version of this question is not how the collections move, which is the straightforward part, but what is putting pages on the internet once they have.
A migration like this usually takes 3–5 weeks
Why people move
What changes when you move from Webflow to Sanity.
| What is being compared | Webflow | Sanity |
|---|---|---|
| What renders the site | Webflow Webflow, and that is the product | Sanity Nothing. Sanity answers queries This is the whole decision. Sanity is a content back end with an editing interface on top, and a site still needs something in front of it, which is either the Webflow site you already have or a front end somebody builds. |
| Content model | Webflow Collections, with the field types on offer | Sanity Types you define in code, versioned with everything else |
| What a field can hold | Webflow A flat list of typed fields | Sanity Arrays of objects, each one a different shape The reason most people arrive here. A page built from a sequence of sections, where each section is a different thing, has no comfortable home in a flat collection, which is why teams end up with step_1, step_2, step_3 and a row of booleans. |
| Changing the model | Webflow A panel, and it takes effect immediately | Sanity A schema file, a deploy, and the migration of what is already there Webflow genuinely wins this. Adding a field in a panel is faster than adding one in code, and the day that stops being an advantage is the day two people need to change the model without breaking each other. |
| Where the images live | Webflow Webflow's assets, served from its CDN | Sanity Sanity's asset pipeline, with transforms asked for at read time |
| Where publishing happens | Webflow In the same place as the site | Sanity A separate application, which the team has to be told about Moving the CMS out of Webflow means the people who publish now go somewhere else to do it. That is a change to somebody's day, and it is worth saying out loud before it is discovered. |
Nothing here says Webflow's CMS is bad. It says it has shapes, and the move is worth it when the content has outgrown them.
Once you have decided
What actually migrates.
| What you have | What happens | Why |
|---|---|---|
| Collections | Move Comes across as it is. The content survives the move and the work is transporting it, not remaking it. | Structured fields are the part that transfers cleanly. Text, numbers, dates, booleans, slugs and options come across through the Data API and land as documents. |
| Rich text | Rebuild Made again in Sanity. The old version is a reference rather than something that can be imported. | Webflow stores it as HTML. Sanity stores Portable Text, which is an array of blocks rather than a string of markup, and the conversion is where the work is. |
| Images and files | Move Comes across as it is. The content survives the move and the work is transporting it, not remaking it. | Uploaded into Sanity before any document is written, so the ids exist when the documents referencing them arrive. Webflow has served assets from three different domains over the years and an old site will have all three in it, so the scan has to look for each. |
| References | Reconfigure The same thing, set up again. Nothing is recreated, but it has to be pointed at the new site by hand. | Webflow returns them as item ids, which mean nothing in Sanity. The documented pattern is two passes: everything is created first and the ids recorded, then a second pass rewrites each reference against the id it now has. |
| Pages | Rebuild Made again in Sanity. The old version is a reference rather than something that can be imported. | Sanity has no pages. Whatever is rendering the site owns them, and if that is still Webflow then this is a sync rather than a migration. |
| URLs | Reconfigure The same thing, set up again. Nothing is recreated, but it has to be pointed at the new site by hand. | Slugs move with the documents. Whether the addresses stay identical depends entirely on what is rendering them afterward, which is the decision above rather than a consequence of the move. |
Before you budget it
Where this migration gets complicated.
- 01
Code blocks do not come out of the API at all
Webflow's Data API does not support code blocks in a rich text field, and reading one back gives an empty string. Nothing errors. On a documentation or engineering blog that is the most valuable content on the site arriving blank, and the only way to find out is to compare what came back against the published page.
- 02
Rich text images are wrapped in something the converter does not know
Webflow puts an image inside a figure carrying its own data attribute. The standard HTML-to-Portable-Text conversion has no rule for it, so it either drops the image or dumps the whole figure in as an unparsed blob, and both look like a successful run. Every distinct wrapper in the existing content needs a rule written for it, which means reading the content rather than asking anybody.
How it runs
How the migration works.
-
01
Plan
Every collection, every field, and every distinct thing embedded in a rich text field, written down. Then the decision that governs the rest: whether Webflow keeps rendering the site.
-
02
Build
Document types written and deployed to the Studio, a block type for each job the rich text was doing, and the editing interface arranged for the people who will use it.
-
03
Migrate
Assets uploaded first so the ids exist, then documents created and their new ids recorded, then a second pass resolving every reference. Checked against the source rather than spot-checked.
-
04
Launch
Every document rendering, every asset resolving, every address answering what it answered before. Typically 3–5 weeks, then a week of watching the old addresses.
What you are buying
What is included.
-
Design rebuild
Rebuilt as components, not approximated.
-
Responsive development
Desktop, tablet and mobile, built and checked.
-
CMS architecture
Collections and fields mapped before build.
-
Content migration
Migrated and checked against the source.
-
Asset migration
Collected, compressed and rehosted.
-
Forms and integrations
Tested through to the final record.
-
URL parity
Every public address the same on both sides.
-
Metadata and canonicals
Preserved wherever possible.
-
Search footprint preservation
URLs inventoried before and checked after.
-
Pre-launch QA
Forms, templates and old URLs verified.
-
Post-launch support
One week of indexing and traffic checks included.
Search visibility can move during a migration. The goal is to preserve what search engines already understand, and to catch what changed quickly after launch.
Coming from somewhere else?
-
Webflow to Astro
Typically 2–4 weeks
Learn more → -
Webflow to Next.js
Typically 3–5 weeks
Learn more → -
HTML to Webflow
Typically 2–3 weeks
Learn more → -
WordPress to Webflow
Typically 3–4 weeks
Learn more → -
Squarespace to Webflow
Typically 2–3 weeks
Learn more → -
Wix to Webflow
Typically 2–3 weeks
Learn more →
Reach out and see if we are a good fit.
Currently booking two to four weeks out.