主要JSON-LDスキーマ 実装テンプレート集:WebSite・Organization・Article・BreadcrumbList

JSON-LDの理論を理解したら、次は実装です。本章では、実務で最も使われる4つのスキーマをすぐにコピペして使えるテンプレート形式 で提供します。 各プロパティがなぜ必要か、何を記述すべきかの解説付きです。 これらの4スキーマを正しく実装するだけで、ほとんどのWebサイトはリッチリザルト対応の基盤が整います。

📋 本章でカバーする4大スキーマ
  • WebSite:サイト全体の主体定義 + 他スキーマの基点づくり
  • Organization:会社・ブランドの権威性証明 + E-E-A-T対応
  • Article / BlogPosting:記事の著者・公開日・更新日の機械的証明
  • BreadcrumbList:サイト階層構造の明示 + 検索結果UI改善

1. WebSite スキーマ:サイト全体の基点エンティティを定義する

WebSite スキーマ はサイトのルートURL(トップページ)に配置し、 「このドメイン全体が何者か」を検索エンジンとAIに伝えるための基点になります。OrganizationWebPageBreadcrumbList などの参照先として 一貫した @id を持たせることが主目的です。

📌 2026年4月13日時点の注意
かつて使われていた SearchAction による サイトリンク検索ボックス は、 Googleが 2024年11月21日 に表示終了を発表しています。 そのため現在の WebSite スキーマは、「検索ボックスを出すため」ではなく、 サイト全体の主体を定義するために実装する、と理解するのが正確です。

WebSite スキーマ 完全テンプレートJSON-LD
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://example.com/#website",
  "url": "https://example.com",
  "name": "サイト名(ブランド名)",
  "description": "このサイトが提供するサービス・コンテンツの簡潔な説明(160文字以内推奨)",
  "inLanguage": "ja",
  "publisher": {
    "@id": "https://example.com/#organization"
  }
}

@idhttps://example.com/#website

フラグメント識別子(#website)を使ってこのエンティティに固有IDを付与します。 他のスキーマ(OrganizationなどでWebSiteを参照する場合)から {"@id": "..."} で参照できるようになります。

publisher — Organizationへの参照

{"@id": "https://example.com/#organization"} と記述することで、 下で定義するOrganizationスキーマと連携します。直接書かず参照にすることで Google Knowledge Graphへの登録効率が上がります。

name / description — サイトの主題を簡潔に固定する

WebSite の役割は「このドメインは何のサイトか」を定義することです。 ブランド名だけでなく、事業内容やコンテンツ領域が読み取れる説明を添えると、 Organization や Article とつながったときの意味解釈が安定します。

2. Organization スキーマ:E-E-A-T対応の権威性証明

Organization スキーマ は、あなたの会社・ブランドの「機械向け名刺」です。 Google Knowledge Panel への表示、E-E-A-T評価の向上、ChatGPT/Perplexityへの組織情報提供に直結します。 サービス業・SaaS・メディアサイトを問わず、ほぼすべてのビジネスサイトで必須の実装 です。

Organization スキーマ 完全テンプレート(企業向け)JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "株式会社サンプル",
  "legalName": "株式会社サンプル",
  "url": "https://example.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://example.com/logo.png",
    "width": 512,
    "height": 512
  },
  "description": "組織の事業内容・提供価値の説明(200文字程度)",
  "foundingDate": "2020",
  "numberOfEmployees": {
    "@type": "QuantitativeValue",
    "value": 50
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "〇〇区〇〇1-2-3",
    "addressLocality": "東京都",
    "postalCode": "100-0001",
    "addressCountry": "JP"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "info@example.com",
    "availableLanguage": "Japanese"
  },
  "sameAs": [
    "https://www.facebook.com/example",
    "https://twitter.com/example",
    "https://www.linkedin.com/company/example",
    "https://ja.wikipedia.org/wiki/example"
  ],
  "knowsAbout": [
    "SEO",
    "AI検索最適化",
    "構造化データ",
    "Next.js"
  ]
}
⚠️ sameAs は「外部から認証されたURL」を記述する
sameAs に列挙するURLは、実際に組織の情報が掲載されている信頼性の高い外部サービス のみにしてください。 Twitterアカウントが存在しないのに記述する、WikipediaページのURLを捏造するなどは Googleのスパムポリシー違反になります。実在するものだけを記述してください。

LocalBusiness への拡張(店舗・オフィスがある場合)

実店舗や対面サービスを提供する場合は @type"LocalBusiness" に変更(または Organization と LocalBusiness の配列指定)し、openingHoursSpecificationgeo を追加します。

LocalBusiness 追加プロパティJSON-LD
{
  "@context": "https://schema.org",
  "@type": ["Organization", "LocalBusiness"],
  // ... 上記の Organization プロパティに加えて以下を追加
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 35.6812,
    "longitude": 139.7671
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "¥¥"
}

3. Article / BlogPosting スキーマ:著者情報とE-E-A-Tの記事実装

記事・ブログ投稿には Article(またはBlogPosting・TechArticle)スキーマ を実装します。 著者情報・公開日・更新日・パブリッシャー情報がGoogleに伝わり、 検索結果でのリッチリザルト表示と E-E-A-T 評価に直結します。

Article

汎用的な記事。ニュース記事・企業ブログ・コラムなどに使用。 Google News への対応も含む最も広い用途。

BlogPosting

Articleのサブタイプ。ブログ形式の投稿に特化。 個人・企業ブログで最もよく使われる型。

TechArticle

技術系記事・開発者ドキュメントに特化したサブタイプ。proficiencyLevel(初心者向け/上級者向け)プロパティが使用可能。

Article / BlogPosting スキーマ 完全テンプレートJSON-LD
{
  "@context": "https://schema.org",
  "@type": "Article",
  "@id": "https://example.com/blog/json-ld-guide#article",
  "headline": "記事タイトル(110文字以内を推奨)",
  "description": "記事の概要・ディスクリプション(160文字以内を推奨)",
  "image": [
    "https://example.com/blog/json-ld-guide/ogp-1x1.jpg",
    "https://example.com/blog/json-ld-guide/ogp-4x3.jpg",
    "https://example.com/blog/json-ld-guide/ogp-16x9.jpg"
  ],
  "datePublished": "2026-04-12T09:00:00+09:00",
  "dateModified": "2026-04-12T09:00:00+09:00",
  "author": {
    "@type": "Person",
    "@id": "https://example.com/author/yamada#person",
    "name": "山田 太郎",
    "url": "https://example.com/author/yamada",
    "jobTitle": "SEOエンジニア",
    "knowsAbout": ["SEO", "JSON-LD", "構造化データ", "Next.js"],
    "sameAs": [
      "https://twitter.com/yamada_example",
      "https://www.linkedin.com/in/yamada-example"
    ]
  },
  "publisher": {
    "@id": "https://example.com/#organization"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/json-ld-guide"
  },
  "inLanguage": "ja",
  "keywords": ["JSON-LD", "構造化データ", "SEO", "schema.org"],
  "articleSection": "SEO / 技術解説",
  "wordCount": 3000
}
⚠️ image は複数サイズを提供するとリッチリザルト採用率が上がる
Googleは 1:1、4:3、16:9 の3アスペクト比の画像を提供することを推奨しています。 最低でも1200px幅以上、60万ピクセル以上の画像が必要です。 画像が足りない場合はOGP画像を流用するのが現実的ですが、サイズ要件は満たしてください。

4. BreadcrumbList スキーマ:検索結果URLをパンくずに変える

BreadcrumbList スキーマ を実装すると、Google検索結果に表示される URL(example.com/blog/json-ld-guide)が パンくずリスト形式(ホーム > ブログ > JSON-LDガイド)に変わります。 サイト構造が一目で伝わり、ユーザーの信頼性とCTRが向上します。

BreadcrumbList スキーマ 完全テンプレートJSON-LD
{
  "@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"
    }
  ]
}
💡 最後のアイテムに item URLは省略可能
パンくずリストの最終アイテム(現在のページ)は item プロパティを省略できます。 ただし省略した場合でも positionname は必須です。 Next.jsなどで動的に生成する場合は、現在のURLを usePathname() などから 取得して各 item に設定することで完全な実装が可能です。

5. 実務での組み合わせ:トップページ・記事ページの完全実装例

実際のWebサイトでは、複数のスキーマを同一ページに実装します。 JSON-LDは <script> タグを複数書いてもよく、 または1つの <script> タグにJSONの配列形式で複数スキーマをまとめることもできます。

トップページ:WebSite + Organization の組み合わせ実装JSON-LD(Next.js layout.tsx イメージ)
// app/layout.tsx または app/page.tsx
export default function RootLayout({ children }) {
  const jsonLd = [
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "@id": "https://example.com/#website",
      "url": "https://example.com",
      "name": "サイト名",
      "inLanguage": "ja",
      "publisher": { "@id": "https://example.com/#organization" }
    },
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "@id": "https://example.com/#organization",
      "name": "株式会社サンプル",
      "url": "https://example.com",
      "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" },
      "sameAs": ["https://twitter.com/example"]
    }
  ];

  return (
    <html lang="ja">
      <head>
        <script
          type="application/ld+json"
          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
        />
      </head>
      <body>{children}</body>
    </html>
  );
}
記事ページ:Article + BreadcrumbList の組み合わせ実装JSON-LD(Next.js app/blog/[slug]/page.tsx イメージ)
// app/blog/[slug]/page.tsx
export default function BlogPost({ params }) {
  const article = getArticleBySlug(params.slug);

  const jsonLd = [
    {
      "@context": "https://schema.org",
      "@type": "Article",
      "headline": article.title,
      "description": article.description,
      "datePublished": article.publishedAt,
      "dateModified": article.updatedAt,
      "author": {
        "@type": "Person",
        "name": article.author.name,
        "url": `https://example.com/author/${article.author.slug}`
      },
      "publisher": { "@id": "https://example.com/#organization" },
      "image": article.ogpImage,
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": `https://example.com/blog/${params.slug}`
      }
    },
    {
      "@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": article.title, "item": `https://example.com/blog/${params.slug}` }
      ]
    }
  ];

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
      />
      <article>
        {/* 記事コンテンツ */}
      </article>
    </>
  );
}

6. 実装チェックリスト

トップページに WebSite + Organization を実装済みサイトの基本情報とブランドアイデンティティをGoogleに登録します。@id のフラグメント識別子(#website#organization)が一貫していることを確認。
すべての記事ページに Article + BreadcrumbList を実装済み動的ルートでCMSやデータソースから記事情報を取得し、JSON-LDを動的生成していること。 静的なハードコードはNG(公開日・著者が常に正しい値になるように)。
Organization の sameAs に実在するSNS・WikipediaのURLを記述存在しないURL、または誤ったURLを記述するとGoogleのナレッジグラフが混乱します。 実際にアクセスできるURLのみ記述してください。
image が1200px幅以上・60万ピクセル以上を満たしているGoogle Rich Results Testで警告が出る最頻出ミスが画像サイズ不足です。 OGP画像を転用する場合も、サイズ要件を確認してください。
Google Rich Results Test でエラーゼロを確認済み実装後は必ずGoogleの公式テストツールで検証してください。 第5章(診断・運用編)でテストツールの使い方を詳解します。

実装後のエラーは
AIOGeoScanで一括検出できます

Organization・Article・BreadcrumbList の必須プロパティ漏れや スキーマの不整合をURLを入力するだけで自動検出。 手動テストの工数を削減し、継続的な品質維持を実現します。

今すぐ自社サイトを無料診断する
Editorial Trust Signals

このナレッジベースの編集方針

`AIOGeoScan Knowledge` は、Bennu Inc. が運営する AI検索・構造化データ・クローラー制御に関する実務ナレッジです。 Google Search Central、Schema.org、OpenAI などの一次情報を優先し、観測ベースの実務知見は本文中で区別して扱います。

運営主体
Bennu Inc. / AIOGeoScan
更新方針
仕様変更や検索機能の更新にあわせて都度改訂
優先ソース
公式ドキュメント・標準仕様・公式ヘルプ
補助ソース
実装観測・運用知見・再現性のある検証結果

あなたのサイト、AIに正しく伝わっていますか?

解説を読み終えたら、実際にあなたのサイトを診断してみましょう。
100項目以上の診断で、AI時代の構造課題を可視化します。

無料で診断を開始する