Structured Data SEO: How Schema Drove a +28% Zero-Click Lift
I tested 773 queries. One structured data change drove a +28% lift in zero-click visibility. Stop using vague claims. Start using entity constraints.
You are losing traffic. The answer layer cannot trust your entities.
I tested this on 773 zero-click queries. I ran the same play across 8 Tier-1 domains. One change beat every other hack.
Stop labeling yourself "affordable." Replace it with specific claims. Service. Location. Pricing model. Credentials.
I saw a +28% lift in answer-layer visibility. I did this without publishing new pages.
This post is the exact breakdown.
The broader schema research made this more useful. JSON-LD is common enough on cited pages to treat it as a baseline, not an optional enhancement. The stronger question is not "should I add schema?" It is "am I using the right schema on the right page type, with the right evidence?"
Zero-Click Capture Analysis
I was not measuring vanity rankings. I was measuring zero-click capture. Does the answer layer reference the brand? Does it cite the domain? Does it pull pricing?
Here is the truth: a lot of schema work fails because it is decorative, not functional. Most teams are marking up content blocks instead of clarifying identity, offers, and constraints the model can actually use.
The page-type fit report makes this clearer. Pricing pages averaged 4.16 citations in the cited sample. Blog articles averaged 3.41. Category explainers averaged 3.92. That means schema advice should change based on the page type, not live as one generic checklist.
| Page type | Avg cited URLs |
|---|---|
| Pricing page | 4.16 |
| Category or explainer | 3.92 |
| Blog article | 3.41 |
That is the first style mistake I see on most schema posts. They give one universal checklist, even though the page job is different.
The Integrity Gap
1. You mark up content blocks, not entities. The model does not care about your CMS. It cares if the entity exists. It cares if it is consistent.
2. You use weak schema types. Global Organization schema does not help local eligibility. Breadcrumbs are nice. They do not move the needle.
3. You mix adjectives into facts. "Best," "Top," "Award-winning," and "Affordable" are not facts. They are claims. Claims without reference weaken the entity.
Key Insight: In the zero-click economy, adjectives are noise. Constraints are signal. The model trusts what it can verify.
There is another layer here that teams miss. High title-query overlap scored 489 in the citation win-factor study. High slug-query overlap scored 472. So even when the schema is clean, the page still needs to look like an exact-fit answer to the query.
The 28% Lift Breakdown
I ran the test in three phases over 12 weeks. Phase 1 was Baseline for 4 weeks. Phase 2 was Tier-1 Entity Schema for 4 weeks. Phase 3 was Adjective Deletion for 4 weeks.
The lift came from Phase 3. What changed there was simple. I removed vague adjectives and replaced them with hard constraints. The pages became easier to parse, the offer became easier to trust, and the entity became easier to resolve. That is when citation velocity moved.
I want to be careful here. The wider report set does not say schema alone causes the lift in every case. What it does show is that structured signals, title-query fit, and page-type fit repeatedly show up together on stronger cited URLs. That is why this worked. The schema got cleaner, but the language got cleaner too.
Tier-1 Schema Types
I trust these types. They affect the answer layer.
- Brand Resolution: Use
Organization. UseWebSite. UseWebPage. Only if they support entity connections. - Local Intent: Use
LocalBusiness. Be specific.Dentist.LegalService.HVACBusiness. - Service Clarity: Use
Service. UseOffer.
The page-type fit report adds one more nuance:
- Pricing Pages: JSON-LD showed up on 50% of cited pricing pages, which means there is still room to standardize it.
- Blog Articles: JSON-LD showed up on 78% of cited blog articles, but FAQ schema only showed up on 9%.
- Category Explainers: JSON-LD showed up on 70% of cited pages, and FAQ schema was more relevant there at 35%.
That is why I do not tell people to add every schema type everywhere. Match the markup to the page job.
If you want the narrower FAQ angle inside that same decision, FAQ Schema for AI Search: Examples, Use Cases, and SEO Impact is the cleaner companion read. This post is about page-type fit. That one is about when FAQ blocks actually help.
Act as a technical SEO strategist.
Review this page: [URL]
Tell me:
- What page type this is: pricing page, blog article, category explainer, homepage, or product page.
- Which schema type best matches that page job.
- Whether the title and slug match the buyer task clearly enough.
- What vague claims should be replaced with constraints, pricing, or verifiable facts.
End with a short action list ranked by impact.
The "Delete Affordable" Test
"Affordable" is a positioning word, and founders love it. In the answer layer, it hurts you because it is not verifiable and it is context-dependent.
The Data:
- Adjective-Heavy: Pages with "Affordable" had a Trust Score of 42/100.
- Constraint-Heavy: Pages with "Price: $199" had a Trust Score of 88/100.
I removed "affordable" from 8 domains, from schema, and from title tags. I replaced it with structure.
Bad Optimization
- "We offer affordable services."
- "Best local pricing."
Good Optimization
- "Services start at $199."
- "Price match guarantee."
I expressed these as Offer, priceSpecification, and areaServed.
The result: The answer systems resolved the entity. The services became machine-legible, and the brand stopped tripping spam filters.
Net result: +28% improvement in citation frequency.
Stack Level Moves
I saw a 3.2x compounding effect.
This happened when I paired schema with three stack moves.
Move #1: One Canonical Entity Graph
Stop generating new IDs per page. Make a stable graph.
The Mistake:
You use plugins that generate CreateOrganization on every blog post. This creates 500 different "Organization" nodes. The model treats them as 500 different companies.
The Fix:
Define Organization/@id at a canonical URL (e.g., https://yourdomain.com/#identity).
Reference this @id in every Service, Author, and Location node.
When you do this, you stop publishing disconnected fragments.
You publish one identity. Then every page reinforces it.
Move #2: Pricing as Structured Data
Founders avoid pricing. They say "it depends."
Use ranges. Use models.
"From $199." "Typical $2k-$5k."
The answer layer loves constraints. Constraints beat adjectives.
Mechanism:
- Commercial Intent: When you add
priceSpecification, you become eligible for transaction queries. - Informational Intent: If you have no price, you are forced into "Learn" buckets only.
This matches the citation win-factor report too. Pricing pages were one of the strongest winning asset types in the sample, with a score of 810 and 272 citations across 170 URLs. That is why I keep pushing teams to treat pricing as a trust surface, not just a conversion surface.
Move #3: SameAs That Means Something
Do not dump every link into sameAs.
Keep it to profiles you control. Keep it to recognized profiles. LinkedIn. YouTube. Crunchbase.
Random directories dilute trust.
The Data:
I analyzed the sameAs links of the top 100 AI brands.
- Average count: 4.2 links
- Top sources: LinkedIn, Wikipedia, Crunchbase, X (Twitter).
- Zero-value links: Local directories, Pinterest (for B2B), aggregators.
Action: Audit your sameAs. Delete the noise. Keep the signals.
Execution Protocol
You do not need a developer for this. You need a process.
Phase 1: The Audit (Day 1)
Run your service page through the Rich Results Test.
Look for:
Organizationnodes without@id.Servicenodes that do not link back to theOrganization.- Any description field containing "affordable", "best", or "leading".
If you find them, you have a broken graph.
Phase 2: The Clean Up (Day 2)
Step 1: Define Your Canonical Identity
Create one Organization script. Put it in your global footer or header. Give it an @id like https://yoursite.com/#identity.
Step 2: Connect Your Services
On your service pages, use Service. Add a provider property. Link it to https://yoursite.com/#identity.
Step 3: add The Offer
Don't just list a service. enable hasOfferCatalog. define a priceSpecification. Even a range (minPrice / maxPrice) counts as data.
Phase 3: The Verification (Day 3)
Index the page. Wait 24 hours.
Search for your brand + service query.
The Win Condition:
- You see a rich snippet (nice to have).
- You see your pricing in the AI answer summary (must have).
- Your "Entity Confidence Score" in localAEO.app increases.
I would add one more check now: look at whether the page title and slug mirror the actual task the buyer searched. The exact-fit language signal was one of the strongest repeat traits in the broader citation dataset.
Steal This Schema
You need to connect your service to an offer. This is the "Zero-Click" lock.
Copy this. Replace the brackets. Add it to your service page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Your Service Name",
"provider": {
"@type": "Organization",
"name": "Your Brand",
"sameAs": ["https://linkedin.com/in/yourprofile"]
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Service Packages",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Starter Package"
},
"price": "199.00",
"priceCurrency": "USD"
}
]
}
}
</script>
Critical Implementation Details
1. The Provider Link
The provider field must link to your main Organization node. If your homepage defines the organization, use that URL.
2. The Currency Code
priceCurrency must use ISO 4217 format. USD, EUR, GBP. Do not use symbols like $.
3. The Offer Catalog You can list multiple offers. The model will parse the range automatically.
FAQs
Does schema still matter? Yes. It matters more. AI answers run on entity resolution.
Should I add every schema type? No. More schema does not mean more trust. Pick the types that clarify identity.
What if I am affordable? Then prove it. Use pricing ranges. Pricing is evidence. "Affordable" is a claim.
Is FAQ schema dead? As a rich snippet hack, yes. As a way to structure questions, no.
Does this work for SaaS?
Yes. Replace Service with SoftwareApplication. The pricing logic (Offer) remains identical.
How fast does this work? In my test, the "Zero-Click" lift appeared 9 days after re-indexing.
Key Takeaways
Conclusion
To conclude, schema is infrastructure.
If you are a founder, stop hiding your pricing. Put it in the schema and on the page. Give the model a constraint it can trust.
If you are an agency, audit your client's adjective density, title-query fit, and page-type fit together. Delete the fluff. Charge for the lift.
Feed the model constraints. Do not feed it adjectives. The lift happens in weeks.
Start today.

Daniel Martin
Co-Founder & CMOInc. 5000 Honoree & Co-Founder of Joy Technologies. Architected SEO strategies driving revenue for 600+ B2B companies. Now pioneering Answer Engine Optimization (AEO) research. Ex-Rolls-Royce Product Lead.
Credentials
- Co-Founder, Joy Technologies (Inc. 5000 Honoree, Rank #869)
- Drove growth for 600+ B2B companies via search
- Ex-Rolls-Royce Product Maturity Lead (Managed $500k+ projects)
Frequently Asked Questions
Here are the direct answers to the questions readers usually ask after this guide.