構造化データの実装方法|JSON-LDの書き方とテンプレート
構造化データとは、ページの内容を検索エンジンが理解しやすい形式で記述したものです。 「この数字は価格」「この文章は営業時間」と意味をラベル付けする作業だと考えてください。
先に期待値を調整しておきます。
構造化データ自体はランキング要因ではありません。
実装しても順位は直接上がりません。効果は次の2つです。
①検索結果での表示が充実し、クリック率が改善する
②AI検索が内容を抽出する際の手がかりになる
作業量が少なく効果が確実なので、やっておいて損はないという位置づけです。
JSON-LDの基本
3つの記述方式のうち、JSON-LDを使う
構造化データにはJSON-LD、Microdata、RDFaの3方式がありますが、 JSON-LDを推奨します。Googleも推奨している方式です。
- HTMLの構造から独立して書けるため、デザインに影響しない
- 1箇所にまとめて書けるので保守しやすい
- 既存サイトに後から追加しやすい
書く場所
<head> 内でも <body> 内でも構いません。
<script type="application/ld+json"> の中に記述します。
複数の型をまとめる書き方
1ページに複数の型を記述する場合、@graph を使うと1つのscriptにまとめられます。
このサイトも全ページでこの方式を使っています。
最も重要なルール:ページに表示されていない情報を書かないこと。 構造化データはページ上に実際に表示されている内容と一致している必要があります。 ユーザーに見えない情報を記述するとスパムポリシー違反となり、 リッチリザルトの対象外になったり、手動対策を受ける可能性があります。 「評価★4.8」と構造化データにだけ書く、といった行為が典型例です。
テンプレート①:LocalBusiness(実店舗)
実店舗・訪問型サービスなら、まずこれを実装してください。 ローカルSEOの基礎になります。
業種別の @type
| 業種 | @type |
|---|---|
| 歯科医院 | Dentist |
| クリニック | MedicalClinic |
| 飲食店 | Restaurant |
| 美容室・サロン | BeautySalon / HairSalon |
| 不動産会社 | RealEstateAgent |
| 保険代理店 | InsuranceAgency |
| 建設・工事 | GeneralContractor / RoofingContractor |
| 修理店 | LocalBusiness |
| 上記にない業種 | LocalBusiness(汎用) |
テンプレート②:BreadcrumbList(パンくず)
全ページに実装してください。検索結果にパンくずが表示されるようになります。 実装の手間が最も少なく、効果が確実な型です。
HTMLのパンくずも併せて設置してください。 構造化データだけでは、ユーザーには見えません。 HTMLのパンくずは内部リンクとしても機能しますので、両方が必要です。
テンプレート③:FAQPage(よくある質問)
ページ内にQ&Aがある場合に使います。 質問と回答が、ページ上に実際に表示されていることが条件です。
実装のコツ:回答の text は、
単体で読んで意味が通る完結した文章にしてください。
「上記のとおりです」のような参照はNGです。
AI検索が回答をそのまま引用する際にも、この形が有利になります。
テンプレート④:Article(記事)
ブログ記事やお役立ち情報のページに使います。 著者情報を含められる点が、E-E-A-Tの観点で重要です。
テンプレート⑤:Product / Offer(商品・料金)
ECサイトの商品ページや、料金が明示されているサービスページで使います。
レビュー(aggregateRating)の扱いには注意してください。 自社サイトに掲載した自社商品のレビューは、 Googleのリッチリザルトの対象外とされる場合があります。 また実在しないレビューを記述するのは明確なポリシー違反です。 迷ったら、レビュー関連のプロパティは書かないのが安全です。
検証方法
| ツール | 用途 |
|---|---|
| リッチリザルト テスト | Googleがリッチリザルトとして認識するかを確認。実装直後はこれ |
| スキーマ マークアップ検証ツール | schema.org の仕様に沿っているかを網羅的に確認 |
| Search Console 「拡張」レポート |
サイト全体のエラーを継続的に監視 |
実装後の流れ
- リッチリザルト テストで、エラーと警告を確認
- エラーを修正(警告は任意項目なので必須ではない)
- 数日〜数週間後、Search Console の「拡張」レポートに反映される
- 以降は月次でエラーの有無を確認
「エラー」と「警告」は別物です。 エラーは必須項目の欠落で、修正が必要です。 警告は推奨項目が入っていないだけなので、すべて埋める必要はありません。 情報がないものを無理に埋めると、かえって不正確になります。
よくあるエラーと対処
| エラー | 原因 | 対処 |
|---|---|---|
| 構文エラー(JSONが不正) | カンマの過不足、引用符の閉じ忘れ | JSONバリデータで確認 |
| 必須項目がありません | 型ごとの必須プロパティ不足 | エラーに出た項目を追加 |
| 日付の形式が不正 | 「2026年7月31日」と書いている | 2026-07-31 形式にする |
| 価格に通貨記号が含まれる | "price": "¥12,000" |
"price": "12000" と数値のみに |
| 同じ型が重複している | プラグインと手動実装が両方出力 | どちらか一方に統一 |
| ページの内容と不一致 | 表示されていない情報を記述 | ポリシー違反。即修正 |
WordPressで最も多いのは「重複」です。
SEOプラグイン(Yoast、All in One SEO等)が自動で構造化データを出力しているのに、
テーマやfunctions.phpでも手動出力していると、同じ型が2つ存在する状態になります。
実装前に、既存の出力があるかを必ず確認してください。
ページのソースを表示して application/ld+json を検索すれば分かります。
構造化データは順位を直接上げません。まずキーワード選定と
内部対策を固めてください。
地域名を含む複合キーワードなら、1キーワード月額5,000円(税抜)で対策できます。
よくある質問
構造化データを入れれば順位は上がりますか?
上がりません。Googleは構造化データをランキング要因ではないと説明しています。効果は「検索結果での見え方が良くなる(クリック率の改善)」と「AI検索が内容を抽出しやすくなる」の2つです。順位対策としてではなく、クリック率対策として位置づけてください。
どの型から実装すべきですか?
優先順位はこうなります。
- BreadcrumbList(全ページ・実装が最も簡単)
- LocalBusiness(実店舗があるなら必須)
- FAQPage(Q&Aがあるページ)
- Article(ブログ記事)
- Product(商品・料金ページ)
1と2だけでも実装しておく価値は十分あります。
WordPressならプラグインで十分ですか?
基本的な型(Article、BreadcrumbList、Organization)はプラグインで十分です。ただしLocalBusinessの詳細情報(営業時間、緯度経度、業種別の型)は手動での調整が必要なことが多くあります。プラグインの出力内容をリッチリザルト テストで確認し、足りない部分だけ補うのが効率的です。
実装したのにリッチリザルトが表示されません。
次の順で確認してください。
- リッチリザルト テストでエラーが出ていないか
- 実装から十分な時間が経っているか(数日〜数週間)
- そのページがインデックスされているか
なお構造化データが正しくてもリッチリザルトが表示される保証はありません。表示するかどうかはGoogleが判断します。実装は「表示される資格を得る」ことであり、確約ではありません。
構造化データを実装すると順位は上がりますか?
構造化データ自体はランキング要因ではありません。ただし検索結果での表示が充実し(リッチリザルト)、クリック率が改善する効果があります。またAI検索が内容を抽出する際の手がかりにもなるため、実装する価値はあります。
JSON-LDとMicrodataはどちらを使うべきですか?
JSON-LDを推奨します。GoogleもJSON-LDを推奨しており、HTMLの構造から独立して記述できるため保守しやすく、既存のデザインに影響を与えません。head内かbody内にscriptタグとして1箇所にまとめて書けます。
構造化データにページに書いていない情報を入れてもいいですか?
いけません。構造化データはページ上に実際に表示されている内容と一致している必要があります。ユーザーに見えない情報を記述するとスパムポリシー違反となり、リッチリザルトの対象外になったり手動対策を受ける可能性があります。