A search result has long stopped being just a title, an address and two lines of description. Opening hours, review stars, breadcrumb trails, expandable questions or the publication date of an article do not come from the running text of a page. They come from an additional, machine-readable layer: structured data. This article explains what that markup can achieve and what it cannot, which types belong to which page type, which details have to line up with each other, why marked-up content also needs to be visible on the page, and how to check the result before publishing.
What structured data does — and what it does not
Structured data is, at its core, a translation exercise. A person reading a service page understands that a company installs solar systems in the Hildesheim region, is reachable on weekdays from eight to five and works within a certain price range. A program initially reads nothing but a sequence of words. Markup puts those same details into a fixed schema and labels them: this is the company name, this is the postal address, these are the opening hours, this is a service on offer. The practice is now widespread. In the analysis published by the Google Web Almanac on the basis of the HTTP Archive, around 41 percent (Google Web Almanac, Structured Data chapter) of the mobile pages examined shipped JSON-LD markup, and around 26 percent (Google Web Almanac, Structured Data chapter) used microdata inside the markup itself. The underlying vocabulary offers more than 800 types (schema.org vocabulary), far more than any single company will ever need, since in practice a handful of them covers the ground.
The opposite direction matters just as much, and proposals tend to skip over it. Structured data is not a ranking factor in the narrow sense, and it replaces neither substantial content nor a sound technical basis. It does not decide whether a page is found at all; it decides whether the page is eligible for enriched result formats. Whether a search engine then actually shows such a format remains its own decision, taken afresh for every query, and there are no dependable promises to be made at this point. Marking up a slow, thin page therefore tends to produce a slow, thin page with accurately labelled metadata. The order stays the same: substance and technology first, markup second. Why the delivery model weighs more heavily than many detail optimisations is covered in the article on PageSpeed and static delivery.
JSON-LD: markup that sits beside the text
There are three notations available. Microdata and RDFa are woven directly into the HTML elements, so every detail hangs off a specific paragraph or container. JSON-LD, by contrast, sits as its own block in the head of the page and describes the content separately from the layout. JSON-LD has become the practical default for an understandable reason: the markup is decoupled from the visible HTML. A redesign, a new template or a rebuilt section does not destroy the data, because the data does not cling to individual elements. The format itself is standardised at the W3C (W3C, JSON-LD 1.1) and only defines how data is written down. Which terms are allowed and how they relate to each other is governed by the jointly maintained vocabulary. For a trade business, a block typically looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"@id": "https://example.com/#business",
"name": "Sample Electrical Ltd",
"url": "https://example.com/",
"telephone": "+49 5123 4567",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Industry Road",
"postalCode": "31185",
"addressLocality": "Hildesheim",
"addressCountry": "DE"
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
}],
"areaServed": "Hildesheim region"
}
</script>Three declarations carry the whole block. The context names the vocabulary in use, the type names the subject being described, and everything else is a property of that type. What matters is not the number of fields but how dependable they are: a record with name, address, phone number and opening hours that matches the imprint and the footer exactly is worth considerably more than a block of thirty fields, half of which were guessed. For most types the vocabulary distinguishes between required properties, without which an enriched format is ruled out from the start, and recommended properties that improve the chances of one appearing. Knowing that difference saves long discussions: if an article lacks a publication date, the markup is incomplete. If it lacks some exotic extra property, it is not.
Several types, one connected record
Which type belongs to which page type
The most common misconception is that structured data is a one-off setting for an entire website. In reality the right markup depends on the page type. A home page describes the company, a service page describes the service and the area it covers, an article describes the text with author and date, a contact page describes how to get in touch. Copying the same block across every page ends with the same company described fifty times and not a single service. Around 88 percent (Federal Statistical Office of Germany, survey on the use of information and communication technologies in enterprises) of companies in Germany run a website of their own, so the difference in search results rarely comes from having a site at all. It comes from how precisely that site describes its content. The structure of the pages therefore decides how much the markup can contribute in the first place, which is a good reason to plan structure and content together, as the overview of what XICflow offers describes. The following mapping covers the page types that appear in most business websites.
| Page type | Suitable markup | What it is needed for |
|---|---|---|
| Home page | Organization, or LocalBusiness with a local focus | Name, address, contact route, service area and opening hours as one connected record |
| Service page | Service, linked to the business offering it | The individual service is tied to a specific page instead of the company in general |
| Blog article | BlogPosting or Article | Author, publication and modification date as well as the lead image are stated unambiguously |
| FAQ section | FAQPage with Question and Answer | Questions and answers are recognisable as pairs instead of loose running text |
| Contact page | ContactPage with ContactPoint | Phone number, email address and responsibility can be read automatically |
| Every subpage | BreadcrumbList and WebPage | The position of the page within the overall structure becomes traceable |
The details have to line up with each other
Structured data is only as dependable as the details it describes. The company name in the record, in the imprint, in the footer and on the contact page should be identical, legal form and spelling included. The same applies to address, phone number and opening hours. That consistency is not a formality; it is the signal that allows a machine to check whether two mentions refer to the same company. Where the details diverge, the unfavourable outcome is two weak records for one business instead of one dependable record. Which details are legally required on the page anyway, and how to keep them maintained, is covered in the article on imprint and privacy policy. How the same master data works in local search is described in the article on visibility for businesses in their region.
- Company name identical in markup, imprint, footer and contact page — legal form included.
- Address written consistently, with street, house number, postcode, city and country as separate fields.
- Phone number in international notation, identical to the number shown in the visible text.
- Opening hours as structured time ranges, not as free text full of slashes and brackets.
- The page address stated in the markup points to exactly the page the block sits on.
- Image references point to files that are actually delivered, in a sufficient resolution.
- Author and date of an article match the byline shown above or below the text.
Contradictions weigh more than gaps
Only mark up what is actually on the page
Search engine guidelines are unambiguous on this point: only content that visitors actually find on the page may be marked up. Declaring twelve FAQ entries when three of them appear on the page breaks that basic rule. The same applies to services described nowhere, to addresses with no counterpart in the imprint and to dates that exist only in the record. Possible consequences range from the markup being quietly ignored to a manual action that suspends enriched formats for the whole domain. The visibility requirement has a practical consequence: the content belongs in a section that people can operate. An expandable FAQ section is permitted, but it has to be reachable by keyboard and report its state correctly — exactly the requirements covered in the article on accessibility under the European Accessibility Act and WCAG 2.2. Markup and accessibility pull in the same direction here: both reward content that is clearly structured and genuinely present.
Reviews deserve particular care, and not only from a search engine perspective. Since the German implementation of the European modernisation directive, Section 5b(3) of the Act against Unfair Competition (UWG) requires companies that make consumer reviews accessible to state whether and how they ensure that those reviews come from people who actually used the service. Items 23b and 23c in the annex to Section 3(3) UWG classify fake reviews and unsubstantiated authenticity claims as unfair commercial practices. For markup that means stars in a search result are not a design element but a statement of fact. Only reviews that were genuinely collected, that can be inspected on the page and whose origin is explained should be marked up. Setting an average score because it looks appealing in the result invites competition law claims on top of losing the display.
Structured data describes a page. It does not replace one.
FAQ entries, articles and reviews in detail
Three kinds of markup appear in business websites more often than any others, and all three have their own pitfalls. FAQ sections look simple but tempt teams into inventing questions nobody asks. Articles need author, date and lead image details that many editing tools only supply halfway. Reviews are legally the most delicate of the three. Publishing regularly brings a structural advantage here: every text becomes its own page with its own markup, its own date and its own subject. Whether the effort pays off for smaller companies, and what frequency is realistic, is examined in the article on blogging for small businesses. The overview below summarises what matters for each of the three types.
FAQ as question and answer pairs
Each question gets exactly one answer, and both are visible on the page. Useful questions are the ones people really ask: about the process, the cost, who is responsible and how long things take.
Articles with complete metadata
Author, publication date, last modification, lead image and headline belong in the record. Those details have to match what is shown above the text on the page itself.
Reviews only with evidence
Mark up only what can be inspected on the page and comes from a traceable collection process. Origin and verification method belong on the page as well, otherwise the requirements of the UWG apply.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does it take to install a system?",
"acceptedAnswer": {
"@type": "Answer",
"text": "For a detached house we typically plan two working days for installation and connection."
}
},
{
"@type": "Question",
"name": "Do you handle the registration with the grid operator?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. We prepare the documents and file the registration once you ask us to do so."
}
}
]
}
</script>Check it before it goes live
Structured data rarely fails spectacularly. It fails quietly: one comma too many, one field with the wrong data type, one date in the wrong format, and the whole block is discarded without anything on the page looking different. That is why validation belongs in the publishing process rather than in the category of occasional checks. It matters that the check happens in the HTML that is actually delivered, not in the preview of an editing tool. When a page is delivered statically, the markup sits unchanged in the file that visitors receive, which makes the check unambiguous. A second point concerns images: if the markup references a file, that file has to exist in the stated resolution, which makes the article on image formats and alt text worth a look. These seven steps have proven themselves as a sequence:
- Check the syntax: the block has to be valid JSON. A single stray comma renders it worthless.
- Check the vocabulary: do the type and its properties actually exist, and do they belong together? Invented field names are ignored.
- Check required properties: are the fields the type expects present and filled with plausible values?
- Compare against the page: does every marked-up detail also appear in the visible text or in an operable section?
- Compare against master data: do name, address, phone number and opening hours match the imprint and contact page?
- Inspect the delivered HTML rather than the preview, including spot checks across several page types.
- Keep watching after launch: review error reports in the search engine tools regularly, especially after a relaunch or a move.
Common mistakes in practice
- One single block is copied across all pages, so every subpage describes the same company and none describes its own content.
- Marked-up content is missing from the page, for instance questions that exist only in the record.
- Reviews are declared without a collected basis, without stating their origin and without explaining the verification method.
- Opening hours and phone numbers go stale because they are maintained separately in several places.
- The page address in the record points at the home page instead of the page the block sits on.
- Dates use the wrong format or omit the time zone, so they cannot be evaluated.
- Several contradictory blocks end up on the same page because an add-on and the template each ship their own.
- After a relaunch the references in the record still point at old paths that are only reachable through a redirect.
- The markup is forgotten during translation, so the second language version ships without a record or with the details of the source language.
The short version
How XICflow generates the markup
In XICflow the markup is not hand-written into a template; it follows from the page configuration. Every page has a type, and that type determines the matching record: the home page describes the business, a service page describes the service, an article describes the text with author and date, an FAQ section describes its question and answer pairs, and every subpage additionally carries its breadcrumb trail. The master data behind it is maintained once and feeds the footer, the contact page and the legal pages at the same time, so a changed opening hour takes effect everywhere instead of having to be tracked down in four places. Because pages are delivered statically, the block sits unchanged in the delivered file and can be inspected right there. How the path from briefing to finished site works is shown in the overview of how XICflow works, and what the result looks like across different industries can be explored in the demo websites.
- Markup per page type instead of one global block across the entire website
- Master data maintained once, consistent across record, footer, contact page and imprint
- FAQ sections build their question and answer pairs from the content that is visible on the page
- Articles with author, publication and modification date plus a lead image in a suitable resolution
- A breadcrumb trail on every subpage, derived from the actual page structure
- One record per language version, carrying the translated paths of that language
- Static delivery, so the block can be checked directly in the HTML that visitors receive
Two edge cases deserve a final mention because they are regularly overlooked in day-to-day maintenance. The first is multilingual delivery: each language version needs its own record with the translated paths and the matching language declaration, otherwise the English page describes the German content. How language versions work together cleanly is set out in the article on multilingual sites and hreflang. The second is the relaunch: when paths change, the references inside the record keep pointing at the old targets. Redirects catch the visitors, but the markup itself should be switched to the new paths. Which steps take effect in which order is described in the article on relaunching without losing rankings.