Skip to main content
SEO Auditor — crawls the audited site, same host only, until it finds a page that carries schema.org Review / AggregateRating structured data, review microdata or a reviews heading.

Social proof

Confirms that buyers can find customer reviews or testimonials on your own site instead of leaving for a third-party listing.

Structured data

Rewards pages marked up with schema.org Review or AggregateRating, which search engines and AI assistants read for rating snippets.
Reviews and testimonials are the first thing many buyers look for before trusting a business, and AI assistants and search engines use Review and AggregateRating markup to show ratings next to a site. This auditor crawls the site from the start URL and reports whether such a page exists and how it was recognized.

How it works

  1. Start page — fetches the audited URL as 37AuditsBot. An invalid URL or one without a host ends the audit with 501; a blocked request ends it with 590; a network error, an HTTP 4xx/5xx answer or a body that is not text/html ends it with 500.
  2. Crawl — follows <a href> links on the same host, breadth first, up to 500 pages. Other pages that cannot be fetched, answer HTTP 4xx/5xx or are not HTML are skipped silently.
  3. Detect — on every page, in this order: JSON-LD with an @type plus a review or aggregateRating key (json-ld), microdata with a schema.org Review / AggregateRating itemtype or a review, reviewRating or ratingValue itemprop (microdata), or an h1–h4 heading such as “Reviews”, “Testimonials”, “Customer Reviews”, “Case Studies”, “Avaliações” or “Depoimentos” (heading).
  4. Star hints — on the page that matched, counts ★ / ⭐ characters and aria-label / title attributes containing “out of” (for example “4.8 out of 5”). The count is reported, it does not change the verdict.
  5. Aggregate — the first page that matches ends the crawl with SUCCESS (200). A crawl that runs out of links or reaches the page limit without a match is FAIL (400).

What it audits

Every row maps to one checkRule* method and one CheckCode, in the order the auditor runs them. CheckCode suffixes use status ranges: 200 success, 400–499 fail, 500–599 error.

Output documentation

Risks and considerations

Why a reviews page matters

  • Buyers compare you with competitors in minutes; reviews on your own site keep that comparison on your pages instead of a marketplace or a review aggregator.
  • Search engines and AI assistants read Review and AggregateRating markup to show star ratings and quote customer feedback. A page that only shows reviews as text or images is found by the heading heuristic, but earns no rating snippet.

Crawl limits

  • Only links on the same host are followed, so reviews hosted on a subdomain (reviews.example.com) or a third-party widget are not found.
  • The crawl stops at 500 pages. On large sites, link the reviews page from the home page or the main navigation so it is reached early.
  • Pages rendered only by JavaScript are not executed; links and markup must be in the HTML the server sends.
  • The heading heuristic matches words such as “Reviews”, “Ratings” or “Case Studies” in any h1–h4, so a page about how to review a contract can count as a match.

Changes from the previous version

  • An invalid start URL, or one without a host, is now ERROR (501) instead of FAIL: it is a problem with the audit input, not with the site.
  • A start page that cannot be fetched (network error, HTTP 4xx/5xx other than a block, or a non-HTML body) is now ERROR (500) instead of the “not found” FAIL.
  • The “not found” verdict now carries a check (400) with the host, the pages crawled and the limit, instead of a message only.
  • Two redundant JSON-LD branches were removed; the remaining branch already matched every page they matched, so no verdict changes.