Key takeaways
- Structured data explicitly describes what the text only implies: company, service, product, author or date.
- Google and Bing use it to understand pages, and both feed assistants such as AI Overviews, Gemini, Copilot and ChatGPT Search.
- The priority is organisation markup, followed by services or products, articles and breadcrumbs, all connected through identifiers.
- Markup must come from the same data the page displays; otherwise it is ignored or may be treated as spam.
What is structured data?
Structured data is a block of code, usually in JSON-LD format, that describes the content of a page using the shared Schema.org vocabulary. The search engine does not have to infer that a text is about a consultancy based in Madrid, because it reads it explicitly.
Google recommends JSON-LD because it sits in a block separate from the visible HTML. It is easier to maintain than Microdata or RDFa, which require attributes to be mixed into the template markup and break with any redesign.
Schema.org defines hundreds of types, but search engines only use a fraction of them. Working with sound judgement means choosing the types that describe the business and keeping them aligned with what each page shows.
Why does structured data matter for AI search engines?
Assistants combine what they learned during training with results retrieved in real time from a search index. In that second route, markup helps the index interpret each page: who publishes it, what it is about and when it was last updated.
There is no public evidence that models read JSON-LD when drafting an answer. Its value is indirect. It consolidates the brand entity, disambiguates similar names and supplies precise data, such as dates, prices or authors, that the system can cross-check against other pages.
Microsoft has stated publicly that Schema markup helps Bing interpret the content that Copilot later uses. Google feeds AI Overviews and AI Mode from its regular index. Whatever improves the understanding of a page in classic search also counts in those features. The same applies to the loading speed we analyse in Core Web Vitals and conversion.
Google's documentation on AI features states that there are no additional requirements or special markup needed to appear in AI Overviews or AI Mode. It does, however, recommend that structured data match the visible content of the page.
Which markup should you prioritise?
The order we follow in our projects starts from the company's identity and works down to the content. Organization and WebSite come first, on the home page. Next come Service or Product on commercial pages, BlogPosting with an author on articles and BreadcrumbList across the whole site. The rest depends on the business model.
| Type | Where | Main properties | Priority |
|---|---|---|---|
| Organization | Home page | name, legalName, url, logo, sameAs, contactPoint | High |
| WebSite | Home page | name, url, publisher | High |
| Service / Product | Service or product pages | name, description, provider, offers | High |
| BlogPosting | Articles | headline, author, datePublished, dateModified | High |
| Person | Authors | name, jobTitle, worksFor, sameAs | Medium |
| BreadcrumbList | Internal pages | itemListElement | Medium |
| LocalBusiness | Businesses with physical premises | address, geo, openingHoursSpecification | Medium |
| FAQPage | Pages with genuine questions | mainEntity | Low |
Organization: the foundation of the entity
It defines the official name, logo, website and contact details. The sameAs property links the website to LinkedIn, Crunchbase, Wikidata or other reference profiles. It brings every mention of the brand together into a single entity, so the media coverage earned through digital PR points to the same company.
It is also worth declaring legalName when the registered company name differs from the trading name. This is very common with Spanish limited companies (S.L.).
Services and products
They describe what is sold, to whom and, if published, at what price. In ecommerce, product markup with its offer enables rich results showing price, availability and ratings. For shops selling in Europe, the price in the markup must be the same one the user sees, including VAT and with the currency declared.
In large catalogues, product markup performs better on top of a well-designed category architecture for online shops. Breadcrumbs and categories then describe the same hierarchy.
Articles and authors
Author, publication date and update date. Assistants favour recent information, and a full date in ISO 8601 format prevents updated content from being read as old. The author is declared as a Person with a job title and external profiles, which ties in with the company's content and brand strategy.
FAQs
Since August 2023, Google has only shown FAQ rich results for well-known, authoritative government and health websites. That same year it retired HowTo results. The markup is still valid for describing the page, but it is not worth implementing in the hope of a rich snippet.
How to connect entities with @id
The most common design flaw is treating each block as an island. If the home page declares one organisation, every article repeats another with different details and the service pages reference none, the search engine receives three versions of the company.
The solution is a graph. The organisation is defined once with a stable identifier, usually the home page URL followed by #organization. Every other block references it through that @id as publisher, provider or the author's employer.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://www.example.com/#organization",
"name": "Example Consulting",
"legalName": "Example Consulting S.L.",
"url": "https://www.example.com/",
"logo": "https://www.example.com/logo.svg",
"sameAs": [
"https://www.linkedin.com/company/example",
"https://www.wikidata.org/wiki/Q000000"
]
},
{
"@type": "BlogPosting",
"headline": "Article title",
"datePublished": "2026-09-10",
"dateModified": "2026-09-16",
"author": {
"@type": "Person",
"name": "First Last",
"jobTitle": "Head of Strategy",
"worksFor": { "@id": "https://www.example.com/#organization" }
},
"publisher": { "@id": "https://www.example.com/#organization" }
}
]
}
With this structure, the author is linked to the company and the company to its external profiles. Changing the logo or adding a profile means editing a single block.
On multilingual websites, which are common among companies selling in several European countries, the organisation's @id must be the same across all versions. What changes between languages is the text and the inLanguage property of each page.
How do you implement structured data step by step?
Implementation happens at template level, not page by page. It involves auditing the templates, defining the graph, generating the markup from the CMS, validating it before publishing and monitoring it in Search Console. On a mid-sized corporate site it is usually done in one or two development cycles, without redesigning anything.
- Inventory the site's templates: home page, services, products, articles, authors and contact.
- Define a single organisation block with an
@idand decide which type corresponds to each template. - Generate the JSON-LD from the same CMS fields that are displayed on screen, never by hand.
- Disable any automatic markup from plugins or themes that duplicates what has already been defined.
- Validate each template with Google's Rich Results Test and the Schema.org validator.
- Review the Search Console enhancement reports after each deployment and over the following weeks.
The third step prevents the most problems. When the price, date or author come from the same field that is rendered on the page, the markup never falls out of line with the content. That is why we build it into the template from day one in our web development projects.
What are the most common errors?
In the audits we carry out, the same faults recur with little variation. Markup is almost never missing altogether. What we usually find are duplicate blocks, dates that do not add up or properties that describe something different from what the user sees. The table lists the most common cases, their effect and the fix we apply.
| Error | What it causes | Fix |
|---|---|---|
| Two Organization blocks, one from the SEO plugin and one from the theme | Contradictory data about the company | Disable one and keep a single @id |
| dateModified changing on every build | Every page looks freshly updated and the date loses its value | Update the date only when the content changes |
| Price excluding VAT in the markup and including VAT on the page | Discrepancies in Merchant Center and warnings in Search Console | Take the price from the same field that is displayed |
| Self-serving ratings on Organization or LocalBusiness | Since 2019, Google has not shown review stars for reviews a business publishes about itself | Remove aggregateRating from corporate pages |
| sameAs pointing to abandoned or unrelated profiles | Separate entities get merged | Review the links once a year |
| FAQPage with hidden answers | Markup ignored and risk of a manual action | Mark up only questions that are visible on the page |
The date issue deserves particular attention on static websites and site generators. If the modification date is taken from the build time, every deployment updates all pages at once. The search engine then learns not to trust that data.
How to check whether the markup works
Technical validation and the effect on visibility are measured separately. The Rich Results Test confirms that Google can read the markup and whether the page is eligible for any special result. The Schema.org validator also checks types that Google does not turn into rich results, such as Service.
- Errors and warnings in the Search Console enhancement reports.
- Correct site name and logo in Google results.
- Details in the brand's knowledge panel, if there is one.
- Answers from ChatGPT, Gemini, Copilot and Perplexity to questions about the company and its services.
There is still no standard tool for tracking visibility in assistants. The practical approach is to set a list of questions about the brand, run it every month and record whether the company is described accurately. We cover that part in our AI SEO projects, alongside classic SEO work.
Where to start
If the site has no markup, the first task is a complete Organization block on the home page, with an @id, logo and profiles in sameAs. It is a short piece of work and lays the foundation for everything else.
Next, add BlogPosting with an author on articles and Service or Product on commercial pages, generated from the template. If markup already exists, the order changes: first remove duplicates and misaligned data, and only then add further types. The other factors that influence citations are covered in the guide to SEO for AI search engines.
Frequently asked questions
Does structured data improve rankings on Google?
It is not a direct ranking factor. It helps Google understand the page and enables rich results, such as prices or breadcrumbs, which tend to improve click-through rate. In AI search engines its effect is also indirect, through a better-defined brand entity.
Which format should you use: JSON-LD, Microdata or RDFa?
JSON-LD. It is the format Google recommends, it is written in a block separate from the visible HTML and it is easy to generate from templates. Microdata and RDFa are still valid, but they require attributes to be mixed into the design and break more often during redesigns.
Do you need special markup to appear in AI Overviews?
No. Google states that there are no additional requirements for the AI features in its search engine. The conditions are the same as for organic results: an indexable page, useful content and markup that is consistent with what the user sees.
How often should the markup on a website be reviewed?
After every template or CMS change, with a general review every three to six months. Search Console flags new errors, but it does not detect misaligned data, such as an outdated price or an abandoned external profile that is still linked from the organisation.



