You opened Google Search Console and saw a warning about duplicate metadata. You checked your page source and found two title tags, two meta descriptions, two canonical URLs, and two JSON-LD schema blocks on every page. The reason is sitting in your Plugins menu: Yoast SEO and Rank Math (or AIOSEO) are both active. WordPress let you install both, and both are now competing to control the same output. Here is exactly what breaks, how to diagnose which plugin is responsible for each duplicate, and the order of operations for migrating to a single plugin without losing your rankings.
Running two SEO plugins on WordPress is a configuration problem disguised as a feature choice. Both plugins hook into wp_head to output title tags, meta descriptions, canonical URLs, Open Graph tags, schema markup, and XML sitemaps. Neither plugin checks whether another plugin has already output those tags. They just inject their own version, and Google has to guess which instruction you meant. Guessing rarely favors you. For a broader look at which plugin you should settle on, our honest comparison of the best SEO plugins for WordPress breaks down the tradeoffs by use case.
What Breaks When Two SEO Plugins Run Together

Five specific conflicts appear the moment two SEO plugins are active simultaneously. Each one sends contradictory signals to search engines, and each one has a different level of damage. Here is what happens and why it matters.
Duplicate Meta Tags: Titles and Descriptions
Both Yoast and Rank Math (or AIOSEO) hook into wp_head and output their own title tag and meta description. The result is two of each in your page source. Browsers render the first tag and ignore the second, but crawlers see both. If the two tags contain different text, Google has to pick one. The one it picks may not be the one you carefully wrote.
This is the most visible symptom and the one Google Search Console flags first. Open any page, right-click, select View Page Source (Ctrl+U), and search for <title>. If you see two title tags, you have confirmed the conflict. Do the same for name="description". Two meta description tags means both plugins are outputting independently.
Verify with curl from the terminal:
curl -s https://yoursite.com/ | grep -c '<title' curl -s https://yoursite.com/ | grep -c 'name="description"'
Both commands should return 1. If either returns 2, you have duplicate meta tags from competing plugins. The fix is not to adjust settings in both plugins. The fix is to run one plugin. For a systematic approach to checking your rendered HTML, our Yoast SEO checker audit guide walks through every tag you need to verify in view-source.
Conflicting Canonical URLs
Conflicting canonicals are more damaging than duplicate meta tags. If one plugin outputs a self-referencing canonical pointing to the current page URL while the other points to a different URL, you are sending contradictory consolidation instructions. Search engines resolve this on their own, sometimes by indexing the wrong URL and dropping the one you wanted ranked.
The conflict happens because each plugin builds canonical URLs from its own logic. Yoast and Rank Math may handle trailing slashes, URL parameters, or paginated archives differently. One might canonicalize /blog/post-name/ while the other outputs /blog/post-name. To Google, those are different URLs. One gets indexed, one gets discarded, and you do not control which.
Check for conflicting canonicals in view-source. Search for rel="canonical". If you see two canonical link tags with different href values, both plugins are fighting over canonicalization. Verify what Google actually selected by using the URL Inspection tool in Google Search Console. Enter your URL, scroll to “Google-selected canonical.” If Google selected a different URL than the one you intended, the conflict already cost you.
Two XML Sitemaps
Both Yoast and Rank Math generate XML sitemaps. If both plugins are active, your site serves two sitemap index files at the same URL path or at slightly different paths. Google crawls both, finds overlapping URL lists, and may flag duplicate sitemap submissions in Search Console. Worse, the two sitemaps may disagree about which URLs to include, sending mixed crawl signals.
Yoast generates its sitemap at yoursite.com/sitemap_index.xml. Rank Math also generates at yoursite.com/sitemap_index.xml. When both are active, one plugin’s rewrite rules win and the other’s sitemap may silently fail or produce empty output. AIOSEO uses yoursite.com/sitemap.xml as its default path, which means it can coexist at a different URL but still creates a second sitemap Google discovers through your robots.txt or previous GSC submissions.
WordPress core also ships a basic sitemap at yoursite.com/wp-sitemap.xml since version 5.5. So a site with two SEO plugins active could be serving three sitemaps. Check all three:
curl -s -o /dev/null -w "%{http_code}" https://yoursite.com/sitemap_index.xml
curl -s -o /dev/null -w "%{http_code}" https://yoursite.com/sitemap.xml
curl -s -o /dev/null -w "%{http_code}" https://yoursite.com/wp-sitemap.xml
Any response of 200 means a sitemap is live at that URL. Only one should return 200 after you settle on a single plugin. The others should 404 or be disabled in their respective plugin settings.
Schema Output Collisions
Schema markup collisions are the most technically complex conflict and the hardest to spot. Both Yoast and Rank Math generate JSON-LD structured data for Organization, WebSite, Article, and BreadcrumbList. When both are active, your page source contains multiple application/ld+json script blocks with overlapping entity definitions but different @id values.
The specific problem is entity identifier mismatch. Yoast and Rank Math each generate their Organization entity using different base URL logic and trailing-slash conventions, which results in two distinct @id values for the same business. The slash placement difference creates two distinct entity identifiers for the same business. Google’s Knowledge Graph parser treats these as separate entities. Your rich result eligibility can drop because the parser encounters contradictory statements about the same entity, and it errs on the side of not displaying either.
Check for schema collisions in view-source. Search for application/ld+json. Count the script blocks. If you see multiple blocks from different plugins declaring the same @type (two Organization blocks, two Article blocks), you have a collision. Paste your URL into Google’s Rich Results Test at search.google.com/test/rich-results to see what Google detects. If the tool reports duplicate or conflicting structured data, the collision is already affecting your rich result eligibility.
Themes can add a third layer of schema conflict. Some theme frameworks output their own SEO meta and microdata in addition to what the plugins produce. If your theme has built-in SEO output, you now have a three-way conflict. Check your theme settings for an option to disable built-in SEO or schema output, and let a single plugin handle all structured data.
Open Graph and Twitter Card Duplication
Both plugins output Open Graph (og:) and Twitter Card (twitter:) meta tags for social sharing. When both are active, your page source contains duplicate og:title, og:description, og:url, and og:image tags. Social platforms like Facebook and LinkedIn typically read the first set and ignore the second, but the behavior is not guaranteed. If the two plugins output different Open Graph images or titles, the social preview may show the wrong one.
Check in view-source by searching for og:title. If you see two instances, both plugins are outputting Open Graph tags. This is lower priority than canonical or schema conflicts, but it still creates unnecessary noise in your HTML and can cause inconsistent social previews.
How to Diagnose Which Plugin Is Outputting What

Before you migrate, you need to know exactly what each plugin is outputting so you can verify the migration preserved your settings. The fastest way is the Health Check and Troubleshooting plugin, which lets you disable plugins one at a time without affecting your live site.
Install the Health Check and Troubleshooting plugin from Plugins, Add New in your WordPress dashboard. Go to Tools, Site Health, Troubleshooting, and click Enable Troubleshooting Mode. This deactivates all plugins and switches to a default theme for your admin session only. Visitors see your normal site. Then enable one SEO plugin at a time and check the page source after each activation.
Here is the diagnostic checklist. Run through it for each plugin to build a before-and-after picture of what each one outputs:
| What to Check | How to Check | Expected (Single Plugin) |
|---|---|---|
| Title tag | View-source, search <title> | Exactly one tag |
| Meta description | View-source, search name=”description” | Exactly one tag |
| Canonical URL | View-source, search rel=”canonical” | One link tag, points to correct URL |
| Open Graph tags | View-source, search og:title | One set of og: tags |
| Schema markup | View-source, search application/ld+json | One JSON-LD block per entity type |
| XML sitemap | curl yoursite.com/sitemap_index.xml | One sitemap index, valid XML |
| robots.txt | Open yoursite.com/robots.txt | One Sitemap directive |
Record what you find with both plugins active, then deactivate one and recheck. The tags that disappear came from the deactivated plugin. The tags that remain came from the active one. This tells you which plugin currently “wins” each output type, which is not always the one you expect.
Safe Migration: The Order of Operations
The migration process is straightforward if you follow the steps in order. The most common mistake is deleting the old plugin before confirming the import succeeded. That mistake loses your meta titles, descriptions, focus keywords, and redirect rules. Here is the exact sequence, assuming you are migrating from Yoast to Rank Math. The process is the same in reverse, with Rank Math and AIOSEO both offering importers for each other’s data.
Step 1: Back Up Your Site Completely

Before touching anything, create a full backup of your database and files. Your SEO metadata lives in the WordPress database, in post meta tables and plugin-specific options tables. If the import fails or corrupts data, you need to restore from backup. Do not skip this step even if the migration “always works.” Use your hosting provider’s backup tool, a plugin like UpdraftPlus, or WP-CLI:
wp db export backup-pre-migration.sql
Step 2: Install the New Plugin Alongside the Old One
Install and activate Rank Math (or your chosen destination plugin) while Yoast is still active. Both plugins will be running simultaneously, which means the duplicate output problems described above will appear temporarily. That is expected during migration. You will resolve it in Step 6 by deactivating the old plugin.
If you are migrating to Rank Math, the free tier includes the importer. Our Rank Math review covers what the free tier includes and where it stops, so you know whether you need the Pro plan before you start.
Step 3: Run the Import
Rank Math’s Setup Wizard includes a built-in Yoast importer that pulls across meta titles, meta descriptions, focus keywords, and redirect rules. If you skipped the Setup Wizard, go to Rank Math SEO, Status and Tools, Import and Export, and find the “Other Plugins” section. Select the Yoast SEO tab, choose all data types, and click Import.
The import transfers the following data:
- Meta titles and descriptions for posts, pages, and custom post types
- Focus keywords (Yoast allows 1 on free, Rank Math allows 5 on free)
- Redirect rules (301, 302, 307)
- Open Graph and social meta
- Robots meta (noindex, nofollow) settings per post
What does not transfer cleanly: custom schema configurations and per-post schema overrides. If you built custom schema markup in Yoast, review those posts manually after import and reconfigure the schema in Rank Math’s schema generator.
Step 4: Convert Yoast Gutenberg Blocks
This is the step that catches people off guard. If you used Yoast’s FAQ or How-To Gutenberg blocks in any posts, those blocks use Yoast’s proprietary block markup, not a shared WordPress standard. Rank Math cannot read them natively. If you deactivate Yoast without converting, those blocks either disappear or display as broken markup on the live site.
Rank Math includes a Yoast Block Converter. Go to Rank Math SEO, Status and Tools, Database Tools, and look for “Yoast Block Converter.” Click “Convert Blocks.” The conversion is irreversible, so confirm only after your backup is in place. This converts all Yoast FAQ and How-To blocks to Rank Math equivalents in one pass.
If you only have a few blocks, you can also convert them individually. Open the post in the WordPress editor, highlight the Yoast block, click the transform button (the first icon above the block), and select “FAQ By Rank Math” or “HowTo By Rank Math.” The block converts instantly.
Step 5: Spot-Check Your Top 20 Pages
Before deactivating the old plugin, verify the import worked. Open your top 20 pages by traffic in the WordPress editor and check the Rank Math sidebar. Confirm the meta title, meta description, and focus keyword are populated and match what Yoast had. Then check the rendered HTML on 3 to 5 key pages using view-source:
- One title tag per page, matching your intended title
- One meta description, 120 to 155 characters
- One canonical URL pointing to the correct page
- One JSON-LD schema block (no duplicates from both plugins)
- One sitemap at the expected URL
Step 6: Deactivate the Old Plugin
Only after you have confirmed the import is complete and the rendered HTML looks correct, deactivate Yoast. Do not delete it yet. Deactivating stops the duplicate output immediately while keeping the plugin’s data in your database as a safety net.
Check your page source again after deactivation. The duplicate meta tags, canonicals, and schema blocks should be gone. If they are not, your theme may be outputting its own SEO tags. Check your theme settings for a built-in SEO module and disable it.
Step 7: Update Google Search Console
After deactivating the old plugin, submit the correct sitemap to Google Search Console. Go to Search Console, Sitemaps, and enter the sitemap URL for your active plugin. Remove any previously submitted sitemap URLs that belong to the deactivated plugin. This prevents Google from trying to crawl a sitemap that no longer exists.
Check the Coverage report in Search Console for any new errors that appear after the migration. A spike in “Duplicate without user-selected canonical” warnings means Google is still seeing conflicting canonical signals. Recheck your page source to confirm only one canonical tag remains.
Step 8: Delete the Old Plugin
Wait one to two weeks after deactivation before deleting the old plugin. This gives you a rollback window if you discover a problem. If everything looks stable in Search Console after two weeks, delete the old plugin from your WordPress dashboard. If you need to be thorough, you can also clean up the old plugin’s database tables, though leaving them does no harm.
If you are migrating from Rank Math to Yoast instead, the process is the same in reverse. Yoast’s import tool is under SEO, Tools, Import and Export. It imports from Rank Math, AIOSEO, and other plugins. The same rule applies: import first, verify, then deactivate.
Post-Migration Verification Checklist
Run this checklist 48 hours after completing the migration. Each item confirms one output type is clean and controlled by a single plugin. If any item fails, the migration left a conflict that needs fixing.
| Check | Method | Pass Condition |
|---|---|---|
| One title tag | curl -s URL | grep -c ‘<title’ | Returns 1 |
| One meta description | curl -s URL | grep -c ‘name=”description”‘ | Returns 1 |
| One canonical | curl -s URL | grep -c ‘rel=”canonical”‘ | Returns 1 |
| One JSON-LD block per type | View-source, count application/ld+json blocks | No duplicate @type declarations |
| One sitemap returns 200 | curl sitemap_index.xml and sitemap.xml | Only the active plugin’s sitemap is live |
| GSC shows no new errors | Search Console, Coverage and Sitemaps reports | No spike in duplicate or error counts |
| Rich Results Test passes | Paste URL in search.google.com/test/rich-results | No duplicate schema warnings |
| Homepage canonical correct | GSC URL Inspection, Google-selected canonical | Matches your declared canonical |
If all items pass, the migration is complete. Your rankings should not change from the switch itself. Both plugins generate the same fundamental HTML output for search engines (title tags, meta descriptions, canonicals, schema). Google does not care which plugin produced the tags. What matters is that the tags are correct and singular. For more on what SEO plugins can and cannot do for your site, our guide on what automatic SEO on WordPress actually does separates the tasks plugins handle from the ones that require human work.
Will Switching SEO Plugins Affect Your Rankings?
No, provided you follow the order of operations above. The migration preserves your meta data, and Google re-crawls your pages within days to pick up the identical tags from the new plugin. What does affect rankings is leaving two plugins active. Duplicate canonicals, conflicting schema, and double sitemaps send mixed signals that can cause indexing drops, lost rich results, and canonical resolution errors that take weeks to fix in Search Console.
The risk is not in the switch. The risk is in the overlap. Every day both plugins run together, Google sees contradictory instructions. Migrate promptly once you have decided, follow the steps in order, and verify the output in the rendered HTML, not just the plugin dashboard.
Stop Running Two SEO Plugins and Start Publishing
Fixing your SEO plugin conflict is step one. Step two is the problem that actually limits your traffic: content production. Once you have a single SEO plugin handling your technical foundation, the next bottleneck is publishing enough content to rank. That is where ClearPost comes in. ClearPost researches keywords from live SERP data, drafts full blog posts with proper heading structure and internal links, fills your SEO plugin’s fields automatically, and delivers each post to an approval queue. You review every post before it goes live. No auto-publishing, no unreviewed drafts on your live site.
Try ClearPost free for 7 days. AI does the heavy lifting, you approve every post before it goes live. No long onboarding, no agency overhead, cancel anytime. See what 30 SEO-optimized posts a month looks like compared to the 4 you are getting now.
Frequently Asked Questions
Can I run Yoast and Rank Math together on the same WordPress site?
No. Both plugins hook into wp_head and output competing title tags, meta descriptions, canonical URLs, schema markup, and XML sitemaps. Running both creates duplicate output that confuses search engines and can cause indexing drops, lost rich results, and canonical resolution errors. Pick one plugin and migrate your settings to it.
How do I migrate from Yoast to Rank Math without losing SEO data?
Install Rank Math alongside Yoast, run Rank Math’s Setup Wizard importer to transfer meta titles, descriptions, focus keywords, and redirects, convert any Yoast FAQ or How-To Gutenberg blocks using Rank Math’s Block Converter, spot-check your top pages in view-source, then deactivate Yoast. Wait one to two weeks before deleting Yoast to keep a rollback window.
Will switching SEO plugins affect my Google rankings?
No, if the migration preserves your meta data correctly. Both plugins output the same fundamental HTML tags for search engines. Google does not care which plugin produced the tags. What affects rankings is leaving two plugins active, which sends contradictory signals. Migrate promptly and verify the rendered HTML after the switch.
How do I fix duplicate meta tags in WordPress?
The most common cause is two SEO plugins active at the same time. Deactivate one plugin and check view-source to confirm only one title tag and one meta description remain. If duplicates persist after deactivating one plugin, your theme may be outputting its own SEO tags. Check your theme settings for a built-in SEO module and disable it.
Frequently Asked Questions
Can I run Yoast and Rank Math together on the same WordPress site?
No. Both plugins hook into wp_head and output competing title tags, meta descriptions, canonical URLs, schema markup, and XML sitemaps. Running both creates duplicate output that confuses search engines and can cause indexing drops, lost rich results, and canonical resolution errors. Pick one plugin and migrate your settings to it.
How do I migrate from Yoast to Rank Math without losing SEO data?
Install Rank Math alongside Yoast, run Rank Math’s Setup Wizard importer to transfer meta titles, descriptions, focus keywords, and redirects, convert any Yoast FAQ or How-To Gutenberg blocks using Rank Math’s Block Converter, spot-check your top pages in view-source, then deactivate Yoast. Wait one to two weeks before deleting Yoast to keep a rollback window.
Will switching SEO plugins affect my Google rankings?
No, if the migration preserves your meta data correctly. Both plugins output the same fundamental HTML tags for search engines. Google does not care which plugin produced the tags. What affects rankings is leaving two plugins active, which sends contradictory signals. Migrate promptly and verify the rendered HTML after the switch.
How do I fix duplicate meta tags in WordPress?
The most common cause is two SEO plugins active at the same time. Deactivate one plugin and check view-source to confirm only one title tag and one meta description remain. If duplicates persist after deactivating one plugin, your theme may be outputting its own SEO tags. Check your theme settings for a built-in SEO module and disable it.
