Title: Altered Digital Migration to Sanity
Author: altereddigital
Published: <strong>October 9, 2026</strong>
Last modified: October 9, 2026

---

Search plugins

![](https://ps.w.org/altered-digital-migration-to-sanity/assets/banner-772x250.png?
rev=3737104)

![](https://ps.w.org/altered-digital-migration-to-sanity/assets/icon.svg?rev=3737104)

# Altered Digital Migration to Sanity

 By [altereddigital](https://profiles.wordpress.org/altereddigital/)

[Download](https://downloads.wordpress.org/plugin/altered-digital-migration-to-sanity.2.4.1.zip)

 * [Details](https://wordpress.org/plugins/altered-digital-migration-to-sanity/#description)
 * [Reviews](https://wordpress.org/plugins/altered-digital-migration-to-sanity/#reviews)
 *  [Installation](https://wordpress.org/plugins/altered-digital-migration-to-sanity/#installation)
 * [Development](https://wordpress.org/plugins/altered-digital-migration-to-sanity/#developers)

 [Support](https://wordpress.org/support/plugin/altered-digital-migration-to-sanity/)

## Description

Altered Digital Migration to Sanity is the companion plugin for the [Altered Digital](https://altereddigital.com)
migration service. It provides a guided 11-step wizard that analyzes your WordPress
site, generates a quote, connects to your Sanity project, migrates your content,
and provides post-migration tooling.

**This plugin is an interface to the Altered Digital migration service (a paid service).**
The content transformation, page builder parsing, SEO extraction, and redirect handling
are performed by the Altered Digital Worker (a Cloudflare Worker) and AI service.
The plugin sends your WordPress content to that service for processing.

This plugin is not affiliated with or endorsed by Automattic, the WordPress Foundation,
or Sanity.io.

#### What data is sent to the external service?

When you trigger a migration, the plugin sends the following data to the Altered
Digital Worker:

 * **Post content** — title, body (raw HTML, Gutenberg blocks, or page builder data),
   excerpt, slug, publish date, and status for each exported post/page.
 * **Taxonomy terms** — categories and tags (name, slug, description, parent).
 * **Authors** — display name, slug, and bio for post authors.
 * **Media** — featured images and inline images (uploaded by reference URL to your
   WP site, then transferred to Sanity’s asset CDN).
 * **ACF fields** — Advanced Custom Fields field group data associated with exported
   posts.
 * **SEO metadata** — Yoast or Rank Math SEO data (meta title, meta description,
   canonical URL, Open Graph data, Twitter card, schema.org JSON-LD) extracted from
   post meta.
 * **Redirect rules** — redirect rules from the Redirection plugin (if installed),
   sent as a batch to the Worker.
 * **Site analysis** — when you click “Analyze my site”: post counts per type, page
   builder distribution, ACF field inventory, theme name/version, WordPress version,
   and PHP version.

Content is only sent when you trigger it (clicking wizard buttons) or when the auto-
sync feature is explicitly enabled in the Content Settings step (it is off by default).
Separately, while you are actively using the migration wizard the plugin sends limited,
non-content usage events — see “Usage telemetry” below. Nothing at all is sent on
plugin activation.

The plugin **does not** send: user passwords, API keys stored in other plugins, 
Stripe/PayPal/SMTP credentials, or any other sensitive post meta. A filter strips
known sensitive meta keys before sending post data.

#### Usage telemetry

The plugin sends limited usage events to the Altered Digital service so installs
can be linked to their migration account:

 * **When** — only while you are actively working in the migration wizard, signed
   in to your Altered Digital account: when a wizard milestone completes (login,
   scan, quote, payment, connect, content, migrate, approve, paid_full) and once
   when you connect your Sanity project. No telemetry is sent on plugin activation
   or page load — the activation-time install ping was removed in 2.4.1.
 * **What** — a stable install ID (a random UUID stored in your own database), your
   site URL, WordPress/PHP/plugin versions, a multisite flag, and the milestone 
   name. No post content, media, user data, or settings are included.
 * **How** — a fire-and-forget background POST with a 2-second timeout. It never
   blocks page loads or wizard steps, and failures are silent.
 * **Where** — the Altered Digital Worker endpoint configured on the plugin Settings
   page.
 * **Self-host mode** — telemetry is skipped entirely when no service URL is configured.

#### External services

This plugin sends data to the following external services. Each service’s terms 
of service and privacy policy govern the data it receives:

 * **Altered Digital Worker** (Cloudflare Worker, https://wp-to-sanity-migration.
   ryan-600.workers.dev) — receives the content you choose to migrate, transforms
   it, and writes it to your Sanity project. Sent when you trigger a migration or
   enable auto-sync.
    - Terms of Use: https://wptosanity-docs.vercel.app/docs/terms
    - Privacy Policy: https://wptosanity-docs.vercel.app/docs/privacy
 * **Altered Digital AI Service** (Vercel) — performs site analysis, quote generation,
   QA checks, and AI-assisted content transformation for blocks below the confidence
   threshold. Sent when you run the Analyze step or a migration.
    - Terms of Use: https://wptosanity-docs.vercel.app/docs/terms
    - Privacy Policy: https://wptosanity-docs.vercel.app/docs/privacy
 * **Supabase** (https://supabase.com) — handles account authentication (signup/
   login) for the Altered Digital platform. Your account email and password are 
   sent to Supabase’s hosted auth service.
    - Terms of Service: https://supabase.com/terms
    - Privacy Policy: https://supabase.com/privacy
 * **Stripe** (https://stripe.com) — processes upfront and final payments for the
   migration service. You are redirected to Stripe Checkout; the plugin does not
   handle or store card data.
    - Legal (Terms): https://stripe.com/legal
    - Privacy Policy: https://stripe.com/privacy
 * **Your Sanity project** (https://www.sanity.io) — migrated content is written
   to the Sanity project you own, using the API token you provide at connect. Sanity.
   io’s own terms apply to your use of their platform.
    - Terms of Service: https://www.sanity.io/legal/tos
    - Privacy Policy: https://www.sanity.io/legal/privacy

#### Page builder support

 * **Gutenberg** — native block editor content
 * **Elementor** — full JSON widget tree parsing
 * **WPBakery** — shortcode-based content parsing
 * **Divi 4** — shortcode-based content parsing
 * **Divi 5** — block-comment-based content parsing
 * **Beaver Builder** — full layout data parsing

#### SEO support

 * **Yoast SEO** — all meta fields extracted and mapped to Sanity’s `seo` object
 * **Rank Math SEO** — all meta fields extracted and mapped to Sanity’s `seo` object

#### Redirect support

 * **Redirection plugin** — active redirect rules extracted and migrated to Sanity`
   redirect` documents

#### Features

 * 11-step guided migration wizard
 * Automatic site analysis with page builder detection
 * Quote generation with upfront and final payment
 * Sanity project connection (Project ID, dataset, API token)
 * Staging dataset protection (content held in staging until final payment)
 * Content type and taxonomy selection
 * Full-site or incremental migration
 * Real-time migration progress dashboard
 * Auto-sync mode (automatic content sync on post publish/update)
 * Post-migration tooling:
    - Claude Connect — MCP hand-off for Claude Desktop
    - Schema Preview — AI-generated Sanity schema review
    - Migration Log — per-post migration history
 * WP-CLI commands (`wp altered-digital export|analyze|status`)
 * Multisite support (network-activate creates tables on all sites)
 * Self-host mode for enterprise deployments

## Screenshots

[⌊The 11-step migration wizard⌉⌊The 11-step migration wizard⌉[

The 11-step migration wizard

[⌊Site analysis with page builder detection⌉⌊Site analysis with page builder detection⌉[

Site analysis with page builder detection

[⌊Plugin-by-plugin migration plan — keep, drop, replace, rebuild, or manual⌉⌊Plugin-
by-plugin migration plan — keep, drop, replace, rebuild, or manual⌉[

Plugin-by-plugin migration plan — keep, drop, replace, rebuild, or manual

[⌊Next Steps tooling — per-post Migration Log (plus AI Tools and Schema Preview)⌉⌊
Next Steps tooling — per-post Migration Log (plus AI Tools and Schema Preview)⌉[

Next Steps tooling — per-post Migration Log (plus AI Tools and Schema Preview)

## Installation

 1. Upload the `altered-digital-migration-to-sanity` folder to `/wp-content/plugins/`
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. Navigate to **Migration to Sanity** in the admin menu
 4. Follow the 11-step wizard to complete your migration

#### Self-host mode

For enterprise deployments running your own Worker instance, set the `SELF_HOST`
environment variable on your Cloudflare Worker and configure `WP_WEBHOOK_SECRET`,`
SANITY_PROJECT_ID`, `SANITY_DATASET`, and `SANITY_API_TOKEN` as Worker environment
variables. The plugin will use the Worker URL you configure in the Connect step.

See the [self-hosting guide](https://wptosanity-docs.vercel.app/docs/self-hosting)
for details.

## FAQ

### Do I need a Sanity.io account?

Yes. You need a Sanity project with a Project ID, dataset name, and an API token.
You can create a free Sanity account at sanity.io. The plugin connects to your project
during the Connect step.

### Do I need to pay to use this plugin?

The Altered Digital migration service is paid: fixed-price quotes start at $199 (
5 pages included, $15 per extra page), billed 50% upfront (analysis + migration)
and 50% after QA passes and you approve the staging content. An optional managed
frontend rebuild add-on starts at $1,799. The plugin itself is free and all plugin
code is fully available under the GPL. Content is held in a staging dataset until
the final payment, at which point it is promoted to your production Sanity dataset.

### Is my content sent to external servers?

Yes. When you trigger a migration, your WordPress content is sent to the Altered
Digital Worker for transformation and written to your Sanity project. Content is
never sent without your action (or without auto-sync being explicitly enabled) —
the only automatic data is the limited usage telemetry described above, which is
sent only while you are actively using the wizard. See the “What data is sent” section
above.

### Does the plugin modify my WordPress site?

No. The plugin reads your content and sends it to the external service. It does 
not modify your posts, pages, themes, or database content. The only database writes
are to its own tracking tables (`adms_migration_log`) and its own settings option(`
adms_settings`).

### Does the plugin work with multisite?

Yes. Network-activate the plugin to create tracking tables on all sites. Network
admin settings are pushed to all subsites.

### Can I use WP-CLI?

Yes. The plugin registers `wp altered-digital export`, `wp altered-digital analyze`,
and `wp altered-digital status` commands.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Altered Digital Migration to Sanity” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ altereddigital ](https://profiles.wordpress.org/altereddigital/)

[Translate “Altered Digital Migration to Sanity” into your language.](https://translate.wordpress.org/projects/wp-plugins/altered-digital-migration-to-sanity)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/altered-digital-migration-to-sanity/),
check out the [SVN repository](https://plugins.svn.wordpress.org/altered-digital-migration-to-sanity/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/altered-digital-migration-to-sanity/)
by [RSS](https://plugins.trac.wordpress.org/log/altered-digital-migration-to-sanity/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.4.1

 * Activation no longer contacts any external server (wp.org guideline 7): the 2.3.0
   activation-time install ping and its admin_init upgrade backfill were removed.
   Telemetry now begins only with wizard milestones, while you are signed in to 
   your Altered Digital account
 * Plugin-rebuild REST handler’s PHP time limit raised from 120s to 190s so it can
   no longer cut off the 180s AI rebuild call

#### 2.4.0

 * Renamed for the WordPress.org directory: new plugin name, slug, and text domain(“
   Altered Digital Migration to Sanity” / altered-digital-migration-to-sanity)
 * All PHP class/constant/option/hook/table prefixes lengthened to 4+ characters(
   ADMS_ / adms_); your settings, wizard progress, install identity, and migration
   log are migrated automatically on first load
 * Removed the v1 back-compat layer (legacy class alias, constants, init function,
   and v1 REST namespace)
 * uninstall.php now guarded with WP_UNINSTALL_PLUGIN only
 * Documented external services with terms and privacy policy links in the readme

#### 2.3.1

 * Human error copy on sign-in/signup failures (wrong password no longer shows the
   raw code “auth_failed”)
 * Connect step reports the actual problem (missing Project ID, expired session,
   or missing service token) instead of a blanket “session expired”
 * Funnel telemetry: new ‘login’ and ‘paid_full’ milestone events (final-payment
   completion is now tracked)

#### 2.3.0

 * Install telemetry: activation pings the service with site URL + WP/PHP/plugin
   versions (fire-and-forget, never blocks activation)
 * Wizard funnel telemetry: milestone completions (scan, quote, payment, connect,
   content, migrate, approve) are logged for the install
 * Stable install identity stitches installs to tenants at connect

#### 2.2.0

 * Retuned pricing: $199 base (incl. 5 pages), $15/extra page, complexity multiplier(
   low x1.0 / medium x1.25 / high x1.5)
 * Add-on catalog now selectable at checkout (hands-on assistance, schema design,
   priority support, QA review)
 * New managed “Altered Digital Rebuild” add-on with live estimate card
 * Final-50% payment assurance: 45-day deadline, tiered reminders, overdue content
   lock with pay-to-unlock

#### 2.0.0

 * Complete rewrite as a guided wizard
 * Multi-tenant support with Supabase authentication
 * Staging dataset payment protection
 * SEO metadata extraction (Yoast + Rank Math)
 * Redirect rule migration (Redirection plugin)
 * Post-migration tooling: Claude Connect, Schema Preview, Migration Log
 * WP-CLI commands and multisite support
 * Beaver Builder and Divi 5 parser support

#### 1.0.0

 * Initial release: single-tenant WordPress to Sanity migration

## Meta

 *  Version **2.4.1**
 *  Last updated **21 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [divi](https://wordpress.org/plugins/tags/divi/)[elementor](https://wordpress.org/plugins/tags/elementor/)
   [headless](https://wordpress.org/plugins/tags/headless/)[migration](https://wordpress.org/plugins/tags/migration/)
   [sanity](https://wordpress.org/plugins/tags/sanity/)
 *  [Advanced View](https://wordpress.org/plugins/altered-digital-migration-to-sanity/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/altered-digital-migration-to-sanity/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/altered-digital-migration-to-sanity/reviews/)

## Contributors

 *   [ altereddigital ](https://profiles.wordpress.org/altereddigital/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/altered-digital-migration-to-sanity/)