The agency went quiet.
Now you need an exit.
Somewhere in your sent folder sits a request for a one-line text change. It has been there since last Tuesday. The plugin update you chased twice? Still pending. A WordPress migration is how you get out, and switching providers is less painful than it looks, provided a senior developer team treats it as an infrastructure project rather than a quick favor.
The rest of the picture is usually familiar too. There are 37 plugins, half of them deactivated for reasons nobody wrote down. A proprietary theme breaks on every Gutenberg update. You cannot log in to the hosting, yet the invoices keep billing "maintenance" hours against a site nobody has touched in months. None of it adds up.
Abandoned sites like this land on our desk most weeks. An agency folds, or a freelancer takes a salaried job, and a business is suddenly holding a website without credentials on a server nobody in the building has ever seen. The way out exists because WordPress is open source, so nobody gets to hold your content hostage. The move itself is still an infrastructure job with a dozen quiet ways to fail.
Steps in our process
Downtime during the cutover
Of indexed URLs get a 301
Response time on the new stack
What a WordPress migration actually moves
The database
Files and media
DNS and domain
SEO preservation
Configuration and integrations
Where WordPress migration goes wrong
- No redirect plan. The URL structure changes but the 301s never get written. Google starts indexing a wall of 404s, and rankings built over years disappear in weeks. Recovery takes months.
- A Friday-afternoon DNS switch. Propagation runs into the weekend and the failures surface on Saturday, when nobody is at a keyboard. By Monday morning the company has neither website nor email.
- Skipping staging entirely. Straight into production, untested. The WooCommerce checkout fails silently while the contact form posts to a dead inbox. Vipps, meanwhile, still points at the old server.
- Migrating the technical debt along with the site: 37 plugins, half of them disabled, plus a database stuffed with spam comments. Same junk, new address.
- Forgetting email. The MX records still point at the old box when DNS flips. Mail stops arriving — and customer inquiries vanish without even a bounce message.
Six steps to a
clean cutover
Starting points vary more than you would expect. Aging cPanel accounts. Proprietary platforms whose owners refused to hand over so much as a database export. One site had to be reconstructed after the only working credentials walked out the door with an employee who quit two years earlier. The method never changes, and it never begins with moving files.
What it begins with is an inventory. Before anything is touched, we document the lot: plugins, themes, code customizations, integrations, database size, PHP version. Crawling every URL gives us the raw material for the redirect map. The same crawl produces a second list, the things that should not make the trip: deactivated plugins, themes untouched since 2021, spam comments, revision tables bloating the database. At that point, housecleaning is free.
Once that is mapped, the whole site goes up on staging for your own people to click through and sign off. We schedule cutover for an agreed hour early on a weekday morning. The old server keeps answering alongside the new one until every request demonstrably lands where it should, and we watch logs and traffic in real time for the first 48 hours. Then you get the report.
How PXL runs a migration
Keeping your rankings through the migration
301 redirects for every URL
Sitemap submission
Canonical tags
Search Console verification
Before and after the move
Most sites we take over arrive from cheap shared hosting — cPanel, FTP uploads, no version control, no staging environment. A migration is the cheapest moment to replace all of it at once. The destination is FrankenPHP with Redis caching on PHP 8.4, deployed from Git with automated backups [1].
What a WordPress migration costs
| Type | Included in scope | Typical price |
|---|---|---|
| Small business website (5–20 pages) | Audit, staging build, controlled cutover, 48h monitoring | NOK 8,000–15,000 |
| Mid-sized site with integrations | + CRM connection, larger redirect map, email split from hosting | NOK 15,000–35,000 |
| WooCommerce store | + Payment integrations, order history, the full product catalog | NOK 25,000–60,000 |
| Enterprise | + Multi-country setups (multisite), heavier APIs, high traffic | from NOK 60,000 |
Small business website (5–20 pages)
Audit, staging build, controlled cutover, 48h monitoring
NOK 8,000–15,000Mid-sized site with integrations
+ CRM connection, larger redirect map, email split from hosting
NOK 15,000–35,000WooCommerce store
+ Payment integrations, order history, the full product catalog
NOK 25,000–60,000Enterprise
+ Multi-country setups (multisite), heavier APIs, high traffic
from NOK 60,000Do you actually need to move?
An honest answer first: plenty of sites should stay put. When the hosting is quick, you hold every login, the site behaves and the provider answers the phone, a migration buys you nothing at all. Moving for moving's sake burns budget.
The calculation flips once the warning signs stack up. A provider gone silent. Load times measured in whole seconds rather than milliseconds. Add a proprietary setup with no exit door, and the case makes itself. Technical debt compounds with interest, so every month of waiting makes the eventual cleanup more expensive, while an unpatched WordPress install quietly collects vulnerabilities in the background.
Timing matters more than people think. The ideal window is a quiet stretch of the calendar, well clear of campaigns and seasonal peaks, and the work should kick off two to four weeks before your preferred cutover date. There is one exception worth naming. When the old provider has already vanished, sitting still becomes the expensive choice, because an unmaintained WordPress site is an open target and attackers never check your calendar first.