JSON-LD schema basics: what findable checks and why

Contents
  1. What does a JSON-LD block look like?
  2. Which checks cover the basics?
  3. Which types does findable validate?
  4. What are the common mistakes?
  5. Where do you go next?
  6. Key takeaways

JSON-LD tells machines what a page is. The text says "Alex Morgan wrote this on 15 October". JSON-LD says it in a form a program can read without guessing.

What does a JSON-LD block look like?

It is a script tag with a JSON object inside. The object needs a @context and a @type.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "JSON-LD schema basics",
  "author": { "@type": "Person", "name": "Alex Morgan" },
  "datePublished": "2026-10-15",
  "image": "https://example.com/cover.jpg"
}
</script>

Which checks cover the basics?

Check idWhat it testsFix
aeo_structured_dataAt least one JSON-LD block existsAdd a block
jsonld_validEvery block parses as JSONFix the syntax error
jsonld_contextEach root has a schema.org @contextAdd "@context": "https://schema.org"
schema_empty_valuesNo empty string valuesFill the field or remove it
schema_urls_absoluteurl, logo and image are absolute http(s) URLsUse the full URL

The usual cause of jsonld_valid is a trailing comma or an unescaped quote, often from a template that pastes page text into the JSON.

Which types does findable validate?

If a type is present, findable checks its required fields. If it is absent, those checks are skipped, so you are never punished for a type you do not need.

TypeWhat findable looks for
Organizationname, logo and url
Articleheadline of 110 characters or fewer, named author, valid ISO dates, an image
FAQPageeach question has a name and an answer text
Productoffers, plus a price and currency on the offers
WebSitename and url, and a SearchAction with a target and query-input
VideoObjectname, thumbnailUrl and uploadDate
BreadcrumbList2 or more positioned, named items
LocalBusinessaddress and telephone
aggregateRatinga ratingValue and a review or rating count

Pick the type that is true. Do not add Article to a product page to collect a check.

What are the common mistakes?

  1. Marking up text that is not visible on the page.
  2. Leaving a field as an empty string.
  3. Using a relative path like /logo.png for logo or image.
  4. Forgetting @context, so the block has no meaning to a parser.
  5. Copying a plugin's output for a type that does not describe your page.

Where do you go next?

FAQ markup has its own guide: FAQ schema for answer engines. The full list of AEO ids is in every AEO check.

Key takeaways

FAQ

What is JSON-LD?
JSON-LD is a block of JSON in a script tag that describes the page using schema.org terms. Machines read it so they do not have to guess what the page is about.
Where do I put the script tag?
Anywhere in the HTML is valid. The head is the usual place. findable reads every application/ld+json block it finds.
Does JSON-LD guarantee rich results?
No. It makes your page eligible and easier to read. Search engines decide what to show.
Do I need a separate block for each type?
No. You can use several blocks, one object with a @graph array, or both. findable handles each.

How does findable score a page?

FamilyWeightQuestion it asks
SEO50%Can crawlers read and index this page?
AEO25%Is it easy to lift an answer from this page?
GEO25%Does the page give a generative model a reason to cite it?

The hosted audit waits up to 10 s for a page and fetches at most 5 MB. It reads robots.txt and llms.txt up to 512 KB each.

More guides

Every findable AEO Check ID and How to Fix It
All 35 AEO checks in findable explained, from aeo_faq to aeo_summary. See what each id tests, how loose the test is and how to fix it. AEO is 25% of the score.
Canonical Tags and Duplicate Content: How to Get Them Right
Use one canonical link per page that points to its own absolute URL. Learn the checks canonical, canonical_self and canonical_absolute and fix them.
FAQ Schema for Answer Engines: Markup and Checks
How to add FAQPage JSON-LD that answer engines can lift, and how findable tests aeo_faq, aeo_faq_count and faq_valid. Includes a working example.
Get Findable in 15 Minutes: A Step by Step Checklist
Install findable, audit a page and your site, fix the top failures, then add MCP, the web UI, the API and a CI gate. Every step has a copy-paste command.
Every findable GEO Check ID, Plus AI Crawler Checks
All 27 GEO checks in findable explained, plus the unscored Site checks for GPTBot, ClaudeBot and llms.txt. GEO is 25% of the score. Fixes included.
Image Alt Text, Dimensions and Lazy Loading Explained
Fix img_alt, img_dimensions, img_alt_quality, img_lazy_loading and img_modern_format. See what each image check in findable tests and how to pass.
llms.txt: What It Is and How findable Checks It
llms.txt is a plain Markdown file at your site root that points AI tools to your key pages. See the llms-txt check and how to write the file.
How to Write a Meta Description That Passes findable
Write a meta description of 120 to 160 characters, one per page, that matches the page. See the checks desc_exists, desc_length and desc_single.
Open Graph and Twitter Cards: Fix Your Share Previews
Add og:title, og:description, og:image, og:url and twitter:card so links unfurl well. See every social check findable runs and how to pass it.
robots.txt and AI Crawlers: GPTBot, ClaudeBot, PerplexityBot
How robots.txt rules decide whether GPTBot, ClaudeBot, PerplexityBot and Google-Extended can fetch your page, and how findable tests each one.
Every findable SEO Check ID and How to Fix It
A plain guide to all 98 SEO checks in findable, from title_length to csp. See what each id tests, when it passes and the fix. SEO is 50% of your score.
SEO vs AEO vs GEO: The Difference in Plain Words
SEO, AEO and GEO each target a different reader: a search crawler, an answer box, or a generative AI model. See what wins in each and how to check them.
Why AI Answer Engines Skip Your Site and How to Fix It
ChatGPT, Perplexity and Claude may ignore your pages for five fixable reasons, from robots.txt blocks to missing answers. Learn each cause and its check id.