Goal: Implement schema.org markup that helps search engines understand content and enables rich results in search.Documentation Index
Fetch the complete documentation index at: https://docs.getcore.me/llms.txt
Use this file to discover all available pages before exploring further.
Tools Required
This skill runs using CORE memory only. No integrations required.Trigger
Run on demand when the user wants to add or audit schema markup.Setup
Search memory for:- “What pages need schema?”
- “What rich results are you targeting?”
- “What’s your tech stack?”
“What type of pages are you optimizing? (1) Blog / Product / FAQs / Other? (2) What rich results do you want to appear? (3) What’s your tech stack?”Store the response in memory. Do not ask again in future runs.
Step 1: Determine Relevant Schema Types
Match page type to schema:| Page Type | Schema Type | Rich Result |
|---|---|---|
| Blog post | Article | Title, image, date |
| Product page | Product | Price, availability, rating |
| Company page | Organization | Logo, contact, social |
| FAQ page | FAQPage | Question/answer pairs |
| How-to guide | HowTo | Steps with images |
| Event | Event | Date, time, location |
| Local business | LocalBusiness | Address, hours, phone |
| Software/SaaS | SoftwareApplication | Offer, rating |
Step 2: Gather Required Data
For your chosen schema type, collect required properties: Article: headline, image, datePublished, author, description Product: name, image, offers (price + availability), sku, brand FAQPage: mainEntity (array of Q&A pairs with name and text properties) BreadcrumbList: itemListElement (array with position, name, item URL) Organization: name, url, logo, contactPoint (phone/email) Not all properties are required, but more complete data produces better rich results.Step 3: Write JSON-LD Markup
Structure your schema as JSON-LD in the<head> or end of <body>:
@graph:
Step 4: Handle Dynamic Content
If content is dynamic (React, Next.js):- Render schema server-side for SEO
- Serialize page data to JSON-LD
- Test in Rich Results Test Tool after server rendering
- Add JSON-LD directly in HTML template
- Use includes/partials for reusable schema
- Use plugins (Yoast, Rank Math, Schema Pro)
- Customize via theme or custom code
Step 5: Validate and Test
Use these tools:- Google Rich Results Test: https://search.google.com/test/rich-results
- Schema.org Validator: https://validator.schema.org/
- Google Search Console: Enhancements reports
- ✓ All required properties included
- ✓ Correct property types and formats
- ✓ No validation errors or warnings
- ✓ Dates in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)
- ✓ URLs fully qualified (https://example.com, not /path)
Step 6: Monitor and Maintain
After deployment:- Check Search Console Enhancements report
- Monitor for errors
- Update schema when content changes
- Avoid stale dates or deprecated properties
Output Format
Schema Markup Implementation — [Page/Site Name] Page Analysis
- Page type: [Blog / Product / FAQ / Other]
- Target rich results: [What should appear in search]
- Current schema status: [None / Partial / Needs update]
- [Type]: [Why this helps]
- [Type]: [Why this helps]
- [Property]: [Planned value or source]
- [Property]: [Planned value or source]
- [Property]: [Planned value or source]
- Static / Dynamic: [How content is delivered]
- Placement: [
<head>or end of<body>] - Testing: [Rich Results Test pass?]
- [What should appear in search results]
- [Examples or screenshots if helpful]
Edge Cases
- Content changes frequently: Update schema dynamically when content updates
- Multiple languages: Add lang attribute; use hreflang for multi-language sites
- Multiple product prices (regional): Use priceCurrency to specify region
- No author name: Use organization name instead; don’t leave blank
- Future-dated content (embargo): Date must match actual publication; don’t pre-add schema
- Review schema with few ratings: Only add when >10 genuine reviews to avoid appearing artificial
