Official statement
Other statements from this video 2 ▾
Google rejects any structured data markup that is not visually present on the page. This rule aims to ensure consistency between what users see and what appears in rich results. In practice, if your Schema.org markup contains information that is invisible to visitors, your Rich Snippets may be disabled or trigger a manual action.
What you need to understand
What does Google mean by "hidden markup"?
Google defines hidden markup as any structured data (Schema.org, microdata, JSON-LD) that describes content visually absent from the page. A classic example is marking a product price of €49 in Schema while the page shows €69, or worse, shows no price at all.
This practice is similar to semantic cloaking. You present one reality to bots and another to users. Google sees this as an attempt to manipulate, even if technically the Schema.org is valid and well-formed.
Why does this rule exist?
Google's logic is simple: Rich Snippets enhance search results with immediately useful information (rating, price, availability, author). If this data does not match what users find once on the site, the experience degrades.
The bounce rate increases, and trust in rich results erodes. Google therefore protects the user consistency between the SERP and the landing page, just as it does with ad landing pages.
How does Google detect these invisible markups?
Algorithms compare the visible DOM (what a standard browser sees, with applied CSS) and data extracted from structured markup. If an important Schema property (price, ratingValue, availability) has no visible textual equivalent, it gets flagged.
CSS hiding techniques (display:none, visibility:hidden, text-indent:-9999px, font-size:0) are all detected. The same applies for white text on a white background or content pushed out of the viewport with position:absolute.
- Cardinal rule: any critical Schema property must have a visible equivalent to the naked eye on the page
- Breadcrumbs must appear visibly somewhere, not just in JSON-LD
- Tagged reviews must correspond to reviews that are actually displayed and readable
- The FAQ content in Schema must match the visible questions/answers in the HTML
- Google tolerates minor variations in wording, but not factual discrepancies (prices, dates, names)
SEO Expert opinion
Is this policy applied consistently?
On paper, the rule is clear. In practice, it’s less binary. Many e-commerce sites use dynamically generated JSON-LD with data that appears after user interaction (clicking a product variant, expanding an accordion). Google seems to tolerate these cases as long as the content becomes visible without complex JavaScript.
However, manual actions for misleading markups happen regularly. I’ve seen sites lose their stars in the SERP overnight for marking invisible aggregated reviews. The line between "collapsed content" and "hidden content" remains blurry. [To verify] whether Google applies the same severity to large sites as it does to smaller ones.
What are the problematic edge cases?
Pure JSON-LD raises questions. This format inherently has no direct visual representation in the DOM. Google officially recommends it but requires that the data it contains correspond to visible content elsewhere on the page. It’s paradoxical.
Another gray area is contextual data like the publisher organization, logo, and social media sameAs. This information may not appear on every page. Google seems to accept it if it’s visible somewhere on the site (about page, footer). But no official documentation quantifies this "somewhere".
Should you fear an algorithmic penalty or just a deactivation?
Google never speaks of a ranking penalty for hidden markups, only non-eligibility for Rich Snippets. In practice, losing product stars or FAQ excerpts can reduce CTR by 20-40%, so the indirect ranking impact is real.
Severe cases (fake marked reviews, misleading prices) trigger visible manual actions in Search Console. Let’s be honest: Google treats this as structured spam. The site remains indexed but loses trust for all Rich Results, sometimes for months even after correction.
Practical impact and recommendations
How to audit your existing structured data?
The first step: crawl your site with Screaming Frog or Oncrawl while enabling Schema extraction. Export all critical properties (price, ratingValue, reviewBody, name, description). Then compare this with the actual crawled text content.
Manually test a sample of pages using the inspection mode of the browser. Disable JavaScript, hide the CSS: what remains visible is what Google considers to be "truly there". If your microdata describes elements that disappear, you are in violation.
What technical errors should be prioritized for correction?
Product reviews account for 70% of observed infractions. Many sites markup aggregateRating with calculated average scores but display no visible reviews. Google wants to see individual reviews, not just a number pulled out of thin air.
Another frequent trap: JSON-LD breadcrumbs without a corresponding HTML breadcrumb trail. Even if your navigation is clear, without an explicit visual breadcrumb, the markup can be rejected. Add a real breadcrumb, even if it’s discreet in the footer if your design does not allow it in the header.
What methodology should you adopt for compliance?
Assume that every Schema property must point to a visible DOM element. For JSON-LD data, document the visual correspondence of each important field. If you cannot find a visible equivalent, either add it to the page or remove the property from the markup.
For complex sites with product variants, ensure that the Schema updates simultaneously with the display. If a user selects size M and the price changes, the JSON-LD must reflect this new price, not the default one. Google is increasingly crawling with JavaScript enabled and will detect these inconsistencies.
- Extract all Schema markups from your priority pages (products, articles, FAQ)
- Check the CSS visibility of each critical data point (disable JS, inspect the rendered DOM)
- Remove or make visible any currently hidden content (display:none, visibility:hidden)
- Test with the Rich Results Test tool AND manually in a browser
- Monitor Search Console for warnings about "invisible content"
- Document the Schema ↔ DOM correspondence for each page type
❓ Frequently Asked Questions
Peut-on utiliser du JSON-LD pour des données qui n'apparaissent pas textuellement sur la page ?
Les avis agrégés sans reviews individuelles visibles sont-ils acceptés ?
Un contenu replié dans un accordéon compte-t-il comme visible ?
Que risque-t-on concrètement avec des marquages cachés ?
Comment Google distingue-t-il contenu caché volontaire et problème technique ?
🎥 From the same video 2
Other SEO insights extracted from this same Google Search Central video · duration 1 min · published on 08/12/2011
🎥 Watch the full video on YouTube →
💬 Comments (0)
Be the first to comment.