Structured data doesn’t guarantee rich results — Google decides based on content quality, relevance, and trust. It’s a prerequisite, not a magic toggle.
Three Paths
- AI Chat (easiest)
- Site Enhancements
- Manual JSON-LD
Describe what you want:The AI will detect your page types, generate the appropriate JSON-LD, and inject it into your page templates.
Common Schema Types by Page Type
Most pages use 1-2 schema types. Don’t stack unrelated schema hoping for more rich results — Google treats that as spam.
Example: Article Schema
For a blog post:Example: Product Schema
For a product detail page:Example: FAQ Schema
Stick this on any page with genuine Q&A content:Dynamic Schema for Blog and Product Pages
Hardcoded JSON-LD only works for static content. For blogs and products, generate it from your data:1
Fetch the page data
Load the blog post or product from your database.
2
Build the schema object
3
Inject into the page head
In Next.js, use the built-in Script component or render the JSON inside a script tag via children:JSON.stringify produces safe JSON — no user-generated HTML is inserted, so there’s no XSS risk as long as you’re only serializing your own structured data object.
Test Your Schema
Google provides a free validator:1
Visit the Rich Results Test
2
Paste your page URL
Or paste raw HTML if the page isn’t deployed yet.
3
Review results
The test shows:
- Which schema types were detected
- Whether the page is eligible for rich results
- Any errors or warnings (missing required fields)
4
Fix errors, leave warnings
Errors block rich results. Warnings mention optional fields and are safe to ignore unless you want the richest possible snippet.
Monitor Rich-Result Coverage
Google Search Console shows you what’s working:1
Open Search Console
2
Go to Enhancements
Left sidebar > Enhancements. You’ll see a report per schema type (Articles, Products, FAQ, etc.).
3
Watch for errors
Google crawls new pages and flags schema issues here. Check weekly after launching new schema; fixed errors usually clear within a week of a re-crawl.
Verify It Worked
1
Validate via the Rich Results Test
Paste the URL of a page with schema. Confirm zero errors.
2
View the raw JSON-LD in the browser
Open the page, view source, search for
application/ld+json. The script tag should contain your generated schema.3
Wait for Google to index
Rich results take weeks to show up. Watch Search Console > Enhancements for indexing activity, and run occasional searches for your content.
Troubleshooting
Rich results not showing even though schema is valid
Rich results not showing even though schema is valid
Rich results aren’t guaranteed. Google considers content quality, site trust, and relevance. Also: it takes weeks to months for new schema to reflect in SERPs — be patient and monitor Search Console.
Validation errors in the Rich Results Test
Validation errors in the Rich Results Test
Fix per the tool’s guidance. Common errors: missing required properties (e.g., Article requires
headline, image, author, datePublished), invalid dates (use ISO 8601), invalid URLs (must be absolute), incorrectly formatted prices (use string like "29.99", not number).Warnings about missing optional fields
Warnings about missing optional fields
Warnings are safe to ignore, but adding the recommended fields can unlock richer snippets. For Article, adding
publisher.logo and dateModified tends to help.Schema conflicts with page content
Schema conflicts with page content
Google penalizes misleading schema. If your page says “In Stock” but the product is actually out of stock in your DB, fix one. Ensure schema is generated from the same data that renders the visible page — don’t maintain them separately.
Multiple competing schemas on one page
Multiple competing schemas on one page
You have schema from Site Enhancements AND your manual tags, and they disagree. Pick one source of truth — usually your manual tags win because they’re more specific. Turn off redundant auto-generated schema or override it.
What’s Next?
SEO Basics
Titles, descriptions, sitemaps, and other on-page SEO
SEO Audit
Find gaps in your site’s SEO coverage