How to Get Star Ratings in Google Search Results (The Right Way)

Last Updated: February 25, 2026 · 11 min read

Those gold stars you see next to certain search results come from AggregateRating schema. They stand out visually, build trust instantly, and drive significantly higher click-through rates — industry data shows 15–35% CTR increases for listings with star ratings compared to equivalent listings without them.

But Google has strict policies about star ratings. Getting them wrong doesn't just fail silently — it can result in a manual action that removes your site from rich results entirely. This guide covers everything: which pages qualify, complete code for every use case, and a full troubleshooting section for when stars don't appear.

15–35%
Average CTR increase with stars
3–5x
More visual impact than plain listings
2–4 weeks
Typical time for stars to appear

1. Google's Policy — Read This First

⚠️ Violating these rules can result in a manual action

  • • Stars are only allowed on products, recipes, software apps, local businesses, books, courses, and events
  • • Self-written reviews by the business owner do not qualify. Reviews must be from independent third parties.
  • • The review count and rating average in your schema must match what is actually visible on the page
  • • Do not use sitewide AggregateRating on your homepage or service pages
  • • Fabricating reviews is a spam policy violation and risks deindexing

2. Where Stars Work (and Where They Don't)

✅ Stars are allowed on:

  • • Product pages (with real customer reviews)
  • • Recipe pages (with real user ratings)
  • • Apps and software (user ratings)
  • • Local business pages (customer reviews)
  • • Course and education pages
  • • Books and movies (user reviews)
  • • Event pages (attendee reviews)
  • • Editorial critic reviews of a specific item

❌ Stars are NOT allowed on:

  • • Homepage or About pages
  • • Blog posts and general articles
  • • Service pages without real reviews
  • • Pages with self-written reviews
  • • Pages where reviews aren't visible to users
  • • Affiliate review sites with no real users
  • • Employment, government, or political content
  • • Category listing pages

3. How AggregateRating Actually Works

AggregateRating is never a standalone schema type — it is always a property nested inside another type (Product, Recipe, LocalBusiness, SoftwareApplication, etc.). It tells Google: "here is a summary of all the ratings this entity has received."

The four key properties within AggregateRating:

PropertyRequired?ValueExample
ratingValueYesThe average rating as a number"4.7"
reviewCount or ratingCountYes (one or both)Total number of ratings/reviews"284"
bestRatingStrongly recommendedMaximum possible rating"5"
worstRatingStrongly recommendedMinimum possible rating"1"

4. Implementation: Product Page

The most common implementation. AggregateRating is nested inside Product alongside individual Review objects:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Noise ColorFit Pro 4 Smartwatch",
  "image": "https://example.com/colorfit-pro-4.jpg",
  "description": "Advanced fitness smartwatch with AMOLED display,
    7-day battery life, and 100+ sports modes.",
  "brand": { "@type": "Brand", "name": "Noise" },
  "sku": "NCF-PRO4-BLK",
  "offers": {
    "@type": "Offer",
    "price": "4999",
    "priceCurrency": "INR",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.3",
    "reviewCount": "2847",
    "ratingCount": "5120",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "author": { "@type": "Person", "name": "Rahul Sharma" },
      "datePublished": "2026-01-20",
      "reviewBody": "Excellent battery life and accurate heart rate
        monitoring. Lasted 9 days on a single charge with
        AOD disabled. Very satisfied."
    }
  ]
}

5. Implementation: Recipe Page

Recipe pages with AggregateRating can unlock a rich recipe card showing stars alongside cook time, calories and an image — one of the most visually rich results available.

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Butter Chicken (Murgh Makhani)",
  "image": "https://example.com/butter-chicken.jpg",
  "author": { "@type": "Person", "name": "Priya Kapoor" },
  "datePublished": "2026-01-15",
  "description": "Restaurant-style butter chicken made at home
    in 45 minutes.",
  "prepTime": "PT15M",
  "cookTime": "PT30M",
  "totalTime": "PT45M",
  "recipeYield": "4 servings",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "3241",
    "bestRating": "5",
    "worstRating": "1"
  }
}

6. Implementation: Local Business

For local businesses, nest AggregateRating inside the most specific business subtype available (Restaurant, DentalClinic, HairSalon, AutoRepair, etc.) for stronger signals:

{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Spice Garden",
  "image": "https://example.com/spice-garden.jpg",
  "telephone": "+91-98765-43210",
  "priceRange": "₹₹",
  "servesCuisine": "North Indian",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 MG Road",
    "addressLocality": "Bengaluru",
    "addressRegion": "KA",
    "postalCode": "560001",
    "addressCountry": "IN"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "618",
    "bestRating": "5",
    "worstRating": "1"
  }
}

7. Implementation: Software App

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Zerodha Kite",
  "operatingSystem": "Android, iOS, Windows",
  "applicationCategory": "FinanceApplication",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "ratingCount": "64000",
    "reviewCount": "21000",
    "bestRating": "5",
    "worstRating": "1"
  },
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "INR"
  }
}

8. ratingCount vs reviewCount

Many developers use these interchangeably, which is wrong. Use the one that matches your data:

ratingCount

Total number of ratings (star clicks) — includes people who gave a star without writing text. Usually the larger number.

reviewCount

Total number of ratings that include written review text. Always ≤ ratingCount.

Rule of thumb: If your platform only tracks text reviews, use reviewCount. If it tracks all star clicks, use ratingCount. You can provide both. Using a number larger than your actual count is a policy violation.

9. Why Your Stars Aren't Appearing

Schema is valid but Google hasn't re-crawled the page

Submit the URL in Search Console → URL Inspection → Request Indexing. Stars typically appear within 2–4 weeks after initial implementation.

Reviews exist in schema but are not rendered in the HTML

Google requires reviews that are visible to users. Reviews loaded by JavaScript after page load may not be indexed. Use server-side rendering.

AggregateRating is on a non-eligible page type

Google won't show stars for homepages, generic service pages, or blog articles. Move AggregateRating to specific product/recipe/business pages only.

Fewer than 3–5 reviews visible on the page

Google needs a meaningful sample. Aim for at least 5–10 genuine visible reviews before expecting stars to appear consistently.

ratingValue format is incorrect

Use a number string like "4.3", not "4.3/5" or "four point three". The scale is defined by bestRating and worstRating.

Site has a history of review schema spam

If you previously had manipulative or fabricated reviews and received a manual action, stars may be suppressed even after the issue is fixed. File a reconsideration request.

10. Adding Reviews Without a CMS Plugin

If you don't have a review widget or CMS, you can manually add reviews to your JSON-LD. This is perfectly valid as long as:

  • Reviews are from real customers — not fabricated or AI-generated
  • The same reviews are visible on the page for users to read
  • You do not cherry-pick only 5-star reviews — negative reviews must also be shown
  • The aggregateRating reflects the true average of all reviews, not just the ones you selected
  • You update the schema periodically as new reviews come in

Tip: display 3–5 reviews in the page HTML, and keep the rest accessible via a "Show more reviews" section. This satisfies Google's requirement for visible reviews while keeping the page clean.

11. Best Practices

💡 Always include bestRating and worstRating

Without these Google must guess the scale. A rating of "4" means nothing without knowing if the scale is 1–5 or 1–10.

💡 Include datePublished on reviews

Dated reviews give Google freshness signals. Stale undated reviews look suspicious and may be devalued.

💡 Use the most specific @type available

Restaurant instead of LocalBusiness, DentalClinic instead of MedicalOrganization — more specific types unlock more rich features.

💡 Keep your counts dynamically in sync

Hard-coding a count that drifts out of date is a policy violation once it no longer matches visible content.

💡 Monitor Search Console Enhancements

Check the Review Snippets report for errors and track how many URLs are eligible vs have warnings.

💡 Combine with price and availability

A Product with AggregateRating + Offer shows stars, price, and in-stock status together — maximum snippet value.

12. Frequently Asked Questions

Can I add AggregateRating to my homepage?

No. Google explicitly disallows star ratings on homepages and generic pages. AggregateRating must be nested inside a specific entity (Product, Recipe, LocalBusiness, etc.) on a page where reviews are the primary content.

How many reviews do I need before stars appear?

Google doesn't publish a minimum. In practice, pages with fewer than 3–5 reviews rarely see stars. The more reviews you have and the more consistently they appear server-rendered on the page, the higher the likelihood.

My schema validates perfectly but stars still don't show after 6 weeks. Why?

Validation passing is necessary but not sufficient. Google also checks: are reviews visible on the page? Is the page type eligible? Does the site have enough authority? Is the content high quality? All of these factors influence display.

Can I use Google Reviews or Trustpilot ratings in my AggregateRating schema?

No. You can only mark up ratings from reviews that live on your own page. Using third-party platform counts in your schema when those reviews don't exist on your page is a policy violation and can trigger a manual action.

Does the star rating in schema affect my actual Google ranking?

The schema itself is not directly a ranking factor. However, stars improve CTR, and higher CTR can indirectly signal quality to Google. Rich results also increase SERP visibility which influences traffic patterns.

Can I use a 1–10 scale instead of 1–5?

Yes. Set bestRating: "10" and worstRating: "1" and provide ratingValue as a number on that scale (e.g. "8.5"). Google will normalise and display correctly.

Is it safe to mark up reviews in a React/Next.js app that renders client-side?

Googlebot can execute JavaScript, but client-side rendered content is less reliably indexed. For review schema to reliably contribute to rich results, the reviews and the JSON-LD should be present in the initial server-rendered HTML.

Do I need a minimum rating value to show stars?

No minimum value is required. Even a 2.1 average rating will show stars if the schema is valid and eligible. Google shows the actual score, not just high ratings.

Check Your Rating Schema Now

Validate your AggregateRating and Review schema for errors — free, instant, no sign-up needed.

Validate Review Schema →