4-2 JSON-LD スキーマを Claude Code で自動生成する
無料Organization / Article / Product / FAQPage / LocalBusiness の 5 種を Claude Code に日本語指示で JSON-LD 生成。Google テストツールで検証まで行う構造化データ自動生成の手順です。
このレッスンのゴール
前のレッスンでは構造化データの全体像を学びました。今回は実際に手を動かす章です。Claude Code に日本語で指示するだけで、Organization、Article、Product、FAQPage、LocalBusiness の 5 種類のスキーマを JSON-LD として生成し、サイトに組み込み、Google のテストツールで検証するところまでを体験します。
コードは一切書きません。やることは「現状確認 → 指示 → 検証」の 3 ステップです。
ステップ 1 — まず今の状態をチェックしよう
いきなり構造化データを追加する前に、サイトに既に設定されているものがないか確認しましょう。WordPress などの CMS を使っている場合、テーマやプラグインが自動で追加していることがあります。重複して追加すると、Google が混乱してリッチリザルトが表示されなくなることもあります。
Claude Code に調べてもらいましょう。
# サイトの構造化データを調べる
> /seo schema https://あなたのサイト.com結果の見方は次の通りです。
- 「検出されたスキーマ」 — すでに設定されているもの。種類と内容を確認する
- 「不足しているプロパティ」 — 既存のスキーマに足りない情報。最優先で埋める
- 「推奨スキーマ」 — 新たに追加すると効果的なもの。サイト種別に応じて提案される
- 「エラー」 — 修正が必要な問題。リッチリザルトが表示されない原因になる
エラーがあった場合は、新しいスキーマを追加する前に必ず先に直しましょう。
まず現状把握
スキーマを増やすより、既存のエラーを直すほうが優先度が高いです。エラーが残ったままだと、追加したスキーマも表示されない可能性があります。
ステップ 2 — Organization スキーマを最初に作る
最初に作るべきは Organization スキーマです。理由は 3 つあります。
第一に、全ページ共通で使えること。トップページや会社概要ページに 1 度設定すれば、サイト全体の信頼性向上に効きます。
第二に、ナレッジパネル(検索結果の右側に表示される会社情報パネル)の表示に直接影響すること。会社名で検索したときに、ロゴ・住所・SNS リンクがまとまった枠で表示されると、ブランドの印象が大きく変わります。
第三に、他のスキーマから参照される基盤になること。Article スキーマの publisher、Product スキーマの brand など、多くのスキーマが Organization を内部で参照します。
Organization スキーマで設定する基本プロパティは以下の通りです。
- name — 正式な会社名・サービス名(略称ではなくフル表記が望ましい)
- url — サイトのトップ URL
- logo — ロゴ画像 URL(112x112 px 以上、正方形が推奨)
- address — 本社所在地
- contactPoint — 連絡先(電話番号、対応言語、対応エリア)
- sameAs — 公式 SNS アカウントの URL リスト(信頼性の裏付けになる)
- founder — 創業者(個人 SEO・代表者ブランディングに有効)
- foundingDate — 設立日
Claude Code への指示例は以下の通りです。
> 会社の Organization スキーマを作って。情報はこれ。
> 会社名: 株式会社サンプル
> 住所: 東京都渋谷区神宮前1-1-1
> 電話: 03-1234-5678
> ロゴ URL: https://example.com/images/logo.png
> 設立: 2020年
> SNS: Twitter https://twitter.com/sample, Facebook https://facebook.com/sample
> 出力は JSON-LD で、トップページの <head> に入れる前提でお願い。sameAs に公式 SNS アカウントを 3〜5 個並べると、Google が「実在する組織」と判断しやすくなります。Twitter(X)、Facebook、LinkedIn、YouTube、Wikipedia ページなど、運営している公式アカウントは漏れなく入れましょう。
ステップ 3 — Article / BlogPosting でブログ記事を強化
ブログやニュース記事を運用している場合は、Article または BlogPosting スキーマを必ず入れましょう。
このスキーマで Google に伝えるべき重要プロパティは以下の通りです。
- headline — 記事タイトル(110 文字以内)
- author — 著者名と著者ページの URL。E-E-A-T の「専門性」を示す
- datePublished — 初回公開日
- dateModified — 最終更新日。これがあると「最新情報」として扱われやすい
- image — 記事のアイキャッチ画像(1200x630 以上推奨)
- publisher — 発行元(Organization スキーマと連携)
特に dateModified は重要です。同じ記事でも「更新日」が新しいほうが検索結果で優位になりやすいため、内容を見直したら必ず更新しましょう。
> このブログ記事に Article スキーマを追加して。
> 著者は「田中太郎」、著者ページは /authors/tanaka にある。
> 公開日と更新日はファイルのメタ情報から取って。
> アイキャッチは記事内の最初の画像を使って。Article と BlogPosting のどちらを使うかは、サイトの性質で決めます。ニュース・解説記事中心なら Article、個人や企業の継続的なブログ更新なら BlogPosting を選びましょう。迷ったら BlogPosting で問題ありません。
著者ページ(/authors/xxx)には Person スキーマを別途設定し、その Person のプロフィール・経歴・SNS リンクを構造化しておくと、E-E-A-T の「経験」と「権威性」がさらに強化されます。Claude Code に「著者ページに Person スキーマも追加して」と頼みましょう。
ステップ 4 — Product スキーマで商品ページを強化
EC サイトや SaaS の料金ページには Product スキーマが効きます。検索結果に価格・在庫・レビュー評価が表示されるようになり、購入意欲の高いユーザーに刺さります。
Product スキーマで設定する項目は次の通りです。
- name — 商品名
- image — 商品画像(複数可)
- description — 商品説明
- offers — 価格、通貨、在庫状況(InStock / OutOfStock)
- aggregateRating — 平均評価とレビュー件数
- review — 個別レビュー(任意)
- brand — ブランド名
> /product/saas-plan-a のページに Product スキーマを追加して。
> 価格・プラン内容・在庫はページ内の表示から自動で拾って。
> レビューが <section class="reviews"> 内にあるので、それも構造化して。SaaS の料金ページの場合、Product よりも SoftwareApplication スキーマのほうが適切なケースもあります。サブスクリプション課金で「在庫」の概念がないなら SoftwareApplication、物販に近い感覚なら Product を選びましょう。Claude Code に「これは SaaS の料金ページだけど、ProductかSoftwareApplicationどっちが適切?」と聞けば判定してくれます。
価格や在庫を構造化データに入れる場合、必ずページの表示と一致させること。表示価格と構造化データの価格が違うと、Google から「マークアップ違反」として警告が来てリッチリザルトが消えます。動的価格の場合は Claude Code に「ページから自動で拾って」と指示するのが安全です。
ステップ 5 — FAQPage で表示面積を増やす
すべての構造化データの中で、最も手軽に効果が出るのが FAQPage スキーマです。
FAQPage を追加すると、検索結果に「よくある質問」が直接展開表示されます。表示面積が縦に大きく広がるため、競合より目立ち、クリック率が上がります。
サイトに FAQ ページがなくても、各記事の下部に「よくある質問」セクションを追加すれば OK です。Claude Code に頼めばセクションごと自動生成してくれます。
> このページの下部に「よくある質問」セクションを追加して。
> ページの内容に関連する質問を 5 つ作って、回答もつけて。
> HTML の Q&A セクション + JSON-LD の FAQPage スキーマを両方入れて。Claude Code が自動でやってくれるのは下記のとおりです。
- ページ本文を読んで適切な Q&A を 5 つ作成
- HTML 上にユーザーが見られる Q&A セクションを追加
- 同じ内容を JSON-LD の FAQPage スキーマとしてマークアップ
FAQPage は「ページに表示されている内容」しか構造化データに入れてはいけません。ユーザーに見えない隠し FAQ をマークアップするのはガイドライン違反です。だから Claude Code には「HTML と JSON-LD を両方作って」と頼むのが正解です。
ステップ 6 — LocalBusiness で地域集客を強化
店舗・クリニック・サロン・士業など、地域ビジネスの場合は LocalBusiness スキーマが必須です。Google マップとの連携、営業時間の検索結果表示、「近くの〇〇」検索でのヒットに直接効きます。
LocalBusiness では、Organization の項目に加えて以下を設定します。
- address — 詳細な住所(postalCode、addressLocality、streetAddress を分けて記述)
- geo — 緯度・経度
- openingHoursSpecification — 曜日ごとの営業時間
- priceRange — 価格帯(¥、¥¥、¥¥¥ など)
- telephone — 電話番号
- areaServed — 商圏
> トップページに LocalBusiness スキーマを追加して。
> 業種は美容室、店舗名「サンプル美容室」、
> 住所は東京都新宿区西新宿2-1-1、
> 営業は火〜日 10:00-20:00、月曜定休。
> Google マップの埋め込み URL は <iframe> から緯度経度を抽出して使って。LocalBusiness には業種別の派生スキーマがあります。BeautySalon(美容室)、Restaurant(飲食店)、Dentist(歯科)、LegalService(法律事務所)、AutoRepair(自動車整備)、ChildCare(保育)など、より具体的なスキーマを使うほど Google に伝わる情報量が増えます。Claude Code に「業種は美容室なので、BeautySalon を使って」と明示しましょう。
複数店舗を運営している場合は、各店舗ページに個別の LocalBusiness スキーマを設定し、トップページの Organization スキーマと location プロパティで紐付けるのがベストプラクティスです。
Claude Code への指示テンプレート集
コピペで使える指示テンプレートをまとめました。サイトの情報に合わせて書き換えて使ってください。
# テンプレ 1: 既存スキーマの監査
> /seo schema https://example.com
> エラーと不足プロパティを優先度順に並べて、修正案を出して。
# テンプレ 2: サイト全体に Organization を入れる
> 全ページの共通レイアウト(layout.tsx / header.php など)に
> Organization スキーマを追加して。情報は <会社情報を貼り付け>
# テンプレ 3: 既存記事に一括で Article スキーマ
> content/blog/ 配下の全記事に Article スキーマを追加して。
> 著者・公開日・更新日は frontmatter から取って。
# テンプレ 4: FAQ を本文から自動生成
> このページの本文を読んで、想定 Q&A を 5 つ作って。
> 表示用 HTML と FAQPage JSON-LD の両方を出して。
# テンプレ 5: Product スキーマを自動補完
> /products/ 配下の全ページに Product スキーマを追加して。
> 価格・画像・説明はページ内から自動で拾って。
# テンプレ 6: 既存スキーマの dateModified を一括更新
> 過去 30 日以内に更新した記事の dateModified を最新化して。ステップ 7 — Rich Results Test で必ず検証
スキーマを追加したら、Google の Rich Results Test(リッチリザルトテスト)で検証します。URL は search.google.com/test/rich-results です。
検証フローは以下のとおりです。
<Steps items={[{"title":"URL を入力","body":"テストツールの入力欄に検証したいページの URL を貼り付けて「URL をテスト」ボタンを押す"},{"title":"スキーマ検出を確認","body":"ページ内で検出されたスキーマの種類が一覧表示される。意図したスキーマがすべて検出されているかチェック"},{"title":"エラーと警告を確認","body":"赤いエラー(必須プロパティ欠落など)と黄色い警告(推奨プロパティ欠落)を確認"},{"title":"プレビューで見え方を確認","body":"「結果のプレビュー」で実際の検索結果での見え方をシミュレート。表示崩れがないか確認"},{"title":"エラーを Claude Code で修正","body":"エラー内容をそのまま Claude Code に貼り付けて「これを直して」と指示。修正版を生成してもらう"},{"title":"再テストして全エラー解消","body":"修正したら再度 URL を入力して、すべてのエラーが消えるまで繰り返す"}]} />
Rich Results Test で「リッチリザルト対象」と表示されても、実際の検索結果に出るまで数日〜数週間かかります。すぐに表示されなくても焦らず、Google Search Console の「拡張」レポートで反映状況を追いましょう。
よくある間違い
構造化データの設定でよくある失敗を 4 つ紹介します。Claude Code に依頼するときも、これらを避けるよう明示すると安全です。
1. 表示と異なる情報を構造化データに入れる ページに「¥10,000」と書いてあるのに、JSON-LD では「¥8,000」と書く、といったケース。Google のスパムポリシー違反になり、ペナルティ対象です。
2. ユーザーに見えない隠しコンテンツのマークアップ ページ上には表示されていない FAQ や口コミを、構造化データだけに書く行為。FAQPage、Review、HowTo などで特に違反になりやすい。
3. 関係ないスキーマを盛りすぎる 1 ページに 5 種類も 6 種類もスキーマを詰め込むと、Google がページの主題を判断できなくなります。ページの内容を最もよく表すスキーマを 1〜2 個に絞りましょう。
4. dateModified を更新せずに「最新」を装う 本文を更新していないのに dateModified だけ毎日書き換えるのは NG。Google は本文の差分も見ているので、最終的に評価が下がります。本文を実際に更新した日だけ書き換えること。
デプロイ後の運用ポイント
スキーマを入れて終わり、ではありません。継続的なメンテナンスが必要です。
月次でやること — Google Search Console の「拡張」レポートを開き、各スキーマの「有効」「警告」「エラー」の件数を確認します。エラー件数が増えていたら、Claude Code に「Search Console のエラー一覧をスクリーンショットで送るので直して」と依頼すれば、原因と修正方法をまとめて返してくれます。
新規ページ追加時 — 新しいテンプレート(記事、商品、店舗など)を追加するときは、必ず Rich Results Test で 1 URL ぶん検証してから本番反映します。テンプレートのミスは全ページに波及するので、リリース前のチェックが最重要です。
サイト構造変更時 — URL 構造を変更したり、サイトリニューアルを行ったときは、構造化データ内の URL(logo、sameAs、author URL など)も古いままになっていないか必ず Claude Code に確認させましょう。「全ページの JSON-LD を読んで、404 になっている URL がないかチェックして」と頼めば自動でスキャンしてくれます。
<Quiz question="Product スキーマに価格を入れるとき、最も重要なルールは?" options={["ページに表示されている価格と完全に一致させる","競合より安い価格を入れて目立たせる","税抜価格で統一する"]} answer={0} />
<Quiz question="FAQPage スキーマで Q&A を構造化するとき、Q&A はどこに書くべき?" options={["JSON-LD と HTML 本文の両方に書く(ユーザーにも見える状態にする)","JSON-LD だけに書けば十分(HTML には書かなくていい)","HTML だけに書けば Google が自動で構造化する"]} answer={0} />
<Checklist id="seo-ch4-2" items={["/seo schema で現状のスキーマを確認した","Organization スキーマをトップページに追加した","主要なページタイプ(記事 / 商品 / FAQ / 店舗)に応じたスキーマを 1 つ以上追加した","Rich Results Test で全ページのエラーがゼロになった","表示と構造化データの内容が一致していることを確認した"]} />
次のステップ
- 4-3: 画像 SEO と alt 属性の最適化 — 同章の次のレッスン。構造化データの次は画像 SEO で表示・流入を底上げします
- 4-1: 構造化データ(JSON-LD)でリッチリザルトを狙う — JSON-LD の基礎概念を再確認したい方はこちらへ戻れます
- 3-2: 記事のコンテンツ品質を SEO 診断 — スキーマと中身を揃えるため、本文のコンテンツ品質を Claude Code で診断します