WordPress SEO Audit: The 5 Critical Checks
On this page
WordPress SEO audits fail because they treat dynamic PHP-rendered pages like static HTML, missing plugin conflicts that silently strip canonical tags and schema markup. The five critical checks isolate theme JavaScript bloat, database query overhead, and pagination duplicates that generic static-site tools ignore entirely.
Most audits assume a clean server environment, but WordPress loads assets dynamically through database queries and plugin hooks that can break Core Web Vitals without throwing visible errors. You might have a fast host and still see poor Interaction to Next Paint scores because your theme executes heavy JavaScript on every page load, a specific failure mode that static analysis tools cannot detect.
Crawlability and robots.txt
robots.txt determines whether Google can crawl your site, and a misconfigured file is a common reason WordPress sites appear slow or unindexed despite solid hosting. Open your site’s root directory in a browser (e.g., yourdomain.com/robots.txt) to view the active rules. Look for Disallow: / or specific paths blocking critical assets like /wp-content/ or /wp-admin/. If you use Yoast SEO or Rank Math, check their settings panels for “Advanced” or “Robots” tabs where they may override default behaviour. A theme conflict can inject blocking rules via custom code or child theme files. Verify that User-agent: * does not precede a blanket disallow rule. If you see Disallow: /wp-json/, that is acceptable for most sites, but blocking /wp-content/uploads/ will prevent image indexing. Compare your file against the default output of your SEO plugin. If rules seem incorrect, disable the plugin temporarily and re-check the file to isolate the source. This step clarifies why a site might seem slow—Googlebot is repeatedly hitting blocked resources or failing to render dynamic content. For broader context on how these rules fit into a larger strategy, see What is Technical SEO for WordPress?. If you are unsure which plugin is responsible, review our WordPress SEO Tips for Non-Tech Business Owners for troubleshooting workflows. Correcting robots.txt ensures crawlers access the pages you want ranked, a foundational element covered in WordPress SEO Best Practices: Boost Your Site’s Ranking.
Index Coverage and Canonical Tags
Index coverage and canonical tags determine which version of your content Google indexes. WordPress sites often generate duplicate URLs through pagination, category archives, and tag pages, causing split ranking signals. Check your wp-content directory for unexpected static files that might be serving cached duplicates, and verify that canonical tags point to the primary URL. Use the URL Inspection tool in Google Search Console to see if Google is choosing the wrong canonical version. If you use WP Rocket, ensure its cache settings aren’t serving stale headers that override your canonical logic. Distinguish between canonical and noindex: canonical tells Google which URL is authoritative, while noindex instructs it to ignore the page entirely. You can check your robots.txt file via /robots.txt in your browser to ensure it isn’t blocking critical resources or incorrectly excluding archive pages. If you suspect a plugin conflict is interfering with your canonical output, review our guide on How to Check If Your WordPress Site Is Hacked – 5 Signs to Look For – CloudyWP to rule out malicious code injection first.
Page Speed and Core Web Vitals
Core Web Vitals performance in WordPress is dictated by how efficiently your theme and plugins deliver JavaScript and render content. Two metrics specifically expose where dynamic sites fail: Largest Contentful Paint (LCP) and Interaction to Next Paint (INP). LCP measures the time it takes for the largest visible element to load. INP tracks how quickly the browser responds to user input, such as a click or tap. Slow INP scores usually indicate heavy scripts blocking the main thread.
Theme bloat is a primary culprit. Many modern themes ship with unnecessary animation libraries, sliders, or form builders that execute JavaScript on every page load. Plugins compound this issue. Each active plugin adds its own scripts, often duplicating functionality or loading resources that are not needed on specific pages. This overhead delays the rendering of critical content, directly worsening LCP. It also increases the time between user interaction and visual feedback, hurting INP.
To fix these issues, start by identifying the heaviest scripts. Use the Performance tab in Chrome DevTools to see which files are blocking rendering. Look for third-party scripts from analytics, chat widgets, or marketing tools that load synchronously. Defer or lazy-load non-critical JavaScript. For LCP, ensure your hero image or primary text block is not waiting on a slow-loading font or a heavy background video. For INP, reduce the number of event listeners attached to the DOM. Simplify complex animations. Replace heavy JavaScript libraries with lightweight CSS alternatives where possible. Regularly audit your plugin list. Disable any plugin that does not provide a clear, measurable benefit. A leaner codebase reduces the computational load on the browser, resulting in faster paint times and smoother interactions. Understanding how these signals interact helps you prioritise optimisation efforts effectively. See How Google Updates Read WordPress Signals for context on how these metrics influence visibility.
Mobile Usability and Rendering
Mobile usability failures in WordPress stem from dynamic content shifting and theme elements blocking interaction. Run the Mobile-Friendly Test to identify immediate layout violations. Check for Cumulative Layout Shift caused by images without dimensions or ads injecting late. Verify that no fixed-position elements, such as chat widgets or cookie banners, obscure primary call-to-action buttons. Use PageSpeed Insights to analyse mobile rendering performance. Ensure your theme does not rely on JavaScript for critical navigation, as this breaks accessibility for users with script blockers. Test tap targets to confirm they are at least 48×48 pixels. If you recently updated plugins, review the WordPress Security Updates: What They Mean for Your Site to see if a recent patch altered mobile CSS output. Clear your browser cache and test on a physical device, not just a desktop emulator, to catch real-world rendering bugs. Fix any overlapping elements by adjusting z-index values in your child theme stylesheet. Ensure font sizes remain legible without requiring pinch-to-zoom. These adjustments ensure the site is fully functional across all device types.
Content Quality and Schema Markup
Schema markup tells search engines what your content represents, but WordPress plugins often break the JSON-LD output. If you see missing rich results in Google Search Console, the structured data is likely malformed or conflicting with another plugin. Start by validating your existing markup to identify exactly what is missing or broken.
- Run a structured data test. Paste your page URL into the Rich Results Test to see which schema types are detected and which are throwing errors. This isolates whether the issue is a missing type or a syntax error.
- Check for plugin conflicts. Disable SEO plugins one by one to see if the markup disappears. Common culprits are duplicate schema outputs from both a theme and a plugin. Keep only one source of truth.
- Verify local business fields. Ensure your address, phone number, and opening hours match your Google Business Profile exactly. Mismatches confuse Google and can suppress local pack rankings.
- Inspect the HTML source. View the page source and search for “application/ld+json”. If the code is truncated or contains PHP errors, your theme is likely stripping the output before it reaches the browser.
Fixing broken schema is often a configuration error rather than a code rewrite. If you manage multiple client sites, ensure your maintenance process includes regular schema validation to catch these regressions early. White-Label WordPress Maintenance for Agencies helps automate these checks so broken markup never reaches the live site.
Frequently asked questions
Why is my WordPress site slow even with a good host
Server speed is only one variable; your site’s code and assets often create the bottleneck. Heavy themes, unoptimised images, and excessive JavaScript from plugins can drag down performance regardless of hosting quality. We check for render-blocking resources and database bloat to identify these specific WordPress-related delays that generic hosting metrics miss.
How to check if plugins are conflicting with SEO
Deactivate all plugins except your SEO tool and check if issues persist. If the problem disappears, reactivate them one by one to isolate the culprit. Common conflicts arise from multiple SEO plugins trying to manage meta tags or sitemaps simultaneously. This process identifies which specific extension is overwriting your settings or causing crawl errors.
What is the difference between canonical and noindex in WP
A canonical tag tells search engines which URL is the primary version of duplicate content, while a noindex directive instructs them to remove the page from search results entirely. Use canonicals for pagination or filtered views where you want the main page to rank. Use noindex for private pages, thank-you pages, or low-value content that should never appear in search.
How to fix Core Web Vitals on WordPress
Start by optimising Largest Contentful Paint, which usually means compressing images and reducing theme bloat. Improve Interaction to Next Paint by deferring non-essential JavaScript and minimising plugin overhead. Address Cumulative Layout Shift by explicitly defining width and height attributes for media elements. These specific code-level fixes often outperform generic caching solutions.
Does my theme affect Google indexing
Yes, because themes control how HTML is rendered and can hide content behind JavaScript or CSS. If Googlebot cannot access the text without executing scripts, it may fail to index your content properly. We audit theme output to ensure critical text is present in the initial HTML load, preventing invisible content from being ignored by crawlers.
How to check robots.txt in WordPress
Visit your site’s domain followed by /robots.txt in the browser to view the current rules. Look for lines that disallow access to important directories like /wp-admin/ or specific post categories. If you see unexpected disallow rules, they may be coming from a security plugin or a theme. Correcting these rules ensures search engines can crawl your essential pages.
What to do next
The most useful next step is to run a fresh crawl in Screaming Frog or Ahrefs Site Audit, filtered specifically for 4xx and 5xx errors, and cross-reference those URLs against your WordPress database. This isolates whether broken links stem from deleted posts, misconfigured permalinks, or plugin redirects that have expired. Do not fix these blindly. Open each flagged URL in a private browser window. If the error persists, check your wp_options table for stale redirect entries or examine your theme’s functions.php for custom rewrite rules. Only after you have identified the source of the error should you create 301 redirects or restore the content. This targeted approach prevents you from masking a structural issue with temporary fixes that will break again the next time you update a plugin or change your permalink structure.
If you find that the errors correlate with specific plugin activations or theme switches, you have identified a WordPress-specific failure point that generic audits miss. Resolving these requires understanding how your CMS renders dynamic content, not just checking static HTML. We handle this kind of technical triage for Melbourne-based sites, ensuring that the underlying code is stable before you invest further in content or marketing.
Be the first to comment