Schema.org structured data — a practical guide for Drupal
Structured data is a machine-readable layer added to a page — it changes nothing visible to the user, but tells search engines and AI systems precisely what they are looking at.
Search engines read HTML, but HTML does not always say enough. Text may describe a product, service, article, person or event — but the HTML structure alone may not make this clear. Structured data solves this problem.
What structured data is
Structured data is additional information added to a page in a machine-readable format — typically as JSON-LD inside a <script type="application/ld+json"> block. It is not visible to the user but is readable by search engines and AI agents.
Schema.org is a collection of schemas jointly supported by Google, Bing and Yahoo. Common types:
Organization— organisation details, contact information, location;Article— a news article or blog post;Product— a product with price, availability and reviews;Service— a service with description and provider;BreadcrumbList— breadcrumb navigation;FAQPage— questions and answers;WebApplication— a web-based application.
Why it matters
Google rich results: A product with price and availability in search results, an article with date and author name and image, an FAQ block that expands directly in search results — all of these require structured data.
AI agents: Conversational assistants and AI search engines (Google AI Overviews, Bing Copilot, Perplexity) use structured data to understand content context. A Service page with price, area and description gives AI a more accurate basis for generating a response.
Click-through rate: Search listings with rich results (stars, price, image) receive more clicks.
Common mistakes
Wrong type. A service page marked as Article because it was simpler to add. This is not penalised strictly, but it brings no benefit.
Incomplete fields. A Product type without a price does not give Google enough information for rich results.
Markup that does not match the page. The page text describes one thing, the JSON-LD describes another. Google prefers markup that matches the actual content of the page.
Only the homepage is marked up. Each page type needs its own markup — service pages, articles, products.
In Drupal
Drupal has modules for managing JSON-LD and structured data, but they require configuration aligned with the site's content model. A better approach is to generate structured data directly from content fields, rather than adding it manually.
On our own site, JSON-LD is generated automatically for each page type in the generator — service pages, blog articles, case studies and the homepage all receive the correct schema. The Drupal platform assessment checks whether structured data is present on the public page.
Kaido Toomingas
WebPro Company OÜ
Need Drupal help?
If the article describes your situation, you do not have to read everything first. A real person will help you choose the next step.