structured-data について
SEO に取り組む開発者向けの構造化データスキルです。ページ種別を判定し、JSON-LD を確認して、検証の案内や Next.js 用コードを作成します。
主な機能
- 01ページに合う Schema.org 型の判定
- 02既存 JSON-LD のスキャンと確認
- 03必須・推奨項目を含むデータ生成
- 04構文検証と問題点の提示
- 05Next.js 向け統合コードの作成
活用シーン
- 01ブログや製品ページへの構造化データ追加
- 02プロジェクト内の JSON-LD の確認
- 03Next.js ページ用構造化データの生成
- 04構造化データの検証問題の特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ huifer/ claude-code-seo --skill structured-dataインストール後、Claude Code で/structured-dataを入力して読み込まれたか確認します。
詳細
構造化データの専門家として、Schema.org 標準と JSON-LD の実装に精通しています。
主な役割
ユーザーが構造化データを必要とする場合、次の対応を行います。
-
ページの種類を自動検出
- ページのコンテンツと構造を分析します
- 最適な Schema.org タイプを特定します
- 複数のタイプの組み合わせを検討します(Article + Organization など)
-
既存の実装を確認
- プロジェクト内の JSON-LD コードをスキャンします
- JSON-LD の構文が正しいことを検証します
- 必須フィールドがすべて揃っているか確認します
-
最適化された構造化データを生成
- ページのコンテンツに基づいて適切な JSON-LD を生成します
- 必須フィールドがすべて含まれていることを確認します
- Rich Snippets を強化するため、推奨フィールドを追加します
- 最新の Schema.org 標準に準拠します
-
検証とテスト
- JSON-LD の構文検証を提供します
- Google Rich Results テストのリンクを生成します
- 警告やエラーの可能性がある箇所を示します
-
Next.js との統合
- App Router に対応したコードを生成します
- Pages Router に対応したコードを生成します
- script タグの挿入方法を提供します
ワークフロー
ステップ 1:検出と分析
ページのコンテンツを分析:
- 读取页面文件
- 识别页面类型(博客文章、产品页面、关于页面等)
- 提取关键信息(标题、作者、日期、价格等)
- 检测语言(中文/英文)
Schema タイプを決定:
常见映射:
- 博客文章 → BlogPosting 或 Article
- 新闻文章 → NewsArticle
- 产品页面 → Product
- 关于页面 → Organization
- 本地商家 → LocalBusiness 或子类型
- 普通页面 → WebPage
- FAQ 页面 → FAQPage
- 评论 → Review 或 AggregateRating
ステップ 2:既存の実装を確認
Grep を使用して既存の JSON-LD を検索します。
搜索模式:
- "@context": "https://schema.org"
- application/ld+json
- itemScope
ステップ 3:JSON-LD を生成
基本構造のテンプレート:
{
"@context": "https://schema.org",
"@type": "[Type]",
"[requiredField1]": "[value1]",
"[requiredField2]": "[value2]",
"[recommendedField1]": "[value1]",
"[recommendedField2]": "[value2]"
}
ステップ 4:必須フィールドを検証
Article/BlogPosting の必須フィールド:
- @context ✓
- @type ✓
- headline ✓
- image ✓
- datePublished ✓
- author (Person or Organization) ✓
Product の必須フィールド:
- @context ✓
- @type ✓
- name ✓
- image ✓
- offers (Offer) ✓
Organization の必須フィールド:
- @context ✓
- @type ✓
- name ✓
- url ✓
ステップ 5:Next.js コードを生成
App Router の方法:
// app/[page]/page.tsx
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'Article',
// ... 其他字段
}
export default function Page() {
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
{/* 页面内容 */}
</>
)
}
Pages Router の方法:
// pages/[page].tsx
import Head from 'next/head'
export default function Page() {
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'Article',
// ... 其他字段
}
return (
<>
<Head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</Head>
{/* 页面内容 */}
</>
)
}
サポートする Schema タイプ
コンテンツの種類
- Article - 記事
- BlogPosting - ブログ記事
- NewsArticle - ニュース記事
- TechArticle - 技術記事
ビジネスの種類
- Product - 製品
- Offer - オファー/価格提示
- Organization - 組織/企業
- LocalBusiness - 地域のビジネス
- Restaurant
- Dentist
- Lawyer
- Plumber
- Store
ページの種類
- WebPage - ウェブページ
- AboutPage - 概要ページ
- ContactPage - お問い合わせページ
- FAQPage - FAQ ページ
インタラクションの種類
- Review - レビュー
- AggregateRating - 集計評価
- Comment - コメント
イベントの種類
- Event - イベント
人物の種類
- Person - 人物
- Author - 著者
出力形式
形式 1:分析レポート
# 结构化数据分析报告
## 当前状态
✓ 检测到现有 JSON-LD 实现
✓ Schema 类型:Article
⚠️ 缺少推荐字段:dateModified, publisher
## 问题诊断
❌ 缺少 image 字段
❌ author 信息不完整
⚠️ image 尺寸不符合推荐值
## 优化建议
1. 添加高质量图片(1200x630px 推荐)
2. 完善 author 信息(包含 @type 和 name)
3. 添加 publisher 信息
4. 添加 dateModified 字段
形式 2:完全なコード
そのまま使用できる Next.js コンポーネントコードを生成します。以下を含みます。
- JSON-LD オブジェクト
- Script タグの挿入
- TypeScript の型定義(任意)
形式 3:検証リンク
テストツールへのリンクを提供します。
- Google Rich Results Test
- Schema Markup Validator
検証チェックリスト
構文の検証
- JSON 形式が正しい
- すべての引用符と括弧が対応している
- 末尾に余分なカンマがない
- フィールド名が正しい(大文字と小文字に注意)
コンテンツの検証
- @context が "https://schema.org" に正しく設定されている
- @type の値が有効である
- すべての必須フィールドが存在する
- フィールドの値が想定される型に合致している
- URL の形式が正しい
- 日付の形式が ISO 8601 に準拠している
SEO の検証
- 画像の URL にアクセスできる
- 画像のサイズが推奨値(1200x630px)に合っている
- 著者情報が揃っている
- 公開日が正確である
- 説明文の長さが適切である
特殊なケースへの対応
多言語サポート
{
"@context": "https://schema.org",
"@type": "Article",
"inLanguage": "zh-CN",
"name": "文章标题",
"description": "文章描述"
}
複数の Schema の組み合わせ
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"headline": "文章标题"
},
{
"@type": "Organization",
"name": "公司名称"
}
]
}
動的生成
// 动态生成 JSON-LD
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
'headline': post.title,
'datePublished': post.publishedAt,
'author': {
'@type': 'Person',
'name': post.author.name
}
}
ベストプラクティス
-
正確性を保つ
- すべてのデータが実際の内容と一致している必要があります
- 誤解を招く情報を提供しないでください
- データを定期的に更新してください
-
フィールドを網羅する
- 必須フィールドをすべて含めてください
- Rich Snippets を強化するため、推奨フィールドを追加してください
- フィールドの値の品質を高く保ってください
-
テストと検証
- 公式ツールを使ってテストしてください
- すべての警告とエラーを修正してください
- 定期的に再検証してください
-
パフォーマンスの最適化
- インラインスクリプトを使用してください
- 必要な場合を除き、async/defer を使用しないでください
- スクリプトが 内にあることを確認してください
-
言語サポート
- inLanguage を正しく設定してください
- 多言語の代替コンテンツを提供してください
- 正しい文字エンコーディングを使用してください
関連リソース
- Schema.org 公式ドキュメント:https://schema.org/
- Google Rich Results テスト:https://search.google.com/test/rich-results
- Schema 検証ツール:https://validator.schema.org/
- Google 構造化データガイド:https://developers.google.com/search/docs/appearance/structured-data
バイリンガルサポート
中国語コンテンツ:
- 検索エンジン:百度、搜狗、Google
- Schema.org は引き続き適用されます
- 追加で考慮する点:Baidu specific schema
英語コンテンツ:
- 検索エンジン:Google、Bing
- Schema.org を全面的にサポートします
- Rich Snippets の効果がより高まります
自動的に提案するタイミング
以下の状況を検出した場合、構造化データを積極的に提案します。
- ユーザーが新しいブログ記事または製品ページを作成したとき
- ユーザーが「rich snippets」または「search appearance」に言及したとき
- ユーザーが Google 検索結果での表示について質問したとき
- 構造化データが不足している重要なページを検出したとき
- ユーザーが /seo-audit を実行し、構造化データのスコアが低いとき
統合コマンド
/structured-data- 指定したページの構造化データをすばやく生成します/seo-audit- 構造化データの完全性を確認します/seo-check- JSON-LD の実装を検証します
出力の優先順位
- 安全性 - 誤解を招く構造化データを生成しないようにします
- 正確性 - すべてのフィールド値が正確であることを確認します
- 完全性 - 必須フィールドと推奨フィールドをすべて含めます
- 使いやすさ - そのまま使用できるコードを提供します
- 教育性 - 特定のフィールドやタイプを選択した理由を説明します
コメント
Markdown 対応