Donate to support freedom.
Get the same

CMS and Platform Migration Services

Move content, media, and data between WordPress, Wix, Squarespace, Joomla, Drupal, and custom platforms, with URL redirect maps and metadata kept intact.

CMS and Platform Migration Services

A platform move is a content and data problem long before it becomes a design decision. Inside the old system there are pages that rank, images that exist at one size only, forms that post to an address nobody wrote down, and a set of URLs that other sites link to. Each of those can break quietly on the day the DNS record changes.

We move sites between Squarespace, Wix, Joomla, Drupal, WordPress, and custom builds. The visible result is a new site. Whether the move was worth it is decided in an inventory, a redirect map, and a cutover window measured in minutes.

What a migration actually covers

Importing pages is the easy part. The damage comes from what nobody lists:

  • Page content, including page-builder markup from Squarespace or Wix sections that does not map onto HTML, plus posts, products, categories, tags, and user accounts
  • Media files with their original names, alt text, and the crops the old theme generated
  • Structured fields: custom post types on WordPress, CCK or Views fields on Drupal, custom tables in a bespoke build
  • Existing redirect rules, whether they sit in an .htaccess file, an nginx config, or a redirect plugin's table
  • Forms and their recipients, analytics tags, conversion events, and any integration that reads the CMS through its API

We crawl the live site and read the server logs rather than relying on the sitemap alone, because the sitemap misses orphaned pages, old campaign URLs, and the trailing-slash variants of both.

Who this work is for

A company that outgrew a template platform and needs a content model instead of a page editor. A Joomla or Drupal site whose original developer has moved on, where the theme still works but nobody wants to touch it. A WordPress multisite that has drifted into four ways of publishing, or a business moving to a static or headless front end that needs its editorial history to survive the trip.

If the move is also a visual rebuild, we run it alongside a website redesign and UI refresh.

What we deliver

A migration inventory listing every template, content type, and URL on the old site, and a URL map with one row per address: old path, new path, and intended status code. That spreadsheet drives the project and stays yours.

A redirect rules file for your host, CDN, or middleware layer, tested against the map rather than spot-checked.

Migrated content with its metadata carried across: page titles, meta descriptions, canonical tags, Open Graph images, and structured data such as LocalBusiness and service schema.

A media library with the original files, preserved alt text, and regenerated sizes for the new templates.

A cutover plan with a rollback path, the old host kept warm, and DNS time to live lowered before the switch so a rollback takes minutes rather than a day.

How the engagement runs

The inventory and mapping phase takes one to two weeks on a typical site, longer where the content model is custom or the site is multilingual. It produces the URL map and the agreement on which existing URLs stay untouched.

Extraction and build comes next. Content is pulled into the new platform through its export API, or from the database directly when the old system is self-hosted, and templates are configured in the new design. We import into staging with real content rather than lorem ipsum, since placeholder content hides layout failures.

Before cutover we crawl staging and production and compare status codes, titles, headings, and canonicals page by page, then run the redirect rules against every row of the map. Forms get a real test submission, and analytics firing on the new URL patterns is confirmed.

Cutover happens during a low-traffic window. DNS is switched, the redirect rules go live with it, caches are purged, and the sitemap is submitted. Anything the platform cannot express as a path rule goes into edge middleware or CDN rules.

Keeping rankings through the move

A redirect map does not guarantee the same positions, and any agency that promises that is guessing. What the map does is give search engines one clear path from each old URL to one new URL, which is the part we control.

The mechanics we work through on every move:

Every changed URL gets a single 301 to a page with the same subject matter. Chains of two or more redirects are flattened, and unmapped old URLs turn up in the crawl diff rather than in a 404 report weeks later.

URLs that do not change stay at 200 with no redirect involved, because a needless redirect adds delay and doubt.

Canonical tags on the new pages point at themselves, and old canonicals aimed at deleted URLs are removed. Where a page previously canonicalised to another, that relationship is reproduced.

Titles, meta descriptions, headings, and body copy stay as they were on pages whose purpose has not changed. A migration is a poor moment to rewrite the copy that ranks.

Internal links are rewritten to the new paths, so crawlers do not have to follow redirects across the whole site to reach a page.

The sitemap is regenerated and resubmitted in Google Search Console and Bing Webmaster Tools, with the Search Console property verified before cutover. On multilingual sites the hreflang pairs are checked alongside it, since a language tree that loses its alternates serves the wrong version in search results.

Then we watch Search Console by URL rather than by site average: impressions, clicks, and pages that slipped out of the index. The redirect layer stays in place long term because links from other sites keep arriving at the old addresses.

For a site whose structure is genuinely wrong, a technical SEO audit and remediation either side of the move lets crawl errors be fixed while the site is already in flux.

What it costs

Migration work runs at our flat rate of $39 per hour, or as a fixed scope once the inventory has told us how many URLs and content types are involved. Hourly suits a move where nobody can yet say how much of the old content is salvageable; fixed scope suits a documented structure and a predictable export.

The drivers are the number of URLs, how custom the content model is, how much page-builder markup needs rebuilding by hand, whether the site is multilingual, and how many integrations touch the old CMS. Where a database needs restructuring as well as exporting, the work overlaps with database design and migration, and we say so in the estimate rather than halfway through.

Our pricing page sets out the hourly rate, monthly capacity plans from $2,699, and the published typical-order budgets we work from.

Proof

design.vasilkoff.com is our own site for our designer Iryna, built on Next.js and served from Vercel, with no database and no maintenance calls since launch. It shows the target state of a migration: content held as structured files in a repository, so each page's path, title, and canonical is generated at build time rather than stored in a database row an export can miss.

SP Cleaning is a Cyprus cleaning company we built on a custom WordPress theme, with bilingual English and Greek content, hreflang on both language trees, quote request forms, and LocalBusiness schema for local search across Paphos, Limassol, and Nicosia. Those are the artifacts a migration must land intact: two parallel language sets, per-page metadata, and a service catalogue whose URLs keep working at the other end.

Related services

Next step

Send us the site URL, the platform it runs on, and roughly how many pages and products are involved. The first reply is a scope, a phase plan, and a note on which parts of the current site are worth keeping.

Contact us with the link, or run the scope through the Vasilkoff.info estimator for a first cost range.