Technical SEOYour schema markup isn't showing in Google? Use our step-by-step diagnostic guide to find and fix validation errors, policy violations, and indexing issues.
12 min read

You spent the time to implement schema markup. You added the JSON-LD script, checked the syntax, and published the page. Now you check the search results, and nothing has changed. There are no star ratings, no price ranges, no FAQ dropdowns. This experience is common. It is also fixable.
Schema markup is a powerful tool. It acts as a translator, converting your page's content into a language search engines like Google can instantly understand. This can help your site earn rich results, the visually enhanced listings that stand out on the search page. But schema only makes your page eligible for these results. It does not guarantee them.
This guide provides a clear, step-by-step diagnostic process. We will walk you from the most common technical errors to the more nuanced reasons related to Google's own algorithms. By following these steps, you can identify why your schema isn't appearing and learn exactly how to address the problem.
Before you explore complex causes, you must confirm your code is perfectly written. Schema markup, especially in the recommended JSON-LD format, is strict. A single missing comma, an extra bracket, or a misspelled property name can make the entire block of code unreadable to a search engine. When Google's parser encounters such an error, it doesn't try to guess your intent. It simply ignores the entire structured data script. This is the single most common reason schema fails to appear.

Your first action is to use an official validation tool. These tools are designed to parse your code just like Googlebot would. They provide an immediate verdict on its technical quality. Do not skip this step, even if you used a plugin or generator to create the markup. Automated tools can still produce errors or become outdated.
Having technically valid code is only the first hurdle. To be shown as a rich result, your implementation must also adhere to Google's structured data guidelines. These rules exist to ensure that structured data is a true representation of the page's content and provides genuine value to the user. Violating these policies can lead to your schema being ignored. In severe cases of spammy or misleading markup, it can even trigger a manual action against your site.

Think of it this way: validation checks your grammar, but the guidelines check your honesty. Even if your sentences are perfectly formed, Google won't promote them if they are misleading. The most common guideline violations involve a mismatch between the structured data and what the user actually sees on the page. You must ensure your schema is an accurate, machine-readable mirror of your visible, human-readable content.
| Guideline Violation | Why It Fails | How to Fix It |
|---|---|---|
| Hidden Content | Marking up content that is not visible to the user is a direct violation. This includes putting text in a hidden div, using CSS to hide it, or including reviews that don't appear on the page. Google wants to reward what users see, not what bots see. | Audit your page. Ensure every piece of data in your schema, whether it's a name, rating, price, or FAQ answer, is clearly and immediately visible on the page without requiring a user to click a hidden 'expand' button. |
| Content Mismatch | The data in your schema must perfectly match the visible content. If the schema says a product has a 5-star rating but the page shows 4.5 stars, Google will detect this inconsistency and may distrust your markup. | Ensure your schema data is dynamically pulled from the same source as your page's display content. If you use a third-party review app, make sure the schema it generates syncs in real-time with the displayed ratings. |
| Irrelevant Markup | The schema type must represent the main content of the page. Adding 'Recipe' schema to a page about car repair in an attempt to get a recipe rich snippet is a spammy tactic that will not work and can harm your site's credibility. | Choose a schema type that accurately describes the page's primary purpose. If it's an article, use 'Article'. If it's a product page, use 'Product'. Don't try to force a page into a schema type it doesn't fit. |
| Homepage Markup | Specific schema types like 'Product', 'FAQPage', or 'Recipe' belong on the specific pages about those items. Adding them to a general homepage is inappropriate and will be ignored. | Limit your homepage schema to 'Organization' or 'WebSite' markup. This correctly identifies your entity to Google. Place specific, content-focused schema on the relevant interior pages (e.g., product pages, blog posts). |
Even with perfect, compliant code, your schema is useless if Googlebot cannot crawl your page and find it. Several fundamental technical SEO issues can block Google from seeing your structured data. These problems often go unnoticed because the page might look fine to a human visitor in a web browser. However, search engine crawlers operate under different constraints.

This step involves using Google Search Console to look at your site through Google's eyes. You need to verify that the page is crawlable, indexed, and that the schema code is present in the final HTML that Google processes. This is especially critical for modern websites that rely on JavaScript to modify content or inject schema.
In the world of SEO, changes are rarely instant. After you add or fix your schema markup, Google must first discover those changes. This requires a crawl. Then, it must process the new information and evaluate whether to display a rich result. This entire process takes time, and a lack of patience is a common source of anxiety for developers and marketers. Simply put, you might not have a problem at all. You might just need to wait.
The time it takes for schema to appear can vary dramatically. For a highly authoritative news website that Google crawls multiple times per hour, changes might be reflected in a day. For a small, new blog that is crawled every few weeks, it could take a month or more. Assuming your code is valid and compliant, the next step is to verify that Google has seen your changes and then to set realistic expectations for when you might see the results of your work.

You do not have to guess whether Google has seen your updated page. Google Search Console provides the exact data you need. Go to the URL Inspection tool and enter the URL of the page where you added the schema. The report will show a field labeled 'Last crawl'. Check this date. If the last crawl date is before the date you implemented your schema, then Google simply hasn't discovered your changes yet. The old version of the page is the one in its index.
If you find that the page has not been crawled recently, you can prompt Google to visit it. On the same URL Inspection report, click the 'Request Indexing' button. This adds your page to a priority crawl queue. It is not an instant command and does not guarantee a crawl, but it signals to Google that the page has been updated and is ready for review. This action can significantly speed up the discovery process, especially for sites that are not crawled frequently.
Even after Google successfully crawls your page and validates your new schema, rich results may not appear immediately. The crawling and indexing phase is just the first part. After that, the information is sent to Google's various algorithmic systems for evaluation. These systems weigh dozens of factors to decide if showing a rich result for your page, for a specific search query, will be helpful to the user.
It is also normal for rich results to fluctuate. They might appear for a few weeks, then disappear, then reappear. This is often not a sign of a technical error. It is more likely a reflection of Google's algorithms testing the snippet's performance. The system might be checking if users engage with the rich result, or if a competitor's result performs better. This volatility is part of the system, so avoid making frantic changes if your valid schema disappears temporarily. Monitor it over time.
You have reached the final stage of diagnosis. Your code is valid (Step 1). Your implementation follows all guidelines (Step 2). Google can crawl and see your schema (Step 3). And you have waited long enough for the changes to be processed (Step 4). If your rich results are still not appearing, the cause is likely not a technical error on your part. It is due to what is known as 'algorithmic discretion'.

Google's central mission is to provide the best possible answer for a user's query. A rich result is only shown if Google's algorithm determines it will improve the search experience. Even with a technically perfect implementation, Google reserves the right not to show a rich snippet. This decision is based on a complex set of factors related to the query, your site's quality, and the competitive landscape.
After working through this diagnostic checklist, you should have a clear understanding of why your schema markup is not appearing. The problem is either a technical issue you can fix or an algorithmic decision you must influence through other means. The work does not end with a single fix. Structured data requires consistent monitoring and a long-term focus on quality.

Your go-to tool for this is Google Search Console. The 'Enhancements' report in the sidebar is specifically designed to monitor your structured data. It will show you which schema types Google has detected on your site, how many pages are considered 'Valid', and which have 'Errors' or 'Warnings'. Use this report to track your progress over time.