Skip to content
Site Builder Stack

Claude Code Website Migration & Replatforming System

Move your website without losing what matters. Plan, execute and validate migrations with Claude Code — every URL inventoried and mapped, every redirect tested, metadata and structured data compared page by page, DNS recorded before it is touched, and a scorecard that says GO, GO WITH WARNINGS or NO-GO from evidence.

$29.99 USD · one payment

One payment. Instant download. Licensed to one person for unlimited sites, including client work. Not affiliated with WordPress, Shopify, Astro or any host.

Claude Code Website Migration & Replatforming System — MIGRATE: Discover, Map, Move, Validate. 20 modules, 37 commands, 28 scripts.

Move Your Website Without Losing What Matters.

Plan, execute and validate website migrations with Claude Code — WordPress to Astro, WordPress to Shopify, host and theme moves, Shopify replatforming, static sites, domain changes, URL-structure changes. Every URL inventoried, every page mapped, every redirect tested, metadata and structured data compared page by page, media and forms and analytics verified, DNS recorded before it is touched, and a scorecard that says GO, GO WITH WARNINGS or NO-GO from evidence. Not a prompt pack: 28 working scripts, 37 Claude Code commands, 20 modules including seven platform guides, 13 checklists, and a complete fictional migration to read before you run your own.

The problem

A migration is not a copy. The new site builds, deploys, looks right — and three weeks later the search traffic is half what it was, a partner’s link lands on a 404, the contact form has been posting to nothing, the images break when the old hosting is cancelled, and nobody can say which of the 1,400 old URLs were supposed to go where. The deployment succeeded. The migration failed. Most of what was lost was not on anyone’s list, because nobody made the list.

Ask a capable model to “migrate the site” and you get the other failure: content converted without its metadata, every missing page redirected to the homepage, production launched with staging’s noindex still set, the DNS panel opened before anyone wrote down what was in it.

The solution

A structured migration system that runs inside Claude Code and treats a migration as what it is — a mapping and validation exercise:

DISCOVER → INVENTORY → BASELINE → MAP → BUILD → MIGRATE → VALIDATE → CUT OVER → MONITOR → ROLL BACK IF NECESSARY
  • Working scripts for the parts a machine should do: a crawler that builds the URL inventory with status, metadata, canonicals, indexability, links, images, forms and structured data; a URL map drafter; an HTML → Markdown converter that flags what it could not convert; a redirect generator for nginx, Apache, Netlify, Vercel, Shopify and Cloudflare that refuses loops, chains and homepage dumps; a redirect tester that reports valid, missing, loop, chain, wrong destination and dead target; URL, metadata and schema comparison; canonical, robots and sitemap checks; an internal-link audit; an old-domain scan; a DNS inventory with before/after comparison; a critical-page validator; a rollback-readiness check; and the audit that scores it all. Python standard library only; nothing to install.
  • Claude Code commands that run the scripts, read the results and explain them — each marked READ ONLY, MODIFIES FILES or PRODUCTION IMPACT POSSIBLE, each with its purpose, inputs, preconditions, safety rules, steps, expected output, validation and rollback written down.
  • A clear line between what is automatable (inventory, compare, generate, test), semi-automatable (the map, the conversion — the scripts draft, a person decides) and manual (what a page becomes, DNS, forms, checkout, the go/no-go call). Per migration type, in a matrix.
  • Seven platform guides with the facts that change the plan: what each platform exports and imports, where its redirects live, its URL conventions, and what always breaks.

What is included

190 files, 20 modules, 37 commands, 28 scripts, 7 platform guides, 13 checklists, 6 report templates — about 78,000 words plus working code. Every number here was counted from the bundle at build time.

Module Covers
01-migration-discovery The facts before the plan: platforms, hosting, DNS, counts, forms, integrations, analytics, rollback; the questionnaire and the report
02-url-inventory Crawl + sitemap + Search Console + analytics + logs, merged and reconciled — the baseline every comparison is measured against
03-content-inventory Content types, thin/empty/duplicate/orphan flags, a migration method per row
04-seo-baseline Titles, descriptions, canonicals, robots, H1s, schema types frozen; the exports only a person can take
05-analytics-baseline Loaders and IDs on every page; events, consent, the numbers from before
06-migration-mapping The URL map as the contract: KEEP / MOVE / MERGE / REMOVE, by rule and by hand, never to the homepage
07-content-migration Convert, import or rebuild; HTML to Markdown with a review list; frontmatter and slugs from the map
08-media-migration Every image and file inventoried, moved, validated; the old host kept until references are zero
09-metadata-migration Metadata carried, then compared; the three failures that take sites out of the index
10-structured-data JSON-LD per type re-implemented and compared, subtypes recognised
11-internal-links Links rewritten from the map, audited for broken, old-domain, staging, redirect
12-redirects Map, validate, generate for six platforms, deploy where they belong, test on the real origin
13-staging-validation Everything provable before DNS, in one run; what staging cannot prove, listed
14-performance Timing facts before and after, like for like
15-dns-cutover Record, lower TTL, change only the web records, verify, never touch mail
16-launch Go / no-go rules, roles, the first hour, search engines told
17-post-migration-validation The full audit on the live domain; the scorecard and how it is computed
18-rollback Readiness verified as facts; the decision matrix; the procedure
19-monitoring 24 hours, 7 days, 30 days; 404 triage; when to decommission
20-platform-guides WordPress → Astro, WordPress → Shopify, WordPress → WordPress, Shopify replatforming, Static → Astro, domain migration, URL-structure migration

Plus .claude/commands/ with 37 slash commands, scripts/ with 28 scripts, templates/ with migration-config.yaml, the inventory, map, redirect, critical-page, DNS and risk-register CSVs, the cutover plan, the launch-readiness sheet, a CLAUDE.md and six redirect configuration samples, 13 checklists, 6 report templates, a reference set (the automation matrix, go/no-go and rollback matrices, monitoring windows, troubleshooting) and examples/wordpress-to-astro/ — a complete fictional migration with every inventory, map, comparison and report, produced by running the scripts.

The commands

Command Mode Purpose
/migration-discovery · /migration-plan Read / Files The facts, then the plan with gates, the automatable/manual split and a seeded risk register
/url-inventory · /target-url-inventory · /url-map · /url-coverage Read / Files Source and target inventories in one shape; the map; UNCHANGED / REDIRECTED / REMOVED / MISSING / BROKEN
/content-inventory · /media-inventory · /media-validation Read What each URL is and what happens to it; every file, where used, whether it resolves
/seo-baseline · /analytics-baseline · /performance-baseline · /dns-inventory Read The “before”: metadata, tracking, timings, and every DNS record including the ones that must not change
/content-migration · /metadata-migration · /content-normalize Files HTML to Markdown with a review list; metadata into the target’s format; shortcodes, headings, paths tidied
/redirect-map · /redirect-config · /redirect-validation Files / Read The validated map; the platform’s configuration; PASS / CHAIN / WRONG-CODE / WRONG / MISSING / LOOP / DEAD
/metadata-compare · /schema-compare · /internal-link-audit · /old-domain-scan · /tracking-validation Read Page-by-page comparisons; links; references to the old and staging hosts; expected IDs on every page
/critical-page-validation · /form-validation Read The pages the business cannot lose, strictly; forms proven by a submission, not by presence
/staging-validation · /performance-compare Read Everything checkable before DNS moves; timings after against before
/rollback-readiness · /cutover-plan · /pre-launch-check · /migration-go-no-go Read / Files Facts a rollback needs; the exact DNS changes; the last gate; the recorded decision
/migration-cutover · /migration-rollback Production Step by step, each change quoted and confirmed, the rollback path stated first
/post-migration-audit · /website-migration-audit · /migration-report Read / Files The master audit on the live domain: scorecard, findings by severity, GO / GO WITH WARNINGS / NO-GO; the client report

The scorecard

URL Coverage:            100%
Redirect Integrity:       94%
Metadata Preservation:    73%
Canonical Integrity:     100%
Internal Links:          100%
Media Integrity:         100%
Analytics:               PASS
Forms:                   PASS
Critical Pages:          PASS

Overall Migration Health: 94/100
LAUNCH RECOMMENDATION: GO WITH WARNINGS

That is the example migration’s real output. The score is the mean of the six percentages, minus ten per failure among analytics, forms and critical pages; any blocker — a critical page down, checkout broken, redirect gaps, DNS unrecorded, a certificate failure, the target unreachable, no verified backup, analytics absent when the business depends on it, production noindexed, canonicals pointing at staging, forms broken — makes it NO-GO regardless of the number. Every line names the file it was computed from; anything not measured is reported as NOT CHECKED, not scored. The score orders the work. It does not predict rankings or traffic and it is not a guarantee.

Use cases

  • Move a WordPress site to Astro on Netlify or Vercel with every post converted, every archive mapped, every redirect tested.
  • Replatform a content site to Shopify: products, blog and pages into Shopify’s fixed URL structure, redirects as a CSV the admin accepts, checkout on the critical-page list.
  • Change a WordPress host or theme and prove the metadata and structured data survived the theme swap.
  • Change domains: every URL redirected in one hop, both zones recorded, mail untouched, Search Console told in the right order.
  • Flatten a URL structure and rewrite internal links from the map instead of relying on redirects.
  • Take a static HTML folder into Astro with the shared markup componentised and the .html URLs decided, not defaulted.
  • Validate a migration someone else did: crawl, compare, score, list what was lost.
  • Roll back deliberately, from the recorded DNS, when a blocker cannot be fixed forward.

Who it is for

Developers and agencies doing migrations for clients; site owners moving their own site; SEO practitioners who need the before, the after and the difference in a file; operators inheriting a migration that was never validated. It assumes you can run a command and read a CSV. It does not assume you have migrated a site before — the discovery module and the platform guides are written for a first one, and the example is a whole migration you can read end to end.

Safety

Every command declares its mode. Read-only commands write only reports and inventories. File-modifying commands announce every path first. Production-impact commands — the cutover and the rollback — quote each DNS record, old value and new, and wait for a yes; the current zone is recorded before the panel is opened, and only the web records in the plan change. The system will not destroy the source before the target is validated, change DNS without the record, delete redirects without review, redirect missing pages to the homepage, launch without rollback preparation, or leave production noindexed or canonicalised to staging — those are its ten rules, in every command. Credentials for hosting, DNS and the CMS stay with you; the scripts never read, print or store them.

How it fits with the other five

Migration & Replatforming Website Launch System SEO & Website Audit Conversion & Revenue Operations & Maintenance Shopify Automation
Price $29.99 $19.99 $19.99 $19.99 $39.99 $39.99
Stage Migrate Build Rank Convert Operate Automate Shopify
Best for A site that is moving A site you are building A site that is not ranking Traffic that under-converts A live site to keep healthy A Shopify catalogue at scale
URL mapping, redirects, cutover, rollback Complete Launch-day checks only Redirect audit only Not covered Redirect audit only Shopify redirect list
Before/after comparison of metadata, schema, links, media Complete Not covered Site-wide audit, one point in time Not covered Baseline comparison Catalogue only
Working scripts 28, standard library Not included Not included Not included 11, standard library 32, standard library
Platform guides 7 migration guides Build systems per platform Not covered Not covered 4 platform guides Shopify only

The first three are also sold together as the Complete Site Builder Stack. This one is separate and specific: it is for the weeks a site is moving. Before the move, the SEO & Website Audit Toolkit gives the baseline audit; after it, the Operations & Maintenance System keeps the new site healthy; a Shopify destination pairs with the Shopify Automation Toolkit for the catalogue import. Buying this one does not include the others, and there is no automatic upgrade credit.

Delivery and licence

A single ZIP, delivered by download immediately after purchase. 190 files, about 300 KB — Markdown, Python, CSV, YAML and configuration samples; nothing to install beyond Python 3, which your machine almost certainly has. A published SHA-256 checksum accompanies the download so you can verify what you received.

Licensed to one person for unlimited sites, including client work. You may not redistribute or resell it. Full terms are in LICENSE.md inside the archive. WordPress, Shopify, Astro, Netlify, Vercel and Cloudflare are trademarks of their owners; this product is independent and not affiliated with or endorsed by any of them.

What is not promised

No ranking, no traffic figure, no guarantee that a migration loses nothing. The system inventories what there was, compares it with what there is, and lists the difference with a severity and a fix; the decisions — what a page becomes, when to cut over, whether to roll back — are yours, and it is built so that they stay yours and are recorded.

Inside the Website Migration & Replatforming System

No video is published yet. Below is the same walkthrough it will narrate, in a form that works today.

  1. What lands in your inbox

    One ZIP. Twenty numbered modules including seven platform guides, 37 slash commands, 28 scripts, templates for every file the migration produces, 13 checklists, six report templates, a reference set and a complete fictional migration — about 78,000 words plus working code. Python 3 standard library only.

    claude-code-website-migration-replatforming-system/
      START-HERE.md
      QUICK-START.md
      01-migration-discovery/
      02-url-inventory/
      ...
      19-monitoring/
      20-platform-guides/
      .claude/commands/
      scripts/
      templates/
      checklists/
      reports/
      reference/
      examples/wordpress-to-astro/
  2. The first ten minutes

    Copy the commands and scripts into the project, fill source.url in migration.yaml, and run discovery: the platform, the URL count by type, the media, the forms, the analytics, the DNS records, and the open questions.

    cp .claude/commands/*.md your-site/.claude/commands/
    cp scripts/*.py your-site/migration/scripts/
    cp templates/migration-config.yaml your-site/migration/migration.yaml
    
    claude
    > /migration-discovery https://old.example.com
  3. The inventory, then the baseline

    The crawler builds one row per URL: status, final URL, title, description, canonical, robots, H1, indexability, word count, links in and out, images, forms, JSON-LD types, how it was discovered. Sitemap, Search Console and analytics exports are merged so nothing that ranks without a link is missed. Then the SEO baseline freezes it, and the DNS inventory records the zone.

    $ python3 migration/scripts/crawl_site.py https://old.example.com --out migration/source-url-inventory.csv --seed sitemap
    crawling old.example.com (max 5000, depth 8, 19 seed URL(s))
    crawled 21 URL(s): 20 ok, 1 redirect, 0 error/4xx/5xx
    
    $ python3 migration/scripts/seo_baseline.py migration/source-url-inventory.csv --out migration/seo-baseline
    $ python3 migration/scripts/dns_inventory.py old.example.com --dig migration/dig.txt --out migration/dns-before.csv
    DNS INVENTORY — old.example.com: 9 record(s) (web 2, mail 4, verification 1, ...)
  4. The map is the contract

    One row per source URL, one decision per row: KEEP, MOVE, MERGE, REMOVE. The script drafts it from rules and slug matches; a person decides the rest. Every comparison and every redirect reads this file.

    $ python3 migration/scripts/url_map.py --source migration/source-url-inventory.csv --target migration/target-url-inventory.csv --rule '^/blog/(.+)=/posts/\1' --out migration/url-map.csv
    URL MAP DRAFT — 21 source URL(s): KEEP 6  MOVE 12  REVIEW 3
      REVIEW  /tag/fixings          nothing matched: MOVE, MERGE or REMOVE?
      REVIEW  /author/admin         noindex on source
      REVIEW  /blog/delivery-updates-2025
  5. Redirects: generated, validated, tested

    The redirect map comes from the URL map. The generator refuses loops, chains, duplicate sources and homepage dumps before it emits a line, then writes nginx, Apache, Netlify, Vercel, Shopify CSV or Cloudflare Bulk Redirects. The tester follows every rule on the real origin.

    $ python3 migration/scripts/generate_redirects.py migration/redirect-map.csv --format netlify > _redirects
    emitted 17 rule(s) as netlify
    
    $ python3 migration/scripts/test_redirects.py migration/redirect-map.csv --origin https://www.example.com
    REDIRECT VALIDATION — 17 rule(s) tested
      PASS 16   WRONG-CODE 1
      WRONG-CODE /feed    got 302, expected 301
  6. Page by page, before against after

    Titles, descriptions, canonicals, robots, H1s and schema types compared through the map: MATCH, CHANGED, MISSING, ADDED, REVIEW. A moved page whose canonical followed it is a match; a canonical pointing at staging is a review. Structured data subtypes are recognised — Article to BlogPosting is a change, not a loss.

    $ python3 migration/scripts/compare_metadata.py --source ... --target ... --map migration/url-map.csv --critical migration/critical-pages.csv
    field                MATCH CHANGED MISSING ADDED REVIEW
    title                   16       4       0     0      0
    meta_description        15       4       1     0      0
    canonical               20       0       0     0      0
      MISSING  /blog/torque-settings-guide  meta_description
  7. Staging: everything provable before DNS

    One run: target crawl seeded from the map, coverage, metadata, schema, critical pages, internal links, media, canonicals, robots, sitemap, tracking — and two staging-specific expectations: staging should be noindexed; canonicals must point at the production domain. What staging cannot prove is listed for cutover.

    $ python3 migration/scripts/staging_validation.py https://preview.example.com --dir migration
      crawl                  exit 0
      url coverage           exit 0
      metadata               exit 2
      critical pages         exit 0
      internal links         exit 1
      canonicals             exit 0
    wrote staging-validation.md
  8. The scorecard and the recommendation

    The audit scores nine areas from the files it finds, names the file behind every number, lists findings by severity and recommends GO, GO WITH WARNINGS or NO-GO. Any blocker is NO-GO regardless of the score. Anything not measured is NOT CHECKED, not scored.

    URL Coverage:            100%
    Redirect Integrity:       94%
    Metadata Preservation:    73%
    Canonical Integrity:     100%
    Internal Links:          100%
    Media Integrity:         100%
    Analytics:               PASS
    Forms:                   PASS
    Critical Pages:          PASS
    Rollback Readiness:      PASS
    
    Overall Migration Health: 94/100
    LAUNCH RECOMMENDATION: GO WITH WARNINGS
  9. Cutover, with the record in front of you

    The DNS zone was recorded before the panel was opened. The cutover command quotes each record — name, type, old value, new value, TTL — and waits for a yes; only the web records in the plan change; mail, SPF, DKIM, DMARC and verification records are listed as unchanged. Minutes after, the critical pages, robots, canonicals, redirects and tracking are checked on the production domain.

    > /migration-cutover go
      rollback_readiness.py     PASS (9/9)
      DNS: example.com A 203.0.113.44 → 75.2.60.5 (TTL 300) — confirm? yes
      DNS: www CNAME example.com. → site.netlify.app. — confirm? yes
      T+5m  critical_pages.py    5/5 PASS  (Server: Netlify)
      T+5m  check_robots.py      PASS
      T+15m test_redirects.py    16 PASS 1 WRONG-CODE
      T+15m tracking_check.py    G-… on 20/20
  10. Rollback is a procedure, not a hope

    Readiness is checked as facts before launch: the source still answers, the backup exists and someone restored from it, the DNS record has MX rows, an owner and a window are named, the TTL was lowered. The rollback restores the recorded records one at a time, compares the zone, verifies the source pages, and writes the report.

    $ python3 migration/scripts/rollback_readiness.py --config migration.yaml --dir migration
      PASS  source preserved       200; config source_preserved=True
      PASS  backup restore tested  backup_restore_tested=True
      PASS  DNS recorded           dns-before.csv: 9 records, types A,CAA,CNAME,MX,TXT
      PASS  owner named            rollback.owner=M. Okafor
      PASS  DNS TTL lowered
    overall: PASS

The recorded walkthrough is not published yet. Rather than put a play button over a still image, the steps above are the same tour in writing — the real folder names, the real commands, and the real output the scripts produce.

The example migration inside the download was produced by running these scripts end to end against a fixture site; only the hosts were renamed.

Questions

Before you buy

The questions people ask about a migration product, answered plainly.

Not without you. Read-only commands write only reports and inventories into the migration folder. File-modifying commands announce every path before writing. The two production-impact commands, cutover and rollback, quote each change and wait for a yes, and neither can change DNS itself: the operator makes the change in the provider and pastes the result. The scripts never hold hosting, DNS or CMS credentials.

WordPress to Astro, WordPress to Shopify, WordPress to WordPress (host, theme, permalinks), Shopify replatforming (theme change, store to store, or leaving Shopify), static HTML to Astro, domain changes and URL-structure changes, each with its own guide. The modules and scripts are platform-neutral; the guides carry the platform facts. A migration the guides do not name, Ghost to Hugo say, still uses every module and every script, and reads the closest guide for the shape.

Inventory, baseline, comparison, redirect generation and testing, link and media audits, the old-domain scan, the DNS record, the critical-page check and the audit are automated. The URL map and the content conversion are drafted by the scripts and decided by a person. Building the target, forms, checkout, the DNS change, Search Console and the go/no-go call are manual. The matrix per migration type is in the reference set and in the plan the system writes for your migration.

Python 3.8 or newer, which almost every machine has. The scripts use only the standard library: nothing to install, no package manager, no virtual environment. Claude Code runs the commands; you can also run every script by hand.

It is the mean of six percentages, URL coverage, redirect integrity, metadata preservation, canonical integrity, internal links and media integrity, minus ten for each failure among analytics, forms and critical pages. Any blocker makes the recommendation NO-GO whatever the number. Every line names the file it was computed from, and anything not measured is reported as not checked rather than scored. It orders the work. It is not a prediction of rankings or traffic and not a guarantee of anything.

Nobody can promise that, and this product does not. What it does is make the losses visible before they happen: every URL accounted for, every redirect tested on the real origin, metadata and structured data compared page by page, production checked for noindex and staging canonicals minutes after cutover, and a monitoring plan at 24 hours, 7 days and 30 days that reads Search Console against the baseline. Migrations that lose rankings usually lost something nobody had listed.

Yes. The licence is one person, unlimited sites, including client work, with no expiry. Inventories, maps, audit reports and migration reports you produce are yours to deliver. You may not redistribute or resell the system itself.

The SEO toolkit audits a site at one point in time; the Operations system keeps a live site healthy. This one is for the weeks a site is moving: two inventories, a map between them, redirects generated and tested, and a before/after comparison with a go/no-go. They pair: the SEO toolkit for the pre-migration audit, this for the move, Operations afterwards. Buying one does not include the others.

A complete fictional migration, a small WordPress trade site to Astro on Netlify, with every file the system produces: the discovery report, both inventories, the content and media inventories, the SEO baseline, the DNS record, the plan and risk register, the URL map, the redirect map and generated configuration, the redirect results, the metadata and schema comparisons, the link and media audits, the critical-page results, the audit with its scorecard, the launch checklist as filled, the cutover log and the client report. The CSVs and JSON are real script output against a fixture site; only the hosts were renamed.

The rollback module and command exist for exactly that. Readiness is verified as facts before cutover, so the source is untouched and the DNS record exists; the decision matrix names the triggers and how long to try fixing forward; the rollback restores the recorded records one at a time and verifies. A refund request is considered on its merits, as with every product here.

The other six

Moving is one part of a website's life

This system is for the weeks a site is moving. Building it, getting it found, converting the traffic, keeping it healthy and running a Shopify catalogue are the other five jobs.

Each solves a different stage. The whole lifecycle is explained here if you are not sure which you are in.

Keeping the new site healthy afterwards?

The Claude Code Website Operations & Maintenance System watches the site from the outside — uptime, TLS, security headers, links, redirects, deploys, incidents — with a scored health report. This system moves the site; that one keeps it up once the 30-day window closes.

See the Operations & Maintenance System — $39.99

A separate product. Buying this does not include it, and there is no automatic upgrade credit.