コンテンツにスキップ
Blume
日本語
Esc
移動開く⌘Jプレビュー
このページの内容

構造化データ

すべてのページに含まれる 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 つのフィールドはビジネス検証のチェックで参照されます。nameurl はサイトの値がデフォルトになります。ルート相対の logo は、他のページ URL と同様に絶対 URL 化されます。

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

カスタムページ

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

このページは役に立ちましたか?