Help us improve
Share bugs, ideas, or general feedback.
From rampstack-skills
Executes platform content migrations, consolidations, and URL restructures while preserving SEO equity. Guides through inventory, audit, and redirect mapping across any CMS or domain setup.
npx claudepluginhub rampstackco/claude-skills --plugin rampstack-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/rampstack-skills:content-migrationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Move content from one platform, domain, or URL structure to another without breaking SEO, user bookmarks, or downstream integrations. Stack-agnostic.
Plans and implements content migrations from AEM, Contentful, Strapi, Webflow, WordPress, Drupal, Payload, Markdown/MDX, and other sources into Sanity CMS with Portable Text conversion, asset migration, redirects, and validation.
Executes Webflow CMS migrations from WordPress, Contentful, Strapi, CSV/JSON using Data API v2 bulk endpoints, data mapping, validation, and strangler fig pattern.
Front door for website migration: detects platform, inventories content, then asks the user which reconstruct path to take (blocks+products or theme replication) before extracting and dispatching the matching sub-skill.
Share bugs, ideas, or general feedback.
Move content from one platform, domain, or URL structure to another without breaking SEO, user bookmarks, or downstream integrations. Stack-agnostic.
content-and-copy)seo-technical)seo-content-audit)Every content migration follows the same arc. Skipping a phase is how migrations go badly.
You can't migrate what you don't know. Build a complete map of what exists.
For each piece of content:
Pull from: CMS export, XML sitemap, server logs, analytics, search console, backlink tool.
The inventory is a spreadsheet. It's the source of truth for the rest of the migration.
For each piece of content, decide:
This is seo-content-audit work. The migration is the time to do it; not the time to skip it.
For each "Update" or "Merge," document the specific changes.
The URL map is the most important migration artifact.
| Old URL | New URL | Status code | Reason |
|---|---|---|---|
| /old/path | /new/path | 301 | Direct equivalent |
| /old/page-1, /old/page-2 | /new/merged | 301 | Merged content |
| /old/deprecated | /related/replacement | 301 | Closest replacement |
| /old/junk | (none) | 410 | Intentionally gone |
Rules:
For domain migrations, use a 1:1 path mapping by default (old.com/page → new.com/page) with specific overrides where structure changes.
Build the destination. Don't skip a staging environment.
If possible, get the destination crawled by Google before the cutover, so it's already indexed when redirects flip.
The actual switch. Plan it like a launch (and use launch-runbook alongside this skill).
Pre-cutover:
Cutover:
Immediately post-cutover:
The migration isn't done at cutover. The next 30-90 days reveal problems.
Watch:
Common 30-day fixes:
What's in scope? What's out? Write it down. Migrations expand if not bounded.
Pull every URL, traffic, backlinks, internal links. The spreadsheet is the artifact.
Keep, update, merge, redirect, delete. Document decisions.
The complete redirect map. Reviewed by SEO and content stakeholders.
In a staging environment. Real content (or representative content). Real redirects.
Following the cutover checklist. Have rollback ready.
Daily for the first week. Weekly for the first month. Monthly through 90 days.
What worked. What didn't. Lessons. (See after-action-report.)
No URL inventory. Migration team thinks they have everything. They don't. Old PDFs, archived posts, marketing landing pages with backlinks. Build the inventory.
302 redirects instead of 301. 302 is temporary. SEO equity doesn't reliably pass. Use 301 unless you have a specific reason.
Redirecting everything to the homepage. "We'll let users find their way." They won't. They'll bounce. Map specifically.
Long redirect chains. /a → /b → /c → /d. Each hop loses a little equity and adds latency. Collapse to /a → /d.
Forgetting non-HTML URLs. PDFs, images, downloads. They have URLs too. They have backlinks too. Include in the map.
Forgetting query strings. /page?id=123 is a different URL than /page. Patterns or specific maps for query string variants.
Ignoring trailing slashes. /page and /page/ are different to most servers. Pick one canonical form. Redirect the other.
No staging. The first time the migration runs is in production. Things break. Stage and test.
Stage that's too different from production. Different DNS, different CDN, different platform. Tests pass on staging, fail on production. Stage as close to prod as feasible.
Leaving the source live. Two sites serving the same content. Duplicate content, split equity, user confusion. Take down the source after confirming the destination is solid.
Leaving the source domain unrenewed. Domain expires, redirects break, traffic dies. Renew the source domain for a long time, even if you're not using it.
Big-bang migration with no rollback plan. Something goes wrong. Now what? Plan rollback before cutover.
Cutover during a busy period. End of quarter, holiday season, big campaign. Bad timing. Pick a quiet period.
No comms. Users find their bookmarks broken with no warning. Some won't come back. Communicate.
Migration as a one-time event. It's not done at cutover. Monitor for 30-90 days. Fix what surfaces.
Treating migration as just a dev project. SEO, content, support, comms all need to be involved. Cross-functional from day one.
A migration plan document includes:
references/migration-runbook.md: Step-by-step runbook for cutover day, including pre-flight checks, the actual switch, immediate verification, and the first 24 hours of monitoring.