Short answer: Structured data (usually JSON-LD) is a small block in your page that says in a standard format what you are and what you offer. Add an Organization (or LocalBusiness) block to your homepage, Product or SoftwareApplication with a real price on offer pages, and FAQPage where you answer questions. It has to match the visible page and be valid JSON: a single trailing comma can make the whole block unreadable. It does not guarantee a mention anywhere, but it removes guesswork. Unvibe checks that yours parses and describes your business.
What structured data is
A web page is written for people. A sentence like “From $19 a month” is obvious to a reader and only likely to be understood by a machine. Structured data states the same fact in a form with no ambiguity: this is an offer, the price is 19, the currency is USD. The common format is JSON-LD, a block of JSON placed in a <script type="application/ld+json"> tag. It sits in the page source, so a crawler that does not run JavaScript still receives it, as long as it is in the HTML the server sends.
Which types to add
| Page | Type | What it states |
|---|---|---|
| Homepage | Organization or LocalBusiness | Name, website, logo, contact email, and for a local business the address and opening hours |
| What you sell | Product, Service or SoftwareApplication | Name, description and an offers block with price and currency |
| A page of questions | FAQPage | Each question with its answer, as written on the page |
| An article | Article | Headline, dates and author |
An example for an app
Replace every value with what your own page says:
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Example App",
"applicationCategory": "BusinessApplication",
"description": "Invoicing software for freelancers.",
"offers": {
"@type": "Offer",
"price": "12",
"priceCurrency": "USD"
}
}
An example for a local business
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Example Bakery",
"url": "https://example.com",
"telephone": "+1-555-0100",
"openingHours": "Mo-Sa 08:00-17:00",
"address": {
"@type": "PostalAddress",
"streetAddress": "1 Example Street",
"addressLocality": "Exampleville"
}
}
Use the real address only if it is already public on your site. If you work from home or do not want your address shown, leave it out: structured data should never publish more than the page does.
The mistakes that make it useless
- It disagrees with the page. The block says $19 and the page says $24. Machines that find two answers may trust neither. Update both in the same edit.
- It is invalid. A trailing comma, a missing quote or a curly quote pasted from a document breaks the whole block, and nothing warns you. Paste it into a JSON validator.
- It describes things that are not on the page. Reviews, ratings or awards that visitors cannot see do not belong in it.
- It is added by JavaScript only. If it is injected in the browser, a crawler that reads raw HTML never sees it. Put it in the HTML itself.
- Generic values. A name of “My Website” or a description copied from a template says nothing.
What to expect
Structured data helps search engines and AI tools understand a page quickly and consistently. It is not a ranking switch, and no tool can promise that adding it will get you recommended. Think of it as removing a source of mistakes: with it, a machine does not have to infer your price or your category from prose. It works best next to a clear headline and readable text, which we cover in How to write a homepage headline AI can understand and How to make your prices readable to AI.
Where Unvibe fits
Writing the block is the easy part. Keeping it valid and in step with the page is where it usually goes wrong, so that is what Unvibe checks.
Structured data, checked on your live site
- Valid or not: reads the JSON-LD in the HTML your server sends and tells you if it fails to parse.
- Describes the business: flags blocks that are missing, generic or about something else.
- Matches the page: compares what the block says with what the page says, such as the price.
- Fixes you can paste: each finding comes with the change and how the next checkup will confirm it.
Details of every check are in the checkup docs.
Questions
Is JSON-LD better than other structured data formats?
It is the format search engines recommend, and it is the easiest to maintain because it sits in one block rather than being mixed into your page markup.
Will structured data get me a mention in ChatGPT?
No tool can promise that. It makes your facts unambiguous for anything that reads them, which removes one reason to get them wrong.
Do I need it on every page?
Put an Organization or LocalBusiness block on the homepage and the right type on each page that is about something specific, such as a product or a list of questions.