構造化データ
すべてのページに含まれる schema.org JSON-LD — WebSite、記事、パンくずリストのノード — に加えて、検索エンジンやエージェントにあなたが何者かを伝えるオプションの Organization および SoftwareApplication ブロックについて説明します。
Blume は、検索エンジンがコンテンツを理解できるように、すべてのページの <head> に schema.org JSON-LD を出力します。デフォルトで有効です:
seo: {
structuredData: true,
}
各ページには次のものが含まれます:
- サイトのアイデンティティを示す WebSite ノード
- 記事 としてのページ — ブログ記事には
BlogPosting、変更履歴とドキュメントにはTechArticle— と、その説明および公開日 - ナビゲーションの経路から構築される BreadcrumbList
deployment.site が設定されている場合、URL は絶対 URL になります。seo.noindex が指定されたページはスキップされます。lastModified が有効な場合、各ページの日付は dateModified としても出力されます。
サイトのアイデンティティ
WebSite ノードはサイトが存在することを示すだけで、それが 何 であるか、誰 が運営しているかは示しません — AI エージェントがあなたを推薦したり引用したりする前に JSON-LD を読む目的は、まさにそこにあります。2 つのオプションブロックがそれを補います。どちらも deployment.site が必要です (これらのノードは絶対識別子を持つため):
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 として参照されます。
カスタムページ
PageLayout を通してレンダリングされるカスタム .astro ページ も同じ WebSite グラフを出力するため、マーケティング用のホームページだけが構造化データを持たない URL になることはありません。この設定と同期させるには structuredDataEnabled={config.structuredData} を渡し、そのページだけ無効にするには structuredDataEnabled={false} を渡してください。