What I Tell Agency Owners About "Free Migrations" — Shortcuts Nobody Mentions
How offering free migrations changes your sales math (and why that matters)
The data suggests this: when an agency offers "free migrations" up front, more prospects say yes. Conversion usually improves by double digits. But conversion is only half the story. Analysis reveals the real wins happen in reduced sales friction and faster onboarding, which translate to saved billable hours if you build the right process.
From several agencies I’ve worked with and tracked, here's a realistic picture: offering free migrations can reduce your pre-launch billable hours by 8-18 hours per client, on average. For a small agency billing $120/hr, that’s $960 to $2,160 saved in terms of work you no longer have to sell or justify as a separate line item. Evidence indicates the agencies that maximize that saving don’t actually do less work - they standardize and automate the boring parts so senior people only touch the tricky stuff.
Compare two approaches: one agency charges a migration fee but performs ad hoc migrations with senior devs best hosting for WooCommerce sites involved from day one; the other offers free migrations, but uses a hardened checklist, junior staff or contractors for routine steps, and scripts for repeatable elements. The latter often earns a higher net margin per project because it converts more leads and funnels complex work into premium add-ons.
4 common ways "free migration" becomes a hidden time sink
Why does a free migration sometimes feel like a trap? Ask these questions before you promise anything: What are the client's hosting constraints? Do critical plugins require specific server settings? Does the site have large media sets or custom cron jobs? Here are the main culprits I see repeatedly.
1) Environmental mismatches - PHP versions, caches, and object stores
When the client's host runs an older PHP, lacks Redis or Memcached, or places aggressive server-level caching in front of everything, a simple copy won't behave the same. The data suggests at least one in four migrations run into at least one environment mismatch that requires code adjustments or server negotiation.
2) Hidden integrations and third-party dependencies
Payment gateways, single-sign-on, CRM hooks, and custom webhooks often get missed during discovery. Those integrations either stop working or behave inconsistently after the move. The average time to diagnose and fix a missed integration is 3-6 hours, and clients rarely accept that as a separate unbilled task.
3) Content size and asset pipelines
Large media libraries, server-side image optimization, or CDN rules create slow transfers and cache complications. Contrast a 50MB site and a 50GB site — the latter requires different tooling, transfer windows, and storage checks. Analysis reveals agencies that estimate migrations only by page count consistently underprice projects.
4) Ownership and access fights
Who owns DNS, who has FTP, who controls the old host account - those discussions waste time in almost every migration that goes south. Evidence indicates about 30% of migrations hit a stall because access credentials are incomplete, expired, or tied to a former employee who can’t be contacted.
Why agency marketing promises fail: the gap between "free" and reality
We all saw it: homepage headline "Free Migration!" and a contact form that funnels to sales. What marketing often omits is the footnote: "excluding complex integrations, enterprise hosting, and custom builds." That omission is intentional, but it creates trouble. What does the client expect versus what your ops team can deliver?
Ask yourself: are your marketing claims aligned with your delivery contracts and your hosting compatibility list? If not, you're promising deliverables your engineers will quietly resent. The data suggests misalignment creates scope creep and unpaid work faster than anything else.
Here are common feature gaps that turn marketing-sold “free” into operational debt:

- Missing staging or preview environments on the client's host — you can't test without causing production risk.
- No SSH or CLI access — automated migrations stall and require manual file transfer.
- Email deliverability tied to the old host's SMTP — forms and transactional emails break after cutover.
- Database charset differences or custom tables that don't map cleanly — search-and-replace tools fail.
Compare standard shared hosts and modern platform hosts: platform hosts often enforce routing and caching rules that break assumptions migrations rely on. Traditional hosts may allow arbitrary changes but lack performance features you'll want to enable post-migration. Think through both directions.
What experienced agencies do when hosting and missing features threaten the project
What do you do when you discover a missing feature during discovery? Do you call it scope creep, or do you treat it as a discovery finding with clear options? Experienced agencies treat it like a decision tree, not a surprise.
Here are pragmatic principles I recommend:
- Define "simple migration" explicitly in one sentence on your website and in your proposal. Include hard exclusions: no custom integrations, no multisite, no SaaS SSO, etc.
- Use a discovery checklist that produces a migration complexity score. The score determines whether the migration is free, discounted, or billable.
- Make hosting compatibility public. List required server features (SSH, SFTP, PHP 8.x, SSL, cron, X debug off, disk space, etc.).
- Offer free migrations only for sites that pass a 20-minute preflight checklist done by an ops person — not sales.
The data suggests that a simple preflight reduces post-sale surprises by more than half. Analysis reveals the cost of a short discovery call is far lower than a four-hour emergency on the weekend copying files and chasing DNS.
When a client’s host lacks something critical, you have three choices: adjust the plan and charge, migrate to a host you manage, or require the client to upgrade hosting. Which choice is right depends on lifetime value, urgency, and willingness to own hosting risk.
6 practical steps to run migrations that cost minimal time and keep clients happy
Want the checklist I hand to my operations lead? Here it is, pared down to what actually matters on the job.

- Preflight (15-30 minutes) - Run a scripted checklist: hosting name, SSH available, PHP version, WP-CLI or equivalent, size of DB and uploads, active plugins, external integrations, SMTP provider, DNS control.
- Pass = migration included. Fail = present options and pricing immediately.
- Complexity scoring - Assign points for multisite, ecommerce, custom code, >10GB media, external APIs. Score < 10 = standard free migration. Score 10-20 = discounted flat fee. Score > 20 = custom estimate.
- Automate the routine - Use CLI scripts or vetted migration plugins to move files and DB dumps, then run a scripted search-and-replace. Save these scripts in your repo and version them. Time saved per migration: 2-6 hours on average.
- Staging and smoke tests (1-2 hours) - After transfer, execute a smoke test checklist: homepage, contact form, checkout flow, login, major dynamic pages, and at least five random posts. If tests fail, escalate based on your complexity score.
- Cutover and rollback plan - Schedule DNS TTL reduction beforehand, run cutover during low-traffic windows, and keep a rollback window where you can switch back DNS or restore files. Define acceptance criteria with the client beforehand: what constitutes sign-off?
- Post-migration SLA and pricing - Offer a 7-14 day warranty period for basic functionality, and a retained hourly or block rate for any integrations or feature fixes discovered afterward. Make this explicit in the proposal.
What measurable KPIs should you track? Track average preflight time, number of migrations passing preflight, median time to a successful cutover, and post-migration tickets in the first 14 days. Compare those metrics across the quarter and iterate on checklists and scripts.
The quick summary agency owners can use at the bar
Answers you should be able to deliver in 60 seconds to a skeptical founder:
- Yes, offer free migrations only if you standardize the boring stuff and gate the complex work via a discovery checklist.
- Define exclusions clearly: multisite, ecommerce above X orders/month, custom SSO, heavy media, and closed-source SaaS integrations.
- Require hosting minimums publicly. If the client’s host fails the checklist, present a limited set of options and costs.
- Automate where you can. Scripts, CLI steps, and a staging smoke-test cut your average migration time dramatically.
- Charge for uncertainty: if you can’t verify the environment in 30 minutes, make migration billable or require a managed host move.
Decision table: free vs paid migration (quick reference)
Condition Offer Why Passes 15-min preflight, score <10 Free migration Low risk, repeatable, fast ops Score 10-20 or minor integration needs Discounted flat fee Predictable work that needs senior check Score >20 or host missing key features Custom estimate or require host change High risk, likely hidden hours
What about branding and marketing? Be explicit. Put your preflight checklist and exclusions on a dedicated migration page. Clients respect clarity. Comparisons between agencies show that clear public boundaries reduce dispute rates and post-launch support tickets.
Comprehensive summary and final practical notes
Here’s the no-nonsense takeaway: offering free migrations can be a powerful acquisition tool, but only if you manage expectations and standardize the work that truly is repetitive. The data suggests agencies that do a short technical preflight and use a scoring system get most of the marketing benefit with far fewer operational headaches.
Questions you should ask every prospect before promising free migration: Who controls DNS? Do you have SSH/CLI access? What plugins or integrations are mission-critical? How big is the media library? If you can answer those in 15 minutes, you can confidently offer a free migration. If not, you’ve just given yourself a potential weekend of unpaid work.
Final practical notes:
- Create templates: preflight, migration scripts, smoke tests, rollback playbook.
- Train a junior specialist to run the scripts and handle standard failures; reserve senior time for exceptions.
- Publish minimum hosting specs and a clear list of exclusions on your site.
- Price uncertainty: build a standard discovery fee or buffer into every proposal if preflight can’t be completed before signing.
Ask yourself: do you want more conversions at the cost of more chaos, or do you want conversions that scale operationally? The answer should guide whether you hang "Free Migration" on your homepage or make it a qualified offer. If you choose the latter, you’ll save hours, keep senior staff focused, and actually deliver the promise without the emergency calls.