All guides

WordPress

WordPress SEO: the plugin finishes its list, and its list is the small half

We audited 395 WordPress sites and 287 of their posts. Canonicals and indexability are solved. Heading order, page weight and delivery are not.

Bar chart of the share of 287 WordPress blog posts on plugin-equipped sites that are not clean on each check: canonical URL 0 percent, XML sitemap 1 percent, meta description 30 percent, title tag 38 percent, image formats 44 percent, page weight 47 percent, caching 59 percent, heading order 59 percent, render blocking 64 percent, security headers 72 percent

We audited 395 WordPress sites and 287 of their blog posts with our own engine on 20 August 2026. On the 332 sites running an SEO plugin, the things the plugin manages are effectively solved: canonical tags and indexability were clean on 100%. What remains is owned by the theme and the host, and heading order, page weight, render blocking and security headers each failed on roughly half to three quarters of pages.

What we measured, and what the sample is not

395 sites detected as WordPress from their own markup, drawn from a pool of small business and agency websites. 332 of them advertise an SEO plugin in the page source: 214 Yoast, 92 Rank Math, 24 All in One SEO, 2 SEOPress. For 287 of those sites we also found and audited a real blog post, discovered through the site’s own WordPress REST API or the plugin’s post sitemap, so that checks about authors and dates were measured on a page that has an author and a date.

Every page went through the same 36 check audit we run for customers, with no paid endpoints. Not clean means fail or warn. The full aggregate is public.

Three limits, stated up front:

  • The sample is not published per site. It comes from a private prospect pool, so publishing a row per domain would publish a list of named businesses alongside what is wrong with their websites. The aggregate is enough to check every figure here.
  • “No plugin advertised” is not “no plugin”. 63 sites showed no plugin marker, and some of those will have one with its output suppressed. Treat that group as a weak comparison rather than a control.
  • Response time and caching latency are excluded from the published table, because our engine measures them on a single cold fetch from one location. That is directional and it is not a benchmark, so no number is quoted here.

The plugin’s own list is finished

This is the part that deserves saying plainly, because the genre this article belongs to usually does not say it. On the 332 sites running an SEO plugin:

Check Homepages not clean Posts not clean
Canonical URL 0% 0.3%
Indexable, no accidental noindex 0% 0%
URL structure 0% 1.4%
Open Graph and Twitter cards 0.3% 0.7%
Language and hreflang 0.6% 1.4%
XML sitemap 2.1% 0.7%
robots.txt 2.4% 1.4%

Seven checks, and across 619 audited pages the total number of failures is small enough to count by hand. Whatever else is true about the SEO plugin market, the configuration problem it was built to solve is solved. Nobody needs another article about installing Yoast.

The three the plugin gives you a box for

Three items on the plugin’s own list behave differently, and the difference is instructive:

Check Homepages Posts
Structured data 15.4% 20.9%
Meta description 22.3% 30%
Title tag 19.3% 37.6%

These are the fields the plugin provides an input for and cannot fill in. It can generate a canonical tag because a canonical tag is derivable. It cannot write your title.

The title gap between homepages and posts is the whole story of that distinction. A homepage title gets written once, by whoever set the site up, while looking at the plugin’s preview. Post titles get written three hundred times by whoever was publishing that day, and the plugin’s field sits empty and falls back to the post heading, which was written to look good at the top of an article rather than to work in a result.

That is not a plugin failure. It is the boundary of what automation can reach, and it is the highest value thing on this page that a plugin could ever have helped with.

The checks that do not move between a homepage and a post

Here is the pattern that makes the rest of the data interpretable. Some checks change completely depending on which page you look at, and some barely move at all:

Check Homepages Posts Moves?
Attribution and sourcing 77.1% 8.4% Collapses
Answer extractability 32.2% 12.9% Collapses
Text to code ratio 68.4% 39% Halves
Heading order 56.9% 58.5% No
Render blocking resources 63% 63.8% No
Security headers 72.3% 71.8% No
Caching 53.9% 58.5% No

A check that changes between two pages on the same site is measuring the content. A check that returns the same figure on both is measuring something the content cannot influence, which on a WordPress site means the theme, the page builder or the server.

This also disposes of a claim we could have made from the homepage run alone, and nearly did. 77% of these homepages name no author, and on posts that figure is 8.4%. WordPress puts the author on the post, the theme prints it, and the check that looks catastrophic on a homepage is a category error: a homepage is not an article and does not have an author. Any audit of WordPress sites that only looks at homepages will report this and several others wrongly.

What is actually left

On the 287 posts, after the plugin has done everything it does:

  • Security headers, 71.8%. A server and CDN setting. No plugin claims it and most hosts do not set it by default.
  • Render blocking resources, 63.8%. The theme and every plugin that enqueues a stylesheet in the head.
  • Heading order, 58.5%. Below.
  • Caching headers, 58.5%. The host, or the caching plugin you have not configured.
  • llms.txt, 56.1%. Nobody has one. That is the whole industry, not WordPress.
  • Page weight, 47.4%. Median HTML document across the homepages was 238KB before a single image, script or stylesheet. The largest was 1.7MB of HTML alone.
  • Image formats, 43.6%. Images still shipping as JPEG and PNG where a modern format would be a fraction of the bytes.

Not one of those has a setting in an SEO plugin, and that is not an oversight. They belong to the layer underneath.

Heading order is a theme problem, and it is the cheap one

57% of homepages and 59% of posts had a heading level jump, and it is worth explaining why that number is so high and so stable.

Almost nobody writes an H4 after an H2 on purpose. What happens is that the theme does it for you. A widget title is marked up as an H3 because that is what looked right in the theme’s design. A sidebar block prints an H4. A “related posts” strip prints an H2 after your content has already been to H3. The author writes a clean document and the template interleaves headings from three sources at levels chosen for their appearance.

Google is explicit that heading order does not matter for ranking, and that is accurate. What it does is decide where a page divides into passages, which is what anything quoting rather than linking to your page has to work out first. It is also the single most common defect we find on any sample of professional websites, and it is a template edit rather than a project. Run a post through the heading structure checker and you will usually find the jump is not in your writing at all.

Does the choice of plugin matter?

Median audit score by plugin, across the sites running each:

Plugin Sites Median score
Yoast SEO 214 87
Rank Math 92 88
All in One SEO 24 88

One point between them, on a 100 point scale, and the differences that do appear on individual checks are not clean comparisons: sites choose their plugin, so any gap is at least as likely to reflect who chooses what as what the plugin does.

The more useful comparison is against having no plugin at all. Median 88 with one, 86 without. Two points, and again the group without one is weak, because a plugin can be installed with its output suppressed.

Two points is the honest measure of what this decision is worth, and it explains why the plugin comparison genre exists at all: when a choice does not change the outcome, the only thing left to write about is the interface.

What to do with your own WordPress site, in order

  1. Keep the plugin. It is doing its job and its job is real.
  2. Write the title and description on posts, not just on the homepage. 37.6% of posts were not clean on the title. That is where the plugin was actually going to help and it is waiting for you.
  3. Fix heading order in the theme. One template edit, and it is the most common defect on any sample we have ever run.
  4. Look at what your host and theme ship. Security headers, caching and render blocking are three checks, one afternoon, and none of them are content work.
  5. Then audit a post rather than the homepage. They are different pages with different problems, and the homepage will tell you the wrong thing about half of this.

Run one of your own posts through the audit and compare it against the table above. The checks where you are worse than the sample are yours; the checks where you match it are WordPress.

Sources

  • visibility100x, WordPress SEO measurement, 395 sites and 287 posts, collected 20 August 2026. Aggregate CSV. Per-site rows withheld, as described above.
  • Google, “SEO Starter Guide”, developers.google.com/search/docs/fundamentals/seo-starter-guide, read 20 August 2026, for the statement on heading order. Discussed at length in our piece on that guide.

Questions people ask

Do I need an SEO plugin for WordPress?

Yes, and then you are done with what it does. Across 332 sites running one, canonical tags, indexability and URL structure were clean on every single site, and sitemaps and robots.txt were clean on about 98%. Without a plugin you would have to set those yourself, which is exactly the job it exists to do.

Which WordPress SEO plugin is best?

On the evidence of what actually ships, it does not appear to matter. Median audit scores were 87 for Yoast sites, 88 for Rank Math and 88 for All in One SEO, across 214, 92 and 24 sites. Choose on the interface, the price and whether it fights your page builder, because the measured output is the same.

Does installing an SEO plugin improve your score?

By about two points in our sample: median 88 with a plugin against 86 without, on a 100 point scale. That is not a criticism of the plugin. It is what happens when the eleven things a plugin manages are eleven things that are cheap to get right, and everything expensive is elsewhere.

What does a WordPress SEO plugin not do?

Anything owned by the theme, the page builder or the host. That is heading order, page weight, render blocking resources, caching headers, security headers, image formats and whether any passage on the page can be lifted as an answer. None of those appear in a plugin settings screen and all of them failed on a large share of the sites we measured.

Why does my WordPress site have heading order problems?

Almost always the theme rather than the writing. Widget titles, sidebar headings and section labels get their level from how the theme was built, not from where they sit in the document, so an H2 in the content is followed by an H4 in a sidebar. It appeared on 57% of homepages and 59% of posts in our sample, which is the pattern you would expect from a template rather than from an author.

Is WordPress good for SEO?

It is fine, and the plugin ecosystem genuinely solves the configuration layer. What it does not do is protect you from what gets stacked on top of it. The heaviest pages we measured were WordPress sites with a page builder, and the theme decides most of what our audit still flags after the plugin has done everything it does.

Related guides

Run your first audit
in about a minute

Free account, no card. Paste your URL and get a real, scored report of your AI and search visibility.

Measuring rankings in