October 28, 2026
Browser developer tools showing JSON-LD structured data in WordPress page source
Learn how to check structured data on your WordPress site using browser tools and Google validators, without installing any extra plugins.

When you run a WordPress site that already has a theme or a few plugins installed, you might be wondering whether structured data is actually being output to the page and whether Google can read it. The problem is that most guides immediately push you toward installing yet another plugin - Schema Pro, Yoast SEO, Rank Math - when all you want is to see what you already have. This article walks you through checking your existing structured data without adding anything new to your site, using only your browser, WordPress core tools, and Google's free validation services.

The setup

Your live WordPress site front-end, accessed through any modern browser with developer tools (Chrome, Firefox, Edge, Safari). You will be viewing the raw HTML source that WordPress sends to search engines, not editing anything in the dashboard. This method does not add, remove, or change any structured data - it only reveals what is already being emitted by your theme or existing plugins.

View your page source to find JSON-LD blocks

Structured data on WordPress sites typically appears as JSON-LD snippets embedded in the <head> or footer of your page. Many modern themes and plugins inject these automatically. Open any public page on your site - a post, product, homepage, whatever you want to check. Right-click anywhere on the page and select "View Page Source" (or press Ctrl+U on Windows, Cmd+Option+U on Mac).

You will see the raw HTML that Google sees. Search the source for application/ld+json using your browser's find function (Ctrl+F or Cmd+F). If you see one or more script tags with that type attribute, you have structured data on the page. Each block looks like this:

structured data
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Post Title",
  "author": {
    "@type": "Person",
    "name": "Author Name"
  }
}
</script>

Copy the entire JSON object between the opening and closing script tags, including the curly braces. You will paste this into a validator in the next step. If you find nothing, your site may not have any structured data at all, or it might be using older Microdata or RDFa formats (less common in WordPress now). No matches for application/ld+json means no JSON-LD, which is the format Google prefers in 2026.

Themes that include built-in schema often add Organization or WebSite markup to the homepage, while plugins like Yoast SEO or Rank Math add Article, Product, or other types depending on your content. You might find multiple script blocks on a single page if you have both a theme and a plugin outputting data.

Validate the markup with Google Rich Results Test

Once you have copied a JSON-LD block from your source, open Google's Rich Results Test in a new tab. You can find it by searching "Google Rich Results Test" or going directly to the official tool page. Paste your copied JSON into the code input area and click "Test Code." The tool will parse the markup and tell you whether it is valid, whether it qualifies for rich results in search, and what errors or warnings exist.

Pay attention to the distinction between errors and warnings. Errors mean Google cannot parse the schema at all or the required properties are missing. Warnings suggest optional properties that would improve the markup but are not mandatory. For example, an Article schema might warn you that dateModified is missing, but that will not break the markup.

The Rich Results Test also shows a preview of how your markup might appear in search results if it qualifies for enhancement. Not all schema types trigger rich results - for example, Organization and WebSite schemas help Google understand your site structure but do not produce visual cards in search. Article, Product, and Recipe schemas can generate enhanced listings if all required fields are present, while Google no longer shows HowTo rich results and limits FAQ rich results to a small set of authoritative government and health sites.

If you want to test a live URL instead of pasted code, the Rich Results Test also accepts a full page URL. Enter your page address and the tool will fetch the live HTML, extract all structured data, and validate it. This method is faster if you are checking multiple pages, but it requires your site to be publicly accessible - staging sites behind authentication will not work.

Check site-wide schema health in Google Search Console

For a broader view of how structured data performs across your entire site, use Google Search Console. Navigate to the Enhancements section in the left sidebar. You will see reports for any structured data types Google has detected on your site: Products, Articles, FAQs, Breadcrumbs, and others.

Each report shows how many pages have valid markup, how many have errors, and how many have warnings. Click into any report to see which URLs are affected and what specific errors Google found. This is the only way to audit structured data at scale without manually checking every page. If you have a WooCommerce store with hundreds of products, the Products report will tell you whether all product pages have valid schema or if certain fields are missing site-wide.

Search Console updates these reports over time as Google crawls your site, so newly published pages may not appear immediately. The data reflects what Google actually sees during indexing, which can differ from what the Rich Results Test shows if your site serves different content to crawlers or if JavaScript modifies the page after load. Most WordPress sites serve static HTML with JSON-LD baked in, so discrepancies are rare, but caching plugins or server-side rendering can cause them.

If you do not see any structured data reports in Search Console, it means Google has not detected any schema on your site during recent crawls. This does not mean the markup is absent - it might be too new, or Google may not have crawled the pages yet. You can request indexing for specific URLs in the URL Inspection tool to speed up detection.

What breaks

The schema appears in source but Google says it is invalid

You pasted JSON-LD from your page source into the Rich Results Test and it threw parsing errors, even though the markup looks fine when you view it in your browser. The cause is usually extra HTML comments, escaped characters, or JavaScript strings that modify the JSON after the page loads. WordPress themes and plugins sometimes echo JSON-LD inside PHP strings that contain special characters, and if those characters are not properly escaped, the JSON becomes malformed.

Check for stray HTML comment tags inside the script block - some plugins insert <!-- --> around JSON-LD, which breaks the parser. Remove them manually in your theme file or plugin code, or switch to a different schema plugin that outputs clean JSON. Another common issue is double-encoding: if a plugin uses wp_json_encode() twice, quotes get escaped as \" and the validator fails. Look for \" or &quot; in your JSON and trace it back to the code that generates it.

Search Console shows errors but the Rich Results Test passes

You tested a URL in the Rich Results Test and everything validated perfectly, but the same URL shows errors in Search Console. This happens when your site serves different HTML to Google's crawler than it does to the validation tool, often because of caching, CDN behavior, or JavaScript that runs only on user visits. Search Console tests crawled content as it was when Googlebot visited, while the Rich Results Test fetches content live as a user-agent.

Clear your site cache completely and request a fresh crawl of the URL using the URL Inspection tool in Search Console. After Google re-crawls, check the Enhancements report again. If the error persists, view the cached version of your page in Search Console's inspection panel - you can see the exact HTML Google crawled, including the JSON-LD. Compare it to what you see in your browser source. Differences point to middleware altering the markup before it reaches the index.

Multiple plugins output conflicting schema for the same page

You find two or more JSON-LD script blocks on a single page that define the same @type but with different properties - one from your theme, one from Yoast SEO, and maybe one from a custom plugin. Google reads all of them, but when properties conflict (for example, two different authors or two different publication dates), the results are unpredictable. Google may merge them, ignore one, or mark the page as having errors.

Disable schema output in all but one source. If your theme has a setting to turn off built-in schema, use it. Yoast SEO and Rank Math both allow you to disable their schema output per post type in their settings. The goal is one authoritative source of structured data per content type. Once you have chosen which tool controls schema, re-validate the page to confirm only a single, clean JSON-LD block appears. Conflicts are invisible in your browser but obvious in the Rich Results Test when you see duplicate or contradictory fields.

FAQs

Can I check structured data on a site hosted on WordPress.com without plugin access?

Yes, but only by viewing the page source and using external validators like the Rich Results Test. WordPress.com sites may not give you HTML editing access, which means you cannot add or modify JSON-LD manually. You can still copy any existing markup from the source and validate it. If no structured data exists and you cannot install plugins, you are limited to what the WordPress.com platform provides automatically, which is usually basic Organization and WebSite schema.

Does WooCommerce output Product schema by default?

Yes. Core WooCommerce outputs basic Product JSON-LD on single product pages through its built-in structured data feature. A schema plugin or a WooCommerce-aware theme can extend or replace that markup with extra properties. Check your product page source for application/ld+json and look for "@type": "Product". If it is missing, a theme, plugin, or custom code may have removed it, and Google cannot create rich product snippets for your listings. Validating a product URL is the quickest way to confirm what your store actually outputs.

What is the difference between testing code and testing a URL in the Rich Results Test?

Testing code validates only the JSON-LD snippet you paste, with no context about the rest of the page. Testing a URL fetches the entire live page, extracts all structured data, and validates it in the context of the visible content. URL testing is more accurate because it catches issues like missing images, mismatched text, or schema that references elements not present on the page. Code testing is faster for isolating syntax errors but will not tell you if your markup matches what users see.

How often does Google Search Console update structured data reports?

Search Console updates Enhancements reports as Google crawls and re-indexes your pages, which can take days or weeks depending on your site's crawl frequency. Newly published pages may not appear in the report for several days. Changes you make to existing schema will not show up until Google re-crawls those URLs. You can force a faster update by requesting indexing for individual pages in the URL Inspection tool, but there is no way to refresh the entire site report on demand.

Can I use the Rich Results Test if my site is behind a firewall or in maintenance mode?

No, the Rich Results Test requires a publicly accessible URL to fetch and parse the page. If your site is behind authentication, a staging environment, or a maintenance mode plugin, the tool cannot reach it. In that case, use the code testing option: copy the JSON-LD from your local page source or staging site and paste it into the validator. This lets you check syntax and required fields before your site goes live, but you will not get the full page context until the URL is public.

Verdict: Use page source inspection and the Rich Results Test if you want to see what your site already outputs without installing anything. Use Search Console Enhancements reports if you need site-wide visibility and you have already verified your property. Use code testing if your site is not live yet or if you want to isolate syntax issues before deploying changes.