Appearance
SEO & Structured Data
The link back
Every badge — on your site and on an embedded one — is a single link to the listing it describes. It is a followed link: nothing marks it nofollow, which is what makes it count. It opens in a new tab and carries rel="noopener".
Its accessible label comes from the SEO Anchor Text template in Settings, so a screen reader announces "2 reviews on Your Directory" rather than reading out the badge's loose numbers.
Where rating markup is published
Rating structured data (aggregateRating, in JSON-LD) is published on your own listing pages — on a listing's own page, where a badge for that listing appears. It is not sent to embeds on other people's sites.
That split is deliberate. Structured data describes the main content of the page carrying it. On your listing for Joe's Plumbing, the rating is the subject of the page, and marking it up is exactly right — it is what can earn a star rating in search results. On Joe's own homepage, the same markup would be describing a rating that lives somewhere else, which is the kind of misplaced markup Google's policies exist to catch. The risk would land on Joe's site, not yours.
So the badge on Joe's site gives him a visible rating and gives you a link. The markup that can earn a rich result stays where it belongs.
Prior to 1.2.2
Versions before 1.2.2 did the opposite: markup was injected into embeds on other sites, and your own listing pages got none. Updating fixes both ends, including badges already embedded elsewhere — those stop receiving markup as soon as your site updates, with no action from the owner.
What gets published
On a listing's own page, with reviews present and schema enabled:
json
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Pizza Crust",
"url": "https://your-directory.com/places/pizza-crust/",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"bestRating": "5",
"worstRating": "1",
"ratingCount": "123"
},
"image": "https://your-directory.com/…/featured.webp"
}The listing is the top-level entity with the rating nested inside it, which is the shape Google requires. Its name is the listing's own title, and its featured image is included when it has one.
When nothing is published
Markup is withheld — deliberately — when any of these is true:
- The badge is not on the listing's own page. Archive pages and cross-site embeds get none.
- The listing has no reviews.
- The badge is showing a review average override. The rating is not real, so it is not published as though it were.
- Schema markup is turned off in Settings.
Only one block is published per listing per page, however many badges are on it.
LocalBusiness is not always right
The markup describes every listing as a LocalBusiness. That fits a directory of businesses. If your listings are events, rentals, courses or people, the type is wrong and should be changed — see For Developers for the one-line filter.
LocalBusiness also expects an address to fully validate, which this markup does not supply. If your listings carry addresses, the filter is the place to add them.

