Best SEO plugin for WordPress: how to choose one and set it up
Every popular WordPress SEO plugin promises better rankings, but what they actually do is fairly similar: they write the title, meta description, canonical and robots tags into each page, publish an XML sitemap, add structured data and give you controls for archives. None of them can rank a thin page, and the wrong set-up can hide good pages or print every tag twice. This guide compares Yoast SEO, Rank Math and All in One SEO on what they change in your HTML, helps you pick one for a business site or a blog, walks through the settings that matter, and shows how to check from the command line that only one plugin is in charge of your SEO output.
- What a WordPress SEO plugin actually changes
- Yoast SEO vs Rank Math vs All in One SEO
- Why running two SEO plugins breaks things
- The settings that matter after installing
- Themes, builders, WooCommerce and multilingual sites
- A worked example: two plugins on one site
- The fix, step by step
- Edge cases worth knowing
- Keeping your SEO plugin set up correctly
- Questions and answers
What a WordPress SEO plugin actually changes
Strip away the dashboards and scores, and an SEO plugin changes a small number of things in the HTML Google receives. Knowing the list makes the choice much easier, because it shows that the plugins compete on convenience and extras, not on ranking power.
- The title tag and meta description for every post, page, product and archive, from templates you set once and override per page.
- The canonical tag, which tells Google which address is the main version of a page.
- The robots meta tag, so you can set whole content types or single pages to
noindex. - An XML sitemap index, which replaces the WordPress core
/wp-sitemap.xml. - Structured data as a JSON-LD graph describing the site, the business or person behind it, the page and, for posts, the article and author.
- Open Graph and social tags for link previews, and breadcrumbs if your theme supports them.
The on-page analysis, the traffic-light scores and the focus keyword box are writing aids. They are useful prompts for beginners, but Google never sees them, and a green light is not a ranking signal. Plenty of pages with an orange score rank well because they answer the search better than anything else.
Yoast SEO vs Rank Math vs All in One SEO
All three have free versions that cover the core output listed above. The differences are in what is free, how much structured data control you get and how the interface is organised. Plugin features change between versions, so treat this as a guide and check the current feature list before you commit.
| Feature | Yoast SEO | Rank Math | All in One SEO |
|---|---|---|---|
| Titles, descriptions, canonicals, robots | Free | Free | Free |
| Sitemap index address | /sitemap_index.xml | /sitemap_index.xml | /sitemap.xml |
| Structured data | Automatic graph, limited per-page choice | Per-page schema types and templates | Per-page schema types |
| Redirect manager | Paid version | Included free | Paid version |
| Set-up wizard and importers | Yes | Yes, imports from other plugins | Yes, imports from other plugins |
| Feel | Conservative, few settings | Many modules and options | Guided, dashboard-led |
Which one to choose
- Small business site or new blog: Yoast SEO or All in One SEO. Fewer decisions, sensible defaults, and the free version is enough.
- You want redirects and schema control without paying: Rank Math, but switch off the modules you do not need so the admin stays manageable.
- You want something very light: lighter plugins such as The SEO Framework output the same core tags with almost no interface, which suits developers.
- The site already runs one and ranks: keep it. Switching gains little and risks losing titles and descriptions if the import misses something.
Why running two SEO plugins breaks things
The most common plugin problem is not a bad choice, it is two choices at once. A site moves from one plugin to another and the old one stays active, or a theme or page builder bundles its own SEO module. The result is two sets of everything in the head of the page:
- Two
<title>tags or two meta descriptions, and Google picks one, not always the one you wrote. - Two JSON-LD graphs describing the same page in different ways, which confuses rich result eligibility. See plugin schema conflicts.
- Two sitemaps submitted in Search Console, one of which may include pages you set to
noindexin the other. - Conflicting canonical or robots tags, where one plugin says
indexand the other saysnoindex. Google treatsnoindexas the stronger instruction.
Check for it with one command per page type. Each count below should be exactly 1:
URL=https://example.com/sample-post/
curl -s "$URL" | grep -o '<title' | wc -l
curl -s "$URL" | grep -o 'name="description"' | wc -l
curl -s "$URL" | grep -o 'rel="canonical"' | wc -l
curl -s "$URL" | grep -oE 'yoast-schema-graph|rank-math-schema|aioseo-schema'
The last line shows which plugin's structured data is on the page. More than one name means two plugins are writing schema. On the server, wp plugin list --status=active lists every active plugin so you can see the culprit.
The settings that matter after installing
Whichever plugin you choose, the set-up wizard covers most of this, but check each item by hand afterwards:
- Site representation. Say whether the site represents a business or a person, and add the name and logo. This feeds the structured data on every page.
- Search appearance per content type. Posts, pages, products and categories should normally be shown in search. Tags, date archives, format archives and, for a one-author blog, author archives are usually better set to
noindex. See how to noindex a page. - Attachment pages. Make sure they redirect to the file or parent post rather than existing as thin pages.
- Title templates. A good default for posts is the post title, a separator and the site name. Keep the site name short so the important words stay visible.
- Sitemap. Confirm the index loads, lists only the content types you want indexed, and submit it in Search Console. The WordPress sitemap index guide covers 404s and blank sitemaps.
- Modules you do not need. In plugins with many modules, switch off the ones you will not use, such as local SEO or analytics, to keep the admin and page output lean.
Switching from one plugin to another
Before you switch, record what you have. Titles and descriptions are stored in post meta or the plugin's own tables, so count them first:
wp db query "SELECT meta_key, COUNT(*) FROM wp_postmeta
WHERE meta_key IN ('_yoast_wpseo_title','_yoast_wpseo_metadesc','rank_math_title','rank_math_description')
GROUP BY meta_key"
Replace wp_ with your table prefix if it differs. Run the new plugin's importer, compare a sample of pages before and after with the curl checks above, then deactivate the old plugin. Keep it installed but inactive for a few weeks in case you need to import again.
Themes, builders, WooCommerce and multilingual sites
- Themes with built-in SEO options. Some themes add their own title and description fields. Turn them off if your plugin handles the same output, then run the duplicate check.
- Page builders. Builders generally leave the head to your SEO plugin, but their content analysis integration varies. If the plugin's score cannot see your text, the analysis is wrong, not the page. Judge from the rendered HTML.
- WooCommerce. Product structured data comes from WooCommerce itself and from your SEO plugin, and the two are usually merged. Check a product page with the Schema Markup Validator for one Product item, not two. The WooCommerce crawl guide covers filters and pagination.
- Multilingual plugins. Translation plugins need to tell the SEO plugin about each language so titles, sitemaps and hreflang are written per language. Use a combination both vendors document as compatible. See hreflang in WordPress.
- Caching and CDNs. After changing plugin settings, purge the page cache. Otherwise visitors and Googlebot can keep receiving the old tags for days.
A worked example: two plugins on one site
Example Bakery switched from All in One SEO to Rank Math to use its free redirect manager. The import ran, but the old plugin stayed active. Two months later Search Console showed product pages listed as Duplicate, Google chose different canonical than user, and some search snippets showed old descriptions.
The duplicate check on a product page returned two description tags, and the schema line returned both rank-math-schema and aioseo-schema. Search Console had two sitemaps submitted: /sitemap.xml from the old plugin and /sitemap_index.xml from the new one. The old sitemap still listed tag archives that the new plugin had set to noindex.
The fix was to compare twenty pages to confirm the import was complete, deactivate All in One SEO, purge the cache, remove the old sitemap from Search Console and resubmit the new index. Every count in the check returned 1, and within a month the canonical warnings had cleared as Google recrawled the pages.
The fix, step by step
Step 1
List what is already active
Run wp plugin list --status=active or open the Plugins screen, and note every plugin that writes SEO tags, including theme or page builder SEO modules. Then fetch a post with curl and count the title, description and canonical tags, and look for the schema class names of each plugin. This baseline shows whether you are installing a first plugin or replacing one, and whether duplicates already exist. Save the output so you can compare it afterwards.
Step 2
Choose one plugin for the site
Pick the plugin that matches what you will use. For a small business site or new blog, Yoast SEO or All in One SEO with default settings is enough. If you want redirects and per-page schema types without paying, Rank Math suits you. If a plugin is already configured and the site ranks, keep it. Write down the reason for the choice so the decision is not reopened every time a new comparison appears.
Step 3
Install it and run the wizard
Install and activate the plugin, then work through its set-up wizard. Say whether the site represents a business or a person, add the name and a square logo, and choose which content types appear in search. If the wizard offers to import from another SEO plugin, accept it. Confirm afterwards by viewing a page source and checking that the plugin's tags and its structured data graph now appear in the head.
Step 4
Set search appearance per content type
Open the plugin's search appearance or titles settings. Keep posts, pages, products and categories indexed. Set tag archives, date archives and, on single-author blogs, author archives to noindex, and make attachment pages redirect. Set a title template such as post title, separator and site name. Confirm by fetching a tag archive with curl and checking that its robots meta tag now contains noindex, while a post still has none.
Step 5
Deactivate any second SEO plugin
If another SEO plugin or a theme SEO module is active, compare twenty pages to confirm the import carried over titles and descriptions, then deactivate the old one and turn off the theme option. Keep the old plugin installed but inactive for a few weeks. Purge your page cache and CDN cache. Rerun the tag count on the same pages and confirm every count is exactly one.
Step 6
Check the structured data
Paste a post, a page and, if you sell online, a product page into the Schema Markup Validator or the Rich Results Test. Check that there is one graph with one main entity for the page, such as one Article or one Product, and that the business name and logo are correct. If two graphs appear, a second plugin or the theme is still adding schema and needs turning off.
Step 7
Submit the sitemap index
Open the plugin's sitemap index in a browser, for example /sitemap_index.xml, and check it lists the content types you want indexed and none you set to noindex. In Search Console, open Sitemaps, submit that address and remove any sitemap left behind by an old plugin or by core WordPress. Confirm the status reads Success and the discovered count roughly matches your published posts and pages.
Step 8
Write titles for your key pages
With the templates in place, open the homepage, main service or product pages and top posts, and write a custom SEO title and description for each in the plugin panel. Lead with the search phrase, keep titles near 55 characters and descriptions near 155. Ignore the score if the text reads well. Confirm by fetching each page with curl and reading the new values in the HTML.
Step 9
Recheck after updates
Add a short check to your maintenance routine. After any plugin, theme or page builder update, rerun the tag count and schema class check on a post, a page and a product. Once a month, read the reasons in the Search Console Pages report for pages that are not indexed. A sudden rise in pages excluded by noindex usually means a plugin setting changed and needs reversing.
Edge cases worth knowing
- The plugin's score disagrees with Google. Readability and keyword scores are rules of thumb. Do not stuff a phrase into a page to turn a light green; write for the reader and judge by impressions and clicks.
- Google ignores your meta description. Google rewrites many snippets based on the search. That is normal and not a plugin fault. See Yoast or Rank Math description not working.
- Sitemap returns 404 after installing. Save Settings, Permalinks once to rebuild the rewrite rules, then check that a caching or security plugin is not blocking the address.
- Plugin errors in the editor. If the plugin panel will not load or saving fails, the cause is usually the REST API being blocked. The Yoast SEO errors guide covers the fixes, which apply to the other plugins too.
- Headless WordPress. If your front end is built in a separate framework, the plugin's tags are not printed automatically. You fetch them through its API and render them yourself.
Keeping your SEO plugin set up correctly
Plugin updates occasionally change defaults or add modules, and new plugins can bring their own SEO features. Once you have one plugin configured:
- Run the duplicate tag check on a post, a page and a product after major plugin, theme or builder updates.
- Review the sitemap index every few months to confirm it still lists only the content you want indexed.
- Keep the plugin updated, but read the changelog for changes to schema or sitemap output before updating a busy shop.
- Read the reasons in the Search Console Pages report monthly, so a wrong
noindexsetting is spotted within weeks, not months.
For the wider picture, the WordPress SEO guide covers the settings, content and speed changes that the plugin cannot make for you.
1. What is the best SEO plugin for WordPress?
There is no single best plugin; Yoast SEO, Rank Math and All in One SEO all produce the same core output of titles, descriptions, canonicals, robots tags, sitemaps and structured data. Yoast and All in One SEO suit beginners who want few decisions. Rank Math suits people who want a free redirect manager and per-page schema types. If your site already runs one of them and ranks, the best plugin is the one you have. The settings you choose matter far more than the brand of plugin.
2. Is Rank Math better than Yoast?
Rank Math is not better for rankings, but it includes more features in its free version, such as redirects and per-page schema type selection. Yoast has fewer settings and a more conservative approach, which many beginners find easier. Both write the same essential tags that Google reads. Choose Rank Math if you will use its extra modules and are happy to switch off the ones you do not need. Choose Yoast if you want sensible defaults and a quieter admin area.
3. Can I use two SEO plugins at the same time?
No, you should run only one SEO plugin at a time. Two plugins usually print duplicate title tags, meta descriptions, canonicals and structured data graphs, and can submit two different sitemaps. Google then has to choose between conflicting signals, and a noindex from either plugin wins. If you are switching, import the data into the new plugin, compare a sample of pages, then deactivate the old one. Also check your theme and page builder do not add their own SEO tags alongside the plugin.
4. Do SEO plugins improve rankings on their own?
No, installing an SEO plugin does not improve rankings by itself. It gives you control over the tags Google reads and tidies up sitemaps and archives, which removes technical obstacles. Rankings come from content that answers the search well, from links and from a site that is fast and easy to crawl. The plugin helps you present good pages properly. It cannot make a thin or duplicated page rank, and its green scores are writing aids that Google never sees.
5. Do I need the paid version of an SEO plugin?
Most small business sites and blogs do not need the paid version. The free versions of Yoast SEO, Rank Math and All in One SEO already cover titles, descriptions, canonicals, robots settings, sitemaps and basic structured data. Paid versions add conveniences such as redirect managers, internal linking suggestions, extra schema types and support. Consider paying if you need one of those features and would otherwise add a separate plugin for it, or if you want vendor support for a business site.
6. How do I switch from Yoast to Rank Math without losing SEO?
Install Rank Math and use its set-up wizard to import your Yoast titles, descriptions and settings before deactivating Yoast. Then fetch twenty or so pages and compare their titles, descriptions, canonicals and robots tags with the values you had before. Once they match, deactivate Yoast, purge the cache, submit the new sitemap index and remove the old one from Search Console if the address changed. Keep Yoast installed but inactive for a few weeks so you can import again if something was missed.
7. Does an SEO plugin slow down WordPress?
A well-configured SEO plugin adds very little to page load time for visitors, because most of its work happens in the admin area and its front-end output is a few tags in the head. Slowdowns usually come from switching on many modules you do not use, from analysis running in the editor on very long posts, or from conflicts with other plugins. Turn off unused modules, keep page caching enabled, and measure with PageSpeed Insights before and after installing.
The Site Audit reads the HTML of every page and flags duplicate titles, duplicate descriptions, conflicting canonicals and stray noindex tags, so you can see at once whether two plugins are fighting over your SEO.
Open Site Audit Fixes โ