为指定页面生成合适的 JSON-LD 结构化数据。支持多种 Schema.org 类型,自动检测页面内容,提供 Next.js App Router 和 Pages Router 的实现代码。
为页面生成 JSON-LD 结构化数据,支持自动检测内容类型和多种 Schema.org 类型。提供 Next.js App/Pages Router 的实现代码和验证工具,帮助提升 SEO 和搜索结果展示。
/plugin marketplace add huifer/claude-code-seo/plugin install huifer-claude-seo-assistant@huifer/claude-code-seo为指定页面生成合适的 JSON-LD 结构化数据。支持多种 Schema.org 类型,自动检测页面内容,提供 Next.js App Router 和 Pages Router 的实现代码。
$1 或 $ARGUMENTS: 页面路径(必需)
app/blog/post-1/page.tsx、/blog/post-1、blog/post-1$2: Schema.org 类型(可选)
Article / BlogPosting
NewsArticle
TechArticle
Product
Organization
LocalBusiness
WebPage
FAQPage
Review
AggregateRating
/structured-data app/blog/nextjs-seo-guide/page.tsx
输出:
# 结构化数据生成报告
## 页面分析
- 页面类型:博客文章
- 检测语言:中文
- 推荐类型:BlogPosting
- 标题:Next.js SEO 完全指南
- 作者:检测到或需要提供
## 生成的 JSON-LD
```json
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Next.js SEO 完全指南:从入门到精通",
"image": [
"https://yourdomain.com/images/blog/nextjs-seo-cover.jpg"
],
"datePublished": "2024-01-15T08:00:00+08:00",
"dateModified": "2024-01-15T08:00:00+08:00",
"author": {
"@type": "Person",
"name": "张三"
},
"publisher": {
"@type": "Organization",
"name": "YourBrand",
"logo": {
"@type": "ImageObject",
"url": "https://yourdomain.com/logo.png"
}
},
"description": "深入了解如何在 Next.js 项目中实现 SEO 优化。涵盖元数据、结构化数据、性能优化和最佳实践。",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://yourdomain.com/blog/nextjs-seo-guide"
}
}
将以下代码添加到 app/blog/nextjs-seo-guide/page.tsx:
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
'headline': 'Next.js SEO 完全指南:从入门到精通',
'image': [
'https://yourdomain.com/images/blog/nextjs-seo-cover.jpg'
],
'datePublished': '2024-01-15T08:00:00+08:00',
'dateModified': '2024-01-15T08:00:00+08:00',
'author': {
'@type': 'Person',
'name': '张三'
},
'publisher': {
'@type': 'Organization',
'name': 'YourBrand',
'logo': {
'@type': 'ImageObject',
'url': 'https://yourdomain.com/logo.png'
}
},
'description': '深入了解如何在 Next.js 项目中实现 SEO 优化。涵盖元数据、结构化数据、性能优化和最佳实践。',
'mainEntityOfPage': {
'@type': 'WebPage',
'@id': 'https://yourdomain.com/blog/nextjs-seo-guide'
}
}
export default function Page() {
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
{/* 页面内容 */}
</>
)
}
将以下代码添加到 pages/blog/nextjs-seo-guide.tsx:
import Head from 'next/head'
export default function BlogPost() {
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
'headline': 'Next.js SEO 完全指南:从入门到精通',
'image': [
'https://yourdomain.com/images/blog/nextjs-seo-cover.jpg'
],
'datePublished': '2024-01-15T08:00:00+08:00',
'dateModified': '2024-01-15T08:00:00+08:00',
'author': {
'@type': 'Person',
'name': '张三'
},
'publisher': {
'@type': 'Organization',
'name': 'YourBrand',
'logo': {
'@type': 'ImageObject',
'url': 'https://yourdomain.com/logo.png'
}
},
'description': '深入了解如何在 Next.js 项目中实现 SEO 优化。'
}
return (
<>
<Head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</Head>
{/* 页面内容 */}
</>
)
}
使用以下工具验证你的结构化数据:
Google Rich Results Test
Schema Markup Validator
Google Search Console
✅ 已包含必需字段 ✅ 图片 URL 完整 ✅ 日期格式正确(ISO 8601) ✅ 作者信息完整 ⚠️ 建议添加的字段:
需要我添加这些额外字段吗?
### 示例 2:产品页面
```bash
/structured-data products/plumbing-services Product
输出:
# Product 结构化数据
## JSON-LD 代码
```json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "紧急管道维修服务",
"image": [
"https://yourdomain.com/images/products/plumbing-service.jpg"
],
"description": "24小时紧急管道维修服务,专业团队快速响应,覆盖旧金山湾区。",
"brand": {
"@type": "Brand",
"name": "SF Plumbing Services"
},
"offers": {
"@type": "Offer",
"url": "https://yourdomain.com/products/plumbing-services",
"priceCurrency": "USD",
"price": "150.00",
"priceValidUntil": "2024-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "125"
}
}
[代码示例...]
✅ Product 必需字段完整 ✅ 价格信息清晰 ✅ 评分数据增强可信度 ⚠️ 考虑添加:
### 示例 3:FAQ 页面
```bash
/structured-data faq FAQPage
输出:
# FAQPage 结构化数据
## JSON-LD 代码
```json
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "什么是紧急管道维修?",
"acceptedAnswer": {
"@type": "Answer",
"text": "紧急管道维修是指在管道系统出现突发问题时,如水管爆裂、严重堵塞等,需要立即处理的维修服务。这类问题通常会导致水淹、财产损失等严重后果,因此需要专业团队在最短时间内到达现场进行修复。"
}
},
{
"@type": "Question",
"name": "紧急管道维修服务的费用是多少?",
"acceptedAnswer": {
"@type": "Answer",
"text": "紧急管道维修的费用取决于多个因素:问题类型、严重程度、所需材料和维修时间。一般来说,基础服务费在 $100-$200 之间,加上材料和工时费。建议在服务前要求详细报价,避免意外费用。"
}
},
{
"@type": "Question",
"name": "如何选择可靠的紧急管道维修服务?",
"acceptedAnswer": {
"@type": "Answer",
"text": "选择紧急管道维修服务时,应考虑以下因素:1)24/7 服务 availability;2)持证和 insured;3)良好的评价和口碑;4)透明的定价;5)快速响应时间。建议提前研究并保存 2-3 个可靠服务的联系方式。"
}
}
]
}
FAQPage 结构化数据可以帮助你的内容在 Google 搜索结果中显示为 FAQ rich snippets,增加点击率。
### 示例 4:本地商家
```bash
/structured-data LocalBusiness
输出:
# LocalBusiness 结构化数据
## JSON-LD 代码
```json
{
"@context": "https://schema.org",
"@type": "PlumbingService",
"name": "SF Plumbing Services",
"image": "https://yourdomain.com/images/business.jpg",
"@id": "https://yourdomain.com",
"url": "https://yourdomain.com",
"telephone": "+1-415-555-0123",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street, Suite 100",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94102",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 37.774929,
"longitude": -122.419418
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "08:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "14:00"
}
],
"priceRange": "$$",
"areaServed": {
"@type": "GeoCircle",
"geoMidpoint": {
"@type": "GeoCoordinates",
"latitude": 37.774929,
"longitude": -122.419418
},
"geoRadius": "25000"
}
}
LocalBusiness 结构化数据可以帮助:
## 高级用法
### 多 Schema 组合
一个页面可以有多个 Schema 类型:
```typescript
const jsonLd = {
'@context': 'https://schema.org',
'@graph': [
{
'@type': 'Article',
'headline': '文章标题'
},
{
'@type': 'Organization',
'name': '公司名称'
},
{
'@type': 'BreadcrumbList',
'itemListElement': [...]
}
]
}
从 CMS 或 API 数据动态生成:
async function getJsonLd(post) {
return {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
'headline': post.title,
'datePublished': post.publishedAt,
'author': {
'@type': 'Person',
'name': post.author.name
},
'image': post.featuredImage.url
}
}
根据内容类型选择不同的 Schema:
const getSchemaType = (type) => {
switch(type) {
case 'blog':
return 'BlogPosting'
case 'product':
return 'Product'
case 'faq':
return 'FAQPage'
default:
return 'WebPage'
}
}
Article/BlogPosting:
Product:
Organization:
FAQPage:
错误:Missing required field
修复:添加所有必需字段
错误: Image not accessible
修复:使用完整的绝对 URL,确保图片可访问
错误:Invalid date format
修复:使用 ISO 8601 格式(如 2024-01-15T08:00:00+08:00)
错误:Incomplete author information
修复:确保 author 包含 @type 和 name
/metadata - 生成页面元数据/seo-check - 快速 SEO 检查/seo-audit - 全面 SEO 审计