Overview
What It Involves
For each of the 5 priority pages (from the keyword map), choose the correct schema type, build the JSON-LD block, deploy it to the page via the CMS, validate it in Google's Rich Results Test, and save a validation screenshot.
The 5 pages are typically: homepage (LocalBusiness or Organization), 2–3 service pages (Service), and 1 blog/article page (Article or FAQPage). BreadcrumbList is deployed sitewide as a bonus if the CMS supports it.
Why It Matters
Schema unlocks rich results in SERPs — review stars, FAQ accordions, breadcrumb trails, and How-To steps — which substantially lift click-through rate. It also feeds AI overview eligibility: pages with strong structured data are more frequently cited by Google's AI overviews and by ChatGPT and Perplexity.
Schema breaks easily when CMS templates change, which is why re-auditing on a tiered schedule matters.
Choose Schema Types
Identify the 5 pages and assign schema types
Pull the top 5 pages from the keyword map (or the page tweaks spreadsheet if done). Assign the most appropriate schema type to each:
Schema type assignments by page type
- Homepage or contact page → LocalBusiness (for local businesses) or Organization (for non-local)
- Service page → Service (with ServiceType, areaServed, provider)
- Blog post or article → Article (with author, datePublished, publisher)
- Page with FAQs → FAQPage (each Q&A as a Question + acceptedAnswer)
- Product page → Product (with offers, price, availability)
- Process or how-to guide → HowTo (with steps)
Record the page URL and assigned schema type in a simple tracking table before building anything.
Build the JSON-LD
Gather the required properties for each schema
Before writing any JSON-LD, collect the exact values you'll use. Do not guess — every property should reflect what is actually on the page.
Required data to collect before building
- LocalBusiness: business name, address (streetAddress, addressLocality, addressRegion, postalCode, addressCountry), phone, website URL, opening hours, geo coordinates (from Google Maps), image URL, business category
- Service: service name, description, provider name, provider URL, areaServed (city or region), serviceType
- Article: headline (same as H1), author name, author URL or sameAs, datePublished (from the post), dateModified, publisher name, publisher logo URL
- FAQPage: every question + answer pair visible on the page — only include Q&As that appear visibly on the page
Never invent data. If the business has 47 reviews, the schema shows 47. If it has none, do not add a reviewCount.
Write the JSON-LD block
Build the JSON-LD as a <script type="application/ld+json"> block. Use schema.org vocabulary. Nest types correctly.
Key rules for valid JSON-LD
- Use
@context: "https://schema.org"at the root of every block - Use
@typeto declare the schema type - For LocalBusiness: include
@idset to the business's canonical URL - For multiple schema types on one page (e.g. FAQPage + BreadcrumbList): use an array
[{...}, {...}]or two separate script blocks - Do not include properties that aren't reflected in visible page content — this is schema stuffing and violates Google's guidelines
Deploy to the Page
Deploy the schema to the page
Deployment method depends on the CMS:
CMS deployment methods
- WordPress (Yoast or Rank Math): both have built-in schema editors. For LocalBusiness, use the plugin's Organisation/Local Business settings. For custom schema on a specific page, use the "Schema" tab in Yoast or the Schema Generator in Rank Math
- WordPress (manual): add a Custom HTML block (Gutenberg) or a text widget, and paste the
<script type="application/ld+json">block - Webflow, Squarespace, Wix: use the page's custom code/embed section in the page settings to inject the script block in the
<head>or before</body>
After deploying: view the page source and search for application/ld+json to confirm the script block is live and unescaped.
Validate
Validate in Google's Rich Results Test
Go to https://search.google.com/test/rich-results. Enter the page URL (or paste the HTML if the page is not yet live).
Check for: detected schema types, any Errors (must fix — schema won't show as a rich result), and Warnings (review — usually non-critical missing properties).
Validation outcomes
- No errors: clean pass — schema is eligible to appear as a rich result
- Errors present: must fix before the schema will fire in SERPs
- Warnings only: acceptable if they relate to optional properties you've intentionally omitted
- Take a screenshot of the validation result for each page — save named "schema-validation-[page-name]-[date].png" to the client's Drive folder
Document & Log
Log in Zoho
Add a Zoho comment with the following information:
Required Zoho comment fields
- List of pages and schema types deployed (e.g. "Homepage — LocalBusiness, Service page 1 — Service, Service page 2 — Service, Blog post — Article, FAQ page — FAQPage")
- Validation status for each page: pass / pass with warnings / fail — and if fail, what was fixed
- Link to the Drive folder containing validation screenshots
- Time logged
Schema Type Reference
All Supported Schema Types
Use the correct type for each page. Only use a schema type if the page actually contains the relevant content.
LocalBusiness
Businesses with a physical location or service area
Organization
Non-local businesses or companies without a service area
Service
Individual service pages
Article
Blog posts, news, editorial content
FAQPage
Pages with visible FAQ sections
HowTo
Step-by-step process pages
Product
Product pages with pricing and availability
BreadcrumbList
Sitewide navigation trail (deploy on all pages if CMS supports it)
Common Mistakes
Mistakes to Avoid
| Mistake | Why It Happens | How to Avoid It |
|---|---|---|
| Adding properties that aren't visible on the page | Google calls this schema stuffing. A business with no reviews adding a 5-star reviewCount is deceptive markup. | Only include properties that correspond to content actually visible on the page. |
| Using deprecated schema types | Schema.org evolves. Some types or properties are outdated. Copying old examples without checking can produce invalid schema. | Check schema.org directly for the current recommended properties for each type. Do not copy old examples blindly. |
| Skipping validation | Schema syntax errors silently prevent rich results. You might deploy schema that never fires in SERPs. | Always validate in Google's Rich Results Test. Save the screenshot as evidence. |
| Not re-validating after CMS updates | Theme changes, plugin updates, or page rebuilds often strip or break JSON-LD blocks without warning. | Re-validate schema as part of the tiered re-audit schedule. Add it to the checklist. |
| Adding FAQPage schema for questions not visible on the page | Google requires FAQ schema to match content the user can actually see. Hidden or dynamically loaded Q&As that aren't in the HTML don't count. | Only mark up Q&As that appear in static HTML on the page. |