Migration

Sanity migration services: move to Sanity from WordPress, Contentful, Drupal or any CMS, with a URL map and permanent redirects

Short answer

Deploi migrates WordPress, Contentful, Drupal and other content management system (CMS) sites to Sanity at $100 CAD an hour, with a written hours estimate you approve first (Deploi, Pricing, October 2026). Deploi's three site estimates include migration. Every old URL is mapped, and moved pages get permanent redirects, because Google says those lose no PageRank (Google Search Central, October 2026).

Rate
$100 CAD an hour, prepaidEvery job is estimated in hours and approved in writing before it starts; billed hours never exceed the approved estimate. Prices are before applicable taxes.Source: Deploi (Pricing)
Headless move, frontend kept
Deploi's estimate: 150 to 400 hours$15,000 to $40,000 CAD before applicable taxes, about 4 to 8 weeks from kickoff to launch (Deploi's estimate, 25 October 2026).Source: Deploi (Pricing)
Redirects
Permanent, kept generally at least 1 yearGoogle says to map every old URL to its new URL and that 301 and other permanent redirects don't cause a loss in PageRank.Source: Google Search Central (Site Moves and Migrations)
Rankings during the move
Temporary fluctuation expectedGoogle says a medium-sized site can take a few weeks or more to show its new URLs, and a larger site longer.Source: Google Search Central (Site Moves and Migrations)

Can Deploi migrate WordPress, Drupal, AEM or Sitecore to Sanity?

Yes. Deploi migrates WordPress, Drupal, Adobe Experience Manager (AEM) and Sitecore sites to Sanity, and any other source whose content a script can export, because Sanity's importer reads newline-delimited JSON (NDJSON) files, one document per line (Sanity Docs, October 2026). Each platform has a decision guide and a playbook:

Does Deploi use the same migration method for every CMS?

Yes. Deploi moves Kentico Xperience, Umbraco, Contentful or a legacy content management system (CMS) to Sanity with the same controls as any other source: a content audit, field mapping, re-runnable import scripts and a redirect map. The method holds because every source ends as newline-delimited JSON (NDJSON) for Sanity's importer, so only the export step changes (Sanity Docs, October 2026).

A Contentful move that keeps your frontend gets its own Deploi estimate. The guides by platform:

What does a CMS migration to Sanity involve?

A content management system (CMS) migration to Sanity with Deploi covers the content audit and field mapping, migration scripts with dry runs, rich text to Portable Text, assets and references, the redirect map, search engine optimization (SEO) checks and the cutover. Each step carries a control, because Sanity's importer doesn't check Sanity Studio validation rules (Sanity Docs, October 2026).

How Deploi runs a migration to Sanity

  1. Plan and audit. Inventory every content type, field and live URL, and map each to a Sanity document type or object: planning a CMS migration from audit to cutover.
  2. Checklist with owners. Every item gets an owner and a proof that it's done: the migration checklist.
  3. Scripted import. Export the target dataset, then load a staging copy first, as Sanity advises (Sanity Docs, October 2026), with stable IDs and expected counts: dry runs, draft prefixes and rollback.
  4. Redirects and search checks. Map every old URL to its new one and crawl both: keeping SEO through the move.
  5. Cutover. Run the final import from a fresh export and switch redirects on at launch, with a rollback plan: cutting over with a parallel run.

How much does a migration to Sanity cost?

Deploi estimates a content migration to Sanity at $3,000 to $6,000 CAD for a small site and $15,000 to $40,000 CAD for a large, multilingual or enterprise one, before applicable taxes. Each Deploi site estimate already includes the migration of its size, so migration is never an extra.

Deploi's estimates, 25 October 2026: migration sizes by site estimate
MigrationHoursCAD before taxIncluded in
Up to about 500 entries, one language30 to 60$3,000 to $6,000A marketing site
About 500 to 5,000 entries, custom fields, redirects60 to 150$6,000 to $15,000A larger content site
Over 5,000 entries, several languages, or an enterprise source150 to 400$15,000 to $40,000A multilingual or multi-site platform
Source: Deploi (Pricing). As of 25 October 2026.

These are Deploi's estimates as of 25 October 2026: the hours each part of the work takes (the content model, templates and components, integrations, content migration, testing and launch), priced at the published $100 CAD rate. Your project gets its own written estimate, and you agree the total before work begins; it changes only if the scope changes or a cause outside Deploi's control arises.

A bigger or messier migration swaps in the larger size. Sanity's plan, hosting, writing, translation and sales tax are excluded: what the site estimates cover.

What does a WordPress to Sanity migration cost?

A 10-template WordPress site with 800 posts moving to Sanity and Next.js costs 760 hours in Deploi's estimate, or $76,000 CAD before applicable taxes, about 13 to 16 weeks from kickoff to launch. The example has custom fields on the posts, a contact form, one customer relationship management (CRM) integration and the site's current design.

Deploi's estimates, 25 October 2026: a 10-template WordPress site with 800 posts moving to Sanity
LineHours
Content model and schema design60
10 templates at about 45 hours450
CRM integration25
Visual Editing and live preview20
Environments, deployment, analytics and search engine optimization setup25
Migrating 800 posts, media and redirects90
Testing, accessibility checks and launch60
Training and post-launch support30
Total760
Deploi arithmetic: the eight lines add to 760 hours, and 760 hours at $100 CAD is $76,000 CAD before applicable taxes.Source: Deploi (Pricing). As of 25 October 2026.

The example sits inside Deploi's larger content site estimate (600 to 1,350 hours), so its 90-hour migration line falls in the middle size (60 to 150 hours).

Martin Dejnicki has worked with content management systems for more than 20 years and built and managed hundreds of WordPress sites between 2005 and 2017 (Deploi, WordPress to Sanity, October 2026).

What does it cost to move from Contentful to Sanity and keep your frontend?

Moving from Contentful to Sanity and keeping your Next.js or React frontend is 150 to 400 hours in Deploi's estimate, or $15,000 to $40,000 CAD before applicable taxes, about 4 to 8 weeks from kickoff to launch. The same range covers Strapi, Prismic, Hygraph or a similar headless content management system (CMS).

The largest line is the frontend data layer: queries rewritten in GROQ (Graph-Relational Object Queries), the rich text renderer and preview, so a frontend with more templates costs more.

Deploi's estimates, 25 October 2026: Contentful to Sanity with 3,000 entries, keeping a 12-template Next.js frontend
LineThis example in hoursHeadless move range in hours
Content model mapping3020 to 40
Studio setup and editor training2010 to 30
Migration scripts and dry runs8040 to 100
12 templates' queries and rich text at about 10 hours12060 to 180
Testing and cutover3020 to 50
Total280150 to 400
Deploi arithmetic: 30 + 20 + 80 + 120 + 30 = 280 hours, and 280 hours at $100 CAD = $28,000 CAD before applicable taxes, about 5 to 7 weeks from kickoff to launch.Source: Deploi (Pricing). As of 25 October 2026.

Still deciding whether to leave Contentful? Read how Sanity and Contentful compare.

Which search controls does Deploi put on a move to Sanity?

Deploi guards search traffic through a move to Sanity with controls, not ranking promises: a map from every old URL to its new URL, one permanent redirect per URL, and redirects kept generally at least a year, as Google advises (Google Search Central, October 2026). Google says permanent redirects don't cause a loss in PageRank.

  • Server-side and permanent: Google recommends a permanent server-side redirect whenever possible (Google Search Central, October 2026).
  • One hop: each old URL goes straight to its final URL, because Sanity's redirect guide says chains complicate crawling (Sanity Docs, October 2026).
  • Related targets: a retired page redirects to its closest related page, since crawlers penalize redirects to unrelated content (Sanity Docs, October 2026).
  • Updated signals: sitemaps, canonical tags and internal links point at the new URLs at launch.
  • Crawl comparison: the old URL list is crawled before and after launch.

Rankings still move for a while: Google says to expect temporary fluctuation during a site move (Google Search Central, October 2026). For the rest, read what else breaks when a site goes headless.

What goes wrong in a migration to Sanity?

The costly failures in a migration to Sanity are silent: clean imports that skip validation, overrun a quota or break a link. Deploi puts a control on each before the first import, because Sanity's validation rules run only in Sanity Studio (Sanity Docs, October 2026).

Seven migration risks and Deploi's control for each
RiskWhat happensControl
Validation skippedImports bypass Studio rulesValidate the dataset after each run
Re-runExisting IDs fail without --replaceStable IDs, re-run with --replace
WebhooksImports fire webhooks in bulkDisable webhooks first
Missing assetAn unavailable file fails the importCheck every asset first
Rich textUnmapped HTML is lost or kept rawA conversion rule per HTML pattern
Document quotaGrowth: 25,000 documents, no overage, drafts countCount documents and drafts first
Editors mid-runContent changes during the runFinal import from a fresh export
Sources: Sanity Docs (Import data, Important considerations for schema and content migrations, Plans and payments); Sanity (Plans that scale with you); Sanity Learn (Convert rich text to Portable Text). As of 25 October 2026.

On deploi.ca's own Sanity sections, the FAQ hub's release scripts dry-run by default with expected counts and an export first, unpublished content imports under draft IDs, and Build vs. Buy waves 5 to 8 and the data section's first wave shipped with a rollback list of document IDs. In September 2026 Deploi moved its FAQ between Sanity projects in one dry-run-first transaction.

Questions buyers ask

Can Deploi guarantee our rankings after a migration to Sanity?

No. Google says to expect temporary fluctuation in site ranking during a move (Google Search Central, October 2026), so no one can honestly guarantee rankings after a migration to Sanity. Deploi commits to controls instead: every old URL mapped, one permanent redirect per URL, redirects kept generally at least a year, and a crawl comparison before and after launch.

Do we have to freeze content during a migration to Sanity?

Only for the final import run into Sanity. Deploi's import scripts keep stable document IDs from your old content management system (CMS), so a rerun on a fresh export with --replace overwrites earlier passes (Sanity Docs, October 2026). Editors keep publishing on the old platform until then, so the content freeze lasts one import run.

Can you migrate our images and files to Sanity?

Yes. Sanity's importer uploads each image or file that a document's _sanityAsset property points to, by local path or URL (Sanity Docs, October 2026). An unavailable asset fails the import unless you pass --allow-failing-assets (Sanity Docs, October 2026), so Deploi checks every asset first. Image and file assets don't count toward Sanity's document quota (Sanity Docs, October 2026).

Does Sanity have a migration tool?

Yes. Sanity offers a command-line import (Sanity Docs, October 2026) and a migration skill for AI agents with source-specific guides. Sanity calls the skill "agent-scaffolded, not fully automated" (Sanity blog, October 2026), so Deploi still writes, runs and checks the scripts. Sanity's Model Context Protocol (MCP) server lists guided paths from Contentful, WordPress, Strapi and Drupal (Sanity blog, October 2026).

Can Deploi migrate a Webflow, Wix or Squarespace site to Sanity?

Yes. Deploi estimates a Webflow, Wix or Squarespace move in hours, and you approve that estimate in writing first (Deploi, Pricing, October 2026). Any source whose content a script can export can be imported, because Sanity's importer reads newline-delimited JSON (NDJSON) files (Sanity Docs, October 2026). Sanity Learn also has a Webflow migration course (Sanity Learn, October 2026).

What does Deploi need from us to start a migration?

Deploi needs access to your old content management system (CMS) or a full export, a list of live URLs or a crawl, analytics and Google Search Console access, and the people who approve the content model, so Deploi can estimate the migration in hours. You approve the total in writing before work starts (Deploi, Pricing, October 2026).

How long does a migration to Sanity take?

Deploi's estimates as of 25 October 2026, kickoff to launch: 4 to 8 weeks for a headless migration to Sanity that keeps your frontend, and 13 to 16 weeks for a whole 10-template WordPress site. Search lags behind, because Google says a medium-sized site can take a few weeks or more to show new URLs (Google Search Central, October 2026).

Deploi’s point of view

Our take
Migrate to Sanity in passes, not in one weekend: script the import so it can run again, prove it on a staging dataset, and cut over only when counts, validation and the URL map all check out. Remodel while you move, because a one-to-one copy carries the old platform's page-shaped content into a system built for structured content.
Where we disagree
Migration pitches promise no traffic loss. Google says to expect temporary ranking fluctuation during a site move, so the honest promise is controls, not outcomes: every URL mapped, permanent redirects kept generally at least a year, and a crawl before and after launch. The second mistake is trusting a clean import. Sanity's validation rules run in Sanity Studio, not on imported content, so an import that succeeds can still load documents editors can't publish.
What we’ve seen
Deploi ships its own Sanity content in packages. The FAQ v2 release on deploi.ca was built with scripts that dry-run by default, expected counts and a dataset export first, and its short-URL answers are live. The first wave of deploi.ca's Shopify data section went in as one package of 406 documents and 159 images, with check queries and a rollback list of document IDs. The Build vs. Buy waves import unpublished content under draft ID prefixes. In September 2026 Deploi moved its FAQ from a standalone Sanity project into a shared one in a single dry-run-first transaction.
What we refuse to promise
We don't promise unchanged rankings, or a launch date before the content inventory is done. We do promise a written hours estimate before work starts, billed hours that never exceed it unless a cause outside Deploi's control, such as a third-party integration issue, changes the work.
What we'd tell you to do first
Crawl your live site and export your URL list before anyone touches a schema. The URL map and the content model come from the same inventory, and the pages you decide to retire need redirects as much as the pages you keep.

When this answer changes

  • Google changes its site move guidance, including how long to keep redirects
  • Sanity changes the importer's validation, replace or asset handling, or the dry-run default of sanity migrations run
  • Sanity changes Growth's 25,000 included documents or its no-overage rule
  • Sanity's migration skill or MCP server adds or drops a source platform
  • Deploi revises its Sanity estimates or changes its $100 CAD rate or terms

Sources

Every source opened and checked on 25 October 2026.

  1. Deploi, Pricingdeploi.ca · checked 25 October 2026
  2. Google Search Central, Site Moves and Migrationsdevelopers.google.com · checked 25 October 2026
  3. Sanity Docs, Import datasanity.io · checked 24 October 2026
  4. Sanity Docs, Important considerations for schema and content migrationssanity.io · checked 24 October 2026
  5. Sanity Docs, Managing redirects with Sanitysanity.io · checked 24 October 2026
  6. Google Search Central, Redirects and Google Searchdevelopers.google.com · checked 25 October 2026
  7. Sanity, Plans that scale with yousanity.io · checked 24 October 2026
  8. Sanity Docs, Plans and paymentssanity.io · checked 24 October 2026
  9. Sanity Blog, What's new in Augustsanity.io · checked 24 October 2026
  10. Sanity Blog, You'll need a CMS eventually. Let your agent set it up.sanity.io · checked 24 October 2026
  11. Sanity Learn, Replatforming from a legacy CMS to a Content Operation Systemsanity.io · checked 24 October 2026
  12. Deploi, WordPress to Sanity Migrationdeploi.ca · checked 25 October 2026
  13. Sanity Learn, Convert rich text to Portable Textsanity.io · checked 25 October 2026