WordPress · Self-hosted CMS

WordPress SEO Audit: the issues built into WordPress — and how to fix them

The CMS behind a huge share of the web. Endlessly flexible and SEO-capable — but its automatic archives, plugin sprawl, and self-hosted security are where sites go wrong.

How WordPress's architecture shapes your SEO

Self-hosted WordPress (WordPress.org) gives you complete control of the server, permalinks, robots, and every plugin — and complete responsibility for them. Out of the box it auto-generates a lot of URLs: category, tag, author, date, and attachment archives, plus paginated lists, many of which are thin or duplicative. It emits no structured data on its own, leans on a caching layer for performance, and — like anything self-hosted — needs disciplined updates to stay secure. Most fixes run through an SEO plugin (Yoast or Rank Math), a caching/CDN setup, and server-level hardening.

Reference: WordPress SEO documentation

The issues we see most on WordPress stores

Most common in our WordPress audit data

Measured across the 7 WordPress storeswe've audited — this list re-ranks itself as we scan more.

Why these happen on WordPress

Specific to how WordPress is built — not generic checklist advice.

SEO

Auto-generated archives create thin, duplicate pages

WordPress spins up archive pages for every tag, category, author, and date — plus attachment pages for each uploaded image. Left unmanaged these are thin, near-duplicate, and dilute your crawl. Noindex the low-value archives (most date/author/tag archives) and disable attachment pages.

Full fix guide →
AEO

No structured data without a plugin

Core WordPress doesn't output Article, FAQ, or breadcrumb schema. Unless your theme or SEO plugin adds it, your content has no structured data for rich results or AI answers. Confirm the schema is actually present in the rendered HTML, not just that a plugin is active.

OWASP

Plugin sprawl: performance and security

The flexibility that makes WordPress powerful also makes it heavy and exposed. Too many plugins slow the site and widen the attack surface, and outdated plugins are the leading WordPress breach vector. Keep core/plugins/themes current, add security headers, and remove what you don't use.

Full fix guide →

Fixes written for WordPress

We catalog 45 WordPress fixes — exact steps for WordPress's admin and theme, each with a link to the official docs.

Cwv lcpSEO

Reduce Largest Contentful Paint (LCP) to under 2.5 seconds by serving your hero image in a modern format, preloading it, and eliminating render-blocking resources.

On WordPress.org
  1. 1Install WP Rocket or Perfmatters (Plugins → Add New → search) for an all-in-one performance plugin that handles preloading, CSS/JS deferral, and lazy-load exclusions.
  2. 2Install Imagify or ShortPixel to auto-convert existing and newly uploaded images to WebP with automatic <picture> tag fallback — no manual image re-export needed.
  3. 3In WP Rocket → Media: find 'Exclude from LazyLoad' and add the CSS selector or filename of your hero image (e.g., .hero-image, hero-banner.jpg) so it loads eagerly.
  4. 4In WP Rocket → Preload: enable 'Preload Links' and use the 'Prefetch DNS Requests' field to add your CDN domain.
  5. 5Manually add a preload tag for maximum control: Appearance → Theme File Editor → header.php → inside <head> add: <link rel='preload' as='image' href='/wp-content/uploads/hero.webp' fetchpriority='high'>.
  6. 6Verify with PageSpeed Insights mobile score and WP Rocket's Cache Lifespan settings to ensure the optimized page is served from cache to all visitors.
WordPress.org docs →
Duplicate meta descriptionSEO

Write a unique, page-specific meta description for every page on your store so Google can display a relevant snippet in search results.

On WordPress.org
  1. 1Install Yoast SEO or Rank Math if not already active (Plugins → Add New → search → Install → Activate).
  2. 2For any post or page: open the editor → scroll to the Yoast SEO / Rank Math panel → click 'Edit snippet' (Yoast) or expand 'General' (Rank Math) → type your unique description in the Meta Description field → Update/Publish.
  3. 3For bulk editing: Yoast SEO → Tools → Bulk editor → Descriptions tab — edit descriptions for all content in a single table.
  4. 4For archive/author pages: Yoast → Settings → Content types → Authors/Archives → Meta description template.
  5. 5For paginated archives (/page/2 etc.): Yoast and Rank Math automatically add `rel=canonical` to page 1 by default, preventing duplicate description penalties for pagination.
WordPress.org docs →
Duplicate titleSEO

Write a unique, descriptive title tag for every page on your store so no two pages share the same title.

On WordPress.org
  1. 1Install Yoast SEO or Rank Math if not already active.
  2. 2For individual posts/pages: open the editor, scroll to the Yoast SEO / Rank Math panel, click 'Edit snippet', and type a unique SEO title.
  3. 3For sitewide templates: Yoast SEO → Search Appearance → Content Types / Taxonomies; set patterns with %%title%% %%sep%% %%sitename%% so every page outputs a distinct title.
  4. 4Use Yoast's Bulk Editor (Yoast SEO → Tools → Bulk Editor → Titles) to review and edit all page titles in one place without opening each post.
  5. 5If using a theme that outputs its own <title> tag and conflicts with the SEO plugin, ensure the theme declares add_theme_support('title-tag') in functions.php and removes any hardcoded <title> in header.php.
WordPress.org docs →
Missing canonicalSEO

Add a self-referencing canonical tag to every page so Google knows which URL is the "official" version of that content.

On WordPress.org
  1. 1Install Yoast SEO or Rank Math (Plugins → Add New → search for the plugin → Install → Activate).
  2. 2Both plugins output self-referencing canonical tags automatically for every post, page, and custom post type.
  3. 3To override the canonical on a specific page: open the post/page editor → find the Yoast SEO or Rank Math meta box → click 'Advanced' → enter the preferred URL in the 'Canonical URL' field.
  4. 4If you are using a custom theme without an SEO plugin, add `<link rel="canonical" href="<?php echo esc_url( get_permalink() ); ?>">` inside the `<head>` section of your `header.php` file.
WordPress.org docs →

Browse all 45 WordPress fixes →

Based on 7 WordPress stores audited on SEOLZ

vs all-platform average

Avg SEO90
+9 above average
Avg AEO53
+11 above average
Avg WCAG86
-4 below average
Avg Security70
-6 below average
Avg GEO53
+5 above average
Avg Composite73
+9 above average

WordPress stores score above average overall — but AEO is the common weak point.

Every scan checks all six pillars

🔍
SEO

Search engines need to crawl and understand your catalog. We check every page for indexability, metadata, canonical tags, Core Web Vitals, internal linking, and faceted navigation — the issues that silently kill organic traffic.

Learn how to fix SEO issues →
Answer Engine (AEO)

AI tools like ChatGPT and Google's AI Overviews pull from structured data. We audit your product schema, FAQ markup, brand signals, and E-E-A-T indicators — so your products show up where shoppers are increasingly searching.

Learn how to fix Answer Engine (AEO) issues →
🌐
AI Visibility (GEO)

Is your brand mentioned when someone asks an AI assistant for product recommendations? We track your presence across ChatGPT, Perplexity, and other AI engines — and tell you what's driving mentions up or down.

Learn how to fix AI Visibility (GEO) issues →
Accessibility (WCAG)

1 in 4 adults has a disability. Inaccessible sites face ADA lawsuits — and lose customers. We run WCAG 2.1 AA checks across your catalog pages and tell you exactly what to fix.

Learn how to fix Accessibility (WCAG) issues →
🛡️
Security (OWASP)

Security headers, SSL configuration, email authentication, and server misconfigs — issues that erode customer trust and tank your search rankings if Google flags you.

Learn how to fix Security (OWASP) issues →
Site Lifecycle

SSL expiry, outdated CMS versions, unverified GTM containers. The operational health checks that fall through the cracks — until they cause an outage or a ranking drop.

Learn how to fix Site Lifecycle issues →

Start free. Upgrade when ready.

Scout
Free
1 site · 50 pages/audit · monthly audits
SEO only
  • Composite + pillar scores
  • Issue counts
  • Free forever
Start free
Recommended
Starter
$49/mo
1 site · 500 pages/audit · weekly audits
All 6 pillars
  • Every finding + platform-specific fixes
  • Action plan & Today's Focus
  • ADA risk + AI visibility
  • Export reports
Choose Starter

Questions about WordPress audits

Yes — we crawl your live WordPress site. Because it's self-hosted, most fixes are fully in your control: permalinks, archives, an SEO plugin's settings, caching, and server hardening.

See what's holding back your WordPress store

Free scan. No credit card. Results in minutes.

Scan My WordPress Store Free