Skip to content
codecollab.pl
§ Blog structured data

Schema.org structured data - explained in plain language

Your site speaks to a human through images and layout, and to a machine it has to say the same thing outright - that is exactly what structured data is for

Krystian Kacik 10 min read
Contents

Your site speaks to a human through images and layout, and to a machine it has to say the same thing outright - that is exactly what structured data is for. You look at a page and know in a second that it is a building firm from Krakow, that the phone number is at the top, and that the figure next to the button is the price of a service, not the year the company was founded. A robot sees only text and markup. Structured data is a description added to the page, invisible to visitors, in a format a machine reads unambiguously: this is a company, this is its address, this is an article, this is a product, and this is its price and availability.

The standard it is written in is called schema.org - a shared vocabulary agreed by the search engines. The default way to write it today is JSON-LD: a small block of data in the page’s code, separate from the content, so you cannot break the layout with it. It is one of those technical layers worth sorting out while tidying up SEO and AI visibility, rather than treating as a separate project.

Which structured data types make sense for a small company

There are hundreds of types in schema.org. In practice a small company or store uses a handful, and those are the only ones worth fighting for:

  1. LocalBusiness or Organization - the company card: name, address, phone, opening hours, social profiles. LocalBusiness when you have a physical address and serve the local area; Organization when you work remotely across the country
  2. Article - for blog posts: title, author, publication and update date
  3. BreadcrumbList - the navigation path, that is “Home > Services > Bathroom renovations”. The simplest and most rewarding markup, because Google happily shows that path instead of a raw URL
  4. Product - in a store: name, description, price, currency, availability. The most “profitable” type, because price and availability information can genuinely change how the result looks
  5. FAQPage - a questions and answers section described so a machine knows where the question ends and the answer begins. Today it does a job only for AI systems, because in search itself it no longer produces anything visible - I come back to that below
  6. Review and AggregateRating - reviews and an average score

I will stop longer on the last point, because it is the only place in this whole topic where you can genuinely hurt yourself. Marking up reviews that are not on the site, or drawing yourself an average score out of thin air, is a short road to a manual penalty from Google for structured data spam. The effect: not only the stars disappear but trust in the whole domain, and unwinding it takes weeks. If you do not collect reviews - simply do not mark them up at all.

Why bother now that Google has turned the tap down

Honestly: structured data is not a machine for stars in the results. In 2023 Google withdrew rich results for step-by-step instructions and narrowed expandable questions and answers to a small group of government and health sites. In May 2026 it closed the matter: FAQ no longer appears in results for anyone, and support for it is disappearing from Search Console and the testing tool in turn. The markup itself stays valid and Google still reads it - you simply will not see a trace of it in search. Anyone who implemented schema purely to take up more space in the results has a right to feel disappointed.

That does not mean the topic is dead. What changed is what you do it for:

  • Rich results where they still work - breadcrumbs, and product prices and availability. Separately it is worth marking up your company details: they do not trigger any extra element in the results, but they feed the knowledge panel, meaning what Google knows about your company
  • Comprehensibility for AI systems - ChatGPT, Perplexity and AI overviews assemble an answer from what they managed to understand. An unambiguous description of your company and content reduces the risk of a model getting your prices or your city wrong. I set that out at length in the piece on SEO for AI, and a related tool from the same shelf is the llms.txt file
  • A consistent description of the company across the web - the same name, the same address and phone given machine-readably on the site, in the Google business profile and in directories. That is the foundation of local credibility

Put plainly: schema is not a lever, it is hygiene. On its own it will not push you to first place. Its absence, though, can cost you - when a competitor’s result carries a price and availability and yours is a bare line of text.

How to implement structured data without a developer

In WordPress most of the work is done by an SEO plugin. The popular ones automatically generate the basic set - Organization or LocalBusiness, Article on posts, BreadcrumbList, and with WooCommerce also Product with price and availability pulled straight from the product page. The pricing model is usually such that the free version covers the basics and the paid one adds niche items. Your job comes down to one thing: go into the settings and fill in the company details honestly instead of leaving the example fields.

On bespoke sites outside WordPress the markup is written by hand in the template - once, in one place, with the data substituted from the content. That is a job measured in hours, not days, and I usually do it alongside other technical work.

There is one overriding rule with no exceptions: schema must describe what is really on the page. You mark up an FAQ - those questions and answers have to be visible to the user. You mark up a price - it has to match the one on the product page. Structured data is not a place for promises, only for repeating facts in another language.

What helps: before you add anything, check what your site already sends - on many sites I take over there are three overlapping sets of markup left by successive plugins and themes, contradicting each other and pointing at services that no longer exist. Sorting out that mess gives you more than adding another type on top.

How to check whether it works

Three tools, all free, in this order:

  1. Google’s Rich Results Test - you paste in the page address and see which types Google recognised and whether they qualify for rich results. That is the practical test: it shows what Google specifically sees
  2. The schema.org validator - checks correctness against the standard itself, including types Google does not use for rich results. Useful when the first test says nothing and you want to know whether the code is fine
  3. Search Console, the Enhancements section - the only source showing the state of the whole site over time rather than a single page. This is where errors come out that do not occur on the home page but break on product pages

A warning on the first point: “eligible for rich results” only means the code is correct. Google decides whether and when it shows anything. Correct markup is a necessary condition, not a guarantee.

The typical mistakes I see most often

  • Data that does not match the visible content - most often an FAQ marked up in code that is not on the page, because the plugin generated it from a settings field. Google treats that as an attempt at deception
  • Prices and opening hours nobody updates - the increase went into the price list but not into the markup. A year later the page says one thing and the search engine shows another
  • A company from another city - a classic after a move or after copying a configuration from an old project. The markup gives the old address and wrecks all local visibility
  • Several competing sets at once - the theme adds its own, the SEO plugin its own, the reviews plugin a third. The machine gets three different answers to the same question
  • Marking every page as the company home page - then no single address has a sensible description

The common denominator is always the same: somebody implemented it once and never looked again. Structured data is an element that ages along with the content - which is why it falls within an ordinary technical review, alongside everything that makes up a decent SEO audit.

Where to start

Not with the schema.org documentation - that is reading for evenings you do not have. Start by checking what the site sends today and comparing it with reality: is the address current, do the prices match, are there marked-up reviews you do not actually collect. If you want somebody to do that review for you - you send a link and I come back with a list of what is there, what is missing and what is genuinely worth fixing. Free, and with no stories about miracles structured data does not perform.

Frequently asked questions

Does structured data improve Google rankings? Not directly - it is not a ranking factor. It affects how the result looks and whether it is comprehensible to the search engine and to AI systems, and that translates into clicks. Treat it as technical hygiene, not as a lever on position.

Is an SEO plugin enough, or do I need to write code? On a typical company site or WooCommerce store a plugin covers the basics: company details, articles, breadcrumbs, products. Code is written by hand on bespoke sites or for unusual content types the plugin does not support.

Why is my FAQ not showing in the results? Because since May 2026 Google no longer shows expandable questions and answers to anyone - before that, from 2023, they were narrowed to government and health sites, and now they have gone from there too. Correct markup still makes sense because it tidies the content up for AI systems, but you will not see a trace of it in search itself.

Can I add star ratings if customers praise me in emails? No. You may only mark up reviews that are genuinely published and visible on the site. Invented ratings are the most common reason for a manual penalty for structured data spam - and such a penalty is sometimes applied to the whole site, not just one page, and then everything loses visibility.


Want your company to show up in Google and in ChatGPT answers? I work on technical SEO and AI visibility from the code side, not the reporting side. Tell me which questions matter to you and I will quote it.

§ Quote in 24h

Facing a similar problem and not sure where to start?

Describe the scope in two sentences or send a link. I tell you what to fix first, and you get a fixed bid in writing within 24 hours - no "from X" pricing.

Send your scope - quote in 24h