A page can look finished and still be unreadable to a machine. The text says "Prostor builds websites for real estate developers," but nothing on the page tells a crawler that Prostor is an organization, that "website" is the service, or that the sentence is a description rather than a customer quote. Structured data closes that gap. It is worth understanding on its own, past the general case for AI visibility we made in how we make websites visible to ChatGPT and AI search — this article is about the mechanism itself.
What JSON-LD actually is
JSON-LD stands for JSON for Linking Data. It is a block of JSON,
ordinary key-value data, wrapped in a script tag with the type
application/ld+json and placed inside the page's HTML. The browser
does not render it, does not style it, does not show it to anyone
scrolling the page. A crawler parses it separately from the visible
content and reads it as a set of labeled facts.
A minimal example, in words rather than code: a business page might
carry a JSON-LD block that states its type is Organization, its name
is "Prostor," its website is prostor-agency.com, and its logo is at
a given URL. None of that text appears anywhere on the rendered page.
It is a parallel, machine-facing description of the same page a
person is reading.
How it differs from the visible text
Visible text is written for people and read for tone, argument and persuasion. A search engine or an AI model can extract meaning from it too, but only by inference: guessing that a heading is a product name, that a number near a currency symbol is a price, that a question-shaped paragraph is an FAQ entry. Inference is unreliable and gets more unreliable as page design gets more creative.
JSON-LD removes the guessing. Instead of a heading that might be a
product name, there is a field literally called name inside a block
literally typed Product. Instead of hoping a crawler notices a
phone number in the footer, there is a telephone field inside an
Organization block. The visible page and the JSON-LD block usually
describe the same facts, but the JSON-LD block states them in a
vocabulary the machine already knows, rather than one it has to
reconstruct from formatting and context.
The schema.org types that matter for a business site
Schema.org is the shared vocabulary behind JSON-LD: a maintained list of types (Organization, Product, Article, Event and hundreds more) and the fields each one is expected to carry. Google, Bing and most AI crawlers read it because it is the same vocabulary across the entire web, not something each site invents on its own. A handful of types cover most of what a B2B or e-commerce site needs.
Organization identifies who runs the site: legal name, logo, links to social profiles, contact details. It belongs on every page, usually injected once in a shared layout, and it is the anchor everything else attaches to.
Product describes something for sale: name, price, availability, reviews. On an e-commerce catalogue this is what lets a price or a star rating show up directly in search results, instead of a plain blue link.
FAQPage marks a genuine list of questions and answers as exactly that, question by question. Search engines can render these as expandable answers directly in results, and AI assistants can lift a single answer without reading the whole page.
BreadcrumbList describes where a page sits in the site's hierarchy: home, then category, then this page. It helps a crawler understand site structure faster than following links to work it out.
LocalBusiness extends Organization with a physical dimension: address, service area, opening hours. It matters for any business that serves a defined region or has a location people visit, and it is what location-aware search and map results key off.
How crawlers actually read it
A search engine or AI crawler fetches the page, parses the HTML, and
pulls out any application/ld+json blocks alongside the visible
content. It does not need to interpret layout or design to get the
facts: type, name, price, question, answer are already labeled.
That is why structured data pairs so directly with the case we made
for AI search visibility — an AI
assistant assembling an answer from several sites favors the ones
where the facts are already extracted, over ones where it has to read
paragraphs and guess.
This is also why structured data has to match the visible page. Search engines treat markup that contradicts what a visitor actually sees as a signal to distrust, sometimes to penalize. The JSON-LD block is a translation of the page, not a separate story.
Getting this right on a website
Structured data is not a plugin bolted on afterward, it is generated from the same data that renders the page, so the two can never drift apart. Every site we build carries Organization markup site-wide and the relevant Product, FAQPage, BreadcrumbList or LocalBusiness blocks per page type, as part of how we build websites, with no separate line item for it.

