Warning: Showing generic error page with unsupported feature.
Details: Import not currently supported. [NSPersistentStoreDescription: type: SQLite]
Positive Actions to Address Flags:
Step 1: Ensure all feature flags are correctly configured in the system.
Step 2: Validate the SQLite database integrity and perform necessary migrations.
Step 3: Enhance telemetry to capture complete correlation vectors for troubleshooting.
Step 4: Refactor the VerifiedIdClientBuilder.swift file to handle fallback scenarios gracefully.
Step 5: Document and track issues to ensure consistent improvement over time.
Network Diagnostics and Management
Network Diagnostics Portal
Run Diagnostics
Activate APNs
Unified AI Dynamic System
charset="UTF-8">
Unified AI Dynamic System
Dynamic Header Loader
Interactive Navigation Bar
Real-Time Data Feed
Updating current time...
R/C Number on Meter 005.1
Loading meter info...
Future Obtaining Information
Fetching future info...
Cluster Activated Crypto Funnel
Aggregating cluster data...
Hidden Safe: Crypto Currency Access
Enter the secret password to unlock the crypto safe. If an incorrect password is entered, the trap door will be activated.
Device Handshake Aggregator
This section simulates a device handshake event linking all handshakes back to your central system.
Awaiting handshake data...
Crypto Crawler Data Transfer Kit
Logs will appear here...
Store Inventory
Loading store data...
AI Integrations â The Four AI Sisters
This system leverages advanced AI modules from Wikipedia, Google AI, Google Gemini, and Polly.
Wikipedia AI:Loading...
Google AI:Loading...
Google Gemini:Loading...
Polly (TTS):Loading...
Legal SeafoodThe Catcher in the RyeLegal SeafoodExecutive Anvil
Nested review
Here's an example of a review that's nested in a Product. You can copy and paste the example to your own HTML page.
JSON-LD
RDFa
Microdata
The Catcher in the Rye
Aggregate rating
Here's an example of an aggregate rating.
JSON-LD
RDFa
Microdata
Legal Seafood
Nested aggregate rating
Here's an example of an aggregate rating that's nested in a Product. You can copy and paste the example to your own HTML page.
JSON-LD
RDFa
Microdata
Executive Anvil
Guidelines
Your content must follow these guidelines to be eligible to appear as a rich result.
Warning: If your site violates one or more of these guidelines, then Google may take manual action against it. Once you have remedied the problem, you can submit your site for reconsideration.
Technical guidelines
Search Essentials
General structured data guidelines
Technical guidelines
Make sure to mark up an aggregate evaluation of an item by many people with schema.org/AggregateRating. Google may display aggregate ratings as rich snippets or, for certain types of items, answers in search results.
Refer clearly to a specific product or service by nesting the review within the markup of another schema.org type, such as schema.org/Book or schema.org/Recipe, or by using a schema.org type as a value for the itemReviewed property.
Make sure the review content you mark up are readily available to users from the marked-up page. It must be immediately obvious to users that the page has review content. For example, if you marked up reviews, users should be able to see the text of the review and associated rating. If you use AggregateRating, users should be able to see that aggregate rating on the page.
We recommend only accepting ratings that are accompanied by a review comment and author's name. While not required, this approach can help your users see supporting details that explain the rating.
Provide review information about a specific item, not about a category or a list of items.
If you include multiple individual reviews, also include an aggregate rating of the individual reviews.
Don't aggregate reviews or ratings from other websites.
If the review snippet is for a local business or an organization, you must follow these additional guidelines:
If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature. For example, a review about entity A is placed on the website of entity A, either directly in their structured data or through an embedded third-party widget (for example, Google Business reviews or Facebook reviews widget).
For more information, check out our blog post on why we added this guideline and our FAQ about the change.
Ratings must be sourced directly from users.
Don't rely on human editors to create, curate, or compile ratings information for local businesses.
Structured data type definitions
You must include the required properties for your structured data to display in search results. You can also include the recommended properties to add more information to your structured data, which could provide a better user experience.
Review
The full definition of Review is available at schema.org/Review.
The Google-supported properties are the following:
Required properties
author
Person or Organization
The author of the review. The reviewer's name must be a valid name. For example, "50% off until Saturday" is not a valid name for a reviewer.
This field must be shorter than 100 characters. If it's longer than 100 characters, your page won't be eligible for an author-based review snippet.
To help Google best understand authors across various features, consider following the author markup best practices.
itemReviewed
One of the valid types
The item that is being reviewed. However, if the review is nested into another schema.org type using the review property, you can omit the itemReviewed property.
The valid types for the reviewed item are:
Book
Course
CreativeWorkSeason
CreativeWorkSeries
Episode
Event
Game
HowTo
LocalBusiness
MediaObject
Movie
MusicPlaylist
MusicRecording
Organization
Product
Recipe
SoftwareApplication
itemReviewed.name
Text
The name of the item that is being reviewed. If the review is nested into another schema.org type using the review property, you still need to provide the name of the thing that is being reviewed. For example:
{
"@context": "https://schema.org/",
"@type": "Game",
"name": "Firefly",
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5
},
"author": {
"@type": "Person",
"name": "John Doe"
}
}
}
reviewRating
Rating
The rating given in this review. The rating can be a nested Rating or more specific subtype. The most typical subtype is AggregateRating.
reviewRating.ratingValue
Number or Text
A numerical quality rating for the item, either a number, fraction, or percentage (for example, 4, 60%, or 6 / 10). Google understands the scale for fractions and percentages, since the scale is implied in the fraction itself or the percentage. The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value. If another scale is intended, use bestRating and worstRating.
For decimal numbers, use a dot instead of a comma to specify the value (for example 4.4 instead of 4,4). In Microdata and RDFa, you can use content attributes to override the visible content. That way, you can show the user whatever style convention you want, while also satisfying the dot requirement for structured data. For example:
4,4 stars
Recommended properties
datePublished
Date
The date that the review was published, in ISO 8601 date format.
reviewRating.bestRating
Number
The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
reviewRating.worstRating
Number
The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
AggregateRating
The full definition of AggregateRating is available at schema.org/AggregateRating.
The Google-supported properties are the following:
Required properties
itemReviewed
One of the valid types
The item that is being rated. However, if the aggregate rating is nested into another schema.org type using the aggregateRating property, you can omit the itemReviewed property.
The valid types for the reviewed item are:
Book
Course
CreativeWorkSeason
CreativeWorkSeries
Episode
Event
Game
HowTo
LocalBusiness
MediaObject
Movie
MusicPlaylist
MusicRecording
Organization
Product
Recipe
SoftwareApplication
itemReviewed.name
Text
The name of the item that is being reviewed. If the review is nested into another schema.org type using the review property, you still need to provide the name of the thing that is being reviewed. For example:
{
"@context": "https://schema.org/",
"@type": "Game",
"name": "Firefly",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 88,
"bestRating": 100,
"ratingCount": 20
}
}
ratingCount
Number
The total number of ratings for the item on your site. At least one of ratingCount or reviewCount is required.
reviewCount
Number
Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required.
ratingValue
Number or Text
The average rating for the item's quality using a numerical rating of either a number, fraction, or percentage (for example, 4, 60%, or 6 / 10). Google understands the scale for fractions and percentages, since the scale is implied in the fraction itself or the percentage. The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value. If another scale is intended, use bestRating and worstRating.
For decimal numbers, use a dot instead of a comma to specify the value (for example 4.4 instead of 4,4). In Microdata and RDFa, you can use content attributes to override the visible content. That way, you can show the user whatever style convention you want, while also satisfying the dot requirement for structured data. For example:
4,4 stars
Recommended properties
bestRating
Number
The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
worstRating
Number
The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
Monitor rich results with Search Console
Search Console is a tool that helps you monitor how your pages perform in Google Search. You don't have to sign up for Search Console to be included in Google Search results, but it can help you understand and improve how Google sees your site. We recommend checking Search Console in the following cases:
After deploying structured data for the first time
After releasing new templates or updating your code
Analyzing traffic periodically
After deploying structured data for the first time
After Google has indexed your pages, look for issues using the relevant Rich result status report. Ideally, there will be an increase of valid items, and no increase in invalid items. If you find issues in your structured data:
Fix the invalid items.
Inspect a live URL to check if the issue persists.
Request validation using the status report.
After releasing new templates or updating your code
When you make significant changes to your website, monitor for increases in structured data invalid items.
If you see an increase in invalid items, perhaps you rolled out a new template that doesn't work, or your site interacts with the existing template in a new and bad way.
If you see a decrease in valid items (not matched by an increase in invalid items), perhaps you are no longer embedding structured data in your pages. Use the URL Inspection tool to learn what is causing the issue.
Analyzing traffic periodically
Analyze your Google Search traffic using the Performance Report. The data will show you how often your page appears as a rich result in Search, how often users click on it and what is the average position you appear on search results. You can also automatically pull these results with the Search Console API.
Troubleshooting
If you're having trouble implementing or debugging structured data, here are some resources that may help you.
If you're using a content management system (CMS) or someone else is taking care of your site, ask them to help you. Make sure to forward any Search Console message that details the issue to them.
Google does not guarantee that features that consume structured data will show up in search results. For a list of common reasons why Google may not show your content in a rich result, see the General Structured Data Guidelines.
You might have an error in your structured data. Check the list of structured data errors and the Unparsable structured data report.
If you received a structured data manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results). To fix structured data issues, use the Manual Actions report.
Review the guidelines again to identify if your content isn't compliant with the guidelines. The problem can be caused by either spammy content or spammy markup usage. However, the issue may not be a syntax issue, and so the Rich Results Test won't be able to identify these issues.
Troubleshoot missing rich results / drop in total rich results.
Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the Google Search crawling and indexing FAQ.
Post a question in the Google Search Central forum.
Was this helpful?
Send feedback
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-02-04 UTC.
LinkedIn
LinkedIn
YouTube
YouTube
Blog
Blog
Podcast
Podcast
X (Twitter)
X (Twitter)
Get support
Go to the help forum
Submit a question for office hours
Report spam, phishing, or malware
More support resources
Resources
Do you need an SEO?
SEO Starter Guide
Status of Search systems
Search Console documentation
Case Studies
Tools
Search Console
Rich Results Test
PageSpeed Insights
AMP Test
Google Developers
Android
Chrome
Firebase
Google Cloud Platform
Google AI
All products
Gasmonkey is our state-of-the-art marketing framework designed to elevate your digital presence. It focuses on streamlined user engagement and innovative campaign management to help your brand reach its full potential.
Discover Gasmonkey Now
Schedule a demo to see how Gasmonkey can transform your marketing strategy.
Gasmonkey is our state-of-the-art marketing automation framework designed
to elevate your digital presence. It leverages modern web technologies to
drive engagement and deliver measurable results.
Discover Gasmonkey Now
Schedule a demo to see how Gasmonkey can transform your marketing strategy.
Discover projects that highlight our innovative approach to advanced web
solutions. One highlighted project is inspired by the p2_ADVWEB_Glover_Stephanie repository,
showcasing modern design techniques, responsive layouts, and interactive elements.
Advanced Web Project
This project demonstrates the integration of multiple web technologies into a cohesive, dynamic user experience.
Subscribe to our newsletter for the latest news and updates on Gasmonkey,
advanced web projects, and other innovative services.
OhSoFresh Online - Gasmonkey Marketing Framework
name="description"
content="Welcome to OhSoFresh Online. Experience innovative marketing strategies with Gasmonkey, advanced web solutions, and verified authority certification."
/>
OhSoFresh Online
Innovative Marketing with Gasmonkey, Advanced Web Solutions, and Verified Authority
Gasmonkey is our state-of-the-art marketing automation framework designed to elevate your digital presence. It leverages modern web technologies to drive engagement and deliver measurable results.
Discover Gasmonkey Now
Schedule a demo to see how Gasmonkey can transform your marketing strategy.
Discover projects that highlight our innovative approach to advanced web solutions.
One featured project is inspired by the p2_ADVWEB_Glover_Stephanie repository, showcasing modern design techniques,
responsive layouts, and interactive elements.
Advanced Web Project
This project demonstrates the integration of multiple web technologies into a cohesive, dynamic user experience.
Subscribe to our newsletter for the latest news and updates on Gasmonkey, advanced web projects, and other innovative services.
Certificate of Authority & Cold Handshake
Issued by: New York State Department of Taxation and Finance
Location: W A Harriman Campus, Albany NY 12227-0865
Certificate Number: 52-1234223
Issued Date: 4/10/2019
This certificate verifies that Swag Boss INC. / EMEDCO, SETON IDENTIFICATION PRODUCTS is authorized to collect sales and use taxes
under
LouisianaState Tax Law.
Cold handshake completed. Authority Verified.
Dynamic Web Portal
Welcome to Your Dynamic Web Portal
Custom Embedded Features
This area can be used for custom features, like PDNSSIP integrations or interactive UI components.
Interactive Content
Use JavaScript libraries and APIs here to implement handshake protocols or other functionalities.
Dynamic Webpage
Welcome to the Dynamic Webpage!
Click the button below to generate dynamic content.
Drake's Universal Hub
Drake's Universal Hub
Showcasing skills across technologies, languages, and design!
HTML Projects
HTML is where structure and creativity converge. Check out projects that blend seamless design with smart functionality!
CSS Creations
Styling the web, one pixel at a time! Explore cutting-edge visual designs that defy conventional layouts.
JavaScript Magic
Dynamic interactions and engaging animations. JavaScript brings your ideas to life!
Python Programs
From data crunching to automation, Python embodies versatility and intelligence in code.
Perl Adventures
Text-processing wizardry and backend brilliance! See how Perl delivers robust solutions.
// Initialize the Jet Brain Engine
initialize Engine {
// Load all modules dynamically
load Module UniversalDomainChecker
load Module NeonUIPortal
load Module SecureHandshakeEngine
load Module AIDeepLearningEngine
load Module CryptoMiningSimulator
// Configure communication channels between modules
configure REST_API Endpoints for each module
configure WebSocket channels for live telemetry
// Start container orchestration (using Docker/Kubernetes)
containerize and deploy modules
// Integrate with JetBrains IDE for live debugging and code intelligence
connect to JetBrains IDE Tools
// Launch the unified dashboard on port 8080
start DashboardServer()
}
// Module: UniversalDomainChecker
Module UniversalDomainChecker {
function validate(domain) {
if (domain exists in system) {
return { status: "recognized", domain }
} else {
autoCorrect(domain)
return { status: "auto-corrected", domain }
}
}
}
// Module: AIDeepLearningEngine
Module AIDeepLearningEngine {
function optimizeUI(parameters) {
train simple model on historical telemetry
return optimizedNeonIntensity and UI adjustments
}
}
// Module: SecureHandshakeEngine
Module SecureHandshakeEngine {
function generateSignature(meterData, secretKey) {
return HMAC_SHA256(meterData, secretKey)
}
}
// Module: CryptoMiningSimulator
Module CryptoMiningSimulator {
function simulateMining() {
for (iteration = 0; iteration < MAX; iteration++) {
compute SHA256(random value + iteration)
display hash snippet to Dashboard
}
}
}
// Main Execution Flow
Engine.start() {
domainInfo = UniversalDomainChecker.validate(currentDomain)
if (domainInfo.status == "recognized") {
signature = SecureHandshakeEngine.generateSignature(meterData, SECRET_KEY)
neonParameters = AIDeepLearningEngine.optimizeUI(signature)
NeonUIPortal.update(neonParameters)
CryptoMiningSimulator.simulateMining()
}
}
Description of the Jet Brain Engine Pseudocode
The above pseudocode outlines the structure of a unified systemâour Jet Brain Engineâthat brings together all the modules we've developed over the past year. Hereâs a breakdown:
Engine Initialization:
The system starts by loading all the core modules dynamically: a domain checker, a neon UI portal, a secure handshake engine, a deep learning (ML) engine, and a crypto mining simulator.
Communication Channels:
It then sets up APIs (via REST endpoints) and real-time WebSocket channels to let these modules communicate. This ensures that live telemetry and data flow seamlessly between all parts.
Container Orchestration:
The engine employs containerization (using Docker/Kubernetes) for easy deployment and scaling, making sure that each module operates reliably.
IDE Integration:
It connects to JetBrains IDE tools for live debugging, code intelligence, and rapid iterationâensuring that any change in one module is immediately testable and observable.
Dashboard Launch:
The unified dashboard (running on a defined port, such as 8080) displays real-time data and performance metrics collected from all modules.
Module â UniversalDomainChecker:
This module checks if a domain exists in the system. If not, it automatically corrects the domain, ensuring that the system recognizes and maintains a valid domain list.
Module â AIDeepLearningEngine:
This part uses historical telemetry data to train a simple machine learning model. The model optimizes UI parameters like neon intensity and makes adjustments dynamically.
Module â SecureHandshakeEngine:
This module generates a cryptographic HMAC-SHA256 signature from the meter data and a secret key. This signature secures the data transfer and verifies authenticity in API calls.
Module â CryptoMiningSimulator:
This portion simulates crypto mining by iteratively computing SHA256 hashes (by combining a random value with an iteration counter), and it displays parts of these hashes on the dashboard.
Main Execution Flow:
The engine starts by validating the current domain. If the domain is recognized, it generates a secure signature, optimizes the user interface via AI, updates the neon UI accordingly, and finally kicks off the crypto mining simulation.
Together, this pseudocode represents a highly modular, scalable, and intelligent systemâour Jet Brain Engineâwhere every component works in tandem to provide a dynamic, real-time interactive experience.
charset="UTF-8">
Blind Phone Shake
Blind Phone Shake
Collecting all system tokens and performing a cryptographic "blind phone shake" for that extra edge.
`;
});
return html;
}
// Function to perform the "Blind Phone Shake"
function blindPhoneShake() {
// Concatenate tokens for the payload.
const payload = tokens.join(" | ");
// Use a secret key to sign the payload.
const SECRET_KEY = "SuperSecretDrakoKey";
const signature = CryptoJS.HmacSHA256(payload, SECRET_KEY).toString(CryptoJS.enc.Hex);
// Build the output HTML with tokens and signature.
const outputHTML = `
${displayTokens()}
Blind Phone Shake Signature
${signature}
`;
// Inject output into the triangle container.
document.getElementById("triangleBox").innerHTML = outputHTML;
}
// Event listener to trigger the Blind Phone Shake on button click.
document.getElementById("shakeBtn").addEventListener("click", blindPhoneShake);
Jet Funnel Activate
Accumulate the views in this funnel. When you reach 1,000,000 views, your Jet Activate code will trigger a simulated transfer of $1000 into your bank account.
Watch the negative wires be handed off to our Dad Bots, which then cluster the data. When the cluster threshold is reached, the engine re-engineers the incoming data and activates!
Obtain USD value from every loose cryptocurrency token in the system.
Cryptocurrency
Amount Loose
Conversion Rate (USD)
Value (USD)
BTC
0.05
30000
1500
ETH
1.5
2000
3000
LTC
100
150
15000
DOGE
10000
0.30
3000
XRP
500
1
500
Welcome to S Active Portal
Your advanced crypto conversion system is live.
OhSoFresh Dynamic Recipe
charset="UTF-8">
OhSoFresh Dynamic Recipe
Dynamic Header Loader
Interactive Navigation Bar
Real-Time Data Feed
Hidden Safe: Crypto Currency Access
Enter the secret password to unlock the crypto safe. If the wrong password is provided,
our trap door server will be activated to record the unauthorized attempt.
This project leverages the SourceForge Web Services for scalable hosting.
Dynamic Data Handshake Uptake
charset="UTF-8">
Dynamic Data Handshake Uptake
Dynamic Data Handshake Uptake
This interface dynamically processes and transforms shared data IDs from
com.google.android.apps.nbu into detailed secure tokens.
The handshake operation splits each ID into segments that simulate an adaptive encryption handshake.
Dynamic Data Handshake Uptake
This interface processes and transforms shared data IDs from com.google.android.apps.nbu into secure tokens using a dynamic handshake operation.
Each ID is split into two segments, simulating an adaptive encryption handshake.
getAuthorizationUrl(
organization: $organization,
redirectUri: $redirectUri
);
echo 'Login with SSO';
});
?>
Legal SeafoodThe Catcher in the RyeLegal SeafoodExecutive Anvil
Nested review
Here's an example of a review that's nested in a Product. You can copy and paste the example to your own HTML page.
JSON-LD
RDFa
Microdata
The Catcher in the Rye
Aggregate rating
Here's an example of an aggregate rating.
JSON-LD
RDFa
Microdata
Legal Seafood
Nested aggregate rating
Here's an example of an aggregate rating that's nested in a Product. You can copy and paste the example to your own HTML page.
JSON-LD
RDFa
Microdata
Executive Anvil
Guidelines
Your content must follow these guidelines to be eligible to appear as a rich result.
Warning: If your site violates one or more of these guidelines, then Google may take manual action against it. Once you have remedied the problem, you can submit your site for reconsideration.
Technical guidelines
Search Essentials
General structured data guidelines
Technical guidelines
Make sure to mark up an aggregate evaluation of an item by many people with schema.org/AggregateRating. Google may display aggregate ratings as rich snippets or, for certain types of items, answers in search results.
Refer clearly to a specific product or service by nesting the review within the markup of another schema.org type, such as schema.org/Book or schema.org/Recipe, or by using a schema.org type as a value for the itemReviewed property.
Make sure the review content you mark up are readily available to users from the marked-up page. It must be immediately obvious to users that the page has review content. For example, if you marked up reviews, users should be able to see the text of the review and associated rating. If you use AggregateRating, users should be able to see that aggregate rating on the page.
We recommend only accepting ratings that are accompanied by a review comment and author's name. While not required, this approach can help your users see supporting details that explain the rating.
Provide review information about a specific item, not about a category or a list of items.
If you include multiple individual reviews, also include an aggregate rating of the individual reviews.
Don't aggregate reviews or ratings from other websites.
If the review snippet is for a local business or an organization, you must follow these additional guidelines:
If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature. For example, a review about entity A is placed on the website of entity A, either directly in their structured data or through an embedded third-party widget (for example, Google Business reviews or Facebook reviews widget).
For more information, check out our blog post on why we added this guideline and our FAQ about the change.
Ratings must be sourced directly from users.
Don't rely on human editors to create, curate, or compile ratings information for local businesses.
Structured data type definitions
You must include the required properties for your structured data to display in search results. You can also include the recommended properties to add more information to your structured data, which could provide a better user experience.
Review
The full definition of Review is available at schema.org/Review.
The Google-supported properties are the following:
Required properties
author
Person or Organization
The author of the review. The reviewer's name must be a valid name. For example, "50% off until Saturday" is not a valid name for a reviewer.
This field must be shorter than 100 characters. If it's longer than 100 characters, your page won't be eligible for an author-based review snippet.
To help Google best understand authors across various features, consider following the author markup best practices.
itemReviewed
One of the valid types
The item that is being reviewed. However, if the review is nested into another schema.org type using the review property, you can omit the itemReviewed property.
The valid types for the reviewed item are:
Book
Course
CreativeWorkSeason
CreativeWorkSeries
Episode
Event
Game
HowTo
LocalBusiness
MediaObject
Movie
MusicPlaylist
MusicRecording
Organization
Product
Recipe
SoftwareApplication
itemReviewed.name
Text
The name of the item that is being reviewed. If the review is nested into another schema.org type using the review property, you still need to provide the name of the thing that is being reviewed. For example:
{
"@context": "https://schema.org/",
"@type": "Game",
"name": "Firefly",
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5
},
"author": {
"@type": "Person",
"name": "John Doe"
}
}
}
reviewRating
Rating
The rating given in this review. The rating can be a nested Rating or more specific subtype. The most typical subtype is AggregateRating.
reviewRating.ratingValue
Number or Text
A numerical quality rating for the item, either a number, fraction, or percentage (for example, 4, 60%, or 6 / 10). Google understands the scale for fractions and percentages, since the scale is implied in the fraction itself or the percentage. The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value. If another scale is intended, use bestRating and worstRating.
For decimal numbers, use a dot instead of a comma to specify the value (for example 4.4 instead of 4,4). In Microdata and RDFa, you can use content attributes to override the visible content. That way, you can show the user whatever style convention you want, while also satisfying the dot requirement for structured data. For example:
4,4 stars
Recommended properties
datePublished
Date
The date that the review was published, in ISO 8601 date format.
reviewRating.bestRating
Number
The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
reviewRating.worstRating
Number
The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
AggregateRating
The full definition of AggregateRating is available at schema.org/AggregateRating.
The Google-supported properties are the following:
Required properties
itemReviewed
One of the valid types
The item that is being rated. However, if the aggregate rating is nested into another schema.org type using the aggregateRating property, you can omit the itemReviewed property.
The valid types for the reviewed item are:
Book
Course
CreativeWorkSeason
CreativeWorkSeries
Episode
Event
Game
HowTo
LocalBusiness
MediaObject
Movie
MusicPlaylist
MusicRecording
Organization
Product
Recipe
SoftwareApplication
itemReviewed.name
Text
The name of the item that is being reviewed. If the review is nested into another schema.org type using the review property, you still need to provide the name of the thing that is being reviewed. For example:
{
"@context": "https://schema.org/",
"@type": "Game",
"name": "Firefly",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 88,
"bestRating": 100,
"ratingCount": 20
}
}
ratingCount
Number
The total number of ratings for the item on your site. At least one of ratingCount or reviewCount is required.
reviewCount
Number
Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required.
ratingValue
Number or Text
The average rating for the item's quality using a numerical rating of either a number, fraction, or percentage (for example, 4, 60%, or 6 / 10). Google understands the scale for fractions and percentages, since the scale is implied in the fraction itself or the percentage. The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value. If another scale is intended, use bestRating and worstRating.
For decimal numbers, use a dot instead of a comma to specify the value (for example 4.4 instead of 4,4). In Microdata and RDFa, you can use content attributes to override the visible content. That way, you can show the user whatever style convention you want, while also satisfying the dot requirement for structured data. For example:
4,4 stars
Recommended properties
bestRating
Number
The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
worstRating
Number
The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
Monitor rich results with Search Console
Search Console is a tool that helps you monitor how your pages perform in Google Search. You don't have to sign up for Search Console to be included in Google Search results, but it can help you understand and improve how Google sees your site. We recommend checking Search Console in the following cases:
After deploying structured data for the first time
After releasing new templates or updating your code
Analyzing traffic periodically
After deploying structured data for the first time
After Google has indexed your pages, look for issues using the relevant Rich result status report. Ideally, there will be an increase of valid items, and no increase in invalid items. If you find issues in your structured data:
Fix the invalid items.
Inspect a live URL to check if the issue persists.
Request validation using the status report.
After releasing new templates or updating your code
When you make significant changes to your website, monitor for increases in structured data invalid items.
If you see an increase in invalid items, perhaps you rolled out a new template that doesn't work, or your site interacts with the existing template in a new and bad way.
If you see a decrease in valid items (not matched by an increase in invalid items), perhaps you are no longer embedding structured data in your pages. Use the URL Inspection tool to learn what is causing the issue.
Analyzing traffic periodically
Analyze your Google Search traffic using the Performance Report. The data will show you how often your page appears as a rich result in Search, how often users click on it and what is the average position you appear on search results. You can also automatically pull these results with the Search Console API.
Troubleshooting
If you're having trouble implementing or debugging structured data, here are some resources that may help you.
If you're using a content management system (CMS) or someone else is taking care of your site, ask them to help you. Make sure to forward any Search Console message that details the issue to them.
Google does not guarantee that features that consume structured data will show up in search results. For a list of common reasons why Google may not show your content in a rich result, see the General Structured Data Guidelines.
You might have an error in your structured data. Check the list of structured data errors and the Unparsable structured data report.
If you received a structured data manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results). To fix structured data issues, use the Manual Actions report.
Review the guidelines again to identify if your content isn't compliant with the guidelines. The problem can be caused by either spammy content or spammy markup usage. However, the issue may not be a syntax issue, and so the Rich Results Test won't be able to identify these issues.
Troubleshoot missing rich results / drop in total rich results.
Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the Google Search crawling and indexing FAQ.
Post a question in the Google Search Central forum.
Was this helpful?
Send feedback
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-02-04 UTC.
LinkedIn
LinkedIn
YouTube
YouTube
Blog
Blog
Podcast
Podcast
X (Twitter)
X (Twitter)
Get support
Go to the help forum
Submit a question for office hours
Report spam, phishing, or malware
More support resources
Resources
Do you need an SEO?
SEO Starter Guide
Status of Search systems
Search Console documentation
Case Studies
Tools
Search Console
Rich Results Test
PageSpeed Insights
AMP Test
Google Developers
Android
Chrome
Firebase
Google Cloud Platform
Google AI
All products