Schema markup has become the standard upsell in this field. It sounds technical, it is invisible to the client, and it is easy to charge for. Some of it genuinely helps. A lot of what gets sold does nothing at all.
Here is the short version of what structured data is actually doing, so the difference is easy to spot.
It removes ambiguity. It does not create authority.
Structured data is a machine-readable restatement of things a page already says. It says: this string is the price, this one is the brand, this number is the rating, this is the currency, this is the availability.
That is genuinely useful. Parsing a price out of a page is harder than it sounds, and ambiguity is expensive for a system trying to answer confidently.
But it is a restatement. It cannot introduce a fact the page does not contain, and it does not make an assistant prefer one brand over another. A page with immaculate markup that never says who the product is for will not get recommended, because there is nothing to recommend it for.
Get that order right and the rest of the decisions become easy. Text first, then markup that agrees with it.
The three types that earn their place
For an ecommerce brand, this is most of the value.
Organization. Name, logo, site, social profiles, contact details. One instance, site-wide. Its job is identity: making it unambiguous that the brand on the site, the seller on the marketplace and the account on Instagram are one company. Most brands fill in the name and skip the rest, which is the part that does the work.
Product, with Offer. Name, brand, description, SKU or GTIN, image, and then the Offer block: price, currency, availability, and the shipping and returns details where they exist. The identifiers matter more than people expect, because they are how a listing on one channel gets connected to a listing on another.
Review and AggregateRating. Only where they genuinely exist, only reflecting what is on the page.
Fill those three properly and most of what schema can do has been captured.
Where it pays most
The fields that pay are the ones buyers put constraints on and assistants hate guessing at.
Price and currency. Availability. Rating. Shipping time and cost. Return window. Size, material, colour and the category-specific attributes that define the product type.
These are the same facts that matter everywhere else in AEO, which is not a coincidence. Schema is not a separate project. It is the last five percent of the work of stating facts clearly, done in a format a machine reads without effort.
The cargo cult list
Things that turn up in audits regularly, get removed, and are never missed.
Markup describing content that is not on the page. It is against every published guideline, it can get a site penalised in search, and an assistant that reads the page and the markup and finds them disagreeing trusts the brand less, not more.
Every type available, stacked. WebPage, WebSite, BreadcrumbList, ImageObject, SiteNavigationElement, Person, Thing. A plugin generated all of it. It adds weight and clarifies nothing.
FAQ blocks written for the markup rather than for readers. The rich result these were chasing has been heavily restricted in search for a while now, and a made-up question nobody asks helps nobody. Real FAQ content on the page is valuable. FAQ markup wrapped around invented questions is filler.
Markup that contradicts the visible page. Usually a price that was updated in one place and not the other.
This is the most damaging item on the list and the most common.
Markup as a substitute for content. The single biggest one. A product page where the material, the size range and the use case exist only inside the JSON and inside an image, and nowhere in the readable text.
The five minute check
Take one product page. Run it through Google's Rich Results Test or Schema.org's validator. Then do the part most people skip: read the output as though you knew nothing about the brand.
Does it say what the product is, who it is for, what it costs, whether it is in stock and how long it takes to arrive. If it does not, no amount of additional markup is going to help, and the fix is on the page, not in the code.
What does not work
Adding schema to a page whose key facts live inside images. This shows up constantly. Ingredients, size charts, spec tables and care instructions rendered as pictures, with a beautifully constructed Product block wrapped around a page that, in text, says almost nothing.
Fix the text first. Then mark it up. In that order, the markup is worth doing. In the other order it is decoration.
Where to start
- Pick the best selling product page and validate it.
- Check the price, availability and rating in the markup against what is on the page today.
- Make sure Organization exists once, site-wide, with profiles and identifiers filled in.
- Find every fact that lives only in an image and put it in text.
- Delete anything a plugin added that nobody can explain the purpose of.