Fixed-scope delivery · US · UK · Canada

WordPress Migration

Moving a site onto WordPress, or moving WordPress somewhere better. Every URL mapped one by one, the cutover rehearsed on a clone before DNS moves, and a rollback that works: zero lost URLs across every migration we have delivered to date.

2 days
fixed-fee audit before we quote
10 days
risk-free before you pay
30 days
notice to stop, no exit fee
How a migration runs 6-14 WEEKS
Audit and URL inventory 1 wk
Every live URL crawled and matched to a destination. This is the document the whole project hangs on.
Content and data import 2-5 wks
Pages, media, users, orders and metadata, scripted with WP-CLI so it can be re-run, not done by hand once.
Rehearsal on a clone 1 wk
The full cutover performed on a copy, timed, with the redirect map tested against the real crawl.
Cutover and watch 1 wk
DNS moves at a time you choose. We watch 404s, search console and errors for the week after.
Fixed price after the audit week, with the rollback plan written down before cutover. See rates →

2 migration slots open this quarter

How we contract

Six terms we put in writing

The things every buyer of a platform migration has been burned on, most of them about what happens after cutover. Each is a clause in our MSA, not a promise on a website.

Fixed price, agreed before we start

After discovery you get one number, not a range. It does not move unless you change the scope in writing, and then you see the revised number before anyone writes code.

A launch date with a penalty behind it

We name the launch date in the contract. Miss it through our fault and the final invoice drops 10% per week late, capped at 30%. It has been invoked once in four years.

Weekly demo, not a monthly update

Every Friday there is something running you can click. If a week produces nothing demonstrable, you find out that Friday rather than at the end.

Thirty days of warranty after launch

Anything we built that does not do what the spec says is fixed free for thirty days after launch. Not "support hours": a defect warranty, because sites break in the first month or not at all.

Your repository, from the first commit

Work happens in your GitHub organisation and your cloud accounts. There is no handover event because you already have everything.

One invoice schedule, no surprises

40% on signature, 40% at the midpoint demo, 20% on sign-off. Net 15, USD or GBP. No hourly overages on a fixed-scope build.

The team you get

Who is actually on your project

A pod of four, named in the contract, on your build for its duration. Not a resource pool that changes between sprints, and not an account manager who disappears after signature.

You meet the delivery lead and the senior engineer during discovery, before you commit to the build. If either is not right, we change them then.

Delivery lead
Your single point of contact. Runs the sprint, writes the weekly report, escalates before you have to ask.
× 1
Senior engineer
Owns the theme architecture and content model, and reviews every pull request.
× 1-2
Engineer
Template and block work against the agreed spec, version-controlled and deployed from Git.
× 1-3
QA engineer
Manual and automated. Signs off each release before it reaches your staging environment.
× 1

Straight answer

Migrations do not fail on the content

Almost nobody loses a migration on the content. Pages import, media imports, users import, that part is scripted and boring. Migrations fail on URLs: three thousand addresses that ranked, linked and were bookmarked, and a bulk redirect rule that sent nine hundred of them to the homepage.

So the first week is a crawl and a spreadsheet. Every live URL, its traffic, its inbound links, and the exact address it will resolve to afterwards. Where there is no equivalent page we decide deliberately, 410, or a parent, rather than letting a catch-all rule decide for us. That document is the deliverable the rest of the project is measured against.

The second thing that goes wrong is doing the cutover for the first time in production. We perform the whole thing on a clone, time it, and find out then that the media library has a permissions problem or an import takes four hours rather than forty minutes. By the time DNS moves it is the second or third run, not the first.

One thing we insist on is a rollback that has been tested. Not "we take a backup": a written procedure, rehearsed, with a decision point and a name against it. Most migrations never need it. The ones that do need it inside twenty minutes, not after an hour of somebody reading documentation.

Two of this year’s migrations were recovery jobs after another agency used a bulk redirect rule. Both had lost most of their organic traffic for six weeks.

The three routes

Migrate properly, migrate cheaply, or stay put

FIXED SCOPE
DEDICATED DEV
PLUGIN IMPORT
Who owns scope
Us, after discovery
You
You
Price certainty
One fixed number
Hourly, variable
Licence + configuration
Time to start
2 weeks discovery
5 business days
Days
Management effort
Ours
Yours, daily
Yours, ongoing
Late delivery
10%/week penalty
Not applicable
Not applicable
Defect warranty
30 days after launch
None
None
Best when
Deadline is external
Scope keeps moving
Requirements are ordinary
How it is priced
Fixed, after discovery
Published monthly rate
Licence + a few days

The cheap column assumes a plugin-based import and a bulk redirect rule: the most common way this is done, and the reason recovery work exists.

Capabilities

Migrations we do most often

If your platform is not on this list, the shape of the work is the same: crawl, map, import, rehearse, cut over, watch.

01

Shopify to WooCommerce

Products, variants, customers and order history imported, with the URL structure mapped rather than guessed.

Woo 10HPOS
02

Magento to WooCommerce

The one people put off. Attribute sets, tier pricing and customer groups translated into something maintainable.

MagentoWoo 10
03

Drupal or Joomla to WordPress

Content types become post types and fields, taxonomies survive, and every node URL gets a destination.

DrupalACF
04

Host and platform moves

WP Engine, Kinsta, AWS or your own metal, rehearsed on a clone, with DNS moved at a time you pick.

KinstaCloudflare
05

Multisite consolidation

Many separate sites into one codebase and one update cycle, with editors keeping local control.

MultisiteWP-CLI
06

Wix, Squarespace and HubSpot

Small sites, big redirect problems. The content is easy; the URL structure is what needs the care.

CrawlRedirects
07

PHP and database upgrades

Migrating the runtime as well as the site: PHP 8.4, MySQL 8, and the deprecations that come with them.

PHP 8.4MySQL 8
08

Post-migration SEO recovery

When someone else did the migration and rankings fell. We find the missing redirects and fix the crawl.

Search ConsoleScreaming Frog

Rankings fell after someone else migrated you?

That is almost always redirects: a bulk rule where a URL-by-URL map was needed. A two-day audit will tell you exactly which pages lost their destination.

Book a recovery audit

Tech stack

Current versions, not a wish list

What is in production for our clients this quarter. We will work in older versions too, most rescue jobs start there.

WordPress & PHP

PHP 8.3 / 8.4 WordPress 6.8 Gutenberg ACF Pro WooCommerce 10 WP-CLI

Data & infrastructure

MySQL 8 Cloudflare Redis Docker Kinsta · WP Engine GitHub Actions

Quality & front end

PHPCS · WPCS Playwright Lighthouse CI Astro Tailwind 4 Alpine

The engineers

The engineers who would build it

Salaried staff, named in your contract for the duration of the build. You meet the delivery lead and the senior during discovery, before you commit to anything.

Nitin Senior · 8 yrs · WordPress & Woo

Large catalogues and the checkout path. HPOS, index strategy and the plugin cull that usually matters more than either.

WordPress 6.8 WooCommerce HPOS
ON THIS POD Architecture & review GITHUB ON CALL
Shubham Lead · 10 yrs · WP architecture

Runs our headless builds and keeps the editor experience simple while the front end changes.

WPGraphQL Astro Redis
ON THIS POD Delivery lead GITHUB ON CALL
Jaswant Mid · 5 yrs · Plugins & APIs

Plugin work that survives core updates, and the audits that prove which ones will not.

PHPCS REST API ACF
ON THIS POD Integrations GITHUB ON CALL
Sumit Mid · 4 yrs · Blocks & QA

Builds native block themes and the Playwright suites that stop them regressing.

Gutenberg Playwright Tailwind
ON THIS POD QA & test suite GITHUB ON CALL

Two build slots open for October starts. The full pod is named in your contract before you sign it. Meet the whole team →

How we work

What every migration includes by default

What is included

Almost nobody loses a migration on the content. They lose it on the addresses, so most of these defaults are about URLs.

Week one
A crawl and a redirect map

Every URL that resolves, plus Search Console, server logs and backlink data. A destination decided per row, never a pattern rule.

Dead pages
410 Gone, rather than a guess

Content that is genuinely finished gets dropped cleanly instead of redirected somewhere irrelevant, which reads to Google as a soft 404.

Rehearsal
The whole cutover on a clone, twice

Timed, with the old URL list re-crawled against the new site and every row asserted before DNS moves.

Rollback
A written procedure with a name against it

Specific checks, a decision point, and a named person who makes the call. Not simply taking a backup.

First week
404s watched daily

Every 404 with a referrer is a row we missed, fixed that day rather than at the end of the sprint.

Afterwards
The map is yours to keep

It is a project asset. The next migration starts from it, and it records what was decided and why.

You do not have to take any of this on trust. The first ten working days are risk-free, every rate is published in full, and the work happens in your repository from the first commit.

How it works

From first email to a signed-off build

Discovery is two weeks and produces a spec you own. Nothing is committed until you have both the spec and the price.

  1. Day 0

    Send us the brief

    A document, a Figma file or three paragraphs. An engineer replies inside one business day, never a form response.

  2. Week 1-2

    Discovery, fixed fee

    Requirements, architecture, risk list and a written spec. You own it whether or not we build it.

  3. Week 2

    One price, one date

    A fixed number and a delivery date, both in the contract, with the late penalty attached.

  4. Build

    Weekly demos

    Something clickable every Friday, sprint reports, and staged releases into your environment.

  5. Launch

    Launch + 30 days

    Documentation, runbook and a defect warranty. Your repo already has everything.

Why India

Why choose a WordPress development company in India

A four-person pod here costs roughly what one senior contractor costs in the US, which is what makes fixed-price delivery viable at all: the risk buffer that protects a fixed quote would price a domestic team out of the deal entirely. WordPress also runs an enormous share of Indian agency work, so the depth is in the unglamorous parts that decide whether a launch goes well: content migration, redirects, plugin decisions and multisite.

YOUR WORKING DAY, AND OURS

New York
Pune
4 HRS OVERLAP
What the contract says
IP assignment on day one
Everything written for you is yours on commit, not on final payment. Assignment clause, not a licence.
NDA before repository access
Yours or ours, signed before anyone is added to your repository or hosting account.
Your jurisdiction, your paper
We sign MSAs governed by Delaware, England and Wales, or Ontario law without argument.
Milestone billing, not monthly hours
40% on signature, 40% at the midpoint demo, 20% on sign-off. Net 15, USD or GBP, and no hourly overages on an agreed scope.
Scope changes priced before they happen
Any change gets a written price and schedule impact for you to approve or decline. Nothing is absorbed silently and argued about at handover.

Before we can quote

The five things we need to price a migration honestly

Anyone who quotes a platform move without these is guessing, and the guess will come back as a change request halfway through.

A crawl of the current site

Not a page count from memory. An actual crawl, so we know whether there are three hundred URLs or nine thousand, and how many of them get traffic worth protecting.

We will run this for you in the audit

Read access to the current platform

Admin or database access to see what the content really looks like underneath. Exports lie: fields that appear tidy in an interface are frequently inconsistent in the data.

Under NDA, before any commitment

Your top pages by traffic and revenue

So the redirect map can be checked against what matters rather than treated as a flat list. Twenty URLs usually carry most of the value, and those get verified by hand.

From your analytics, last twelve months

Whatever integrations touch the site

Payment gateways, ERPs, email platforms, anything with a webhook pointing at a URL that is about to change. This is the most commonly forgotten item and the most disruptive one.

Including the ones nobody set up recently

A date you cannot move, if there is one

A conference, a campaign, a contract ending. It changes how we sequence the work and whether we recommend a phased cutover rather than a single switch.

And we will say if it is not realistic

FAQ

Questions buyers ask before the first call

If yours is not here, email it. We publish the answer rather than saving it for a sales call.

How much does a WordPress migration cost?

Migrations start at $8,500 after the audit week, and most sit between there and $30,000 depending on how much data and how many URLs. A standalone two-day audit is $800 and tells you which band you are in.

How long will it take?

Six to fourteen weeks: one week of audit and URL mapping, two to five importing, one rehearsing, one for cutover and watching. Big commerce catalogues sit at the top of that range.

Will we lose our search rankings?

Not if the redirect map is built URL by URL, which is what the first week is for. Zero lost URLs across every migration we have delivered, and we watch Search Console with you for the week after cutover.

How much downtime is there?

Minutes, not hours. Content is imported and verified in advance, DNS moves at a time you choose, and the store or site stays readable throughout.

What happens to our order history?

It comes with you. Orders, customers, subscriptions and refunds are imported and reconciled against the gateway rather than assumed correct.

Can you migrate from Shopify or Magento?

Yes, both regularly. Shopify is usually straightforward; Magento takes longer because attribute sets and tier pricing need translating rather than copying.

Do you handle the hosting move as well?

Yes, set up in your name at Kinsta, WP Engine or your own infrastructure. We do not resell hosting, so the account and invoice stay yours.

What if something goes wrong at cutover?

There is a written, rehearsed rollback with a decision point and a named owner. We have used it once in four years, and it took eleven minutes.

Someone else migrated us and rankings fell. Can you fix it?

Usually, and it starts with a crawl of the old sitemap against the new site. It is almost always a bulk redirect rule where a URL-by-URL map was needed.

Who owns everything afterwards?

You do: the code, the redirect map, the import scripts and the runbook, assigned from the first commit. Another agency could pick it up tomorrow.

Talk to an engineer

Tell us what needs building

You get a reply within one business day from an engineer, not a form autoresponder, with an indicative range, the discovery scope and the next available build slot.

A fixed price and a launch date, before any build work

NDA signed before we see your site or content

Or book a 30-minute scoping call at a time you pick

Send it, reply within one business day

We never share your details, and we do not run a mailing list.

2 migration slots open this quarter Zero lost URLs to date · rehearsed cutover
Reply within one business day Get a fixed quote