How to Switch SEO Plugins Without Losing Rankings (Dry-Run First)
A guide to switching SEO plugins safely: a preflight checklist, imports that show every change before it lands, and a two week verification plan.
Switching SEO plugins sits on the same mental shelf as changing hosts. Everyone has a reason to do it, and almost everyone puts it off, because the downside, losing rankings, feels open-ended and invisible until it is too late.
The worry is reasonable, but the risk is not open-ended. It comes down to four specific things you can check, and a switch done with a preview-first import and a two-week verification window is among the safer changes you can make to a site. This guide sets out the whole procedure. It applies whatever you are moving to, though the worked examples use the WP Visibility importer.
What carries your rankings
Google takes no interest in which SEO plugin you run. What it ranks is what your pages output: your URLs, your content, the title tag and meta description in your HTML, your canonical and robots settings, your structured data, your redirects, and your sitemap. If those stay the same before and after the switch, there is nothing for your rankings to react to beyond a short burst of recrawling.
A safe switch therefore comes down to one habit. Know what your pages output today, change plugins, and check that the output still matches. Everything below serves that.
The four real risks
1. Meta loss. Your titles, descriptions, and canonicals live in your database under plugin-specific names (_yoast_wpseo_title, rank_math_description, and so on). A bad import can miss fields, or half-finish and overwrite good data.
2. Redirect loss. Redirect rules live wherever the old plugin kept them. If they are missed, every old URL starts returning a 404 on day one. This is a common way a plugin switch costs traffic, and it is the reason redirects get their own deliberate step below.
3. Structured data changes. The new plugin outputs different structured data. This is usually fine, because the structured data is equivalent in substance. Anything you built by hand needs a human to look at it.
4. The extra database tables. Yoast users worry that turning Yoast off will delete their SEO, because Yoast keeps some SEO data in extra tables it adds to your database. It will not. Yoast’s own documentation describes those tables as a layer over ordinary WordPress post metadata, built from your site’s database and kept in sync with WordPress’s native metadata fields, so Yoast can read SEO data quickly (Yoast’s spec). Your data is ordinary WordPress post data. It survives turning the plugin off, and any competent importer reads it directly.
One thing to check first: not every plugin ships an importer for every competitor, so confirm your destination can import from the plugin you use before you start.
Pre-flight checklist (do this no matter what you switch to)
- Full database backup. A backup you take now and know how to restore, rather than the host’s weekly snapshot.
- Crawl baseline. Crawl the site (Screaming Frog, Sitebulb, or similar) and export the title, meta description, canonical, and robots setting for every indexable URL. This file is your “before.” Twenty minutes now buys you certainty later.
- Search Console snapshot. Bookmark the Performance and Indexing reports in Google Search Console. Note the current indexed-page count and any existing issues, so you do not blame the switch for a problem you already had.
- Redirect inventory. Export the old plugin’s redirects to a CSV file now, and note the count. You will import them as a separate step after the switch, so keep this file safe.
- Structured data spot-check. Run your homepage, one post, and one product (if you sell anything) through a structured-data validator and save the results.
- Pick a sensible moment. Avoid the night before a product launch and the middle of your seasonal traffic peak; any ordinary week is fine. The point is that your two-week verification window should be two weeks when you can look at it.
How the WP Visibility importer works
The importer reads five sources: Yoast SEO, Rank Math, SEOPress, The SEO Framework, and AIOSEO. It detects which ones are present and shows what it found. Everything it brings over lands as standard WordPress post data. Three design choices do most of the work.
1. It previews before it writes
The import runs as a preview first. You get a before and after view, one row per post, showing each post’s title and description as they are now and as they would become, plus a count of how many posts would change. Your terms come across too, along with your site-level separator and your homepage title and description, and the preview shows those as well.
The preview writes nothing. When you have read it and you are satisfied, you run the import for real. That second run is a separate, deliberate step, and it is the one that writes to your database. The unnerving part of any switch, change you cannot see, becomes a reading exercise. If something would map wrong, you find out in the preview rather than in next month’s traffic report.
2. It never changes your old plugin’s data
The importer copies your old plugin’s meta, terms, and settings into the WP Visibility format. It does not delete or edit the source data. Your _yoast_wpseo_* values stay in the database untouched.
That makes rollback straightforward. Turn off WP Visibility, turn the old plugin back on, and the site is as it was. There is no point of no return in the process. Later, once you are confident, you can clean up the old data yourself if you want the rows gone. The importer leaves that decision to you.
3. It translates the formats
The fiddly part of a switch is formats, and this is where an importer earns its keep.
- Template syntax. Yoast’s
%%title%% %%sep%% %%sitename%%and Rank Math’s%title% %sep% %sitename%become WP Visibility’s{title} {sep} {site}variables. A variable that has no equivalent is removed during translation, and the preview shows you where, so a template never changes without your seeing it. - Robots settings. The source plugins each store robots settings differently. Yoast keeps one combined value, Rank Math keeps a packed list, The SEO Framework uses a separate field per rule, and SEOPress uses per-rule text. The importer maps each one to a clear per-rule setting. When the source means “inherit the site default,” it writes nothing, so you do not end up with thousands of posts carrying explicit robots settings they never had.
- Terms and settings. Yoast keeps all term SEO data in one big option rather than per term. The importer unpacks it into proper per-term storage. Site-level settings such as the separator, social defaults, and per-post-type noindex rules come across in the same preview.
Redirects are a separate step
This is the step people most often get wrong. The importer does not move your redirects. Redirects are not stored as post data, so they are not part of the meta-and-settings import above. You move them deliberately, as their own step:
- Export the old plugin’s redirects to a CSV file (you did this in the pre-flight checklist).
- Turn on the Redirects module in WP Visibility.
- Use the module’s CSV import to bring the redirects in.
Treat this as a step in its own right on switch day. Missing redirects is a common way a switch costs traffic, and the fix is this one deliberate import.
If you are comfortable on the command line
If you look after several sites, or prefer a terminal, the same import is scriptable:
wp visibility import yoast --dry-run # preview every change, writes nothing
wp visibility import yoast # run it (batched, with progress output)
wp visibility audit # a full site audit after the import
It is the same import, with the same preview and the same promise not to change your old plugin’s data, run once per site. Redirects still come in through the Redirects module’s CSV import, the same way. (If the per-site cost of your current plugin is part of why you are switching, we worked through the per-site cost math on the pricing page.)
After the switch: the verification list
Within the first hour:
- Spot-check the output against your crawl baseline. Pick ten representative URLs: your homepage, a post, a page, a category, and a product. View the source. The titles, descriptions, canonicals, and robots settings should match your “before” export. A second crawl compared against the baseline does this for the whole site in minutes.
- Check your redirects. After you run the CSV import into the Redirects module, request your top old URLs and watch them return a 301.
- Validate structured data on the same pages you saved before the switch. Expect the same structure rather than identical markup.
- Resubmit your sitemap in Search Console. The sitemap URL may have changed, and the resubmission also nudges Google to recrawl and pick up your output sooner.
Over the next two weeks:
- Watch the Indexing report every day or two. Some recrawl churn is normal, and pages moving in and out of “crawled, not indexed” for a few days is the system digesting the change. The one real failure sign is a sudden climb in “Excluded by noindex” on pages that should be indexable, which means a robots setting mapped wrong. The preview makes it unlikely, the verification makes it easy to catch, and the fix is a settings change.
- Watch the Performance report weekly rather than hourly. A clean switch produces no ranking story at all. If one page slips, compare its output with your baseline before you theorize about anything bigger.
Honest caveats
- Template translation is good but not perfect. Standard variables map cleanly. If you built templates around unusual or plugin-specific variables, the preview shows them to you, and that part of the preview repays a careful read.
- Custom structured data needs a human. Standard types (Article, Product, breadcrumbs, Organization) map on their own. Structured data you wrote by hand, and Rank Math’s custom schema-builder templates, should be reviewed by a person. The preview shows you which posts carry them.
- Analysis scores do not transfer, and that is by design. Yoast’s traffic lights and Rank Math’s score out of 100 come from their own analyzers. They are not part of your content, so nothing about your content is lost when they go. The WP Visibility editor runs its own checks the first time you open a post.
- Two weeks of attention is part of the plan. Problems are unlikely; the checking is what makes “we did not lose rankings” a matter of record rather than a hope.
The pattern in all of this: the risk of switching was never rankings themselves. It was change you could not see. A preview before anything is written, an old plugin left untouched, and a crawl to compare against turn every change into something you can read before it happens.
If you are still choosing a destination, our comparison hub puts WP Visibility next to Yoast, Rank Math, SEOPress, and The SEO Framework, feature by feature, with sources.
WP Visibility is $99 a year for unlimited sites, with your client sites included, and the preview-first importer is part of every license. You can see the details on the pricing page.
If you are not ready to switch, you can run your site through the free AI visibility scanner first. It grades how visible your site is to AI search in about a minute, so you know where you stand before you change anything.