- Fix marketplace.json: add 2 missing skills (content-strategy, product-marketing-context) - Refactor 10 skills over 500 lines to use references/ folders: - email-sequence: 926 → 291 lines - social-content: 809 → 276 lines - competitor-alternatives: 750 → 253 lines - pricing-strategy: 712 → 226 lines - programmatic-seo: 628 → 235 lines - referral-program: 604 → 239 lines - schema-markup: 598 → 175 lines - free-tool-strategy: 576 → 176 lines - paywall-upgrade-cro: 572 → 224 lines - marketing-ideas: 566 → 165 lines Each skill now has core workflow in SKILL.md (<500 lines) with detailed content in references/ folder for progressive disclosure. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
385 lines
7.8 KiB
Markdown
385 lines
7.8 KiB
Markdown
# Schema Markup Examples
|
|
|
|
Complete JSON-LD examples for common schema types.
|
|
|
|
## Organization
|
|
|
|
For company/brand homepage or about page.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Organization",
|
|
"name": "Example Company",
|
|
"url": "https://example.com",
|
|
"logo": "https://example.com/logo.png",
|
|
"sameAs": [
|
|
"https://twitter.com/example",
|
|
"https://linkedin.com/company/example",
|
|
"https://facebook.com/example"
|
|
],
|
|
"contactPoint": {
|
|
"@type": "ContactPoint",
|
|
"telephone": "+1-555-555-5555",
|
|
"contactType": "customer service"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## WebSite (with SearchAction)
|
|
|
|
For homepage, enables sitelinks search box.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "WebSite",
|
|
"name": "Example",
|
|
"url": "https://example.com",
|
|
"potentialAction": {
|
|
"@type": "SearchAction",
|
|
"target": {
|
|
"@type": "EntryPoint",
|
|
"urlTemplate": "https://example.com/search?q={search_term_string}"
|
|
},
|
|
"query-input": "required name=search_term_string"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Article / BlogPosting
|
|
|
|
For blog posts and news articles.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Article",
|
|
"headline": "How to Implement Schema Markup",
|
|
"image": "https://example.com/image.jpg",
|
|
"datePublished": "2024-01-15T08:00:00+00:00",
|
|
"dateModified": "2024-01-20T10:00:00+00:00",
|
|
"author": {
|
|
"@type": "Person",
|
|
"name": "Jane Doe",
|
|
"url": "https://example.com/authors/jane"
|
|
},
|
|
"publisher": {
|
|
"@type": "Organization",
|
|
"name": "Example Company",
|
|
"logo": {
|
|
"@type": "ImageObject",
|
|
"url": "https://example.com/logo.png"
|
|
}
|
|
},
|
|
"description": "A complete guide to implementing schema markup...",
|
|
"mainEntityOfPage": {
|
|
"@type": "WebPage",
|
|
"@id": "https://example.com/schema-guide"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Product
|
|
|
|
For product pages (e-commerce or SaaS).
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Product",
|
|
"name": "Premium Widget",
|
|
"image": "https://example.com/widget.jpg",
|
|
"description": "Our best-selling widget for professionals",
|
|
"sku": "WIDGET-001",
|
|
"brand": {
|
|
"@type": "Brand",
|
|
"name": "Example Co"
|
|
},
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"url": "https://example.com/products/widget",
|
|
"priceCurrency": "USD",
|
|
"price": "99.99",
|
|
"availability": "https://schema.org/InStock",
|
|
"priceValidUntil": "2024-12-31"
|
|
},
|
|
"aggregateRating": {
|
|
"@type": "AggregateRating",
|
|
"ratingValue": "4.8",
|
|
"reviewCount": "127"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## SoftwareApplication
|
|
|
|
For SaaS product pages and app landing pages.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "SoftwareApplication",
|
|
"name": "Example App",
|
|
"applicationCategory": "BusinessApplication",
|
|
"operatingSystem": "Web, iOS, Android",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "0",
|
|
"priceCurrency": "USD"
|
|
},
|
|
"aggregateRating": {
|
|
"@type": "AggregateRating",
|
|
"ratingValue": "4.6",
|
|
"ratingCount": "1250"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## FAQPage
|
|
|
|
For pages with frequently asked questions.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "FAQPage",
|
|
"mainEntity": [
|
|
{
|
|
"@type": "Question",
|
|
"name": "What is schema markup?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "Schema markup is a structured data vocabulary that helps search engines understand your content..."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "How do I implement schema?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## HowTo
|
|
|
|
For instructional content and tutorials.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "HowTo",
|
|
"name": "How to Add Schema Markup to Your Website",
|
|
"description": "A step-by-step guide to implementing JSON-LD schema",
|
|
"totalTime": "PT15M",
|
|
"step": [
|
|
{
|
|
"@type": "HowToStep",
|
|
"name": "Choose your schema type",
|
|
"text": "Identify the appropriate schema type for your page content...",
|
|
"url": "https://example.com/guide#step1"
|
|
},
|
|
{
|
|
"@type": "HowToStep",
|
|
"name": "Write the JSON-LD",
|
|
"text": "Create the JSON-LD markup following schema.org specifications...",
|
|
"url": "https://example.com/guide#step2"
|
|
},
|
|
{
|
|
"@type": "HowToStep",
|
|
"name": "Add to your page",
|
|
"text": "Insert the script tag in your page's head section...",
|
|
"url": "https://example.com/guide#step3"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## BreadcrumbList
|
|
|
|
For any page with breadcrumb navigation.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "BreadcrumbList",
|
|
"itemListElement": [
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 1,
|
|
"name": "Home",
|
|
"item": "https://example.com"
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 2,
|
|
"name": "Blog",
|
|
"item": "https://example.com/blog"
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 3,
|
|
"name": "SEO Guide",
|
|
"item": "https://example.com/blog/seo-guide"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## LocalBusiness
|
|
|
|
For local business location pages.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "LocalBusiness",
|
|
"name": "Example Coffee Shop",
|
|
"image": "https://example.com/shop.jpg",
|
|
"address": {
|
|
"@type": "PostalAddress",
|
|
"streetAddress": "123 Main Street",
|
|
"addressLocality": "San Francisco",
|
|
"addressRegion": "CA",
|
|
"postalCode": "94102",
|
|
"addressCountry": "US"
|
|
},
|
|
"geo": {
|
|
"@type": "GeoCoordinates",
|
|
"latitude": "37.7749",
|
|
"longitude": "-122.4194"
|
|
},
|
|
"telephone": "+1-555-555-5555",
|
|
"openingHoursSpecification": [
|
|
{
|
|
"@type": "OpeningHoursSpecification",
|
|
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
|
|
"opens": "08:00",
|
|
"closes": "18:00"
|
|
}
|
|
],
|
|
"priceRange": "$$"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Event
|
|
|
|
For event pages, webinars, conferences.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Event",
|
|
"name": "Annual Marketing Conference",
|
|
"startDate": "2024-06-15T09:00:00-07:00",
|
|
"endDate": "2024-06-15T17:00:00-07:00",
|
|
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
|
|
"eventStatus": "https://schema.org/EventScheduled",
|
|
"location": {
|
|
"@type": "VirtualLocation",
|
|
"url": "https://example.com/conference"
|
|
},
|
|
"image": "https://example.com/conference.jpg",
|
|
"description": "Join us for our annual marketing conference...",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"url": "https://example.com/conference/tickets",
|
|
"price": "199",
|
|
"priceCurrency": "USD",
|
|
"availability": "https://schema.org/InStock",
|
|
"validFrom": "2024-01-01"
|
|
},
|
|
"performer": {
|
|
"@type": "Organization",
|
|
"name": "Example Company"
|
|
},
|
|
"organizer": {
|
|
"@type": "Organization",
|
|
"name": "Example Company",
|
|
"url": "https://example.com"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Multiple Schema Types
|
|
|
|
Combine multiple schema types using @graph.
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@graph": [
|
|
{
|
|
"@type": "Organization",
|
|
"@id": "https://example.com/#organization",
|
|
"name": "Example Company",
|
|
"url": "https://example.com"
|
|
},
|
|
{
|
|
"@type": "WebSite",
|
|
"@id": "https://example.com/#website",
|
|
"url": "https://example.com",
|
|
"name": "Example",
|
|
"publisher": {
|
|
"@id": "https://example.com/#organization"
|
|
}
|
|
},
|
|
{
|
|
"@type": "BreadcrumbList",
|
|
"itemListElement": [...]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Implementation Example (Next.js)
|
|
|
|
```jsx
|
|
export default function ProductPage({ product }) {
|
|
const schema = {
|
|
"@context": "https://schema.org",
|
|
"@type": "Product",
|
|
name: product.name,
|
|
// ... other properties
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<Head>
|
|
<script
|
|
type="application/ld+json"
|
|
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
|
|
/>
|
|
</Head>
|
|
{/* Page content */}
|
|
</>
|
|
);
|
|
}
|
|
```
|