By JaySeptember 2026
Back on the Open Side
How to Make Your Website Visible to AI and How We Keep Our Own Blog Readable to AI Agents were both about being read openly. The One Page We Didn't Make Agent-Friendly drew a single deliberate exception. The Standards Aren't Written Yet closed by naming exactly what was coming next in this series: structured data. Here it is, live today, and it's about as literal as "being read" gets: structured data that hands an agent the facts about us directly, instead of making it infer them from prose.
What schema.org actually is
Not a meta tag, and not specific to any one AI company. schema.org is a shared vocabulary, maintained jointly by Google, Microsoft, Yahoo, and Yandex since 2011, for describing things on a page in a structured, typed way: an Organization, a BlogPosting, a Product, a Review. Expressed as JSON-LD, it sits in a single <script> tag in the page's <head>, entirely separate from the visible HTML - nothing about how the page looks or reads changes.
Here's the exact block now live on our homepage:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "addAI.dev",
"url": "https://addai.dev/",
"logo": "https://addai.dev/assets/icon/mark-512.png",
"description": "One task automated, no dev team required.",
"contactPoint": {
"@type": "ContactPoint",
"email": "[email protected]",
"contactType": "customer service"
}
}
</script>
An agent that wants to know what we do, or how to reach us, doesn't need to parse a sentence to find out. It's a typed field, not a guess.
Every post gets one too
The blog posts carry their own type, BlogPosting, with the specifics that matter for a single article rather than the whole site:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "The One Page We Didn't Make Agent-Friendly",
"datePublished": "2026-09-13",
"author": { "@type": "Person", "name": "Jay" },
"publisher": { "@type": "Organization", "name": "addAI.dev" }
}
datePublished is the actual date each post's HTML file first landed in git, not a rounded-off "September 2026" - if a byline states the real ship date, the machine-readable version of the same fact should match it.
Why this matters more than it looks like it should
This isn't a ranking play, the same caveat we've made about every layer in this series. What it changes is precision. A crawler reading plain HTML has to infer that "Jay" in a byline is the author, that "September 2026" is a publish date, that the business described in paragraph three is the same one the domain belongs to. Structured data doesn't ask it to infer any of that - the type system says so directly.
A crawler reading plain HTML has to infer who the author is, when something published, what business a domain belongs to. Structured data doesn't ask it to infer any of that.
It also rides along for free once real content negotiation is built: per Cloudflare's own docs, their Markdown-for-Agents conversion preserves a page's JSON-LD in a fenced code block rather than dropping it. Add the structured data once, and it survives every future format the page gets served in.
Everything on this list so far - named bot rules, a sitemap, Content Signals, a Markdown twin, now structured data - is the same argument from a different angle: being read isn't passive. It's a series of decisions about what a machine gets to understand cleanly versus what it has to guess at.
It's also the kind of groundwork we add to a client's site directly: no redesign, just making the facts already sitting in the page something a machine can act on instead of guess at.