Structured Data Isn't Optional Anymore
Rich results — star ratings under a product listing, an FAQ dropdown right in the search results, a recipe card with a photo and cook time — are one of the few remaining ways to stand out on a search results page that's otherwise dominated by ads and AI overviews. All of them are powered by the same underlying mechanism: JSON-LD structured data using the schema.org vocabulary, embedded in a <script type="application/ld+json"> tag in the page's HTML.
The problem is that most sites either skip structured data entirely or ship markup that's technically present but functionally broken — missing a required field, using the wrong nesting, or describing content that doesn't match what's visible on the page. Google's Rich Results Test will often still parse the JSON without errors while quietly declining to show the rich result, because a recommended field was empty or a required one was missing.
The Fields That Actually Matter Per Type
Each schema.org type has its own required and recommended properties, and getting them right matters more than getting the JSON syntax right:
- Article — needs
headline,image,datePublished, and anauthorwith a name. Skip the image and Google Discover eligibility drops. - Product — needs
name,image,description, and a nestedoffersobject withprice,priceCurrency, andavailability. A price with no currency is effectively invalid. - LocalBusiness — needs a full
PostalAddress,telephone, andopeningHoursin the correct schema.org day-range format (e.g.Mo-Fr 09:00-17:00). - FAQPage — needs an array of
Questionentities, each with anacceptedAnswer. Every question needs a real answer — placeholder text gets filtered by Google's quality checks. - Recipe — needs
recipeIngredientas an array of strings andrecipeInstructionsas an array ofHowToStepobjects, plusprepTimeandcookTimein ISO 8601 duration format (PT20Mfor 20 minutes). - Review — needs an
itemReviewedentity, areviewRatingwith aratingValue, and anauthor.
The Nesting Mistakes That Silently Break Rich Results
Beyond missing fields, the most common structural mistakes are: forgetting "@context": "https://schema.org" at the top level, nesting an Offer directly instead of wrapping it under offers, and using a plain string where schema.org expects a typed object — like putting an author's name directly on the Article instead of nesting it inside {"@type": "Person", "name": "..."}.
A Faster Way to Get It Right
Rather than hand-writing JSON-LD from a schema.org reference page every time, a generator that only asks for the fields a given type actually needs — and validates that none of the required ones are empty — removes most of the room for error. Fill in the form, get valid nested JSON-LD back, paste it into the <head>, and verify it in Google's Rich Results Test before publishing.
Bottom Line
Rich results aren't a ranking hack — they're a visibility upgrade that depends entirely on structured data being complete and correctly typed. Getting the required fields right the first time, for the schema type that actually matches your content, is the difference between an FAQ dropdown showing up in search results and a JSON-LD block that just sits in your page source doing nothing.