JSON-LDの書き方!コピペで使える実装コード5種類

JSON-LDの書き方!コピペで使える実装コード5種類

JSON-LDは、Googleが構造化データの記述形式として最も推奨している方式です。2026年現在、AI検索(Google AI Overview・ChatGPT・Perplexity)の引用元としても重要な役割を果たしています。

本記事では、JSON-LDの基本的な書き方から、実際にSEGOが実装している構造化データのコードまで、すべて実装例つきで解説します。

JSON-LDとは?構造化データの基本と役割

JSON-LDは「JavaScript Object Notation for Linked Data」の略称で、Webページの情報をJSON形式で記述する構造化データの方式です。

たとえば「この記事を書いた人は誰か」「このサイトはどんなツールか」といった意味情報を、検索エンジンやAIが読み取れる形式で記述します。HTMLの<head>または<body>内に<script type="application/ld+json">タグで埋め込みます。

JSON-LDの動作フロー HTMLに JSON-LD埋込 Googleが 解析 Knowledge Graphに格納 リッチ リザルト表示 この流れで得られる効果 ・検索結果でのクリック率向上(リッチリザルト表示) ・AI検索(ChatGPT・Perplexity・AI Overview)での引用機会の増加 ・Knowledge Graphを通じたブランド認識の強化

JSON-LDは、Microdataやrdfa.などの他の構造化データ形式と比べて、HTMLと分離して記述できるため管理しやすく、Googleも公式に推奨しています。

なぜ2026年にJSON-LDが重要なのか

結論から言うと、JSON-LDはAI検索時代において「AIに正しく情報を伝える唯一の公式な手段」だからです。

従来のSEOでは、検索エンジンがHTMLの文脈から情報を推測していました。しかしAI検索は、構造化データを優先的に参照して引用元を判断します。Google公式ドキュメント(構造化データの仕組み)でも、JSON-LD形式での実装が明記されています。

特にAI Overview・ChatGPT・Perplexityなどの生成AI検索は、JSON-LDで記述された著者情報・FAQ・HowToなどを重要なシグナルとして扱います。

構造化データ形式 特徴 推奨度
JSON-LD HTMLと分離、管理が容易 ◎ Google推奨
Microdata HTMLタグに属性追加 △ 旧式
RDFa HTMLタグに属性追加 △ 旧式

JSON-LDの書き方|5つの基本ルール

JSON-LDを正しく書くために、以下の5つのルールを押さえておきましょう。

ルール1:script要素で囲む

必ず<script type="application/ld+json">で囲みます。タイプ指定を間違えると、Googleが認識しません。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "SEGO",
  "url": "https://sego.jp"
}
</script>

ルール2:@contextと@typeは必須

@contextは常に"https://schema.org"を指定します。@typeは、そのエンティティが何なのかを指定する型です(Article、Person、FAQPageなど)。

ルール3:プロパティ名はSchema.orgの仕様に従う

自己流のプロパティ名は使えません。Schema.org公式で使えるプロパティ名を確認してください。

ルール4:文字列はダブルクォートで囲む

JSONの仕様に従い、キー名・文字列値ともにダブルクォート"で囲みます。シングルクォートは使えません。

ルール5:配列は複数要素を持てる

sameAs(同一エンティティの別URL)など、複数の値を持たせる場合は配列[]で記述します。

"sameAs": [
  "https://x.com/OkaTakuma1",
  "https://www.linkedin.com/in/takuma-oka-998a0b266/",
  "https://note.com/takumaoka"
]

主要スキーマタイプ別・書き方テンプレート

ここでは、中小企業のサイトで最もよく使う4つのスキーマタイプを紹介します。

スキーマタイプ選択マップ ブログ記事を書く → Article (著者・公開日を明示) Q&Aを載せる → FAQPage (AI Overviewで引用多い) 手順を解説する → HowTo (やり方系クエリに強い) 企業・人物を示す → Organization / Person (E-E-A-T強化) 製品を紹介する → Product (価格・レビュー表示) Webサイト全体 → WebSite / WebApplication (サイト基本情報) 複数のスキーマを組み合わせるときは @graph 配列でまとめる

テンプレート1:Article(ブログ記事向け)

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "記事のタイトル",
  "author": {
    "@type": "Person",
    "name": "著者名",
    "url": "https://example.com/about"
  },
  "datePublished": "2026-04-18",
  "dateModified": "2026-04-18",
  "image": "https://example.com/og-image.jpg"
}

テンプレート2:FAQPage(よくある質問向け)

AI Overviewで特に引用されやすい形式です。

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "JSON-LDとは何ですか?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "構造化データをJSON形式で記述する方式です。"
    }
  }]
}

テンプレート3:HowTo(手順解説向け)

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "〇〇のやり方",
  "step": [
    {
      "@type": "HowToStep",
      "name": "ステップ1",
      "text": "最初にやること"
    },
    {
      "@type": "HowToStep",
      "name": "ステップ2",
      "text": "次にやること"
    }
  ]
}

テンプレート4:Person(著者情報向け)

E-E-A-T強化のため、ブログ記事の著者情報として実装すべきスキーマです。

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "著者名",
  "jobTitle": "職種",
  "url": "https://example.com/about",
  "sameAs": [
    "https://x.com/username",
    "https://linkedin.com/in/username"
  ],
  "knowsAbout": ["専門分野1", "専門分野2"]
}

【実例公開】SEGOのJSON-LD完全解説

ここからは、私が実際に運用しているサイト「SEGO」のJSON-LD実装を全公開します。他の解説記事では見られない、現場のコードそのままです。

SEGOでは@graph配列を使い、WebApplication・HowTo・Personの3つのエンティティを1つのJSON-LDにまとめています。

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebApplication",
      "name": "SEGO",
      "url": "https://sego.jp",
      "description": "SEOとAI検索の両方からサイトを診断する無料ツール",
      "applicationCategory": "SEO Tool",
      "operatingSystem": "Web",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "JPY"
      },
      "author": {
        "@id": "https://sego.jp/#takuma-oka"
      }
    },
    {
      "@type": "HowTo",
      "name": "SEGOでWebサイトを診断する方法",
      "step": [
        {"@type": "HowToStep", "name": "URLを入力", "text": "..."},
        {"@type": "HowToStep", "name": "30秒待つ", "text": "..."},
        {"@type": "HowToStep", "name": "改善点を確認", "text": "..."}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://sego.jp/#takuma-oka",
      "name": "Takuma Oka",
      "alternateName": "岡 拓馬",
      "jobTitle": "International SEO Consultant",
      "sameAs": [
        "https://x.com/OkaTakuma1",
        "https://www.linkedin.com/in/takuma-oka-998a0b266/",
        "https://note.com/takumaoka",
        "https://github.com/takuma51"
      ],
      "knowsAbout": [
        "International SEO",
        "Technical SEO",
        "GEO (Generative Engine Optimization)",
        "AI Search Optimization"
      ]
    }
  ]
}

この実装のポイントは@idを使った参照構造です。WebApplicationのauthorでは詳細を書かず、"@id": "https://sego.jp/#takuma-oka"という参照だけにしています。

同じPerson情報を、別の場所(@graph内)でフルスペックで定義。この方法によって、Googleが「このWebApplicationの著者 = このPerson」という関係を明確に認識できます。将来ブログ記事を追加する際、同じPersonを参照すれば重複記述も不要です。

実装後、Schema.org Validatorで確認したところ、3エンティティすべてが正常に認識され、エラー・警告ともにゼロでした。

実装後の検証方法|2つのツールを使い分ける

JSON-LDは書いて終わりではありません。必ず検証ツールで正しく認識されているか確認します。

検証には2つのツールを使い分けます。目的が異なるため、両方の実行をおすすめします。

ツール名 目的 リンク
Rich Results Test Googleのリッチリザルト対象か判定 Google公式
Schema.org Validator Schema.org仕様に準拠しているか判定 Schema.org公式

Rich Results Testは、Googleがリッチリザルト(検索結果での特殊表示)として扱うエンティティのみを検出します。たとえばPersonスキーマはリッチリザルト対象外のため、このツールでは表示されません。ただしKnowledge Graphへの寄与は発揮されているので、検出されないこと自体は問題ありません。

Schema.org Validatorは、Schema.org仕様に文法的に準拠しているかを判定します。全てのスキーマタイプが確認できるため、実装後の最終チェックに最適です。

よくある質問|実装時のハマりどころ

Q1:JSON-LDを実装したのに検索順位が上がりません。なぜですか?

JSON-LDは直接的な順位上昇要因ではなく、Googleに情報を正確に伝えるための仕組みです。順位向上の前提として、コンテンツの質や被リンクなど、他のSEO要素も重要です。

Q2:@graphは必ず使うべきですか?

必須ではありませんが、複数のエンティティを1つのページに定義する場合は@graphが便利です。単一エンティティのみなら、直接@typeを記述するだけでOKです。

Q3:headとbodyどちらに入れるべきですか?

Google公式ではどちらでもOKとされていますが、headに入れるのが一般的です。Next.jsの場合、App Routerならlayout.tsx内の<head>タグに挿入します。

Q4:テスト環境でもJSON-LDを入れて大丈夫ですか?

テスト環境はrobots.txtでクロール禁止にしておけば問題ありません。本番環境のみにJSON-LDを入れる運用も選べます。


JSON-LDは、AI検索時代における情報伝達の共通言語です。正しく実装することで、検索エンジンとAIの両方に、あなたのサイトの価値を正確に伝えられます。

まずは最もシンプルなArticleスキーマから始めて、段階的にFAQPage、HowTo、Personと拡張していくのがおすすめです。実装したら、必ずRich Results TestとSchema.org Validatorで検証する習慣をつけましょう。

あなたのサイトの構造化データ実装状況は、SEGOで30秒で診断できます。実装漏れがないかチェックしてみてください。

岡 拓馬

この記事を書いた人

岡 拓馬(おか たくま)

外資系SEOスペシャリスト / SEGO開発者

航空自衛隊で航空機整備員として勤務した後、2015年にフリーランスのWebライター・SEOコンサルタントとして独立。以来、アジア各国を拠点に海外ノマドワーカーとして活動。フィリピンの外資系企業でSEOスペシャリストとして従事した後、約10年の国際SEOコンサルティング経験をもとにSEO×AI検索の診断ツール「SEGO」を開発。著書に『AI時代のテクニカルSEOの教科書』(Kindle)、Udemy講座『AI時代のコンテンツSEOの教科書』がある。