We create digital solutions that work for businesses
You have seen search results with star ratings, product prices or questions that expand in place. That is structured data — code that tells Google what exactly is on the page.
One clarification up front: markup does not lift rankings. It changes how your result looks once it is already there. But appearance drives click-through, and that affects everything downstream.
Google reads the page text but cannot always tell what is what. Is 4,500 a price, a stock count or a founding year? Markup states it outright.
The practical result looks like this:
| Type | What appears in results |
| Product | Price, availability, product rating |
| FAQPage | Questions that expand inside the result |
| BreadcrumbList | A readable path instead of a long URL |
| LocalBusiness | Address, phone and hours in local results |
| Article | Author, date and image in news blocks |
The FAQ block deserves a separate mention: it occupies more space in results and physically pushes competitors further down.
You do not need to mark up everything. In order of value:
name is required, but without logo, url and sameAs there is little benefit: those tie the site to your social profiles.name and address; for local results add telephone, openingHours and coordinates.You can assemble the code with the markup generator and then check it with the validator. The pair works together: build it, then confirm there are no errors.
This is the important part, because the penalty applies site-wide rather than to one page.
Data that contradicts the page. The markup says 500, the page says 900. That counts as deception. The core rule: every value in the code must be visible to a person on the page.
A rating with no reviews. An AggregateRating block on a page with no reviews at all. The most common trigger for a manual action — and the most tempting mistake, because stars look attractive in results.
FAQ with no answers on the page. The questions exist only in the code and not in the text. Google checks this.
Marking up content that is not yours. Describing a product that is not on the page, or someone else's reviews.
Beyond the content issues there are purely technical ones — and they fail silently: the markup simply does not work, and without a check it is hard to see why.
@context — the block is not tied to the schema.org vocabulary and goes unrecognised.2026-01-15, not 15/01/2026.There is one more reason that has come up recently. Language models read pages and must also work out what is on them. Structured data states it directly, so the model does not have to infer it from the markup.
How much this affects citation nobody can say precisely yet. But markup is needed for search regardless, so treat it as a welcome side effect rather than a reason in itself.
Markup is about how your result looks and how many people click, not about rankings. Start with Organization and BreadcrumbList, add the rest as needed. One rule above all: the code should contain only what a person can see on the page.
Let’s create something amazing together