Google's Rich Results Test tells you which structured data Google can read on a page, whether it is valid, and which Google search features the page is eligible for. Paired with the Schema Markup Validator, it gives any independent business a full picture of its markup in about ten minutes a page, with no technical background.
It is worth the ten minutes because AI engines read the same markup. Valid, specific structured data tells ChatGPT, Perplexity and Google what kind of business you are, where you are and when you are open. Broken or generic markup leaves them guessing.
Two Tools, Two Different Questions
The two tools are often confused, and they check different things.
- The Schema Markup Validator checks your markup against the schema.org vocabulary. It reports every type and property it finds, including ones Google has no search feature for.
- The Rich Results Test checks your markup against Google's own requirements for its search features, and reports which of those features the page is eligible for and what is missing.
Run both. The validator shows everything you have declared. The Rich Results Test shows what Google can use.
Step 1: Get a Baseline With the Schema Markup Validator
Paste your homepage URL into the validator and run it. Write down every type it finds. Common ones are LocalBusiness, Organization, WebSite and BreadcrumbList.
If the result is empty, or shows only the generic WebSite markup a page builder adds, you are starting from zero. That is fine. Now you know.
If you don't see LocalBusiness or a more specific subtype, that is your first fix.
Step 2: Make Your Business Type Specific
LocalBusiness is valid. It is also generic. Schema.org has hundreds of subtypes, and the type is one of the signals an engine can use to work out what kind of business you are.
- A jiu-jitsu gym: SportsActivityLocation.
- An optometry practice: MedicalBusiness (more in structured data for optometrists).
- A restaurant: Restaurant, a FoodEstablishment subtype, with servesCuisine filled in.
- A nail salon: NailSalon.
- A chiropractor: there's no chiropractic subtype, so that's MedicalBusiness itself, not Physician: schema.org lists Chiropractic only as a system of medicine, and New York's licensing office says chiropractors aren't physicians (more in AI search optimization for chiropractors).
- A physical therapy practice: Physiotherapy, also a MedicalBusiness subtype (more in AI search optimization for physical therapists).
Look up your category on schema.org and use the most specific subtype that is accurate.
Step 3: Check Hours, Service Area and Price Range
These three properties answer the questions people put to AI engines most directly: is it open, does it serve my area, is it in my budget. In the validator output, look for:
- openingHoursSpecification (or openingHours)
- areaServed
- priceRange
If one is missing, flag it. If openingHoursSpecification is there but still shows the Saturday hours you changed months ago, it is wrong, and wrong is worse than missing. For areaServed, name the neighborhoods you actually serve; service area markup covers how. priceRange is a short string such as "$$" and takes a minute to add.
Step 4: Run the Rich Results Test
Go to the Rich Results Test, enter the live URL (with https://, and www if your site uses it) and click Test URL. Test live pages only. The tool fetches the page from the web, so a staging or draft page fails or shows stale data.
The report shows:
- every structured-data item Google detected
- whether each one is valid, has warnings or has errors
- which Google rich-result features the page is eligible for
- the markup behind each item
Errors stop an item from qualifying for a feature. Warnings are optional properties you haven't filled. Fix errors first.
Keep two things straight. First, eligible is not the same as shown. The test confirms that markup meets Google's requirements; whether Google ever uses an enhancement is Google's decision, and it guarantees nothing. Second, the test only reports types Google has a search feature for. Markup with no matching feature, such as a Service block, will not appear in it at all, which is why the validator from Step 1 is part of the audit.
Step 5: Fix What the Test Finds
The report names the item and the property for each problem. Typical errors:
- A missing required property. A LocalBusiness without an address, or an FAQPage with a question but no answer.
- An address in the wrong shape. streetAddress, addressLocality and postalCode belong inside a PostalAddress object under address, not loose on the business.
- A value in the wrong format. A price written as "$40 to $60" in a field that expects a single number.
- Markup that doesn't match the page. FAQ markup for questions that aren't visible, or hours in the markup that differ from the hours on the page.
Fix the code, deploy, and test the same URL again. If you don't control the code, send the error to your developer. "Rich Results Test: LocalBusiness is missing address on the contact page" is enough for them to act on.
What a Clean Baseline Looks Like
Nostrand Optical launched with LocalBusiness, MedicalBusiness and FAQPage markup, and four rich-result types validated in Google's Rich Results Test on launch day. That is the standard to aim for on any new build: every page that matters tested, nothing failing. Validated is the right word for it. The test proves eligibility, not appearance in search.
Which Pages to Test
- Homepage: LocalBusiness or your specific subtype.
- Main service pages: Service markup for defined services, and FAQPage if the page has questions and answers (how to write those).
- About page: Person or Organization, depending on how the business is structured.
- Contact or location page: the same business details as the homepage, matching exactly.
Also check that the name, address and phone number in your markup match your Google Business Profile character for character. That cross-check is covered in the Google Business Profile fields post.
Why This Matters for AI Search
ChatGPT and Perplexity don't show rich results the way Google does, but they read the same page. Clean markup gives them an unambiguous statement of who you are, where you are and when you are open. Broken markup means the engine has to infer those facts from prose, and it sometimes infers wrong. In generative engine optimization, a clean test is the first gate, not the finish line.
Run It Today, Then Monthly
Test your homepage and main service page today and write down what you find. Then put a monthly reminder in your calendar. Markup drifts every time page content, hours or templates change, and a monthly check catches it before it piles up.