Migrating from Another SEO Plugin Without Losing Rankings

Rankings usually don’t drop because you switched WordPress SEO plugins — they drop because the switch was done out of order: two plugins active at once, or the old one deactivated before its data was copied over. This checklist keeps NexalSEO’s built-in Yoast/Rank Math importer in the right sequence.

migrate SEO plugin: outline of the sections covered on this page, Actually causes, Before touch, Switch itself, After switch
Migrate SEO plugin at a glance: the main sections of this page.

What actually causes rankings to slip during a migration

Three things, in order of how often they happen: running two SEO plugins at once, which usually means duplicate meta tags and duplicate XML sitemaps competing for the same URLs; deactivating the old plugin before its titles, descriptions and noindex flags are copied, which silently reverts pages to generic auto-generated titles; and losing manually-set 301 redirects that pointed old, since-removed URLs at their replacements. None of these are caused by switching plugins itself — they’re caused by skipping a step in the switch.

Before you touch anything: a 10-minute audit

List your highest-traffic pages

Pull your top 20–30 pages by organic traffic from Search Console or analytics. These are the pages you’ll spot-check after migrating, since they’re where a lost title tag or dropped noindex flag would do the most damage.

Note any manual redirects

If your current plugin manages 301 redirects, export or screenshot that list first. NexalSEO’s importer moves on-page SEO meta, not the old plugin’s redirect table, so those need to be re-created by hand in NexalSEO’s redirect manager afterward.

Leave the old plugin active for now

Don’t deactivate Yoast SEO or Rank Math yet — the importer reads its data directly from the database while it’s still installed. Deactivating early doesn’t delete that data, but it removes the point of doing an import first.

The switch itself

Install NexalSEO and run the setup wizard

Install NexalSEO from Plugins → Add New, activate it, and complete the setup wizard — it will detect that another SEO plugin is active and warn you before you go further. Full first-run walkthrough on the Getting Started page.

Run the built-in importer

On the NexalSEO dashboard, choose Yoast SEO or Rank Math as the source and run the import. It copies, per post and page: SEO title, meta description, focus keyword, Open Graph title/description/image, and the noindex/nofollow robots flags — plus the taxonomy-level equivalents of the same fields for your categories and tags.

Spot-check the pages from your traffic list

Open the top-traffic pages you listed earlier and confirm the title, meta description and any noindex setting carried over correctly. This is the check that catches an incomplete import before it goes live, not after.

Re-create your redirects

Add the manual 301s you noted in the audit step to NexalSEO’s redirect manager — it supports unlimited redirects with regex and CSV import, so a large redirect list can go in as one file instead of one row at a time.

Deactivate the old plugin

Only now, deactivate Yoast SEO or Rank Math. Running both simultaneously past this point is what produces duplicate meta tags and duplicate sitemaps — see the setup FAQ on the Getting Started page for why that specifically hurts rankings.

Resubmit your sitemap in Search Console

NexalSEO generates its own XML sitemap at a new URL. Submit it in Search Console alongside (not replacing, until Google has crawled it) the old plugin’s sitemap, so indexing doesn’t have a gap while the switch propagates.

After the switch: what to watch for two to four weeks

Check Search Console’s Coverage and Performance reports weekly for a month. A brief dip in impressions during the first few days as Google re-crawls updated meta tags is normal; a sustained drop in indexed pages, or a spike in “not indexed” errors, usually means a redirect or noindex flag didn’t carry over the way it was supposed to — go back to the affected URL and check its NexalSEO settings directly rather than waiting it out.

Not sure NexalSEO is the right destination?

See how the importer, redirect manager and free feature set compare against Yoast, Rank Math and All in One SEO on the NexalSEO vs other plugins page before you commit to the switch.

Start the migration

The Yoast/Rank Math importer and the redirect manager are both free, with no limit on pages or redirects.

Download NexalSEO free

Related guides

Duplicate schema explained

Keep one structured data source.

Redirects and 404 monitor

Carry redirects over.

NexalSEO vs Yoast SEO

Feature comparison.

Not sure which plugin to move to? Compare the main candidates before you export anything.

Finding and Fixing Orphaned Pages in WordPress

An orphan page isn’t just a page with no internal links — it’s a page with no internal link from another article in its own topic cluster. NexalSEO, the WordPress SEO plugin, flags exactly that distinction live in the editor. Here’s how to read the signal and reconnect what it finds.

orphaned pages: outline of the sections covered on this page, in same, Where check, Sweeping existing, At scale
Orphaned pages at a glance: the main sections of this page.

Why “in the same cluster” is the part that matters

A page can have internal links pointing at it from your footer, your sidebar, or a totally unrelated post, and still be orphaned in the sense that matters for ranking: nothing from its own topic sends it relevance. A generic sitewide link passes little value under Google’s Reasonable Surfer model — a user isn’t likely to click a footer link on their way to a specific product or guide. A link from the article right next to it in the same cluster is a different story, which is why NexalSEO’s internal-link check specifically counts links from pages that share the post’s category or cluster terms, not just any inbound link.

Where the check lives

The Cluster Health signal, in every post you edit

Open any post, page or product in the block editor and look for the Nexal SEO panel in the sidebar. Alongside Topical Completeness and Semantic Structure, Cluster Health reads the content you’ve written right now and reports one of three states: good (linked into its cluster with no issues), warn (linked, but with links leaking outside the cluster or generic anchor text), or bad — the orphan state, meaning no internal link to another article in the same cluster at all.

What it’s actually counting

Every internal link in the content is checked against three things: whether the target page shares a category or cluster term with the current page, whether the anchor text is a generic phrase like “click here” or “read more,” and whether an anchor is an exact match of the target’s focus keyword — which Reasonable Surfer research treats as a pattern real users click less, not more, since it reads as unnatural.

Sweeping an existing site, cluster by cluster

For a new post you’re about to publish, checking Cluster Health once before hitting Publish is enough. For an existing site with months or years of content, the practical way to clear a backlog is to work one cluster at a time rather than one post at a time:

Pick a category or topic cluster

Filter your Posts (or Products) list by category. Everything in that filtered list is one cluster for the purposes of this check.

Open each one and note the status

Open every post in the cluster in turn and check the Cluster Health badge. Bad and warn are both worth fixing — bad means zero relevant internal links, warn usually means the links exist but point partly outside the cluster or use lazy anchor text.

Add one contextual bridge link per orphan

Don’t add a link for the sake of clearing the flag. Find a sentence in the orphan page where a genuinely related article in the same cluster answers the next question a reader would have, and link it there with descriptive anchor text — the anchor itself should describe the destination, not just repeat the keyword.

Re-check the status

Reopen the post — the Cluster Health signal updates from the live content in the editor, so the badge should move from bad to good (or warn to good) as soon as the link is saved.

At scale: letting the linking happen automatically

Sweeping cluster by cluster works for sites with dozens of posts. On larger sites, the same anchor-quality problem this check flags — generic or repeated exact-match anchors — is what NexalSEO Pro’s Semantic Anchor Router rewrites automatically across every internal link on the site, so anchors stay varied and natural instead of drifting into over-optimization as content grows. It’s one of the internal-linking and semantic-authority automation modules covered on the Free vs Pro page. The Cluster Health signal itself, and the manual fix described above, are both fully free.

How this fits the bigger semantic-authority picture

Cluster Health is one of three local signals NexalSEO scores live in the editor — alongside Topical Completeness and Semantic Structure — that together estimate how well a page covers its topic the way modern ranking systems reason about it, rather than against a single keyword. See how all three fit together to build semantic authority, or review the full module list on Features.

Find your orphan pages

Cluster Health runs in the free plugin on unlimited posts, pages and products — no separate crawl or report to configure.

Download NexalSEO free

Related guides

Internal linking strategy explained

Silos, anchors and click depth.

Internal link suggestions

Orphan detection in NexalSEO.

How Google understands a website

Why discovery depends on links.

WooCommerce Product Schema: Brand, GTIN and Validation

NexalSEO is a WordPress SEO plugin, so most of the Product schema below is built for you the moment the WooCommerce module is on. This tutorial covers the two fields it can’t fill on its own — brand, GTIN/MPN — plus how to check the rest and validate the result.

WooCommerce product schema: outline of the sections covered on this page, Product result, This runs
WooCommerce product schema at a glance: the main sections of this page.

What a Product result actually needs

Google’s structured-data guidelines for Product markup ask for a handful of specific fields, not a generic description: price, availability, brand, a unique identifier (GTIN or MPN), and, where they exist, review data. Miss enough of them and Google can decline to show a rich result at all, no matter how well the page ranks. The steps below walk through each field in NexalSEO, in the order most stores are missing them.

Turn on the WooCommerce module

In wp-admin, go to Nexal SEO → Settings → Modules and enable WooCommerce if it isn’t already (it’s on by default whenever WooCommerce is active). This is what tells NexalSEO to attach Product nodes to your product pages instead of generic WebPage schema.

Let price, availability and reviews build themselves

Once the module is on, NexalSEO reads price and stock status straight from each WooCommerce product and pulls in up to five recent approved reviews as Review nodes automatically — there’s no field to fill in for these three. If a product is still flagged as incomplete later in this guide, check that it has a price set and at least one approved review, not a plugin setting.

Give every product a resolvable Brand entity

Google’s Product guidelines list brand alongside GTIN as a key identifier — without it, near-identical products from different manufacturers are harder to disambiguate. NexalSEO looks for a brand taxonomy term under any of these plugin conventions: product_brand, pwb-brand, pa_brand, yith_product_brand, or berocket_brand. If your store doesn’t use a brand plugin, add a pa_brand product attribute, assign it to every product, and NexalSEO will pick it up on the next page load — no re-save required.

Add a GTIN or fall back to MPN

On WooCommerce 9.2 and newer, NexalSEO reads the native “Global Unique ID” field on the product’s Inventory tab and outputs it as gtin. If a product has no GTIN, set an MPN instead — NexalSEO uses it as a fallback identifier so the product still qualifies for a unique-identifier check.

Run the WooCommerce SEO audit

Open Nexal SEO → WooCommerce SEO for the 5-card store audit. The Incomplete Product Schema card lists every product still missing price, availability or review data by name, and the Missing Brand Entity card does the same for brand. Fix the named products first — they’re the ones actively losing the rich result, not a background estimate. Full breakdown of all five cards on the WooCommerce SEO audit page.

Validate with Google’s Rich Results Test

Paste a product URL into Google’s Rich Results Test to confirm the Product node is valid and connected — NexalSEO outputs it as part of one @graph alongside your Organization and WebSite nodes, rather than a disconnected snippet. If a field still shows as missing there after steps 2–4, the audit cron may not have re-scanned that product yet; click “Rescan now” on the WooCommerce SEO screen to force it.

Why this runs as a connected graph, not per-page snippets

Every schema type NexalSEO outputs — Product, Organization, BreadcrumbList, and the rest — is written as one connected @graph per page instead of separate, disconnected JSON-LD blocks. That’s what lets a product’s Brand entity, its parent Organization, and its reviews all reference the same IDs instead of duplicating data three times. See the full list of the 21 supported types on the schema markup page.

Check your store’s schema now

The WooCommerce module, the 5-card audit, and the connected schema graph are all free, with no product limit. See what else is included on the Free vs Pro page.

Download NexalSEO free

Related guides

What is schema markup?

The complete structured data guide.

Why schema is not showing

Diagnose missing rich results.

WooCommerce SEO explained

The NexalSEO store audit.