Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchMove each domain as its own controlled migration unit. For every site, copy the complete WordPress files and database to a private destination, replace old URLs with a serialization-aware method, test the new installation before DNS changes, then issue one-to-one permanent redirects and monitor search and server signals. Changing DNS alone does not migrate WordPress data.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
The runbook below lets you migrate several independent installations in parallel without treating them as one database. It also identifies the additional database work required when the sites are members of a single WordPress Multisite network.
As an Amazon Associate I earn from qualifying purchases.
Decide what you are migrating
Several standalone WordPress sites on different domains may share a host or team, but each remains a separate application. Its database, wp-config.php, uploads, plugins, themes, cron jobs, URL map and redirect rules must be handled independently. Parallel work is safe only when credentials, backups, logs and validation results remain separated by domain.
Use a different migration record for every old-to-new domain pair. Give each record an owner, a planned content freeze, a staging hostname, a cutover time and a rollback contact. A batch spreadsheet can coordinate the work, but never run a network-wide database operation against unrelated installations.
#1 Best Overall
Inventory every site before touching production
Capture the following facts while the old site is still working. This inventory becomes your migration specification and your rollback checklist.
| Inventory item | What to record | Why it matters |
|---|---|---|
| Domain and URL variants | HTTP/HTTPS, www or apex host, subdomains, mapped paths and language folders |
These variants can appear in content, canonical tags, redirects and certificates. |
| Hosting runtime | Operating system, PHP version, database engine/version, web server, PHP extensions and filesystem owner | The destination must support the application before the domain is switched. |
| WordPress components | WordPress version, active and inactive plugins, themes, child themes, custom code and must-use plugins | Inactive code can still hold URLs or provide scheduled tasks. |
| Data footprint | Database size, uploads size, number of posts, media items, users and important URL patterns | Large transfers need a suitable export method and enough disk, memory and time. |
| Operations | Cron definitions, server-side jobs, caching, object storage, search indexes and deployment scripts | Jobs may continue running on the old server or run twice after cutover. |
| External dependencies | DNS records, SSL certificates, transactional email, forms, analytics, payment callbacks, API keys and plugin license callbacks | A page can look correct while a business-critical integration is broken. |
| Search baseline | Important URLs, status codes, titles, canonicals, XML sitemaps, robots rules, traffic and conversions | You need a before-and-after comparison and a complete redirect map. |
| Current redirects | Rules at the web server, host, CDN and WordPress level | Old rules can create chains or override the new mapping. |
Crawl or export a representative set of URLs, including posts, pages, media, pagination, feeds, taxonomy pages, search results and any high-value landing pages. Preserve the export outside the destination server.
Build and secure the destination first
- Create the target account and database. Provision the destination hosting account, database, database user, PHP/runtime settings and filesystem layout. Match or deliberately upgrade versions only after confirming plugin and theme compatibility.
- Use a private staging hostname. Install the destination certificate and create a hostname that is not yet advertised through public DNS. Protect it with authentication or an allowlist. Do not let search engines index the staging copy.
- Prepare capacity. Leave room for the original files, the imported database, temporary SQL files, backups, logs and caches. For a large database, verify maximum upload size, execution time and available command-line access before the transfer window.
- Prepare DNS and mail records. Copy the required A, AAAA, CNAME, MX, TXT and verification records into a documented change. A web migration does not automatically move email. Confirm which system will send outbound mail after cutover.
- Install the required runtime components. Enable the PHP extensions, database character set, rewrite support, cron mechanism and SSL configuration used by the site. Keep the old environment available until verification and rollback decisions are complete.
Freeze changes and create restorable backups
Choose a short content-change window for each site. Announce when editors must stop publishing, commenting or uploading. If a full freeze is impossible, record the exact final database export time and plan a delta procedure; never assume that files alone capture late content.
Create an untouched copy of the complete WordPress directory, including wp-content, uploads, custom themes, plugins and configuration files. Export the complete database, including all tables that belong to the installation. Store at least one copy outside the old and new servers, restrict its permissions and record its checksum or another integrity check.
Keep the original backup unchanged. Make working copies for URL replacement and testing so that a failed search-replace or import can be discarded without rebuilding the source.
Transfer the WordPress files and database
- Copy the files. Transfer the entire WordPress directory, preserving symbolic links where they are intentional, file names, permissions and hidden files. Verify that uploads and any custom directories are present rather than relying on a fresh WordPress download.
- Export the source database. WP-CLI provides a repeatable export command:
wp db export /safe/path/site-old.sql. Run it from the source WordPress directory with the correct site configuration loaded. - Import into the destination database. After creating the destination database and user, import the working SQL copy with
wp db import /safe/path/site-old.sql. For very large databases, use the host’s documented command-line import method and capture its output. - Check table prefixes and counts. Confirm that the destination tables use the prefix expected by
wp-config.php, that all custom tables arrived and that row counts for key tables are plausible. Missing plugin tables can cause silent loss of settings.
Do not point public DNS at an unverified import. The staging hostname must load the copied files and database first.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Set the destination configuration and base URLs
Edit the copied wp-config.php so DB_NAME, DB_USER, DB_PASSWORD and DB_HOST match the destination. Confirm that authentication salts, table prefix, memory limits and any environment-specific constants are intentional. Check ownership and permissions so the web process can read WordPress and write only where required, such as uploads and cache directories.
Set the WordPress home and siteurl values to the destination URL. You can update them in the copied database or with WP-CLI. In the administration interface, the fields are under Settings > General; use the staging URL while testing and the public URL for the final copy. A hard-coded WP_HOME or WP_SITEURL constant overrides database values, so check for those constants before changing rows.
Log in at the staging hostname and visit Settings > Permalinks. Save the existing structure once to regenerate rewrite rules, then test a post and a page. Do not make unrelated permalink changes during a domain migration.
Replace old-domain references without corrupting data
Changing the base URL does not update every occurrence of the old domain. References can be stored in post content, serialized widget settings, theme options, plugin configuration, media metadata, navigation menus, custom tables and scheduled actions. WordPress Developer Resources warns that a blanket SQL replacement can damage serialized values because those values store the length of the original string.
Recommended Free Tools
Use a serialization-aware tool. WP-CLI search-replace, Better Search Replace, Velvet Blues Update URLs and a specialized migration script are commonly used options. Whichever method you choose, work on the copied database, review a dry run and retain the pre-replacement SQL export.
Run a WP-CLI dry run first
From the destination WordPress directory, a typical dry run is:
wp search-replace 'https://old.example' 'https://new.example' --dry-run --report-changed-only
Review the tables and columns reported. Confirm that the old value is the exact scheme and host you intend to replace; run additional passes for variants such as an old http URL or a www hostname only when those variants are genuinely part of the old site.
Execute and export the transformed database
After review, run the same command without --dry-run. Add --precise when accuracy is more important than speed, and --recurse-objects when nested objects require traversal. Use table or column exclusions for values that must not change. The --skip-columns=guid option can preserve the historical guid column when that matches your migration policy; decide this before the run and document it.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
When a transformed SQL artifact is useful for audit or deployment, export it after the replacement with wp db export /safe/path/site-new.sql. Search the resulting export for the old domain, then inspect any remaining matches to determine whether they are intentional historical data, third-party URLs or missed site references.
Handle special URL forms
- Replace both the encoded and unencoded forms when a plugin stores URLs in a format your tool distinguishes.
- Check protocol-relative values such as
//old.example, absolute paths, CDN hostnames and image URLs. - Review JavaScript, CSS, JSON, shortcode attributes and custom fields; a visual homepage check will not expose every stale reference.
- Do not replace domains belonging to external services, payment providers or APIs merely because they appear beside the old site URL.
Use a repeatable per-site command sequence
Keep a versioned run sheet for each domain. Adapt paths and credentials to the environment, but preserve the order:
Rank #3
- Confirm the content freeze and record the source backup timestamp.
- Copy files and export the source database.
- Create the destination database and import the working SQL copy.
- Update
wp-config.php, permissions and environment constants. - Set staging
homeandsiteurl. - Run
wp search-replacewith--dry-run; save the report. - Run the approved replacement, then export and archive the transformed database.
- Regenerate rewrite rules, clear application and object caches, and rebuild any plugin-specific indexes.
- Complete the staging validation checklist and crawl.
- Approve the DNS and redirect change only after the validation record is signed off.
WP-CLI also supports scripting database export, import and search-replace operations across a portfolio. Keep each site’s working directory, database credentials, SQL files and reports isolated so a variable or path from one domain cannot affect another.
Standalone installations and Multisite require different handling
For independent installations, run the sequence separately. Do not use the --network flag or a shared search-replace script unless the target is actually a single Multisite network.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesIn WordPress Multisite, the database stores network and per-site domains and paths. A domain change requires review of .htaccess, wp-config.php, wp_blogs, wp_site and every wp_x_options table. In each site options table, check at least home, siteurl and fileupload_url. Confirm sunrise or domain-mapping code, mapped domains, upload paths and network-wide plugins before replacing values.
WP-CLI’s --network flag scopes a search-replace operation across the network. Use it only after confirming that every affected site belongs to that network and that the old-to-new mapping is correct for each site. A single global old-domain-to-new-domain replacement is unsafe when different subsites move to different domains; use explicit per-site passes or a migration script that understands the mapping.
Validate the staging copy before DNS cutover
Test the destination as an anonymous visitor and as an administrator. Use a crawl of representative URLs rather than relying on the homepage.
- Authentication: log in, log out, reset a password and verify administrator roles.
- Front end: test the homepage, templates, navigation, responsive layouts, images, downloads, comments and custom post types.
- URL behavior: test posts, pages, categories, tags, pagination, feeds, search, attachment URLs and trailing-slash variants.
- SEO signals: inspect canonical tags, robots directives, XML sitemaps, structured data and any staging
noindexor access block. - Forms and commerce: submit forms in a safe mode, verify confirmation messages and test payment or subscription callbacks without creating unintended transactions.
- Integrations: check analytics, webhooks, API endpoints, REST requests, media processing, search indexes and plugin license callbacks.
- Operations: run scheduled tasks, confirm outbound email, inspect PHP and database logs, clear caches and test backups.
- Performance and capacity: check response times under an expected request pattern, memory errors, database locks, disk space and queue backlogs.
Compare status codes, page titles, canonical URLs and important content against the source crawl. Fix errors on staging and repeat the crawl; do not use DNS cutover as a debugging step.
Cut over DNS and install direct redirects
Lower DNS TTL ahead of the planned change when operationally appropriate, while recognizing that resolvers may retain records beyond the stated TTL. At cutover, point the new domain’s records to the validated destination and verify the certificate for every public hostname.
Keep the old host online. Configure direct server-side permanent redirects—normally HTTP 301 or 308—from each old URL to its most relevant new URL. A redirect should go directly to the final destination, not through an intermediate domain, HTTP-to-HTTPS hop or a second redirect rule. Avoid sending unrelated URLs to the new homepage; map them to an equivalent page or return an intentional 404/410 when no equivalent exists.
Rank #4
Build the redirect map before launch. Include protocol and hostname variants, changed slugs, moved media, pagination and important historical URLs. Test a sample and a large automated set from the old host, recording status code, destination, chain length and final content.
Leave the old application or redirect layer available for rollback and for users following old links. Do not shut it down immediately after the first successful request.
Protect SEO during a domain move
Google’s site-move process is to prepare and test the new site, map every old URL to its corresponding new URL, configure redirects, and monitor both old and new properties. Update internal links, canonical tags, XML sitemaps and structured data to use the destination domain. Remove migration-only noindex directives and robots blocks before making the site public.
Verify ownership of both old and new domains in Search Console and submit Change of Address for a domain-to-domain move. Submit the new sitemap after launch and monitor indexing, coverage, crawl activity, impressions, clicks and important queries. Permanent redirects do not cause a loss in PageRank, but rankings can fluctuate while Google recrawls and reindexes URLs. Google describes a few weeks or more as a possible timeframe for medium-sized sites and longer for larger sites; there is no universal completion date.
Keep redirects for at least one year. Retaining them indefinitely is preferable when users, publishers or other sites may continue to use the old URLs. Watch for redirect chains, soft 404s, accidental canonicalization to the old domain and pages that remain blocked from crawling.
Monitor each migration and keep a rollback path
For every domain, create a dashboard or daily report covering uptime, origin logs, PHP and database errors, 404s, redirect responses, cache status, disk and CPU capacity, cron failures, email delivery, conversions, traffic and Search Console signals. Compare the figures with the pre-migration baseline rather than judging success from a single homepage request.
Define rollback triggers before launch: widespread 5xx responses, unrecoverable database errors, broken checkout or form delivery, severe redirect failures, missing media or unacceptable data loss. If a trigger fires, restore the old DNS target or enable the old host’s service, preserve logs, stop writes to the damaged destination when safe, and identify the failed step. Do not overwrite the untouched backup while investigating.
After the stabilization period, remove temporary staging access, rotate credentials exposed during the transfer, delete temporary SQL files from web-accessible locations and document the final DNS, redirect and backup state.
Choose an approach for a portfolio migration
The right method depends on how many sites you have, how large their databases are and how much shell expertise your team has. The following comparison describes operational trade-offs rather than a universal winner.
| Approach | Serialized-data safety | Repeatability | Multisite support | Dry run and rollback | Operational requirements |
|---|---|---|---|---|---|
| Manual file and database transfer | Safe only when URL changes use a serialization-aware tool; raw SQL replacement is risky | Low unless documented carefully for every site | Requires explicit network-table work | Possible with untouched backups, but reporting is limited | Database, filesystem and DNS knowledge |
| WP-CLI automation | Handles PHP serialized data intelligently and offers exclusions and precision controls | High; scripts and reports can be reused per site | --network scopes operations across a confirmed network |
Strong: dry runs, exported SQL and command logs | Shell access, correct WordPress context and disciplined credential handling |
| Migration plugin | Varies by plugin; verify serialization handling and custom-table coverage | Medium; repeatability depends on consistent settings | Verify network compatibility before use | May provide staging or previews; retain your own backups | Plugin compatibility, upload limits and administrator access |
| Managed migration service | Depends on the provider’s tooling and documented procedure | High when the provider supports a portfolio runbook | Confirm network expertise and domain mapping | Require a written rollback plan, logs and acceptance tests | Clear access, maintenance window and responsibility boundaries |
For a large set of similar standalone sites, a WP-CLI runbook generally offers the clearest audit trail. For unusual databases, limited shell access or business-critical integrations, specialist migration help can reduce operational risk. In either case, require a per-domain URL map, backup proof, dry-run output, validation results and rollback instructions.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
Troubleshoot by symptom
| Symptom | Likely cause | Action |
|---|---|---|
| Homepage loads but internal links point to the old domain | Only home and siteurl were changed |
Run a serialization-aware search-replace across content, options, metadata and custom tables; inspect remaining old-domain matches. |
| Widgets, menus or theme settings disappear or reset | Serialized values were damaged by raw SQL replacement, or required tables were omitted | Restore the working database copy, repeat with a serialization-aware tool and verify all plugin/theme tables were imported. |
| Images return 404 or mixed-content warnings | Uploads were not copied, media URLs were not replaced, or HTTPS rules are incomplete | Compare the uploads tree and attachment metadata, replace the correct URL variants and test the certificate and redirects. |
| Users cannot log in | Wrong database credentials, salts, cookie domain or URL constants | Check wp-config.php, database connection, salts, forced HTTPS settings and any hard-coded host constants. |
| Scheduled jobs run twice or stop | Both old and new servers remain active, or cron was not enabled at the destination | Disable the old scheduler at the agreed point, run due tasks manually where safe and verify server cron and WordPress events. |
| Search traffic falls sharply | Missing redirects, chains, blocked crawling, stale canonicals or incomplete URL mapping | Crawl old URLs, inspect response chains, remove accidental blocks, update canonicals and review Search Console processing. |
| Forms or payment callbacks fail | Allowlists, callback URLs, API keys, email DNS or SSL settings still reference the old host | Update each integration’s destination and credentials, then perform a controlled end-to-end test. |
Final per-domain acceptance checklist
- Untouched files and database backups are stored outside both servers.
- Destination runtime, database, SSL and permissions are verified.
- Old and new URL variants have been inventoried and mapped.
- WP-CLI dry-run output was reviewed before the real replacement.
- Serialized data, custom tables and media references were checked.
- Authentication, front-end templates, forms, email, cron and integrations passed tests.
- Canonical tags, robots rules, sitemap and internal links use the destination domain.
- Direct permanent redirects return the expected status without chains.
- Both Search Console properties are verified and the new sitemap is submitted.
- Logs, capacity, 404s, conversions and indexing are being monitored.
- Rollback triggers, contacts and the old host’s availability are documented.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




