Structured data for founders: the three JSON-LD blocks worth shipping
Most schema advice is written for SEO agencies with time to burn. Here are the three blocks that matter for a small product site, and the ones to skip.
Your homepage says what your product does, in English, wrapped in layout. A human gets it in two seconds. A machine sees a div soup and guesses.
Structured data is how you stop making machines guess. It's a small <script type="application/ld+json"> block in your page's HTML, holding plain JSON that states the facts: this is a software product, it's called X, it costs Y, it's made by Z. Google reads it to build rich results. AI systems read it to figure out what entity you are. It's the difference between being mentioned on the web and being understood by it.
The schema.org vocabulary has over 800 types, and most schema guides happily tour all of them. You're one person. You need three.
The three that matter
- 1
Organization + WebSite, on your homepage
This establishes you as an entity: name, URL, logo. It's how machines disambiguate you from every similarly-named thing on the internet. If your product name is one typo away from someone else's, this block is doing real work.
- 2
SoftwareApplication, on your homepage or pricing page
The big one for a SaaS. It declares your category, your platform, and critically your price. When an assistant answers "how much does X cost," this is the machine-readable answer you control.
- 3
Article or BlogPosting, on every blog post
Headline, description, publish date, author. This is what makes your posts eligible for rich results, and it tells AI systems your content is dated, attributed, and structured rather than anonymous text.
Here's a SoftwareApplication block, whole and unabridged, because seeing one demystifies the entire topic:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "YourProduct",
"applicationCategory": "BusinessApplication",
"operatingSystem": "Web",
"description": "One sentence on what it does and for whom.",
"offers": {
"@type": "Offer",
"price": "9.00",
"priceCurrency": "USD"
}
}
</script>
That's it. JSON, in a script tag, stating facts. No build step, no plugin, no agency.
What it won't do
The goal isn't to rank higher. It's to make sure that when machines talk about you, they get the facts right.
Ship it and check it
- ✓Organization + WebSite JSON-LD on the homepage
- ✓SoftwareApplication with a real price in the offers block
- ✓BlogPosting on each post, with dates that match the visible page
- ✓Validated with Google's Rich Results Test and the schema.org validator
- ✓Facts kept in sync, because stale schema feeds machines wrong answers
- ✕FAQ schema, product carousels, or anything you saw on an enterprise SEO blog
The validators are free and take thirty seconds per page. Paste your URL, fix what's flagged, done. The whole job, all three blocks, is an evening.
The part that connects to everything else
Structured data is one half of being machine-legible. The other half is whether machines actually come and read it. A perfect JSON-LD block on a page no crawler visits is a love letter in a drawer.
That's the half usrPeek covers: it shows you, server-side, which crawlers and AI bots are reading which pages. Ship the schema, then watch whether Googlebot and the AI crawlers come pick it up. When you can see GPTBot hit the pricing page that carries your offer data, you know the facts you wrote are the facts being read.
See what your visitors actually do
usrPeek is dead-simple analytics for solo founders. One script tag for visitor journeys, auto-tracked clicks, AI traffic, and a daily email. No bolt-on cookie tooling.
Start for free