---
title: 構造化データ
description: >-
  すべてのページに含まれる schema.org JSON-LD — WebSite、記事、パンくずリストのノード — に加えて、検索エンジンやエージェントにあなたが何者かを伝えるオプションの Organization および SoftwareApplication ブロックについて説明します。
---

Blume は、検索エンジンがコンテンツを理解できるように、すべてのページの `<head>` に [schema.org](https://schema.org) JSON-LD を出力します。デフォルトで有効です:

```ts blume.config.ts lineNumbers
seo: {
  structuredData: true,
}
```

各ページには次のものが含まれます:

- サイトのアイデンティティを示す **WebSite** ノード
- **記事** としてのページ — ブログ記事には `BlogPosting`、変更履歴とドキュメントには `TechArticle` — と、その説明および公開日
- ナビゲーションの経路から構築される **BreadcrumbList**

[`deployment.site`](/docs/deployment) が設定されている場合、URL は絶対 URL になります。[`seo.noindex`](/docs/discoverability/metadata#per-page-overrides) が指定されたページはスキップされます。[`lastModified`](/docs/configuration#last-modified) が有効な場合、各ページの日付は `dateModified` としても出力されます。

## サイトのアイデンティティ [#site-identity]

WebSite ノードはサイトが存在することを示すだけで、それが _何_ であるか、_誰_ が運営しているかは示しません — AI エージェントがあなたを推薦したり引用したりする前に JSON-LD を読む目的は、まさにそこにあります。2 つのオプションブロックがそれを補います。どちらも `deployment.site` が必要です (これらのノードは絶対識別子を持つため):

```ts blume.config.ts lineNumbers
seo: {
  organization: {
    name: "Acme", // defaults to the site title
    email: "hello@acme.com",
    telephone: "+1 555 0100",
    address: { addressLocality: "Sydney", addressCountry: "AU" },
    logo: "/logo.svg",
    sameAs: ["https://github.com/acme", "https://x.com/acme"],
  },
  software: {
    license: "MIT",
    operatingSystem: "Node.js 22+",
    price: 0, // emitted as an Offer; 0 marks it free
    sameAs: ["https://www.npmjs.com/package/acme"],
  },
}
```

`organization` は、すべてのページに **Organization** ノードを追加します — WebSite ノードと記事ノードはこれを `publisher` として参照します — メールアドレスと電話番号は `ContactPoint` として (`contactType` のデフォルトは `"customer support"`)、住所は `PostalAddress` として出力され、この 2 つのフィールドはビジネス検証のチェックで参照されます。`name` と `url` はサイトの値がデフォルトになります。ルート相対の `logo` は、他のページ URL と同様に絶対 URL 化されます。

`software` は、ホームページに **SoftwareApplication** ノードを追加します: 製品の名前と説明 (デフォルトはサイトの値)、`applicationCategory` (デフォルトは `"DeveloperApplication"`)、オペレーティングシステム、ライセンス、`price` が設定されている場合は `Offer`、そして `sameAs` にレジストリまたはリポジトリの URL が含まれます。すべてデフォルト値を使用するには `software: true` を指定してください。organization が設定されている場合は、その `publisher` として参照されます。

## カスタムページ [#custom-pages]

`PageLayout` を通してレンダリングされるカスタム [`.astro` ページ](/docs/advanced/custom-pages) も同じ `WebSite` グラフを出力するため、マーケティング用のホームページだけが構造化データを持たない URL になることはありません。この設定と同期させるには `structuredDataEnabled={config.structuredData}` を渡し、そのページだけ無効にするには `structuredDataEnabled={false}` を渡してください。
