Want to display star ratings in Google search results for your Framer site? This guide walks you through implementing review Schema using two different approaches: one for standard pages and another for CMS-powered content.
You'll discover how to use a free automatic generator that streamlines the implementation process, removing the complexity of manually creating JSON-LD markup.
Adding structured data to your Framer site helps search engines understand your content better, particularly when it comes to product or service reviews. While many site builders make Schema implementation complicated, Framer's flexible architecture makes it straightforward once you understand the process.
This guide walks through everything you need to know about adding review Schema to your Framer projects, from generating the code to validating your implementation with Google's tools.
Implementing review Schema on your Framer site can improve your search presence and user engagement when Google chooses to display rich results:
Review Schema consists of structured JSON-LD code that communicates review information to search engines in a standardized format. When you implement it correctly, Google can extract rating data and present it as rich results with star displays in search listings.
The code tells search engines specific details: which product or service is being reviewed, the average rating score, total review count, and optionally, individual review details from specific customers.
Critical implementation detail: Review Schema belongs in Page Settings > Custom Code > **Start of tag** for individual pages, never in your site's global settings. Placing Schema in global Site Settings causes Google to either disregard your markup or flag errors across your entire Framer site.
Setting realistic expectations: Proper Schema implementation makes your site eligible for rich results, but Google ultimately controls when and where these enhanced displays appear.
Rather than manually constructing JSON-LD code, this free tool generates production-ready review Schema optimized for Framer implementation.
The generator creates Schema code that integrates seamlessly with Framer's Custom Code functionality. Here's how the tool works:
1 - Select your implementation type:
2 - Choose your Schema type according to your content:
3 - Specify individual review count to include beyond the aggregate rating summary
4 - Complete the required fields:
5 - Copy the generated code using the one-click copy function
The generator automatically validates syntax, handles special character escaping, and prevents common JSON-LD formatting errors that cause Schema failures.
This approach works best when you have a limited number of pages with reviews or when review content remains relatively stable over time.
After generating your markup with the tool, follow these steps to add it to your Framer site:
Important: Schema markup must be added to individual Page Settings, never to global Site Settings. Adding schema to Site Settings will cause it to appear on all pages, creating validation errors.
Displaying individual reviews: When your Schema includes specific individual reviews (not just aggregate ratings), Google requires those exact reviews to be visible somewhere on the page. Consider adding a testimonials or reviews section that shows the same review content referenced in your Schema markup. This requirement only applies when you're including individual review objects - aggregate ratings alone don't require visible reviews.
Here's an example of review Schema with fixed data for a static page:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Premium Wireless Headphones",
"image": "https://yoursite.com/headphones-image.jpg",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "89"
},
"review": [{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Sarah Chen"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"reviewBody": "Outstanding sound quality and comfort for extended listening sessions."
}]
}
</script>
For Framer sites managing multiple products or services through CMS Collections, dynamic implementation provides superior efficiency. Key point: Not every element requires dynamic fields - you can combine static Schema properties with CMS-driven data.
Within your Framer CMS, establish ONLY the fields that genuinely need to be dynamic:
Standard fields for product pages:
Optional fields for displaying individual reviews:
Important reminder: Static elements like @type: "Product" don't need CMS fields. Only information that varies between different pages requires dynamic field mapping.
Configuring review Schema in your CMS Collection Page enables automatic Schema generation across all collection items.
For dynamic content powered by Framer CMS, follow these steps:
Important: For CMS Collection Pages, add schema to the Collection Page Settings (the template), not to individual collection items. This ensures all items in the collection automatically generate correct schema.
Here's how review Schema looks with Framer CMS variables using the {{}} syntax:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": {{productName | json}},
"image": {{productImage | json}},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{{avgRating}}",
"reviewCount": "{{totalReviews}}"
},
"review": [{
"@type": "Review",
"author": {
"@type": "Person",
"name": {{reviewer1Name | json}}
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "{{reviewer1Rating}}"
},
"reviewBody": {{reviewer1Comment | json}}
}]
}
</script>
Understanding the CMS syntax:
When you add this code to your Collection Page Settings and use the Add Field button, Framer will automatically map these variables to your CMS fields. Each published collection item will generate unique Schema based on its field values.
After implementing Schema on your Framer site, validation ensures everything works correctly.
After publishing your site with the schema markup:
Note: Schema markup only works on published sites. You cannot test schema on Framer's preview URLs (framer.website URLs in preview mode). Always publish your site first, then validate using your live URL.
Google's processing time for Schema implementation varies widely and unpredictably. While some pages may show rich results within a few weeks, others can take several months or may never display them. According to Google's documentation, it takes at least several days after publishing for crawling and indexing to occur, but there's no set timeline for when rich results will appear. Factors influencing this include your site's authority, content quality, crawl frequency, and Google's algorithm decisions.
Schema not detected in validation tool: Confirm you've published your Framer site. Custom code doesn't function in preview mode or unpublished projects.
Missing CMS field data: Only fields referenced in your Schema markup need populated values. Empty fields that appear in your code will trigger validation errors.
Special characters breaking JSON: The automatic generator handles character escaping, but manual edits require proper escaping - use " for quotation marks within text strings.
Star ratings don't appear in Google: Valid Schema makes you eligible but doesn't guarantee display. Google considers multiple factors including domain authority and content relevance when deciding to show rich results.
Schema appears on incorrect pages: Schema must be page-specific. Never place product-specific review Schema in global Site Settings under the Custom Code tab - it should only exist in individual Page Settings > Custom Code > Start of tag. Adding schema to Site Settings will inject identical schema on every page, causing validation errors.
Yes, Framer supports storing complete JSON-LD markup in a Plain Text CMS field. Create a field called "schemaMarkup" in your CMS, paste the entire Schema code there, then reference it in your Custom Code using {{schemaMarkup | unsafeRaw}}. However, this approach requires caution - the unsafeRaw filter outputs content without escaping, so invalid HTML can break your site. The recommended approach is using individual CMS fields with the | json filter for better control and safety.
Google mandates that reviews in your Schema must be displayed on your actual page. Reviews need to be hosted directly on your Framer site, not imported exclusively for Schema purposes. If you visibly display reviews from services like Trustpilot or Google Reviews on your page, those can be included in Schema - but they must be accessible to visitors, not hidden in the code.
Product Schema delivers the most consistent star rating displays in search results. Service Schema performs well for service-based businesses. Stay away from LocalBusiness for self-hosted reviews because Google implemented restrictions in 2019 preventing businesses from displaying star ratings for reviews they host on their own sites.
Only fields actually referenced in your Schema markup need values. You can blend static elements (like the Schema type declaration) with dynamic fields (such as product names and rating scores). This flexibility keeps your Framer CMS structure simple while generating proper Schema for each collection page.
The aggregate rating (aggregateRating) matters most for star displays in search. Including 1-3 detailed individual reviews provides sufficient detail - adding more doesn't increase your chances of earning rich results. Prioritize review quality over quantity in your implementation.
Each page requires unique Schema matching its specific content. Duplicating the same Schema across different pages can trigger Google to ignore it or mark it as spam. Reviews should be relevant to each particular page or product, which is why copying identical review data across multiple pages undermines the purpose of providing relevant, page-specific information to search engines.
Yes, but each language version requires its own translated Schema implementation. The Schema language must align with page content for every localization. Configure separate Schema code in each language version's Page Settings for proper search engine interpretation.
For static implementation, yes - manual updates to aggregate ratings and review counts are necessary. This is why dynamic CMS implementation proves more practical for sites with regularly updated reviews. With Framer CMS, your Schema updates automatically when adding new review data to Collection items.
Google either completely ignores the Schema or displays warnings in Search Console. Use the Rich Results Test tool before publishing to identify errors early. Common problems include missing required properties, incorrect data types, and malformed JSON syntax.
Yes, provided the landing page displays actual reviews and review data. Each landing page needs its own Schema implementation in Page Settings > Custom Code. Avoid using template Schema across different landing pages - customize it for each page's specific content and review information.
Adding review Schema to your Framer site is a manageable process that can substantially improve your search result appearance. With the automatic generator included in this guide, you can create valid markup in minutes without extensive technical knowledge.
Keep in mind that correct Schema implementation makes you eligible for rich results, but Google makes the ultimate decision about displaying them. The essential steps are implementing it properly, maintaining updated and visible reviews on your site, and exercising patience while Google processes the changes.
If you require help with more advanced implementations or have specific questions about Schema markup, the team at BRIX Templates can assist you with your Framer project.
Add FAQ structured data to your Framer site in minutes. Step-by-step guide with automatic code generator for better search visibility
Learn how to add Organization Schema to your Framer site. Includes automatic JSON-LD generator and step-by-step implementation guide.
Learn how to add Video Schema to Webflow without coding. Includes free generator, step-by-step implementation for static and CMS pages, plus