---
title: "Schema markup that actually earns rich results"
slug: "schema-markup-rich-results"
category: "seo"
lang: "en"
date: "2026-05-26"
excerpt: "Most Schema does nothing. The handful of types that win stars, FAQs and breadcrumbs in the SERP all share the same three rules."
featured: false
tags: ["Technical SEO", "Structured data"]
author:
  name: "Adrien Roy"
  role: "Technical SEO, SEO Insight"
  initials: "AR"
  bio: "Adrien obsesses over the parts of SEO most people never see: markup, crawl paths and indexing."
  twitter: "#"
  linkedin: "#"
thumb:
  illust: "grid"
  tint: "blue"
seo:
  metaTitle: "Schema markup for rich results | SEO Insight"
  metaDescription: "The Schema types that reliably earn rich results, and the three rules that separate markup that works from markup that's ignored."
  keywords: ["schema markup", "structured data", "rich results", "JSON-LD"]
---

You can add Schema to every page on your site and earn exactly zero rich results. Markup is necessary but not sufficient; Google has to **trust** it, and trust comes from three things.

## Rule 1: mark up what's visible

Schema must describe content a user can actually see on the page. Marking up a review that isn't rendered is a fast track to a manual action.

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "...",
      "acceptedAnswer": { "@type": "Answer", "text": "..." }
    }
  ]
}
```

## Rule 2: be complete

Half-filled markup gets ignored. Fill every recommended property the rich result needs, not just the required ones.

## Rule 3: stay consistent

The entity in your markup, your on-page content and your other sources should all agree.

<StatStrip>
  <Stat v="+30%" l="avg. CTR lift with stars" />
  <Stat v="4" l="result types worth it" />
  <Stat v="0" l="tolerance for fake markup" />
</StatStrip>

> Rich results are earned, not declared. Markup just makes you eligible.
