Friday, June 12, 2026

How to Verify Your SEO Is Intact After a WordPress Domain Migration

Changing your domain name is one of the scariest SEO decisions a WordPress site owner can make. Done right, your search rankings survive the move mostly intact. Done wrong, you can lose months of work overnight.

I’ve audited post-migration sites where everything looked fine on the surface, only for missing redirects, stale canonical tags, or a sitemap still pointing to the old domain to kill rankings for weeks. I’m here to make sure that doesn’t happen to you.

In this guide, I’ll walk you through the full verification process: capturing your SEO baseline before the move, confirming your redirects work, checking the canonical URLs and database links that trip most sites up, and tracking your recovery.

How to Verify Your SEO Is Intact After a WordPress Domain Migration

TL;DR: Use Duplicator to migrate and back up your site, All in One SEO to verify and update your canonical URLs and redirects, and MonsterInsights to track your ranking recovery. Most sites recover 80–100% of rankings within 4–8 weeks when all 301 redirects are in place.

You can use the quick links below to navigate through the article:

Why Domain Migrations Put Your SEO at Risk

When you change domains, Google has to discover your new URLs, process your 301 redirects, and re-evaluate your content before it transfers your existing ranking authority. That process takes time, and errors at any stage can delay or permanently reduce your SEO recovery.

Most ranking losses after domain migrations come from three specific failure points:

  • Broken or missing 301 redirects: Without a 301, Google treats your new domain as a brand-new site with no ranking signals. Your old domain’s authority does not transfer.
  • Stale canonical URLs: A canonical URL tells search engines which version of a page is the “official” one to rank. If your new-domain pages still have canonical tags pointing to the old domain, Google will try to rank the old URL instead of the new one.
  • A sitemap referencing the old domain: Google uses your sitemap to discover and crawl pages. A sitemap pointing to old URLs slows down the discovery of your new domain’s content.

All three are fixable. The steps below walk you through checking each one in the right order, starting before you migrate.

Domain Migration SEO Solutions

Note: I built this guide to run before and through your migration, so Step 1 captures a pre-migration baseline first. If you’ve already moved your site, then skip that baseline and start your checks at Step 2.

Step 1: Build Your Pre-Migration SEO Baseline

Before you migrate your site, you should capture a snapshot of your current SEO performance.

Without a baseline, you have no way to tell whether your rankings are recovering normally after the move or whether specific pages are silently losing ground.

Export Your Keyword Rankings

Your keyword baseline is the ‘before photo’ you’ll compare against at weeks 1, 2, and 4 after migration. You’ll want to export your current keyword positions, clicks, and impressions before touching anything on your site.

You can do this for free directly from Google Search Console, or from within WordPress if you have All in One SEO’s Elite plan.

To export from Google Search Console, select your site property and click ‘Search Results’ under ‘Performance’ in the left sidebar. Set your date range to the last 3 months, then click ‘Export’ at the top right and choose ‘Download CSV’.

Google Search Console Performance report with Export button highlighted

Before clicking export, make sure to sort your data by ‘Impressions’ or ‘Clicks’ (highest to lowest). This ensures your top 1,000 keywords are your most valuable ones.

Then save the exported file in a dedicated migration folder on your computer. This CSV contains the four columns you’ll need for your baseline: query (keyword), clicks, impressions, and average position.

Note: Google Search Console will export up to your top 1,000 keywords, which is plenty for tracking your core SEO baseline.

If you have All in One SEO’s Elite plan, then you can pull the same data without leaving WordPress.

Simply go to AIOSEO » Search Statistics, where your keyword positions, clicks, and impressions are already pulled in from Google Search Console. For more details, see our guide on how to see search analytics in WordPress.

Seeing keyword rankings in AIOSEO Search Stats

Click the ‘Export’ button to download a CSV of your current keyword positions. Save this alongside your Google Search Console export in the same migration folder.

Whichever method you use, make a note of your top 20 keywords and their current average positions before closing the tab. Also take a screenshot of the overview for a quick visual reference during the stressful post-migration period.

Make sure to keep both the CSV and the screenshot in your migration folder. You’ll open them again at weeks 1, 2, and 4 post-migration to measure recovery progress.

Crawl and Document Your Current URLs

A complete list of every page on your site is your roadmap for setting up redirects later. If a page is missing from that list, it won’t get a redirect when you move. And once its old address stops working, the search ranking that page built up is gone for good.

You can use Screaming Frog SEO Spider (free for up to 500 URLs, with unlimited crawling available on their paid plan) to crawl your current site.

Simply enter your domain in the search bar at the top and click ‘Start’. Screaming Frog will then crawl every URL it can discover on your site.

Screaming Frog Showing a List of Crawled URLs

Once the crawl is complete, you’ll need to go to File » Export in Screaming Frog and save the full URL list as a CSV. To get a clean list of just your images, click the ‘Images’ tab in Screaming Frog before hitting export.

Tip: If you run a photography or recipe blog, make sure to crawl your image assets too, so you don’t lose that valuable image SEO.

Store this file in your migration folder alongside the keyword export.

While reviewing the crawl results, you will want to look for any URLs that already return a 301 or 302 status. These existing redirects need careful handling during migration to avoid creating redirect chains.

Also, record your homepage canonical URL.

Right-click your homepage, select ‘View Page Source’, and press Ctrl+F (Cmd+F on Mac) to search for <link rel="canonical".

Example of a Canonical Tag in the Source Code of Paginated Content

Step 2: Migrate Your Site With Duplicator

The method you use to migrate your site is actually your first major SEO decision.

For the transfer itself, I strongly recommend using Duplicator because of how safely it handles your database during the move.

Haven’t migrated yet? Please pause here and follow our complete guide on how to move WordPress to a new domain without losing SEO. Once your transfer is finished, come right back here to run through the verification steps below.

When you run the Duplicator installer on your new domain, it automatically updates every URL stored in your WordPress database to reflect the new domain. This includes automatically fixing your internal links and image paths.

This automatic URL replacement is what prevents the stale canonical and mixed-content problems covered later in this guide. Tools that skip this step leave old-domain URLs scattered throughout your database, which you then have to find and fix manually.

Once your migration is complete, confirm it worked cleanly by going to Settings » General in your new WordPress dashboard. Both the ‘WordPress Address’ and ‘Site Address’ fields should show your new domain URL. If they do, then you are ready to move on to the next step.

Change the WordPress Address and Site URL to Your New Domain

Important: While you’re in your new WordPress dashboard, go to Settings » Reading and confirm the ‘Discourage search engines from indexing this site’ checkbox is not checked.

This setting is sometimes left on from staging or development and will block Google from indexing your new domain entirely.

Confirm Your robots.txt Isn’t Blocking the New Site

The ‘Discourage search engines’ checkbox isn’t the only thing that can block crawling. Your robots.txt file can do it too, and a stale rule carried over from staging is easy to miss.

To check this, open https://yournewdomain.com/robots.txt in your browser.

Confirm two things. First, that no stray Disallow: / rule (or a leftover staging rule) is blocking important content. Second, that any Sitemap: line points to your new domain’s sitemap, not the old one.

If you use All in One SEO, you can fix this without editing files by hand. Just go to All in One SEO » Tools, turn on the ‘Enable Custom Robots.txt’ toggle, and correct any outdated rule. The robots.txt editor is included in the free version.

Adding a Custom Robots.txt Rule Using AIOSEO

For more information on getting these rules right, see our guide on how to optimize your robots.txt for SEO in WordPress.


Step 3: Set Up 301 Redirects From Your Old Domain

A 301 redirect tells Google that your old URLs have permanently moved to new ones.

Think of a 301 redirect like filing a permanent ‘Change of Address’ form with the post office so your SEO reputation forwards correctly.

Without 301 redirects, Google treats your old and new domains as entirely separate sites, and your ranking signals stay on the old domain.

For a complete overview of your options, see our guide on how to do a full site redirect in WordPress.

Set Up a Full Site Redirect in AIOSEO

All in One SEO is the best SEO toolkit for WordPress that lets you handle sitemaps, canonical tags, keyword tracking, and redirects all in one place.

Its Full Site Redirect tool (Pro plan and above) is the simplest way to redirect your entire old domain to the new one. You configure it once and AIOSEO automatically sends all your old URLs to their matching pages on the new domain using 301 redirects.

On your old WordPress site, go to All in One SEO » Redirects. If you are enabling this for the first time, click the ‘Activate Redirects’ button. Then click the ‘Full Site Redirect’ tab.

You’ll see a ‘Relocate Site’ toggle. Go ahead and turn it on.

AIOSEO Full Site Redirect tab with Relocate Site toggle turned on

In the ‘Relocate to domain’ field, enter your new domain URL. Make sure to double-check the spelling. A typo here means every visitor on your old domain gets sent to the wrong place.

Finally, click ‘Save Changes’. AIOSEO will now redirect all traffic from your old domain to the matching pages on your new domain automatically.

Important Warning: Because this method runs from a plugin, All in One SEO must stay installed and active on your old site, and that old WordPress installation must remain live. You must keep your old domain name registered, your old web hosting active, and your old WordPress site installed. If you delete the old site, cancel the hosting, or let the domain expire, your redirects will instantly stop working.

Test Your Redirects Before Proceeding

Testing your redirects before notifying Google is important. Submitting a change-of-address notification with broken redirects slows the entire migration recovery.

Instead, spend 10 minutes checking your key URLs now to avoid weeks of ranking problems later.

I recommend visiting an external tool like httpstatus.io rather than testing in your browser, as web browsers often ‘remember’ old redirects and can show you false results.

Enter your old homepage URL and confirm it returns a 301 status and resolves to the correct new-domain URL.

httpstatus.io showing 301 status for old domain URL resolving to new domain

You should repeat this test for your top 5 posts and your main category pages to ensure the URLs are mapping properly to the new site.

If httpstatus.io shows a 302 instead of 301, or a chain of multiple hops, then go back to All in One SEO » Redirects.

First, open the ‘Full Site Redirect’ tab and confirm there are no typos in the ‘Relocate to domain’ field. If that looks correct, check your standard ‘Redirects’ tab to ensure you don’t have older, individual redirect rules conflicting with your new full site redirect.

Pro Tip: A redirect chain happens when oldsite.com/page goes to a staging URL, which then goes to newsite.com/page. Each extra hop in the chain passes slightly less SEO equity and adds latency for visitors. Fix chains so every old URL redirects directly to the new URL in a single 301 hop.


Step 4: Register Your New Domain in Google Search Console

Google treats your old and new domains as entirely separate properties. To transfer your ranking signals, you need to verify the new domain in Google Search Console, submit a change-of-address notification, and resubmit your sitemap.

For the complete steps, see Step 5 of our guide on how to properly move WordPress to a new domain without losing SEO.

Here is a summary of the three things you need to do.

Add and Verify Your New Domain Property

You need both your old and new domains as verified properties in Google Search Console. Your old domain should already be there.

For the new one, click the property dropdown at the top left, select ‘Add Property’, choose your property type, and follow the verification steps.

Select property type option in Google Search Console
Submit the Change-of-Address Notification

This is the step that tells Google your site has permanently moved.

You need to switch to your old domain property in Google Search Console and go to Settings » Change of address.

Google Search Console Change of Address tool

Next, you should select your new domain from the ‘Update Google’ section, and click ‘Validate & Update’.

Google will verify your 301 redirects are in place and walk you through a brief wizard to complete the request. If Google Search Console cannot verify the redirects, then go back to Step 3 and confirm your Full Site Redirect is active before retrying.

Adding new domain to Google Search Console
Resubmit Your XML Sitemap

All in One SEO automatically updates your sitemap’s internal links when your site URL changes, but you still need to resubmit this new map to Google Search Console manually. This queues your new domain’s URLs for crawling rather than waiting for the next automated crawl cycle.

First, you will want to double-check that your active sitemap is reflecting the new domain. In your new WordPress dashboard, navigate to AIOSEO » Sitemaps to view your configuration.

Sitemap settings in All in One SEO

Simply click on the ‘Open Sitemap’ button to see a link to your XML sitemap.

Once you copy your updated sitemap URL from this screen, you can head back over to your new Google Search Console property and click ‘Sitemaps’ in the left sidebar to paste and submit it.

Add a new sitemap

For a visual walkthrough on accessing this menu in your plugin and submitting the link to Google, see our step-by-step tutorial on how to add an XML sitemap to Google Search Console.


Step 5: Verify Canonical URLs Are Correct

A canonical URL is the ‘official’ version of a page that search engines should index and rank. After a domain migration, canonical tags that still point to your old domain are one of the most common causes of slow ranking recovery.

The new-domain page effectively tells Google to rank the old URL instead.

Note: If you used Duplicator to migrate your site in Step 2, it automatically updates canonical URLs stored in the database during deployment. You may find that everything already looks correct. Still run the spot-check below to catch any canonical overrides set at the individual post level, which Duplicator may not update.

Check Your Global Canonical Settings in AIOSEO

All in One SEO automatically generates sitewide canonical tags based on your WordPress site URL. After migrating with Duplicator, these should already reflect your new domain.

What you do need to verify manually are two redirect settings that prevent duplicate-content issues on thin pages.

Go to All in One SEO » Search Appearance and click the ‘Advanced’ tab. You will see a ‘Paged Format’ setting, which adds a page number variable to the SEO title and description of paginated archive pages (for example, ‘Page 2’, ‘Page 3’).

Checking the Paged Format in All in One SEO

The default format shows three components: a separator, the word ‘Page’, and a page number variable. You just need to confirm the field isn’t blank.

If it is blank, you can restore the default by selecting a separator from the first dropdown, typing ‘Page’ in the text field, and selecting the page number variable from the final dropdown.

This makes each paginated page appear unique to Google without using redirects, preventing duplicate content flags.

Then click the ‘Image SEO’ tab in the same Search Appearance menu.

Confirm that ‘Redirect Attachment URLs’ is not set to ‘Disabled’. This redirects thin media attachment pages to the parent post or page where the image is hosted to keep those low-value pages out of Google’s index.

Redirect media attachment URLs in AIOSEO

The ‘Attachment’ option (the default) redirects attachment pages directly to the image file. ‘Attachment Parent’ redirects to the post or page where the image is used, though images not attached to any post will still show their attachment page.

Either option keeps these thin pages out of Google’s index.

Spot-Check Your Most Important Pages

Global settings cover the default, but individual posts and pages can have canonical overrides set at the post level.

You should check your highest-traffic pages to catch any lingering old-domain references.

You can open each page in your browser, right-click anywhere on the page, and select ‘View Page Source’. Then, simply use Ctrl+F (Cmd+F on Mac) to search the source code for <link rel="canonical".

Example of a Canonical Tag in the Source Code of Paginated Content

Confirm the URL in the canonical tag references your new domain.

If you find any page still showing the old domain, then open that post in your new site’s WordPress editor, scroll down to the All in One SEO settings panel, click the ‘Advanced’ tab, and update the canonical URL field.

Finally, save the post to apply the change.

Setting a Canonical URL Using AIOSEO

For a deeper explanation of how canonical tags work, see our guide on what a canonical URL is and how to use it in WordPress.


After migration, some images, scripts, and stylesheets on your new site may still be pointing to your old domain or loading over an insecure HTTP connection. Those stale assets will cause broken images and security warnings the moment your old domain goes offline.

While migration tools like Duplicator replace most of these automatically during deployment, it’s important to run a manual cleanup sequence to catch hardcoded errors, mixed content, or broken internal links.

Replace Hardcoded URLs in the Database

Warning: Replacing database URLs is a permanent, irreversible action. Before you start, always create a complete backup of your website.

While Duplicator handles standard URL updates during migration, hardcoded links inside page builder layouts, text widgets, or custom theme options sometimes get left behind. Running a quick scan with Search & Replace Everything by WPCode makes sure no old links are missed.

I recommend this plugin because it replaces URLs across your entire WordPress database without corrupting serialized data, which is a common problem with less careful tools.

We have a detailed article on how to easily update URLs when moving your WordPress site, but here are the main steps.

First, you need to install and activate Search & Replace Everything from the WordPress plugin repository. If you need help, see our guide on how to install a WordPress plugin.

Once activated, simply navigate to Tools » WP Search & Replace in your WordPress admin. Here, you’ll need to enter your old domain URL in the ‘Search for’ field and your new domain URL in the ‘Replace with’ field.

Using the Search & Replace Everything by WPCode Plugin to Fix Links to Your Old Site

Then make sure you check all available database tables in the list below the input fields.

You can do this easily by clicking the ‘Select All’ link.

WP Search and Replace dry run results showing rows affected count

Next, click the ‘Preview Search & Replace’ button to see a preview of the URLs that can be replaced, without making any changes.

Review the row count to confirm the number looks reasonable for your site size.

Once you are satisfied with the dry run preview, you are ready for the live replacement. Simply click the ‘Replace All’ button.

Note for Page Builder Users: If you use a page builder like Elementor or Divi, then you might still see broken background images after running a Search & Replace. This is because builders store URLs in static CSS files.

To fix this, you must clear your WordPress cache and regenerate your page builder files. For example, in Elementor, go to Elementor » Tools and click ‘Regenerate Files & Data’.

Check for and Fix SSL Mixed Content Errors

Before chasing any mixed-content warnings, confirm a valid SSL certificate is installed and covers your new domain. Most hosts issue one automatically, but a brand-new domain sometimes needs it applied first.

If your old domain used standard HTTP and your new one forces secure HTTPS, then you might notice a broken padlock icon or a security warning in your browser address bar when visiting your new site. This is a mixed content error.

It happens when your website configuration is secure, but an embedded background script, stylesheet, or image asset is still trying to load over an insecure connection.

If you see active security warnings or broken images on your new domain, you can resolve them quickly by following our step-by-step guide on how to fix the mixed content error in WordPress.

After replacing your database URLs, it’s a good idea to use the Broken Link Checker by AIOSEO plugin to catch any internal links still resolving to unexpected 404 errors.

For a complete visual walkthrough on managing these inline errors, see our tutorial on how to find and fix broken links in WordPress.

Once activated and connected, the plugin automatically scans your content in the background. You can check its progress at any time by navigating to Broken Links » Broken Links in your WordPress admin area.

If the background scan uncovers any issues, you will see them compiled in a clean list. For each broken link found, you can use the inline ‘Edit URL’ option to correct the mistake instantly, or click ‘Unlink’ to safely remove the dead link from your post.

View status details on broken links

Once you finish cleaning up the list, the cloud scanner will verify the fixes during its next automated pass.

Clean internal links also prevent redirect chains that waste Google’s crawl budget. If the scanner flags more broken links, fix them the same way and check back after the next background pass.

Find and Fix Any Hard 404 Errors

The broken-link scan above catches dead links inside your content. A hard 404 is a different problem: a page on your new site that loads as ‘Not found’ because it never migrated, its URL was renamed, or its redirect didn’t fire.

To find these, run the same Screaming Frog crawl you used in Step 1, but this time point it at your new domain. Once the crawl finishes, click the ‘Response Codes’ tab and look for ‘4xx Client Error’ to see every URL returning a 404.

Screaming Frog 404

It also helps to cross-check this list against Google Search Console.

In your new domain property, go to Indexing » Pages and look for any ‘Not found (404)’ rows, which flag pages Google expected to find but couldn’t.

Google Search Console Pages That Aren't Indexed

For each hard 404, you have two fixes:

  • If the page should still exist, restore or republish it at its correct address.
  • If the page moved to a new URL, you can add a 301 redirect in All in One SEO that sends the old address straight to the new one. This recovers the ranking signals that a dead page would otherwise lose.

The steps above fix the links inside your own site. But other websites may still be linking to your old domain, and those external backlinks are some of your strongest ranking signals.

Your 301 redirects do pass that ranking value to your new domain. But that hand-off isn’t permanent: it can weaken over time as it passes through the redirect, and it stops completely if you ever let the old domain expire.

A direct link to your new domain is always stronger than one that has to pass through a redirect. So it’s worth updating your most valuable backlinks at the source.

To find them, open Google Search Console and go to Links » Top linking sites on either your old or new property. This shows you which sites send you the most links, so you know where to focus.

Google Search Console backlinks

I recommend prioritizing the high-authority mentions you can actually influence. These are usually your guest-post author bios, press mentions, resource-page listings, and partner sites.

For each one, send the site owner a short, polite email asking them to update the link to your new domain. You can’t edit links on sites you don’t control, so a friendly request is the only route for those.

You won’t get every link changed, and that’s fine. Updating even the top handful of your highest-authority backlinks protects the ranking power that matters most.


Step 7: Monitor Ranking Recovery With AIOSEO and MonsterInsights

Ranking recovery after a domain migration takes time.

Your main concern in the weeks following a site relocation is to tell the difference between normal, short-term changes due to search engine algorithms and genuine technical problems that require you to do something.

Track Keyword Positions in AIOSEO Search Statistics

All in One SEO’s Search Statistics dashboard pulls your Google Search Console data directly into your WordPress admin area. This allows you to monitor your key word positions without needing to log into GSC separately.

To see your recovery, navigate to AIOSEO » Search Statistics and open your keyword performance reports. From here, you can cross-reference your live numbers against the pre-migration baseline CSV you saved during Step 1.

Seeing keyword rankings in AIOSEO Search Stats

If you want to learn how to deeply customize these reports, see our guide on how to see search analytics in WordPress.

Be sure to click into the ‘Winning / Losing’ tab to quickly identify specific pages that have lost the most visibility since the move.

You can also add your top 20 migration-critical keywords to the built-in Rank Tracker to make sure you get immediate updates on your most valuable revenue terms.

Seeing the top winning and losing keywords in AIOSEO Search Stats

While keyword monitoring shows you your search engine positions, tracking actual traffic volume confirms how users are responding to the new domain.

MonsterInsights brings your Google Analytics data directly into WordPress, making it simple to run week-over-week traffic checks. To set it up, see our guide on how to install Google Analytics in WordPress.

Important: Keep your existing Google Analytics property. Do not create a new one for the new domain. Your whole recovery check depends on comparing the new numbers against your pre-migration baseline, and a fresh property starts that history at zero. Stay on the same property and just update its data stream to the new site URL, so your week-over-week comparison stays intact.

You can analyze traffic by navigating to Insights » Reports in your WordPress dashboard to open the default Overview Report.

MonsterInsights new and improved reporting dashboard

Then, you can use the date range picker to compare your post-migration stats against your old baseline window. Then, look at the traffic breakdown to make sure your organic search is recovering proportionally.

For a complete look at measuring traffic spikes or troubleshooting flatlines, check out our guide on how to check if your WordPress SEO is actually working.

To make your data easy to scan over the next 180 days, you can also use the Site Notes feature (available on the Pro plan and above) to pin your migration date directly to the analytics timeline graph.

You’ll need to go to Insights » Site Notes, click ‘Add Note’, and log the exact move date. This creates a permanent visual anchor on your overview line charts so you can see precisely when your traffic started recovering.

Adding notes to a MonsterInsights dashboard

Your Week-by-Week Recovery Timeline

It is totally normal to feel a little stressed when you see your rankings change a lot after a domain migration. Knowing what a normal recovery looks like can help you avoid making panic changes to your content, which can actually slow things down.

Here is a week-by-week look at what to expect.

Week 1: Discovery and Fluctuation

The first week is the most unsettling. Google’s ‘crawlers’ (the automated bots that read and index websites) are discovering your redirects and beginning to process the domain change.

Rankings will fluctuate (shift up and down) significantly during this period.

Some keywords may temporarily disappear from results entirely, even for pages with perfect redirects in place. Organic traffic typically drops 30–70% from your baseline during week 1, though well-prepared migrations often see smaller dips.

This is expected and is not a sign that your migration failed.

If you moved to a new hosting provider as part of this migration, DNS propagation can take 24–48 hours. During this time, some visitors and crawlers may still reach your old site. GSC data from the first 48 hours after migration may look unusual as a result. This is normal.

It’s tempting to start fixing things when your traffic dips, but try to resist. For this first week, just focus on making sure your technical setup is working properly. Try to avoid rewriting content, changing URLs, or tweaking your AIOSEO settings.

If you change too many things at once, it will only confuse Google and make it harder to spot real problems.

Week 2: Signals Begin Transferring

By week two, Google has typically processed most of your 301 redirects and is beginning to pass ranking signals to the new domain.

With solid redirects in place, many sites see some traffic recovery begin by week 2. But the pace varies significantly by domain authority, niche, and crawl budget.

Make sure you log in to Google Search Console and check your new domain property for any ‘Redirect Error’ or ‘Soft 404’ notifications. A soft 404 occurs when a page loads successfully but returns little or no useful content. Google treats these as potential content quality issues.

These appear in the Pages report under Indexing » Pages. Fix any errors flagged here before they turn into larger ranking losses.

Week 4 and Beyond: Recovery Assessment

By week four, you should have a clear picture of your overall recovery. Sites with clean 301 redirects often see 80–100% recovery within 4–8 weeks.

But timelines vary, and some sites take longer even when your migration was done perfectly.

Now is a great time to open up your AIOSEO Search Statistics dashboard and pull out that baseline CSV you saved back in Step 1. Let’s see how your keywords are doing.

If you spot any pages that are still ranking much lower (like 50% or more below where they started), don’t worry. They just need a little one-on-one attention.

For those specific pages, simply double-check these three quick things:

  • The redirect: Is the 301 redirect working perfectly and pointing to the right place?
  • The canonical tag: Does the canonical URL on that specific page definitely point to your new domain?
  • Google’s index: Does Google Search Console’s Pages report show that the new URL is successfully indexed?

Once you fix any issues you find, simply give Google another two weeks to process the updates before you check your stats again. Remember, SEO takes a little patience, but by catching these errors now, you are setting your new domain up for long-term success.


Frequently Asked Questions About Domain Migrations & SEO

Here are the most common questions about verifying SEO after a WordPress domain migration.

How long does it take to recover SEO after a domain migration?

WordPress sites with clean 301 redirects in place often see 80–100% ranking recovery within 4–8 weeks, though timelines vary depending on domain authority, niche, and redirect completeness.

Sites with missing redirects, redirect chains, or stale canonical URLs pointing to the old domain can take 3–6 months.

The single biggest factor in recovery speed is redirect quality. Every old URL needs a direct 301 to its new-domain equivalent with no intermediate hops.

Will I lose all my rankings when I change domains?

No, but you will experience a temporary drop while Google processes the change. A 301 redirect transfers your ranking signals from the old URL to the new URL. Google follows the redirect and eventually ranks the new-domain page instead of the old one.

Sites that migrate without 301 redirects do permanently lose their SEO equity. Google treats the new domain as a brand-new site with no history.

Do I need to keep paying for my old hosting and domain?

You need to keep the old domain registered, but not necessarily the old hosting. The plugin-based redirect in this guide runs from your old WordPress site, so it needs that site and its hosting to stay active.

If you’d rather stop paying for hosting, you can set the redirect up at the domain level instead (for example, with a free Cloudflare redirect rule) and then cancel the old hosting. Either way, keep the old domain registered for at least a year so your redirects keep passing your ranking signals.

Do I need to update all my internal links after a domain migration?

Yes. Even though your 301 redirects will automatically forward visitors to the right place, you should still update your links.

Leaving old links in your content forces users to wait for the redirect to load, which slows down your website. It also makes search engines work much harder to read your pages.

Instead of changing them one by one, you can use the Search & Replace Everything by WPCode plugin to safely update every old link in just a few minutes. This keeps your site fast and SEO-friendly.

What else should I update after moving to a new domain?

Update everywhere your old domain is referenced off your site, not just your redirects and internal links.

That includes any local directories and business listings, your social media profiles (YouTube, LinkedIn, Facebook, and X), and your Google Business Profile.

You’ll also want to swap the old domain out of your email signatures and any UTM or campaign links you use in ads and newsletters.

Think of it as housekeeping. It keeps visitors from landing on your old domain and keeps your branding consistent across every place people find you.

What should I do if rankings have not recovered after 8 weeks?

You’ll want to start with a redirect audit. Simply crawl your old domain with Screaming Frog and confirm every URL returns a 301 to the correct new-domain URL.

Then, you can check if WordPress is still redirecting to the old domain, a common post-migration issue caused by stale URLs in the database.

Also verify your new domain is not accidentally set to ‘noindex’ anywhere. Check both AIOSEO’s global settings and your WordPress ‘Reading’ settings.

Run a full WordPress SEO audit to catch any remaining technical issues. Also check your schema markup: if your old domain URL is hardcoded in any JSON-LD schema blocks, that conflicting signal can create inconsistency that may affect how Google interprets your site’s authority.

Can I do a domain migration without losing any traffic at all?

A zero-traffic-loss migration is theoretically possible but extremely rare in practice. Even with perfect 301 redirects, Google takes time to process the change, and some short-term fluctuation is nearly universal.

What you can realistically achieve is a minimal-impact migration where traffic dips for 1–2 weeks and then fully recovers within a month.


Additional Resources for Domain Migration SEO

Migrating to a new domain is a big project, and you’ve done the work to protect your SEO.

You have successfully set up your redirects, cleaned up your old links, and put a solid tracking system in place using AIOSEO and MonsterInsights.

Now that the hard part is done, you can take a deep breath. Just give Google a little time to process the changes, and you should see your search traffic stabilize over the next 4 to 8 weeks.

You may also want to check out these related guides:

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Verify Your SEO Is Intact After a WordPress Domain Migration first appeared on WPBeginner.



from WPBeginner https://ift.tt/1ndms2c
via IFTTT

Wednesday, June 10, 2026

How to Find and Fix Orphan Pages That Are Killing Your WordPress SEO

You’ve done everything right: published your blog posts, optimized the titles, maybe even built a few backlinks. But traffic still isn’t coming, and you can’t figure out why. Now, before you publish another post, it’s worth checking whether orphan pages are working against you.

Orphan pages are easy to miss. No internal links connect to them. They’re invisible to most visitors. And Google has little reason to rank them. 

They are also one of the most overlooked SEO problems out there. But the fix is simpler than you might think.

In this post, I’ll show you how to track down every orphan page on your WordPress site and exactly how to fix it so that your SEO gets back on track.

How to Find and Fix Orphan Pages That Are Killing Your WordPress SEO

TL;DR: Orphan pages are posts or pages on your site with no internal links pointing to them, making them nearly impossible for search engines to find. The easiest way to find and fix them is by using the Link Assistant feature in All in One SEO (AIOSEO).

What Are Orphan Pages?

An orphan page is any page on your website that no other page links to. There are no internal links pointing visitors or search engines in its direction.

It’s like a room in a building with no hallways leading to it. The room exists, but nobody can find it because there’s no way in.

How Do Orphan Pages Happen?

Orphan pages can show up on any WordPress blog or site, and they’re often created by accident.

Here are the most common ways an orphan page happens:

CauseWhat Happens
Pages never added to site structureA page gets published but is never linked from the navigation menu, a category, or any other post. It exists in your database but remains completely isolated from the rest of your site.
Site migrations gone wrongMoving your site to a new platform or restructuring your URLs can break internal links. This cuts pages off from the rest of your site – common when URLs change without proper 301 redirects.
Gradual link removal over timeAs you update your navigation menu or redesign posts, links can disappear unintentionally. What was once well-connected can become orphaned over time.
Campaign landing pages left behindPages created for time-limited campaigns or promotions are often never integrated into your main site structure. When the campaign ends, they remain isolated.

Some orphan pages are created on purpose, like landing pages for paid ads or pages you’re still testing. But even then, they need to be managed carefully, which I’ll cover later in this guide.

Why Orphan Pages Harm Your SEO

Orphan pages are bad for your WordPress SEO because search engines like Google rely on internal links to discover, crawl, and understand the value of your content.

When a page has no links pointing to it, Google has little reason to visit it, and even less reason to rank it.

Here’s what that can mean in practice:

  • Pages may not get indexed — If Google’s crawler can’t find a page through internal links, it may never show up in search results at all.
  • They struggle to rank, even for easy keywords — Internal links pass link equity (also known as “link juice” or SEO value), which helps pages compete in search. Without it, even well-written content can sit invisible.
  • Orphan pages waste crawl budget — On larger sites, Google has a limited number of pages it will crawl per visit. Orphan pages eat into that budget without contributing anything back.
  • They’re invisible to AI search tools — Tools like ChatGPT, Perplexity, and Google’s AI Overviews rely on indexed, well-connected content. Since orphan pages often aren’t indexed in the first place, these tools rarely surface them.

On top of all that, a site with many disconnected pages can signal poor structure to search engines, which can affect your rankings more broadly.

Now, let’s see how to find and fix orphaned pages on your WordPress site. Here’s everything I’ll cover in this guide:

Step 1: Install and Activate the All In One SEO (AIOSEO) Plugin

To find and fix orphan pages in WordPress, you’ll need the right tool for the job.

I recommend using All In One SEO (AIOSEO). It’s one of the most trusted SEO plugins available for WordPress, and it comes with a powerful Link Assistant feature that makes tracking down orphan pages straightforward.

At WPBeginner, we use AIOSEO to optimize titles, configure OpenGraph settings, create schema markup, and handle other critical SEO tasks. Plus, it’s consistently updated with new features and improvements.

For more information about the plugin, see our detailed AIOSEO review.

To start, you can visit the AIOSEO website to create an account. Just click ‘Get All in One SEO for WordPress,’ select a plan that includes the Link Assistant feature (Pro plan or above), and complete your purchase.

AIOSEO's homepage

💡 Note: You’ll need at least AIOSEO’s Pro plan to access the Link Assistant. But you can install the free version of AIOSEO first to explore the plugin before upgrading.

Upon signup, you’ll receive access to your AIOSEO dashboard, where you can download your plugin zip file and copy your license key.

Now you can go ahead and install the All In One SEO plugin. Simply navigate to Plugins » Add New in your WordPress admin area.

The Add Plugin submenu under Plugins in the WordPress admin area

On the next screen, click the ‘Upload Plugin’ button.

Then, click the ‘Choose File’ button to upload your AIOSEO Pro zip file from your computer.

Choose File button to upload a plugin's zip file

Once uploaded, click ‘Install Now,’ followed by ‘Activate.’ If you need detailed help, refer to our guide on how to install a WordPress plugin.

AIOSEO will then add a new menu to your WordPress dashboard. From here, navigate to AIOSEO » General Settings to verify your license key.

In the field, enter your AIOSEO Pro license key and click ‘Activate.’

Verifying AIOSEO's license key

Now, you can access all of your SEO settings within the AIOSEO menu. You’ll be working inside this menu throughout the rest of this tutorial.

If you need help with this process, check out our guide on how to setup All in One SEO for WordPress correctly.

Now that AIOSEO is installed and activated, you need to enable the Link Assistant feature. This is what will help you identify orphan pages on your site.

From your WordPress dashboard, head to AIOSEO » Link Assistant, and then you can click on the ‘Activate Link Assistant’ button if it isn’t already active.

Activating Link Assistant in AIOSEO

Once you’ve enabled it, you’ll see a popup modal prompting you to scan your content.

Go ahead and click the ‘Scan Now’ button.

Scanning content for orphaned pages

AIOSEO will then begin analyzing your site’s internal link structure in the background. This process scans your entire site to build a map of how your pages are linked together.

💡 Pro Tip: If this is your first time activating Link Assistant, give it a few minutes to finish scanning your WordPress site before moving on to the next step. Larger sites may take a bit longer to process, and you’ll see a progress indicator showing the scan status.

Step 3: Find Orphan Pages on Your WordPress Site

Now that Link Assistant is active, it’s time to see which pages on your site are orphaned.

From your WordPress dashboard, navigate to AIOSEO » Link Assistant and click on the ‘Orphaned Posts’ tab.

Orphaned tab in AIOSEO Link Assistant

This will show you a full list of every page and post on your site that has no internal links pointing to it:

  • Post Title — The name of the orphaned page or post. You can click on it to open that content directly.
  • Publish Date — When the page was first published. This can help you spot old content that may have been forgotten over time.
  • Internal Links — The number of internal links currently pointing to this page. For orphan pages, this will show zero.
  • Affiliate Links — The number of affiliate links on the page itself. This helps you see if the page contains monetized content worth saving and reconnecting.
  • External Links — The number of external (outbound) links on the page. Pages with relevant external links often contain valuable content worth keeping and fixing.
  • Suggestions — Quick recommendations from AIOSEO on how to handle each orphaned page, whether that’s adding internal links, deleting it, or redirecting it elsewhere.

Here’s what it looks like in the panel:

Orphaned page list

Step 4: Choose Which Orphan Pages to Fix

Before you start adding links everywhere, take a moment to think critically about your orphan page list. If you’re looking at a long list, don’t panic.

Not every page needs to be fixed, and treating them all the same way can actually do more harm than good.

Your goal is to identify which pages are genuinely worth reconnecting to your site, and which ones are better off being deleted or redirected.

I recommend starting by focusing on pages that you know are valuable, like product pages, popular blog posts, or content you’ve actively promoted. Those are the ones most likely to benefit from being reconnected to your site structure.

🧑‍💻 Pro Tip: It helps to keep a simple spreadsheet as you work through the list. Note each page, its content type, and whether it seems worth fixing, redirecting, or removing. This makes the next step much easier to manage.

If another website is already linking to one of your orphaned pages, then that page is passing link equity to your site. Reconnecting it internally means that value can flow through to the rest of your content.

You can check for backlinks using Google Search Console or a tool like Semrush.

In Google Search Console’s ‘Top linking sites’ report, for example, you’ll find all third-party websites linking to you. You can expand the report by clicking ‘More,’ then clicking any domain to see which of your pages they’ve linked to and the exact URLs involved.

Any orphaned page with existing backlinks should move to the top of your fix list.

Google Search Console backlinks

💡 Note: Keep in mind that if you just connected your site to Google Search Console for the first time, it may take a few days for your link data to populate. You can check out our guide on how to add your WordPress site to Google Search Console.

Check for Search Volume or Existing Rankings

Some orphan pages may already be getting a trickle of traffic from search engines, even without internal links. That’s a strong sign the content has potential.

To do this, you can use the ‘Performance’ report in Google Search Console to see if any of your orphaned pages are showing up in search results.

Google Search Console performance

For more Google Search Console tips, see our guide on how to use Google Search Console to grow website traffic.

Check On-Site Traffic with MonsterInsights

Google Search Console shows you how a page performs in search, but not how visitors behave once they land on your site. For that, I recommend using MonsterInsights.

It brings your Google Analytics data right into the WordPress dashboard, so you can see which pages still pull traffic without opening GA4.

MonsterInsights won’t find orphan pages for you, because Link Assistant already does that. What it helps with is deciding which orphans are worth your time.

Head to Insights » Reports to see which pages are actually getting visits, then cross-reference that against the orphan list from Link Assistant.

MonsterInsights new and improved reporting dashboard

An orphan page that still pulls steady traffic despite having zero internal links is a strong save, so reconnect it first. One that has barely registered a visitor in months is a better candidate for redirecting or removing, which I cover in the Bonus section below.

Consider Revenue Potential

Not all pages are created equal when it comes to your bottom line. Product pages, service pages, and high-converting content should be prioritized over general blog posts or informational pages.

If a page directly supports your business goals, it deserves to be well-connected within your site structure.

Orphaned product pages for prioritization
Flag Duplicates and Thin Content

As you review your list, you’ll likely come across pages that are very short, outdated, or nearly identical to other content on your site. These pages probably don’t need internal links added to them.

Instead, make a note of them. The Bonus section at the end of this guide covers exactly how to handle thin and duplicate content the right way.

Nearly identical orphaned pages listed in the AIOSEO Link Assistant report

Step 5: Fix Priority Orphan Pages

Now comes the part where you actually reconnect your orphaned pages to the rest of your WordPress site. AIOSEO’s Link Assistant makes this process much simpler than doing it manually, because it suggests relevant internal links for you automatically.

From the ‘Orphaned Posts’ tab, find a page you want to fix. You can either click directly on the post title or click the arrow icon next to it to open suggestions for that page.

Expanding an orphan page section for further action

AIOSEO will show you a list of other posts and pages on your site that would be a natural fit for linking to your orphaned page. These suggestions are based on content relevance, so you’re adding ones that actually make sense for your readers.

If you get internal linking suggestions, you’ll see two types of suggestions:

  • Outbound suggestions — Pages your orphaned content should link to. These help establish context and keep readers engaged on your site.
  • Inbound suggestions — Pages on your site that should link to your orphaned page. These help bring traffic and authority into the orphaned content.

From here, you can hover over the anchor text, which is the clickable words that will appear as the link in your content, to see where it links to.

Inbound and outbound link suggestions

Before finalizing a link, it’s worth checking the anchor text.

AIOSEO gives you the option to edit it by clicking the pencil icon next to the suggestion.

Pencil icon to edit anchor text

I recommend using anchor text that reads naturally in context.

Descriptive, relevant anchor text also helps search engines understand what the linked page is about, which can give it a small but helpful SEO boost.

Click ‘Save Changes’ to update your anchor text.

Checking and editing anchor text

Once you’ve reviewed the suggestions, simply click the ‘Add Link’ button next to any suggestion you want to use.

AIOSEO will add the internal link to that post automatically, without you needing to open the content editor yourself. This is a real time-saver, especially if you have several orphaned pages to work through at once.

Adding link suggestions

A popup will appear asking you to confirm the changes.

Click ‘Yes, I want to add this suggestion,’ and AIOSEO will immediately apply the internal links to your orphaned pages.

Confirming to add the suggestion

From here, you can go ahead and repeat the process for all of your priority orphaned pages.

For your highest-value orphans, it’s also worth going one step further and adding them to your site structure directly.

Link Assistant adds links from within the body of other posts. But a cornerstone page, a key product page, or an important landing page often deserves a more permanent spot.

You can add these pages to your main navigation menu, or assign posts to a relevant category. A menu link points to the page from every page on your site, which makes it easy for readers and search engines to reach from anywhere.

If you use affiliate links added via plugins like ThirstyAffiliates, then you’ll see affiliate suggestions in the report as well.

Similarly, external suggestions appear for outbound links you could add. External links point readers to relevant content on other websites, which helps establish authority and provides context for your content.

Adding these works the same way as internal links. AIOSEO suggests relevant pages, and you approve them with one click.

In your process, you might also see multiple internal link suggestions for a single page. Be careful because more internal links aren’t always better.

Multiple suggestions in AIOSEO's Link Assistant report

Adding too many links to a single page can dilute link equity and look unnatural to search engines. Aim for links that are genuinely relevant to the reader and add real value to the content.

For more guidance, see our ultimate guide on internal linking for SEO.

When you’re done, visit the actual blog post or page to see the new internal links in action.

Interlink automatically added to live post

Other Ways to Find Orphan Pages

AIOSEO’s Link Assistant is the easiest way to find orphan pages, and it’s the method I recommend.

But if you don’t use AIOSEO, or you just want a second tool to cross-check your list, then you have a few alternatives.

  • Screaming Frog SEO Spider — A desktop crawler that’s free for up to 500 URLs. Connect it to Google Search Console or your XML sitemap, and its Orphan URLs report flags pages those sources know about but the crawl never reached through an internal link.
  • Semrush Site Audit — It crawls your whole site and surfaces orphan pages by comparing the crawl against your sitemap. It’s a paid tool, but useful if you also want keyword research or backlink tracking.
  • A manual Search Console check — Compare the URLs in your XML sitemap against the pages a crawl can actually reach. Anything in the sitemap that the crawl misses is likely an orphan. Our Google Search Console guide walks through the reports you’ll need.

These methods only find orphan pages, so you’ll still fix them by adding internal links the way we covered above.

If you want a full health check while you’re at it, then run our free SEO audit tool to catch other issues alongside your orphan pages.

Bonus Considerations for Orphan Page Management

Fixing orphan pages by adding internal links is the right move for most content. But not all orphaned pages should be handled the same way.

Here’s how to deal with the ones that need a different approach:

  • Thin or duplicate orphan pages — Don’t link to weak content. Instead, remove these pages by setting them to return a 404 or 410 status, which tells search engines to drop them from the index. Before deleting pages, though, create a complete backup, just in case you need to reverse your changes.
  • Deleted pages — If deleted pages still have backlinks pointing to them, set up a 301 redirect to a relevant page instead of letting them return a 404. This preserves the link equity you’ve built up. Since you’re already running AIOSEO Pro for Link Assistant, you can set these redirects up with its built-in Redirection Manager, without adding a separate plugin.
  • Intentional orphan pages — Landing pages and testing pages shouldn’t have internal links pointing to them. If they’re indexed by search engines, add a noindex tag so they don’t appear in search results.

Your WordPress Orphan Page Audit Checklist

Orphan pages aren’t a one-time fix. New ones show up every time you publish, redesign, or migrate your site, so it helps to run a quick audit on a schedule.

Here’s the checklist I follow:

  • Scan with Link Assistant — Open AIOSEO » Link Assistant and check the ‘Orphaned Posts’ tab for any pages with zero internal links.
  • Cross-check the data — Confirm your priorities in Google Search Console (backlinks and search performance) and MonsterInsights or Google Analytics (on-site traffic).
  • Sort each orphan — Decide whether to reconnect, redirect, noindex, or delete it.
  • Reconnect the keepers — Add relevant internal links with Link Assistant, and add your most important pages to the navigation menu.
  • Handle the rest — Redirect pages that have backlinks, add a noindex tag to intentional orphans, and remove thin or duplicate content.
  • Re-scan on a schedule — Run this audit every few months, and always after a redesign or site migration.

Run through this list a few times a year, and orphan pages will stop draining your rankings and start working for your SEO again.

FAQs About Finding and Fixing Orphan Pages in WordPress

Still have questions about managing orphan pages? Here are a few of the most common questions our readers ask.

Why are orphan pages bad for SEO?

Orphan pages are bad for SEO because search engines discover content by following internal links, and pages with no links pointing to them are much harder to find, crawl, and rank.

Without internal links, these pages receive no link equity from the rest of your site. This makes it difficult for them to compete in search results even if the content itself is well-written.

How often should I check for orphan pages?

You should check for orphan pages at least once every few months, or any time you make significant changes to your site structure, navigation, or content.

Sites that publish frequently or have recently gone through a redesign or migration should check more often, since these are the situations where orphan pages are most likely to appear.

Can I fix orphan pages without a plugin?

Yes, you can fix orphan pages without a plugin by manually reviewing your content and adding internal links through the WordPress editor, but this approach is time-consuming and easy to get wrong.

A tool like AIOSEO‘s Link Assistant speeds up the process significantly by automatically identifying orphaned content and suggesting relevant internal links for you.

Are orphan pages the same as dead-end pages?

No, they’re opposite problems. An orphan page has no internal links pointing to it, so visitors and search engines have no way in. A dead-end page is the reverse: other pages link to it, so people can reach it, but it has no internal links pointing out to anything else.

Both are internal linking problems, and both are worth fixing. On a dead-end page, the reader has nowhere to go next, and the link equity that flows in has nowhere to flow onward. Adding a few relevant outbound links solves it the same way reconnecting an orphan page does.

Do I need to fix every orphan page?

No, you don’t need to fix every orphan page on your site. Thin content, duplicate pages, and intentional orphans like PPC landing pages are better handled through removal, redirection, or noindexing rather than adding internal links to them.

Instead, focus your efforts on pages that have real traffic potential, existing backlinks, or strong revenue value.

What’s a good ratio of internal links per page?

There’s no single perfect number, but a good general rule is to include internal links wherever they genuinely help the reader find related content.

Most SEO experts suggest aiming for a handful of relevant internal links per post rather than stuffing in as many as possible. Too many links can dilute link equity and feel unnatural to readers.

Will orphan pages affect my AI search visibility?

Yes, orphan pages can affect your visibility in AI-powered search tools like ChatGPT, Perplexity, and Google’s AI Overviews.

These tools rely on well-indexed, well-connected content to surface accurate information, and pages that are cut off from your site structure often aren’t indexed in the first place, so these tools can’t surface them. Fixing orphan pages helps ensure your content is discoverable across both traditional and AI-driven search.

Next Steps to Improve Your WordPress SEO

You’ve now found your orphan pages with AIOSEO’s Link Assistant, reconnected the valuable ones with internal links, and redirected or removed the rest.

To keep building on that, explore our other SEO guides:

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Find and Fix Orphan Pages That Are Killing Your WordPress SEO first appeared on WPBeginner.



from WPBeginner https://ift.tt/sHYco65
via IFTTT