Why your rich results aren't showing
Rich results are the extras Google adds to a search listing, such as review stars, product prices, event dates, and recipe photos. They make a listing bigger and easier to choose, so it's frustrating when you add the structured data (the code, usually a block called JSON-LD, that describes a page to search engines) and nothing changes.
Structured data makes a page eligible for a rich result. It doesn't guarantee one. Google decides whether to show each feature, and it has been narrowing which features it offers and to whom. That's why "I added schema and nothing happened" so often has nothing to do with broken code.
When a rich result is missing, the cause almost always falls into one of three groups:
- The feature isn't offered to your site. Google has retired or restricted several rich result types, including FAQ dropdowns and how-to steps, and it filters out review stars a business gives itself.
- The markup has a problem. A required property is missing, the code doesn't parse, the markup describes content a visitor can't see, or it only appears after JavaScript runs.
- Google hasn't caught up. The page isn't indexed, Google treats a different URL as the main version, or Google simply hasn't recrawled the page since the markup went in.
Working through those groups in order is tedious. You have to look up the current rules for each rich result type, read the code in the page as Google receives it, and cross-check what Search Console says about the URL. It's careful, rule-bound checking, and it's exactly the kind of work an AI agent does well.
Kite is an AI marketer. It researches your business, builds a growth strategy, and ships the work that brings you new customers. Here's how it finds out why your rich results aren't showing and what it does about it.
How Kite finds out why your rich results aren't showing
Kite starts with the page and the rich result you expected, such as stars on a product page or dropdowns under a support article. It works out what kind of page it is, because Google decides which rich results a page can earn from what the page is, not from the business behind it.
Then Kite checks the three groups of causes in order. First it confirms the rich result is still something Google offers a site like yours. Next it reads the structured data in the page as it's served and checks it against Google's requirements for that page type. Finally it inspects the URL in your Search Console to see whether Google has indexed the page and what it found there.
Once Kite knows the cause, it either fixes the markup and the page, or it tells you plainly that the rich result isn't available and what's worth doing instead. After Google recrawls the page, Kite inspects it again to confirm the change took.
- Check whether Google still offers that rich result to your site
- Check the markup in the page Google actually reads
- Check what Google has indexed for the page
- Fix the markup and the page it describes
- Check the page again once Google recrawls it
Check whether Google still offers that rich result to your site
The first question is whether the rich result you're missing still exists for a site like yours. Kite compares the page with Google's current list of supported rich results and the restrictions on each one. This check settles many cases before anyone looks at the code.
FAQ dropdowns are the clearest example. In August 2023, Google limited them to well-known, authoritative government and health websites, so most business sites lost them overnight even though their markup was fine. Google's Search Central change log records the FAQ rich result being retired altogether in May 2026. How-to steps went the same way. If your dropdowns disappeared, the markup almost certainly isn't the problem.
Review stars have their own rule. Google doesn't show stars when a business marks up reviews of itself on its own website, for example a rating on the homepage that describes the company as a whole. Stars still appear for ratings of a specific item, such as a product, a piece of software, a recipe, or a course.
Say a skincare brand puts a 4.8-star rating from customer reviews into the homepage markup and waits for stars that never come. Kite would point out that the rating describes the business, which Google filters out. It would then recommend moving the ratings onto each product page, attached to that product, with the number of reviews behind each score. That version is eligible for stars.
When a rich result isn't available, Kite says so and stops you from spending more time on it. The markup can stay in place, because Google ignores retired types rather than penalizing them.
Check the markup in the page Google actually reads
When the rich result is still available, Kite reads the structured data in the page as it's delivered to a browser, not the file someone edited. Markup can look right in a CMS field or a plugin's settings and still never reach the live page, or reach it twice.
Kite checks the things that most often stop a valid-looking block from earning a rich result:
- The code parses. A stray comma or an unclosed bracket makes Google skip the whole block.
- Required properties are present. A product rating needs both the score and the number of reviews or ratings behind it, and an event needs a start date and a location.
- The markup matches what visitors see. Google requires structured data to describe content that's actually on the page. A rating, price, or question that exists only in the code doesn't count.
- The values are in the right format. Dates and durations follow a standard format, links are full web addresses, and prices are numbers with a separate currency code.
- The markup is in the page without JavaScript. Markup added by a script after the page loads can be missed or picked up late, so Kite checks whether it's in the page from the start.
- There's one version of each block. A theme and an SEO plugin can both add markup for the same page, and the two versions can conflict.
For each problem it finds, Kite names the page, the block, and the property, and explains what Google expects instead.
Check what Google has indexed for the page
Correct markup can't earn a rich result on a page Google hasn't indexed, or on a version of the page Google hasn't seen yet. With your Search Console connected, Kite inspects the URL and reads back what Google reports. That includes whether the page is indexed, whether it's eligible to appear in results, the issues Google lists against it, and the structured data Google detected on the version it last crawled.
This is where Kite catches problems that have nothing to do with the markup itself. The page may carry a tag telling search engines not to index it. Google may treat a different address as the main version of the page, so the markup you fixed sits on a copy Google ignores. Or the last crawl may predate the fix, which Kite can see by comparing what Google detected with what the live page now serves.
Kite also reads your sitemaps in Search Console to confirm the page is listed and that Google has processed the sitemap recently. For a site Kite hosts, it registers the property and submits the sitemap after each publish on its own.
Fix the markup and the page it describes
Once Kite knows the cause, it decides on the fix that makes the page eligible and keeps the markup honest. That might mean adding a missing property, moving ratings from the homepage to the products they describe, removing a duplicate block, or adding visible content so the markup matches the page.
On a site Kite builds and hosts, Kite writes the structured data itself, using the schema types Google recommends for each kind of page and filling them in from the page's real content. New Kite sites already get structured data on every page automatically. Kite's changes wait as unpublished changes you can preview, and they go live when you publish. Shortly after each publish, Kite checks the site's structured data and emails the person who published if it finds a problem.
On a Webflow site, Kite updates the CMS fields behind a page and publishes the site, so visible content such as product details and review counts matches the markup. On self-hosted WordPress, Kite updates the posts themselves. Markup that lives in a Webflow page's custom code, a WordPress theme, or an SEO plugin's settings is edited in those products, so Kite gives you the finished block and tells you exactly where it goes.
Check the page again once Google recrawls it
Rich results don't appear the moment a fix goes live. Google has to recrawl the page, process the new markup, and then decide whether to show the feature. Search Console data also runs a few days behind the live site.
Kite waits for Google to reprocess the page, then inspects the URL again. It confirms that Google now detects the corrected structured data and that the earlier issues are gone. With your search data connected, Kite can also compare the page's impressions, clicks, and click-through rate before and after the change, so you can see whether the richer listing is earning more clicks.
If Google detects valid markup and still doesn't show the rich result, Kite tells you that directly. At that point, the remaining factors are Google's own judgment about the page and the search, and Kite explains which improvements to the page itself are worth making next.
What you get
A diagnosis for each page
For every page you ask about, Kite tells you which of the three causes applies, with the specific block, property, or Search Console finding behind it.
A plain answer about retired features
When the rich result you want isn't offered to your site anymore, Kite says so and explains what still works for that page.
Corrected structured data
On a site Kite hosts, Kite publishes the fix after you approve it. For markup that lives in another product, you get the finished block and where to put it.
Content changes that match the markup
Kite updates the visible page content on Kite-hosted, Webflow, and self-hosted WordPress sites so the markup describes what visitors can see.
A follow-up check
After Google recrawls the page, Kite inspects it again and reports whether Google now detects the corrected markup and how the page's clicks changed.
How to get started
You can work with Kite in the Kite web app or in Slack. Tell it which rich result you expected and where, in plain language. You might ask, "Why don't our product pages show review stars in Google?" or "Our FAQ dropdowns disappeared from search. What happened?"
Kite reads the pages you name and checks them against Google's current rules right away. To see what Google has indexed for each URL, connect the Google account that owns your Search Console property. If your site runs on Webflow or self-hosted WordPress, connect it when you want Kite to make the content changes itself.
Kite proposes the fixes first. Approve them with the Approve or Publish button in the conversation, or with a reply, and Kite makes the changes. Teams that want Kite to publish fixes like these on its own can give it more autonomy.
Integrations used to find out why rich results aren't showing
Kite reads the structured data on your pages without any connected product. Connect Search Console when you want Kite to see what Google has indexed, and connect your content system when you want Kite to ship the fix on a site it doesn't host.
Common questions
Does structured data help my pages appear in AI Overviews?
Google says structured data isn't required to appear in AI Overviews or AI Mode, and there's no special markup to add for them. Structured data still matters for the rich results that remain available, such as product details, review stars on items, events, and recipes. Kite treats structured data as a way to earn those listings, and it works on visibility in AI answers through the content of your pages and the sources answer engines cite.
How long does it take for rich results to show up after I fix the markup?
It depends on how often Google recrawls the page. Some pages update within a few days, while pages Google visits rarely can take weeks. Submitting an updated sitemap helps Google find the change. Kite does that automatically for sites it hosts, and it can submit a sitemap to your Search Console property for a site that runs elsewhere.
What's the difference between the Rich Results Test and Search Console?
Google's Rich Results Test checks a single page on the spot and tells you which rich results its markup could qualify for. Search Console shows what Google actually found the last time it crawled the page, which makes it the record that counts. Kite reads the live page for the first kind of check and inspects the URL in Search Console for the second. Search Console's rich result reports inside your own account also show trends across the whole site.
Can I get review stars for my business in Google search results?
Not from ratings you publish about your own business on your own website, because Google filters those out. Stars can appear on your own pages when the ratings are for a specific product, app, course, or similar item and include the number of reviews behind them. Ratings of your business as a whole tend to appear from review sites and your Google Business Profile instead.
Will rich results show if my markup passes every check?
Not always. Valid markup on an indexed page makes the page eligible, and Google still decides whether a rich result suits each search. When Kite confirms that Google detects valid markup and the rich result still doesn't appear, it tells you so rather than changing markup that's already correct.


