AggregateRating Schema for Roofers: Show Star Ratings in Search
Roofing Schema Markup

AggregateRating Schema for Roofers

Mark up your overall review score with AggregateRating so a star rating can show in the search result for your roofing pages and earn the click before a homeowner reads a word.

Roofing-exclusive SEO | star ratings that earn the click
AggregateRating schema star ratings

Free Roofing Schema Audit

Most roofing sites either skip AggregateRating markup or carry a rating that does not match Google. Get a free audit with a Rich Results Test review and a corrected JSON-LD block.

What Is AggregateRating Schema?

AggregateRating schema is structured data that states a roofing company's average review score and the number of reviews behind it, so search engines can read both values and may show a star rating in the result.

It Is a Property, Not a Type

AggregateRating sits inside a parent item, such as LocalBusiness or Product. It holds the score and the count; it does not stand alone.

Two Required Numbers

It carries ratingValue, the average score, and either ratingCount or reviewCount, the number of reviews. Both must match the reviews on the page.

A Summary, Not One Review

A single customer review uses Review markup. AggregateRating summarizes many reviews into one score. See review schema.

Why Does AggregateRating Schema Matter for Roofers?

It matters because a star rating in the search result is a trust signal a homeowner reads before clicking, and a roof job runs into thousands of dollars, so confidence decides the click.

Stars Lift the Click-Through

  • A listing with a visible star rating can draw a higher click-through than the same listing with no stars.
  • Homeowners typically compare three to five contractors before they call, and the rating narrows that set.
  • The lift shows most on mobile, where a large share of roofing searches happen.

It Reinforces the Entity

  • A consistent rating across the site and the Google Business Profile strengthens how search engines read the business.
  • The markup itself is not a ranking factor, but the higher click-through can support the position over time.
  • For the concept behind the business as an entity, see entity SEO for roofers.

What Properties Does AggregateRating Use?

AggregateRating uses a small fixed set of properties: ratingValue, ratingCount or reviewCount, bestRating, and worstRating. The first two are required; the last two default to 5 and 1.

ratingValue

The average score, such as 4.8. Use the real average from the reviews on the page. Do not round it up to look better.

ratingCount or reviewCount

The number behind the average. ratingCount counts all ratings; reviewCount counts written reviews. Pick the one that matches your data.

bestRating and worstRating

The top and bottom of the scale. They default to 5 and 1, so you only set them when your scale is different.

A Roofing AggregateRating JSON-LD Example

Nest the aggregateRating block inside the LocalBusiness item for the roofing company, then place the script in the head or body of the page. The block below is a complete, valid example.

Read the Block in Plain Words

  • The outer item is the roofing business, typed as RoofingContractor.
  • The aggregateRating property holds the score and the count.
  • ratingValue is the average; reviewCount is the number of reviews.
  • Both values match the reviews shown on the page.

Where the Block Goes

Add the script once per page, inside a script tag with type set to application/ld+json. Keep one rating block per page so the values stay clear to search engines.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "RoofingContractor",
  "name": "Summit Roofing Co",
  "url": "https://example.com/",
  "telephone": "+1-555-555-0100",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

Turn Stars Into Phone Calls

A roofing page can rank well yet lose the click to a listing that shows a star rating. We add the AggregateRating markup, match it to your Google reviews, and validate it so the stars show.

Call Now For Pricing

Or call +1 272-207-3231

How to Add AggregateRating to a Roofing Page

Add the markup in four steps: gather the real numbers, nest the block in the parent item, place the script on the page, then test it. Each step keeps the markup truthful and valid.

The Four Steps

  • Pull the current average score and review count from the reviews you show.
  • Nest the aggregateRating block inside the LocalBusiness or RoofingContractor item.
  • Place the JSON-LD script once on the page, in the head or body.
  • Run the page through the Rich Results Test before you publish.

Match the Visible Reviews

The rating in the markup must reflect reviews a visitor can see on the page. A rating with no visible reviews is a guideline violation and can trigger a manual action against the page.

Which Parent Item Should Hold the Rating?

Put the rating on the item the score is actually about: the business for an overall company rating, or a Service or Product item for a service-specific rating.

Overall on LocalBusiness

For a company-wide score, nest the rating in the LocalBusiness item. See LocalBusiness schema.

Roofing-Specific Type

RoofingContractor is a subtype of LocalBusiness and carries the rating just as well. See RoofingContractor schema.

A Single Service

For a roof replacement page with its own reviews, the rating can sit on a Service item. See Service schema.

How Do AggregateRating and Review Schema Work Together?

They pair up: AggregateRating gives the summary score, while individual Review items give the named, written reviews behind it. A page can carry both at once.

AggregateRating Is the Headline Number

It carries one average and one count. It is the value most likely to drive the star rating that a homeowner sees in the result.

Review Items Carry the Details

Each Review item names an author and a single score. Pair them with the summary for full markup. See review schema for roofers.

How to Test AggregateRating in the Rich Results Test

Validate the markup in Google's Rich Results Test by entering the page URL or pasting the code, then reading the errors and warnings. Fix every error before you publish.

Run the Test

  • Open the Rich Results Test and enter the live URL, or paste the JSON-LD code.
  • Confirm the tool detects the rating and reports no errors.
  • Read warnings too; they flag missing fields that can limit the result.
  • Re-test after any change to the rating or the count.

After It Is Live

A valid result does not promise a star rating; Google decides display. Watch the Search Console Enhancements report for rating issues, and confirm the page qualifies. See rich results eligibility.

A Valid Rating Block, Done Once and Done Right

An invalid or mismatched rating can cost the star result or trigger a manual action. We write the JSON-LD, sync it to your real reviews, and validate it so the markup holds.

Call Now For Pricing

Or call +1 272-207-3231

Common AggregateRating Mistakes Roofers Make

Roofing sites lose the star result through six recurring markup mistakes, each one a guideline violation or a validation error.

Truthfulness Violations

  • A rating with no reviews visible on the page, which violates the guidelines.
  • A score inflated above the real average, which can trigger a manual action.
  • Self-created or paid reviews used to fill the count.

Markup and Sync Errors

  • A rating that does not match the Google Business Profile count.
  • The same rating duplicated on every page rather than placed where reviews exist.
  • Missing ratingCount or reviewCount, which fails validation.

How Do You Keep the Rating in Sync?

Keep the markup in sync by updating ratingValue and the count whenever the underlying reviews change, ideally on a set schedule. A stale rating drifts from what the page and the profile show.

A Simple Update Cadence

  • Review the Google Business Profile count and average each month.
  • Update the JSON-LD to match before the gap grows wide.
  • For a high review volume, automate the values from a feed.

Why the Sync Matters

A score in the markup that no longer matches the visible reviews reads as a mismatch to search engines and can cost the star result. Matching values keep the markup trusted.

Proof of Performance

Results from roofing campaigns that rank in local search.

Ranked in Local Search Within 90 Days

Map Pack Rankings

Ranked in Local Search Within 90 Days

150+ 5-Star Reviews Generated

Review Velocity

150+ 5-Star Reviews Generated

300% Increase in Qualified Traffic

Organic Traffic

300% Increase in Qualified Traffic

What Roofers Say

"Since partnering with Roofer Quest, our call volume has tripled. We had to hire two new estimators just to handle the influx from Google Maps."

M

Mike T.

Owner, Elite Roofing Solutions

"They don't just talk about rankings, they deliver signed contracts. The best ROI of any marketing investment we've ever made."

S

Sarah Jenkins

VP of Operations, Summit Commercial Roofs

"We used to rely on HomeAdvisor and shared leads. Now, 100% of our business comes exclusively through organic search. Game changer."

D

David R.

Founder, Apex Restoration

SEO Execution Strategy

The 180-Day Roofing SEO Roadmap

See how we optimize the profile, build the website, and earn local-pack rankings over a 6-month engagement.

1

Month 1: Profile Audit and Setup

  • Category and Field Fixes: Setting the primary category, secondary categories, description, services, and service areas.
  • NAP Cleanup: Correcting the name, address, and phone number across the profile, the website, and the directory citations.
2

Month 2: Reviews and Media

  • Review System: Setting up a steady request flow and replying to every review, positive and negative.
  • Photo and Post Cadence: Uploading job photos from each completed roof and publishing profile posts twice a month.
4

Month 4: Citations and Site Support

  • Citation Building: Adding consistent listings on the directories that feed prominence for a service area.
  • Service-Area Pages: Building city pages on the website that reinforce the profile's service areas.
6

Month 6: Local-Pack Rankings and Leads

  • Map-Pack Position: Reaching the top 3 of the local pack for core roofing queries in the served cities.
  • Lead Tracking: Measuring calls and direction requests from the profile against the cost of paid leads.

Owning Search Demand vs Renting It From Lead Platforms

If you pay Angi or Google Ads, you are renting visibility. The moment you stop paying, your pipeline dries up. Ranking the profile and the website for high-intent local searches builds permanent digital equity.

Shared Lead Platforms (Angi, HomeAdvisor)

  • The Race to the Bottom: Shared leads force you to slash prices to win against 5 other roofers.
  • Low Intent: Half the time they aren't ready to buy, they were just clicking around online.

Local Search SEO (Our Approach)

  • 100% exclusive, direct-to-you inbound calls.
  • Highest closing rate. They chose YOU from the local pack.
  • Compounding ROI. You don't pay per click.

We Identify Search Intent Using Industry-Leading Data Tools

Ahrefs
Semrush
Google Search Console
OpenAI
Nizam Ud Deen - Roofing SEO Expert
SEO Leadership

Expertise Built on Data. Not Guesswork.

I'm Nizam Ud Deen, and I don't build generic websites. I build search intent engines specifically for the roofing industry.

For years, I've watched roofers burn money on agencies that brag about "traffic" while the phones stay silent. Traffic without intent is worthless. My system maps exactly how homeowners search during storms, when comparing prices, and when they're ready to buy, and intercepts them at every stage.

100+
Roofers Scaled
15+
Years Experience
10k+
Keywords Ranked
0
Lock-In Contracts

The No-Brainer Roofing SEO Guarantee

We don't guarantee "traffic" or "rankings." We guarantee high-intent leads.

"We guarantee to generate 15 exclusive, inbound replacement or repair leads per month within the first 180 days, driven entirely by high-intent organic search. If we don't hit that metric, we work for free until we do."

Measuring Success: Leads and Revenue

We don't report on vanity metrics. If traffic goes up but revenue stays flat, the strategy failed. We track the pipeline.

100%

Call Tracking

Every keyword mapped to the exact phone call it generated.

Form

Form Fills

Tracking estimate requests from high-intent local landing pages.

ROI

Booked Jobs

Connecting CRM data to SEO efforts to prove actual revenue return.

$$

Cost per Lead

Monitoring organic CPL to ensure it beats shared platform costs.

The Roofing AggregateRating Schema Checklist

Run each roofing page through this checklist to confirm the AggregateRating markup is truthful, valid, and in sync.

ratingValue set to the real average score?
ratingCount or reviewCount included?
Rating nested in the correct parent item?
Reviews visible on the page that the rating describes?
Values match the Google Business Profile?
One rating block per page, not duplicated everywhere?
Passed the Rich Results Test with no errors?
A plan to update the rating as reviews change?

Frequently Asked Questions

Clear answers about AggregateRating schema for roofing pages.

What is AggregateRating schema?

AggregateRating schema is structured data that states a roofing company's average review score and the number of reviews behind it. It nests inside a parent item like LocalBusiness and can produce a star rating in search.

What properties does AggregateRating require?

It requires ratingValue, the average score, and either ratingCount or reviewCount, the number behind it. bestRating and worstRating are optional and default to 5 and 1.

What is the difference between ratingCount and reviewCount?

ratingCount counts all ratings, including those with no written text. reviewCount counts only written reviews. Pick the one that matches your data, and include at least one.

Where should AggregateRating go on a roofing site?

Nest the overall rating in the LocalBusiness or RoofingContractor item, usually on the homepage or main service page. A service-specific rating can sit on a Service item where that service has its own reviews.

Do I need visible reviews on the page to use AggregateRating?

Yes. The rating must describe reviews a visitor can see on the page. A rating with no visible reviews violates Google's guidelines and can trigger a manual action against the page.

Can I use my Google review count in the schema?

You can reflect your Google review average and count if those reviews are shown on the page, for example through an embedded widget. The markup must match what a visitor can actually see.

Does AggregateRating guarantee star ratings in search?

No. Valid markup makes the page eligible, but Google decides whether to show the star rating. See rich results eligibility for what affects display.

How do I test AggregateRating markup?

Use Google's Rich Results Test. Enter the live URL or paste the JSON-LD, then confirm the tool detects the rating and reports no errors. Re-test after any change to the rating or count.

Should AggregateRating go on every page?

No. Place the rating where reviews exist, such as the homepage and main service pages. Duplicating the same rating on a blog post with no reviews is a guideline violation.

What happens if my rating does not match Google?

A mismatch between the markup and the visible or profile rating reads as inaccurate to search engines and can cost the star result. Update the JSON-LD to match the current count and average.

Can I add AggregateRating to a roof replacement page?

Yes, if that page shows reviews about roof replacement specifically. Nest the rating on a Service item for the service. If the service-level reviews are too few, use the overall business rating instead.

Is AggregateRating a ranking factor?

The markup itself is not a direct ranking factor. The star rating it can produce raises click-through, and a higher click-through on a roofing listing can support the page's position over time.

How often should I update the rating in the markup?

Check the average and count each month and update the JSON-LD before the gap grows wide. For a high review volume, automate the values from a feed so the markup stays in sync.

What is the difference between AggregateRating and Review schema?

AggregateRating is the summary score across many reviews. Review marks up a single named review. A page can carry both. See review schema for the single-review side.

Get Your Free Roofing Schema Audit

We'll review the AggregateRating markup across your roofing pages, run each through the Rich Results Test, and show where the star rating is at risk or missing.

What You Get:

  • Markup ReviewA check of ratingValue, the count, and the parent item on each key page.
  • Validation PassA Rich Results Test on each page with a list of errors and warnings.

More Deliverables

  • Sync CheckA comparison of the markup rating against your Google Business Profile.
  • Corrected JSON-LDA drafted, valid rating block for your highest-value roofing pages.

Claim your free roofing schema audit today. No commitment required.