A JSON-LD checker run has three ordered phases: paste the HTML, review each discovered item, and fix the source template before validating the deployed URL with the official tool. Because the checker never fetches or executes the page, every fact it surfaces starts with the HTML you paste, so the planning step is really about choosing the right copy of the source, knowing which container shapes JSON-LD can take, and reserving judgment about rich-result eligibility for the official validator. A malformed JSON-LD block is reported separately so one broken script does not erase valid items found elsewhere in the same document. JSON-LD can contain a single object, a top-level array, or an @graph containing several nodes, and a sound plan accounts for each shape before any results are interpreted. The output is therefore evidence about the pasted document, not a promise about how a search engine will treat the deployed page. Planning the run is what keeps that distinction visible while you work.

Why planning matters before you paste anything
The Structured Data Checker & Extractor is a paste-only local parser, so input quality drives every downstream conclusion. The tool never requests a remote URL, never executes scripts, and never loads images or forms. It walks the parsed document inside a detached browser template fragment and reports what the items the checker found look like in that pasted copy. That boundary protects private-network requests and cross-origin failures, but it also means the tool can only describe the HTML you feed it. If a framework injects markup after page load, what you paste may not match what a crawler receives. Reserve a planning step for choosing the right copy of the source. See also the JSON-LD checker that runs without uploading a file for the broader boundary that drives this design.
Planning also separates extraction from validation. Schema.org defines a broad vocabulary, while search products publish their own required and recommended properties for particular experiences. The checker applies explicit, inspectable profiles only where the product has a documented rule set. An unknown type is still extracted, but it is not assigned invented requirements. A warning means the local profile did not find a property; it does not prove that a search engine will reject the page. A planned run treats extraction as a fact-finding step and reserves eligibility verdicts for the official validator.
Inputs to gather before opening the checker
Before pasting, assemble the smallest set of inputs that lets you interpret the output. The plan is deliberately small:
- An authoritative HTML copy. Use the original server response when the page is server-rendered, a controlled rendered-DOM export when a framework injects markup after load, and never an in-browser view-source.
- A list of the types you expect to find. Each declared @type triggers its own focused warning profile, so knowing the inventory narrows the review.
- The container shape of each JSON-LD block. Decide in advance whether you expect a single object, a top-level array, or an @graph of several nodes.
- Links to the official documentation for each profile. Profile warnings link to evidence rather than to an opinion.
- Acceptance criteria. Define what "pass" means for the paste step: parse-clean, expected types present, focused property set met, Microdata items not flattened.
With these inputs ready, the paste step becomes a one-action move rather than a discovery exercise.
The ordered extraction plan
The Structured Data Checker & Extractor is built for a small, rigid workflow. Use it in this order.
- Copy the HTML that represents what the crawler sees. If a framework injects markup after load, compare the original response, the rendered DOM, and the crawler-visible output before drawing conclusions.
- Paste that HTML into the input. The checker parses the source inside a detached template fragment, so no script from the pasted document runs.
- Run extraction and inspect three lists in order: JSON-LD parse errors, Microdata items, and declared types with properties.
- Resolve parse errors first. A malformed JSON-LD block is reported separately so one broken script does not erase valid items found elsewhere in the same document.
- Walk each declared type against its documented profile. The checker expands JSON-LD containers into individual items while preserving @type values and visible properties.
- Capture focused missing-property warnings as a template-fix list. The output is evidence about the pasted document; treat warnings as signals, not as eligibility verdicts.
- Edit the source template, re-run extraction on the corrected HTML, and only then validate the deployed URL with the official tool for the search feature you target.
How to read each extraction output
The checker separates three layers so you do not have to mix them. The table below maps the layer to the kind of signal it carries and the next move it implies.
| Layer | What the checker reports | What it does not prove | Next move |
|---|---|---|---|
| JSON-LD parse state | Parse errors per script block, container shape (object, array, @graph), declared @type per expanded item | That the page is eligible for any search feature | Resolve parse errors before reading further; one broken script does not erase valid items elsewhere |
| Microdata items | Top-level items with itemscope and itemtype, bounded property view, nested items kept visibly nested | That the Microdata matches visible content or policy | Verify exposed values come from content attributes, links, media sources, or text content the system reads |
| Focused property warnings | Missing properties for explicit supported profiles; warnings are profile-specific, not eligibility-specific | That a search engine will reject the page | Treat warnings as a template-fix list and consult the linked rule set before editing |
Reading the output layer by layer keeps the run small. Each layer answers one concrete question, and each missing layer points to a different kind of source-template fix. The Microdata view follows the rules in the WHATWG HTML Microdata specification, including how itemscope, itemtype, and itemprop relate to ordinary HTML.
Parse errors first, profile warnings second
Parse errors block interpretation because they prevent the malformed script from becoming evidence. The checker reports them separately, but they still belong at the top of the fix list. A single unescaped character can hide every valid property inside the same script, and a partial object can mislead a review of an unrelated item. Fix parse errors first, re-run extraction, then review the property view.
Profile warnings come second because they presume a structured payload. A warning means the local profile did not find a property for an explicit, inspectable rule; it does not mean the page will be rejected. A required property for one search feature may be optional for another, and a Schema.org property that is not part of a Google feature can still be meaningful to other consumers. The checker therefore separates parse errors, missing focused properties, and informational observations, and surfaces each with its own evidence. Fewer complete and truthful properties are preferable to a large object filled with generic or fabricated values, which is itself a planning reminder: do not add fields merely to silence a warning.
Closing the loop with the deployed URL
The checker reports facts about pasted markup. Eligibility also depends on visible content, feature-specific policy, deployment, indexing, and the search engine's own decisions. After making a change, validate the public URL with the official validator for the search feature you actually target. Google's introduction to structured data lists JSON-LD as the generally recommended format for many features, but Microdata and RDFa are also documented where supported; this tool extracts JSON-LD and Microdata only, so an RDFa-only page will show nothing for a reason unrelated to the absence of structured data.
Search engines decide whether and when enhanced presentation appears. No local checker can guarantee indexing, ranking, or a rich result. Treat the run as a transparent preflight: paste authorized HTML, inspect every extracted item, resolve parse errors first, review profile warnings against the linked documentation, and only then verify the deployed response. The plan ends when the source template is fixed, the deployed URL is validated with the feature-specific official tool, and the corrected template is re-tested across representative records.
Related reading: Barcode Generator on Android: Run It in Your Browser.