WordPress Migration Without Losing Rankings: Plugins and Pitfalls

No Comments

Photo of author

By Liu Yu

WordPress migration all in one is a search phrase, and the thing it usually finds is a plugin. A WordPress migration plugin can pack the files and the database, import them on the new host, and report success. The catalogue can still be worse off than where it started. Success, in the plugin’s language, means the archive opened. It does not mean search, mail, or the cache survived.

Treat the green tick as the start of the check, not the end. The pages below are the checks a plugin does not run for you. A longer account of what breaks quietly after a move already exists, in moving WordPress to a new host. This page stays with the plugin path, and with the ranking part of the title, which is a procedure rather than a promise.

What the archive actually contains

Most tools in this category take the WordPress files and a dump of the database, then unpack both on the destination. Media is either inside the archive or copied beside it. The domain name is rewritten from the old URL to the new one, sometimes only in the places the plugin knows about.

That is a lot, and it is not the whole system. DNS is outside the archive. Mail records are outside it. The TLS certificate is outside it. A server-level cache, such as an nginx fastcgi_cache zone, is outside it. PHP’s memory_limit on the new machine is outside it. A plugin cannot migrate a setting that lives in a file it never saw.

So a WordPress migration plugin is a copy tool with a helpful UI. Judge it as that. A tool that copies faithfully will also copy a 30 MB cache row in the database, and a theme directory full of leftover files. Faithful is not the same as clean.

The database you did not mean to bring

On a multi-site server, disk use fell from 91% to 37% once a filter plugin’s cache was removed from the database. One of those rows was 30 MB. A migration that runs before that cleanup will carry the rows to the new disk and then present you with the same full-disk problem, plus a moving bill.

Before you export, look at the largest tables. Cache tables, session tables, and log tables are candidates to empty, not to enshrine. Take the backup of the uncleaned database first, store it off the web root, and export a second copy for the move. If something important lived only in a table you meant to trim, you still have the first file. If you trim after the only backup, you don’t.

Files the plugin will happily publish

One theme directory contained 36 files ending in .backup, and the public web could download them. A migration plugin that copies the theme will copy those 36 files onto the new host and make them public there too. The new host did not create the leak. The archive preserved it.

Scan the tree before you pack it. Backup zips, SQL dumps, editor swap files, and old copies of wp-config. Remove them from the tree that will be unpacked. Keep a real backup somewhere the web server does not serve. After import, request one of the old filenames and confirm it is gone. A plugin’s “success” screen will not do this request for you.

URLs, redirects, and the ranking part

The title of this page names rankings because that is what people are afraid of losing. Here is the procedure, and here is the limit on it. Keep the URL path the same wherever the content is the same. Redirect any path you retire, in a single hop, to the closest surviving URL. Don’t point a hundred retired URLs at the homepage and call that preservation. Update the internal links that still mention the old domain. Submit the sitemap of the new host once DNS is actually serving it.

That procedure reduces self-inflicted loss. It is not a guarantee that positions will hold. Google’s own hiring note says no one can guarantee a number-one ranking, and the same caution applies to “we guarantee you will not move”. Positions move for reasons that have nothing to do with your weekend cutover. The page is Google’s note on what no one can guarantee.

Indexing speed is also not a dial. On 22 September 2026, URL Inspection on three of our own sites did not behave as one system. The waimaodulizhan.com homepage had been crawled on 21 September, and new pages from that period were indexed the same day. On tianwenwangluo.com the homepage’s last crawl was stuck at 12 September, the sitemap had last been downloaded on 14 September, and three pages published on 18 September were still reported as URLs Google did not recognise. Same owner. Different crawl reality. A migration plugin cannot promise you the faster of those two.

Server country is a weak place to look for a ranking rescue during a move. Google’s multi-regional documentation lists server IP as a signal and says it is not definitive, because of CDNs and because sites are often hosted where the infrastructure is better. Read how Google reads server location. Move for latency and for who can administer the box. Don’t move because a plugin landing page told you a new IP would lift the catalogue.

Mail and the China path are outside the archive

After the files are in, send a real message to an outside inbox. Contact forms often keep showing a thank-you page while nothing is delivered. The layers are set out in why WordPress stops sending email. Check the domain’s mail records before you change the website’s DNS, so a website cutover does not take the sales inbox with it. Those records are not inside the WordPress migration plugin’s archive. They live at the DNS host. Write down where that login is before the weekend you move.

If the destination is a mainland China network, you have a second project, not a checkbox. Hosting a website for visitors inside mainland China is that project. An export site aimed at buyers outside China should not be folded into it by accident, just because the plugin offered a datacentre city in a dropdown.

A recorded move, and the condition on the fee

Forty-nine WordPress sites were moved off Cloudways onto a self-managed VPS. The fee for the same spec fell by more than half. The condition was a person watching the machines full time. A plugin does not replace that person. On a single brochure site, a careful owner can run the checks on this page in a day. On a catalogue with years of media, the checks are the work, and the plugin is the trolley.

Tianwen Network was founded in 2017. The figures in this piece are from that maintenance and from Google’s public docs. They are not a promise about your positions next month. If a vendor’s WordPress migration plugin pitch includes a guaranteed ranking, you can end the call. The archive can still be useful. The guarantee is the defect.

A text editor is not a migration plugin

Some fields in a WordPress database store a length next to the text. A find-and-replace done in a text editor, or in a naive SQL statement, changes the domain and leaves the old length in place. The page then loads as nonsense, or a widget disappears, and the plugin’s own importer would have avoided it because it understands that format. This is the main reason to use a WordPress migration plugin instead of a laptop search. It is also the reason not to “tidy” the SQL file by hand after the plugin built it.

The plugin can still miss a URL that was pasted into a setting it does not know about. After import, search the database for the old domain. Any hit is a leftover. Guides, menu items, and form notifications are the usual hiding places. Five minutes of search beats a week of “some links still go to the old site”.

Hostnames have to be chosen once

Pick the public hostname before you import. www or not. https only. A migration that imports to a temporary URL and then “we’ll fix the links later” creates a second move inside the first one. Do the rewrite to the final hostname, issue the certificate for that hostname, and only then point DNS.

Lower the DNS TTL a day ahead, so a mistake can be reversed without waiting half a day for caches you don’t control. Raise it again when the six checks at the end of this page have passed. TTL is not inside the archive. It lives at the DNS host. Write down that login next to the plugin’s export file.

Is Friday the right day? Usually no. A failure found at 16:00 with nobody at the DNS host until Monday is a self-inflicted outage. Move on a morning when the person who holds DNS and the person who reads PHP errors are both at work. The plugin does not care which day you click it. Your buyers do.

Changing host vs changing server vs changing domain

Searchers type move WordPress site to new host, transfer a WordPress site to another host, or migrate WordPress website to new host. They mean one checkout. The files and the database change machines. The public name stays.

Migrate WordPress site to another hosting, move WordPress to another server, and transfer WordPress site to new server are that same checkout when the domain string does not change. The labels are not three products.

The labels do hide three jobs, and the plugin will not pick among them. A host change is a new account: a new panel login, a new invoice, often a new IP. A server change can stay inside the company you already pay.

The machine is new. The login might not be.

A domain change leaves the machine where it is, rewrites the name stored in WordPress, and redirects the old paths. Type a temporary hostname into the plugin because the real name is for later, and you have scheduled a second rewrite. Pick the final hostname before the import. That means www or not, and https only.

DNS is what tells the world which machine answers. Leave the mail records alone unless you meant to move mail. A cutover that also repoints MX takes the sales inbox with it, and the archive still reports success. The plugin’s export file is not the DNS login.

Write that login down the day before. Issue the certificate for the final hostname before DNS moves. Who holds the archive while it travels is not the same question as which machine you rented. That comparison is WordPress migration tools compared.

When the machine stays and only the name changes, the checklist is moving a WordPress site to a new domain. A site that never had a database, because it lived on Squarespace, does not start in this plugin. That rebuild is migrating from Squarespace to WordPress.

Forty-nine sites left a managed host for a VPS. The fee for the same spec fell by more than half, and only because someone watched the machines full time. That was a host change. It was not a domain change, and the plugin did not replace the person.

Large media will not squeeze through a small upload limit

Catalogues collect years of photographs. The export archive can end up larger than the destination’s upload limit, and the import then stops halfway while the plugin still describes the attempt as incomplete rather than wrong. Compare the archive size with upload_max_filesize and post_max_size on the new machine before you start. If the archive is larger, copy the media by another channel and let the WordPress migration plugin move the code and the database.

Don’t raise those PHP limits to 1024M on a 1 GB machine just to force the file through. That is the same ceiling that made a 1-core, 1 GB box unstable when memory_limit was 1024M and a single PHP process already needed 80–124 MB. Split the media. Keep the ini file inside the RAM you actually have.

After the plugin says it is done

  1. Open five old URLs, including one retired path, and confirm the redirect.
  2. Submit the contact form to an inbox you can see.
  3. Read PHP memory_limit on the new machine and compare it with installed RAM.
  4. Request one leftover backup filename and confirm it is absent.
  5. Check the largest database tables, so a 30 MB cache row did not come along as luggage.
  6. Fetch the homepage from outside the datacentre and write down time to first byte.

Six checks. Then the site is allowed to be called moved. If you want a second person on that list, the practical version of ongoing help is WordPress support after the launch. Bring the old domain and the new one. Leave the guaranteed-ranking line out of the message. It isn’t a requirement we can accept, and it isn’t one you should want.

Questions after the plugin says done

Does a successful import mean the migration worked?

It means the archive opened. DNS, mail, the certificate, the server cache and PHP memory_limit sit outside the archive. Check those after the green tick.

Will a WordPress migration plugin protect rankings?

It can keep URLs stable if retired paths redirect once, to a close surviving URL. It cannot guarantee positions. Google’s documentation says no one can guarantee a number-one ranking.

What should be removed before the export?

Cache rows and public backup files. One database row of plugin cache was 30 MB, and one theme held 36 downloadable .backup files. A faithful plugin will copy both.

Does moving the server to another country fix rankings?

Google lists the server IP as a signal and says it is not definitive. Move for latency and for who can administer the box. Don’t move as a ranking trick.

Leave a Comment