Free schema checker
Pull the structured data off 50 pages at once
Paste your URLs. Get every structured data block each page declares (JSON-LD, microdata and RDFa), one row per block, with its type and the raw JSON in the export.
- A block that is present but won't parse is reported, not skipped. Broken structured data is a finding in itself.
50 URLs per run
3 Markup formats read
10 CSV exports
Paste up to 50 URLs
Each address is fetched once, parsed in your browser, and added to the tables below as it completes.
Ready.
One row per URL. The CSV carries every column, including all Open Graph and Twitter tags.
0 rowsOne row per URL: title and meta description with their lengths and how many of each the page has, plus canonical, robots and language. Lengths are characters, not pixels.
0 rowsOne row per URL: the address you asked for, where it ended up, and the canonical it declares, both as written and as resolved, with the robots directive beside it.
0 rowsOne row per URL: Open Graph and Twitter Card tags next to the page title, with the status code of og:image. The CSV carries every og and twitter tag found.
0 rowsEvery h1-h6 in document order. Level and order together show the outline a crawler sees.
0 rowsTop 20 words per page after common stop words are removed. Share is measured against the total word count of the page.
0 rowsEvery anchor with an href, classified internal or external, with its anchor text.
0 rowsOne row per image. A missing alt attribute and an empty one mean different things, so they are separate columns.
0 rowsStructured data blocks: JSON-LD, microdata and RDFa types. A block that fails to parse is reported, not hidden.
0 rowsAnything that went wrong. An empty table here is the result you want.
0 rowsThree formats, and the raw block
Extraction, not validation. More on that below.
-
JSON-LD, microdata and RDFa
Three formats, not one. Older sites and platforms often use microdata, so reading JSON-LD alone can make them look as if they have no structured data at all.
-
One row per block, with its type
A page with an Organization block, a BreadcrumbList and two FAQPage entries gets four rows, not one summary line.
-
The raw JSON in the export
The whole block, not a description of it, so you can diff what shipped against what you meant to ship.
-
Parse failures flagged, not dropped
A malformed block is reported as malformed. A broken block and a missing one are different problems.
Five findings hiding in the rows
Structured data fails quietly. Nothing breaks, nothing warns, the rich result simply never appears.
-
A page with no blocks where the template should have added some
One product page out of fifty with an empty schema column is a template condition somebody wrote and forgot.
-
A block that will not parse
Usually a stray comma or an unescaped quote from a templating engine. The markup is on the page, it looks right in the source, and it counts for nothing.
-
Types that do not match the page
A Product block on a category listing, an Article block on a contact page. Templates apply the same block everywhere far more often than they should.
-
Two blocks describing the same thing
A plugin and a theme both adding an Organization block is common, and the two rarely agree about the name, the logo or the phone number.
-
Markup that contradicts the visible page
Structured data should describe what's on the page. A price, rating or date in the JSON that a visitor can't see can lead to a manual action.
What it will not tell you
Worth knowing before you rely on the results.
-
It extracts, it does not validate
You get the types and the raw JSON. Whether a block satisfies Google's requirements for a particular rich result is a separate question, and Google's Rich Results Test is the authority on it.
-
No rich result preview
There is no picture of what the listing might look like. That is a rendering question and it belongs to the search engine, not to an extractor.
-
Static HTML only
Structured data injected by a tag manager after load is not in the HTML the server sent, and search engines may or may not pick it up.
-
Fifty URLs per run
It runs in a browser tab. Enough to check a template across a section, not to inventory a catalog.
Common questions
Which format should I use: JSON-LD, microdata or RDFa?
Google recommends JSON-LD and it is the easiest to maintain, because it sits in one block rather than being woven through the markup. Microdata and RDFa still work, and there is rarely a reason to start with them now.
Does structured data improve rankings?
Not on its own. Google has been consistent that it is not a ranking factor. It makes a page eligible for rich results, which changes how a listing looks and how often it is clicked.
Why does this show blocks that Google's testing tool does not?
This extracts everything on the page, including formats and types Google does not use for rich results. Google's tool reports what it can act on, which is a deliberately narrower list.
Can I mark up something that is not visible on the page?
No. Google's guidelines require structured data to describe content a visitor can see. Marking up prices, reviews or dates that are not on the page is the most common cause of a structured data manual action.
Structured data is one tab of the checker
The same run also returns titles, meta descriptions, headings, word counts, links and images. One run gives you all ten tables, each with its own CSV.
Open the Bulk SEO Checker See the auditsOther checks the same tool runs: Bulk SEO Checker, Meta tag check, Heading check, Alt text check, Word count check, Canonical check, Open Graph check