メタデータ
すべてのページがレンダリングする head タグ(title、description、canonical、Open Graph、X カードのタグ)と、フロントマターからページごとに上書きする方法。
すべてのページは、設定とフロントマターから標準的な <head> タグをレンダリングします — 設定は不要です。値を調整できる場合は、blume.config.ts の seo キー、またはページのフロントマターの seo の下に配置されます。
<title>— ページタイトルとサイトのtitle。<meta name="description">とog:description— ページのdescription。未設定の場合はサイトのdescriptionにフォールバックします。og:titleとog:site_name— ページタイトルとサイトのtitle。<link rel="canonical">とog:url— ページの絶対 URL(deployment.siteが設定されている場合)。og:type— ブログ記事と変更履歴エントリではarticle、それ以外ではwebsite。記事ページでは、ページのdateと最終更新タイムスタンプからarticle:published_timeとarticle:modified_timeも出力されます。og:image— ページの OG 画像。生成されたカードはog:image:width、og:image:height、og:image:type、og:image:altも宣言するため、クローラーは画像を取得せずにカードをレイアウトできます。自分で指定したseo.imageは、サイズとフォーマットが不明なため、これらを一切宣言しません。twitter:card、twitter:title、twitter:description、twitter:image— X カード。画像のあるページは横長のsummary_large_imageバリアントになります。画像のないページでも、素のリンクとしてレンダリングされる代わりにコンパクトなsummaryカードが適用されます。
X のクレジット表記
X はカードのその他すべての値を og:* タグから読み取るため、推測できない値はクレジットするアカウントだけです。それらを seo.x の下に設定すると、Blume は twitter:site(サイトのアカウント)と twitter:creator(著者のアカウント)を出力します。@ は省略可能で、acme と @acme のどちらでも動作します。
seo: {
x: { handle: "@acme", creator: "@jane" },
}
ページは独自の著者を指定できます。これはゲスト投稿に適しています。
---
title: How we shipped it
seo:
x:
creator: "@guestauthor"
---
ページごとの上書き
その他のタグはいずれも、seo フロントマターでページごとに上書きできます。
---
title: Pricing
description: Plans and pricing for every team size.
seo:
title: Pricing — Acme
canonical: https://acme.com/pricing
noindex: false
---
PropType
seo.title?string
このページの <title> と og:title を上書きします。
Type
stringseo.description?string
meta と og:description を上書きします。
Type
stringseo.image?string
カスタムのソーシャル画像(Open Graph 画像を参照)。
Type
stringseo.canonical?string
canonical URL を上書きします。
Type
stringseo.noindex?boolean
robots noindex を出力し、構造化データをスキップします。
Type
booleanseo.x.creator?string
このページを X アカウント(twitter:creator)にクレジットし、設定の seo.x.creator を上書きします。
Type
string