← All framework guides

WordPress SEO: 10 checks and how to fix them

These are the WordPress-specific checks RankCLI runs, and the fix for each one in WordPress's own idiom. WordPress renders on the server by default, which removes a whole class of SEO problems before you start.

10 checks
1 rated error
cms
SSR by default

Run all of these against your own site, free and without an account:

npx @rankcli/cli audit -u https://your-site.dev

Where WordPress makes SEO harder

  • •Plugin bloat can slow performance
  • •Default themes often lack optimization
  • •Image optimization requires plugins
  • •Caching needed for performance

What WordPress gives you for free

  • •Server-rendered HTML by default
  • •Mature SEO plugin ecosystem
  • •Built-in canonical URL support
  • •Sitemap generation via plugins
  • •Structured data plugins available

The checks

warning
WORDPRESS_NO_SEO_PLUGIN

No SEO plugin detected

WordPress benefits greatly from an SEO plugin like Yoast or Rank Math.

Install an SEO plugin:

Yoast SEO (most popular):

  1. Go to Plugins > Add New
  2. Search "Yoast SEO"
  3. Install and activate

Rank Math (feature-rich free tier):

  1. Go to Plugins > Add New
  2. Search "Rank Math"
  3. Install and activate

Both provide:

  • Meta title/description management
  • XML sitemap generation
  • Schema markup
  • Content analysis
error
WORDPRESS_OUTDATED

WordPress core is outdated

Running outdated WordPress is a security risk and may have SEO bugs.

Update WordPress:

  1. Backup your site first
  2. Go to Dashboard > Updates
  3. Click "Update Now"

Enable auto-updates in wp-config.php:

define('WP_AUTO_UPDATE_CORE', true);
warning
WORDPRESS_NO_CACHING

No caching plugin detected

WordPress without caching is slow, hurting Core Web Vitals.

Install a caching plugin:

WP Super Cache (simple):

  • Easy setup, good for most sites

W3 Total Cache (advanced):

  • More features, steeper learning curve

LiteSpeed Cache (if on LiteSpeed server):

  • Best performance on compatible hosts
warning
WORDPRESS_LARGE_IMAGES

Images not optimized

Large images slow down WordPress significantly.

Install an image optimization plugin:

ShortPixel or Smush:

  • Compresses existing images
  • Optimizes on upload
  • WebP conversion

Or use Cloudflare Polish for automatic optimization.

warning
WORDPRESS_TOO_MANY_PLUGINS

Too many plugins installed

Each plugin adds overhead. Many sites have 30+ plugins when 10-15 suffice.

Audit your plugins:

  1. Go to Plugins > Installed Plugins
  2. Deactivate plugins not in use
  3. Delete deactivated plugins
  4. Consider consolidating (one SEO plugin, one security plugin)

Aim for under 20 plugins.

notice
WORDPRESS_NO_LAZY_LOAD

Native lazy loading not enabled

WordPress 5.5+ has native lazy loading, but themes may disable it.

Check if lazy loading is enabled:

// In functions.php, remove if present:
add_filter('wp_lazy_loading_enabled', '__return_false');

For older WordPress, add:

add_filter('wp_lazy_loading_enabled', '__return_true');
notice
WORDPRESS_NO_WEBP

Not serving WebP images

WebP images are 25-35% smaller than JPEG.

Use a plugin that serves WebP:

  1. ShortPixel: Auto-converts and serves WebP
  2. WebP Express: Converts and configures server

Or use Cloudflare with Polish enabled for automatic WebP.

notice
WORDPRESS_NO_PRELOAD_HINTS

Missing resource hints

Preload hints can speed up critical resources.

Add to your theme's functions.php:

function add_resource_hints() {
  // Preload critical font
  echo '<link rel="preload" href="/wp-content/themes/yourtheme/fonts/main.woff2" as="font" type="font/woff2" crossorigin>';

  // Preconnect to external domains
  echo '<link rel="preconnect" href="https://fonts.googleapis.com">';
}
add_action('wp_head', 'add_resource_hints', 1);
warning
WORDPRESS_BLOCKING_SCRIPTS

Render-blocking scripts detected

JavaScript in <head> blocks rendering.

Use a plugin like Autoptimize or Asset CleanUp to:

  • Defer JavaScript
  • Inline critical CSS
  • Combine files

Or add defer manually in functions.php:

function defer_scripts($tag, $handle) {
  if (is_admin()) return $tag;
  return str_replace(' src', ' defer src', $tag);
}
add_filter('script_loader_tag', 'defer_scripts', 10, 2);
warning
WORDPRESS_NO_SCHEMA

No structured data detected

Schema markup helps with rich snippets.

If using Yoast/Rank Math: Schema is included.

Manual schema in theme:

function add_organization_schema() {
  if (is_front_page()) {
    echo '<script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Your Company",
      "url": "' . home_url() . '"
    }
    </script>';
  }
}
add_action('wp_footer', 'add_organization_schema');

Check your own WordPress site

280+ checks including every one above. No signup, nothing leaves your machine.

Run a free audit