JSON-LDとは?初心者でも失敗しない構造化データ実装ガイド【テンプレ付き】

9 min 142 views
json-ld

検索エンジンが進化した今、単に「文章を書く」だけでは十分に理解してもらえません。
Google や Bing などの検索エンジンに「このページは何について書かれているか」を正確に伝えるために使われるのが 構造化データ(Structured Data)です。
そして、その中でも Google が推奨している形式が JSON-LD(JavaScript Object Notation for Linked Data) です。

JSON-LDは、Webページの内容を「機械(検索エンジン)」にも分かりやすい形で説明するためのフォーマットです。
人間が読むための文章を、検索エンジンにも理解させる“翻訳”のような役割を果たします。

たとえば、記事のタイトルや著者名、公開日、会社名などを明示的にマークアップすることで、
Googleが正確に情報を読み取り、検索結果の「リッチリザルト(強調表示)」として反映させることができます。

JSON-LDの「LD」は“Linked Data”の略で、インターネット上のデータを意味的に関連づける仕組みを表しています。
つまり、構造化データ=「データを意味でつなぐ技術」とも言えるのです。

JSON-LDは単独で使われるわけではなく、schema.orgという世界共通の語彙セットに基づいて記述されます。
schema.orgはGoogle・Microsoft・Yahoo・Yandexが共同で策定したデータ構造のルールブックのようなもので、
「記事」「商品」「店舗」「人物」「イベント」など、ページの種類に応じた“型”が定義されています。

以前はHTML内のタグに直接属性を埋め込む MicrodataRDFaが主流でしたが、
これらはHTML構造が複雑になりやすく、メンテナンス性も低いという欠点がありました。
一方、JSON-LDは <script> タグの中にまとめて記述できるため、
HTML構造を崩さず簡単に実装できるのが最大の特徴です。

形式主な特徴メリットデメリット
JSON-LDJavaScriptオブジェクト形式HTMLから分離、読みやすくメンテナンスが容易JavaScriptが使えない環境では無効
MicrodataHTML属性形式HTMLと統合、即時レンダリング可能メンテナンスの複雑化、可読性の低下
RDFaHTML属性+リソース記述複雑なデータモデルの表現が可能、更に互換性高複雑さが高く、HTMLの冗長性が増す

schema.org(スキーマ・ドット・オーグ)は、Google・Bing・Yahoo・Yandexといった主要検索エンジンが共同で策定した構造化データの共通規格です。
検索エンジンが理解する構造化マークアップの標準仕様
として採用されています。

🔗参考:Google 構造化データのガイド

🔗参考: schema.org Full Type List

GoogleがJSON-LDを強く推奨するのは、次の3つの理由からです。

  1. メンテナンスが容易:HTMLから分離して記述できるため、構造変更があっても修正しやすい。
  2. 可読性が高い:人間にも理解しやすいJSON形式で構造化できる。
  3. Googlebotが理解しやすい:AIによる意味解析に向いたデータ構造。

つまり、開発者にも検索エンジンにも優しいマークアップ方式なのです。
今後AI検索(AEO:Answer Engine Optimization)の時代が進むにつれて、
「AIに理解される構造化データ」として、ますます重要性が高まるでしょう。

簡単に言うと、「HTMLタグだけだと汲み取れない内容について示すことができる」という便利なもの。

実務でよく使われるJSON-LDのタイプは次の通りです。

  • Article:ブログやニュースなどの記事ページ
  • FAQPage:よくある質問(Q&A形式)ページ
  • BreadcrumbList:パンくずリスト(階層構造の明示)
  • LocalBusiness:店舗・会社情報ページ
  • Product:商品やサービスの詳細ページ

これらを適切に設定することで、検索結果に「星評価」「パンくずリスト」「FAQボックス」などが表示され、
クリック率(CTR)向上が期待できます。

構造化データは非常に効果的ですが、記述を誤ると逆効果になることもあります。
以下は、初心者が陥りやすい代表的な失敗例です。

 1. typeの不一致

記事ページなのに「Product」など別のタイプを使っているケース。
内容とマークアップが一致しないと、Googleはデータを無効と判断します。

 2. 文法エラー(カンマやクォート抜け)

ちょっとした記述ミスで構造化データ全体が無効になります。
リッチリザルトテストで必ず文法エラーをチェックしましょう。

 3. ページ内容とJSON-LDの内容が異なる

ページ上に存在しない情報(たとえばレビュー数や著者名)を記述するのはNG。
Googleのガイドラインに反する場合、スパム扱いになることもあります。

 4. 同じデータを複数回マークアップ

同一情報を複数のJSON-LDで重複して記述すると、Googleは「冗長」とみなし、データを無視します。

 5. URL・日付・名前をコピペ修正し忘れ

他ページからの流用でよくあるミス。
テンプレートを使う際は必ずページ固有の情報に更新しましょう。

実装が完了したら、以下のツールで検証を行いましょう。

正しいマークアップを継続的に保つことが、SEO安定化の鍵になります。

  • JSON構文エラー(カンマ抜け・全角クオーテーション)に注意。
  • ページ公開後はGoogle Search Consoleの「拡張レポート」にも反映。
  • 検索結果に反映されない場合は、構造化データの内容がポリシー外の可能性もあります。

JSON-LDを導入することで、検索結果のCTR向上やブランド信頼性の向上につながります。
特にFAQスニペットやパンくずリストなどは、視覚的に目立つ要素として機能します。

さらに今後は、ChatGPTやGeminiなどの生成AIがWeb情報を再構築する際にも、
構造化データの正確性が“AIに理解されるかどうか”の分かれ道になるでしょう。

JSON-LDは、もはやSEOだけでなく「AI時代のWeb表現力」を支える重要な技術です。
構文の正しさだけでなく、「ページ内容と整合しているか」を常に意識することで、
検索エンジンとユーザーの双方に信頼されるサイトを構築できます。
今日から自分のサイトにも、ぜひ取り入れてみてください。

JSON-LD公式サイト

Q1. JSON-LDはどこに書けばいい?
→ HTMLの<head>内、もしくはページ下部(</body>直前)でもOKです。Googleはどちらも認識します。

Q2. JSON-LDは1ページに複数書いていい?
→ 問題ありません。Article+BreadcrumbListなど、意味が重ならなければ複数併用可能です。

Q3. WordPressではどう実装する?
→ プラグイン「Insert Headers and Footers」などを使えば、テーマを直接編集せずに挿入できます。

このページでは、Web制作者が日常的に使う機会の多い 5種類のJSON-LD を、すぐに導入できる形でまとめています。

  • Article(ブログ記事)
  • FAQPage(よくある質問)
  • BreadcrumbList(パンくずリスト)
  • LocalBusiness(店舗・会社情報)
  • Product(商品ページ)

それぞれのコードは「最低限これがあれば動く」形に絞っています。
実務で使うときは、自分のサイト情報に必ず書き換えてから設置してください。

 1. Article|ブログ記事・コラムの基本

ブログやオウンドメディアの記事でまず押さえておきたいのが Articleタイプです。
タイトル、概要、著者名、公開日、アイキャッチ画像などを明示しておくことで、検索エンジンが記事内容を正しく理解しやすくなります。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/json-ld-guide"
  },
  "headline": "JSON-LDとは?初心者でも失敗しない構造化データ実装ガイド",
  "description": "JSON-LDの基礎から実装の注意点までを解説した初心者向けガイド。",
  "image": "https://example.com/images/json-ld-eyecatch.jpg",
  "author": {
    "@type": "Person",
    "name": "山田太郎"
  },
  "datePublished": "2025-11-08",
  "dateModified": "2025-11-08",
  "publisher": {
    "@type": "Organization",
    "name": "Example Media",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/images/logo.png"
    }
  }
}
</script>

ポイント

  • URL・タイトル・description・author・日付は必ず実際のページに合わせる。
  • image は実際のアイキャッチ画像にする。
  • 複数記事でコピペする時、特に日付とURLの修正忘れに注意。

 2. FAQPage|よくある質問をそのままリッチリザルトに

FAQ形式のコンテンツがある場合はFAQPage
Q&Aが構造化されていると、検索結果にそのまま質問と回答が表示される可能性があります。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "JSON-LDとは何ですか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "JSON-LDは、Webページの内容を検索エンジンに分かりやすく伝えるための構造化データの記述形式です。"
      }
    },
    {
      "@type": "Question",
      "name": "構造化データを入れるとSEOに有利ですか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "直接順位が上がるわけではありませんが、リッチリザルトによるクリック率向上や理解度向上につながるため、結果的にプラスに働く可能性があります。"
      }
    }
  ]
}
</script>

ポイント

  • 質問・回答の内容はページに実際に掲載しているものと一致させる。
  • Q&A形式になっていないページに無理やり入れるのはNG。

 3. BreadcrumbList|パンくずリストで階層構造を伝える

パンくずリストを構造化すると、検索結果に階層が表示され、ユーザーにとっても親切です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "ホーム",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "ブログ",
      "item": "https://example.com/blog/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "JSON-LDとは?初心者ガイド",
      "item": "https://example.com/blog/json-ld-guide"
    }
  ]
}
</script>

ポイント

  • position は1から順に。
  • nameitem は実際のパンくずリンクと一致させる。
  • ページ構造とズレると不自然になるので要注意。

 4. LocalBusiness|店舗・会社サイトの信頼性アップ

実店舗や事業サイトでは LocalBusinessを設定しておくと、
住所や電話番号、営業時間などが検索エンジンに正しく伝わりやすくなります。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "@id": "https://example.com/#company",
  "name": "Example Design Studio",
  "image": "https://example.com/images/office.jpg",
  "url": "https://example.com/",
  "telephone": "+81-3-1234-5678",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1-2-3 Shibuya",
    "addressLocality": "Shibuya-ku",
    "addressRegion": "Tokyo",
    "postalCode": "150-0000",
    "addressCountry": "JP"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "35.6595",
    "longitude": "139.7005"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "10:00",
      "closes": "19:00"
    }
  ]
}
</script>

ポイント

  • 住所や電話番号はサイトに記載している情報と完全一致させる。
  • 実在しない情報を盛るのは厳禁(ローカルSEOで疑われます)。

 5. Product|商品・サービス紹介ページに

ECサイトや講座、ツールなどの商品・サービス紹介ページには Productを使います。
価格・在庫・評価などを構造化できます。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Webデザインオンライン講座 ベーシックプラン",
  "image": [
    "https://example.com/images/course-basic.jpg"
  ],
  "description": "未経験から6ヶ月でWebデザインの基礎を学べるオンライン講座。",
  "sku": "WD-BASIC-001",
  "brand": {
    "@type": "Brand",
    "name": "Example Academy"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/course/web-design-basic",
    "priceCurrency": "JPY",
    "price": "49800",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "37"
  }
}
</script>

ポイント

  • aggregateRating やレビュー情報は実際に存在する場合のみ記載OK
  • 架空の高評価を入れるとガイドライン違反になる可能性あり。
  • 単発商品だけでなく「サービス」「講座」もProductで表現可能。

 実装前チェックリスト

  • ページ内容とJSON-LDの情報は一致しているか?
  • URL・日付・名前・価格など、コピペ部分を更新したか?
  • Googleのリッチリザルトテストでエラーが出ていないか?
  • 意味の違うタイプ(ArticleなのにProductなど)を無理に使っていないか?
関連記事