OG 画像のレイアウト
一言まとめ
1200×630px(1.91:1)で全プラットフォームをカバーし、重要要素は中央 960×504px の safe zone に置く。テキスト入りは PNG、コントラスト 4.5:1 以上、下辺 60px は空ける。動的生成は @vercel/og(Satori)が標準で、Flexbox のみ・フォント埋め込み必須。
調査時点: 2026-05。サイズ仕様と WCAG は長寿命、ビジュアルトレンドは陳腐化が速い。
OG 画像は、Web ページの URL を SNS などで共有したときにリンクのプレビューに表示される画像。Open Graph の og:image メタデータで指定する。
スペック
| プラットフォーム | 推奨サイズ | 比 | 最小 | ファイル上限 |
|---|---|---|---|---|
| 1200×630 | 1.91:1 | 600×315 | 8MB | |
| X | 1200×628 | 2:1 | 300×157 | 5MB |
| 1200×627 | 1.91:1 | 1200×627(幅 401px 未満は小サムネイル) | 5MB | |
| Discord / Slack / WhatsApp | 1200×630 | 1.91:1 | — | — |
- 1200×630px を採用すれば全プラットフォームで安全。X の公式 2:1 との差は 2px で実用上問題ない。
- 形式は JPG / PNG / WebP。テキスト入りは PNG(JPEG の DCT 量子化でテキスト周辺がにじむ)。レガシーな scraper の WebP 対応は未確認。
- ファイルサイズの実用目標は 150〜500KB。
og:image:width/og:image:heightを明示し、絶対 URL(HTTPS)で指定する。URL を変えずに画像だけ差し替えると SNS 側のキャッシュが残るので、差し替え時はキャッシュバスティングする。
レイアウト原則
- Safe zone は中央 960×504px(中心 80%)。全辺 40〜60px 以上のマージン。
- 下辺 60px には何も置かない。プラットフォームがドメイン名や再生ボタンを重ねることがある。
- 視覚階層は 3 層: 頂点 = 見出し、中層 = サポート情報(著者・カテゴリ・日付)、底辺 = ブランドアンカー(ロゴ・ドメイン)。
- タイポ: 見出し太字 48〜64px(日本語 15〜20 字)、サブ 28〜36px、補足 18〜24px。フォントは 2〜3 種まで、同一ファミリーのウェイト違いが統一感を出しやすい。テキストは 2〜3 行まで。
- コントラストは WCAG AA 4.5:1 以上、タイトルなど重要情報は 7:1 推奨。WCAG 1.4.3 の「images of text」は OG 画像にも当てはまる。
- テキストの占有面積は画像の 25% 未満が目安。
┌──────────────────────────────────────────┐ 1200×630│ ┌────────────────────────────────────┐ ││ │ Safe zone 960×504 │ ││ │ [ロゴ] │ ││ │ タイトル(太字 48-64px) │ ││ │ サブタイトル(28-36px) │ ││ │ 著者 / 日付 [タグ] │ ││ └────────────────────────────────────┘ ││ ↑ 下辺 60px はオーバーレイ領域 │└──────────────────────────────────────────┘典型レイアウト 5 パターン
| パターン | 構成 | 用途 |
|---|---|---|
| A. Article Card | 左テキスト + 右ビジュアル | ブログ・ニュース。左からスキャンする読み方に合う |
| B. Brand Card | 中央配置・シンプル | トップページ、ブランドの初出し |
| C. Photo Card | 背景写真 + グラデーションオーバーレイ + テキスト | 写真主体のコンテンツ |
| D. Summary Card | 左サムネイル + 右にサイト名・タイトル・著者 | 複数記事の汎用テンプレート |
| E. Typographic Card | 全面グラデーション / ノイズ + タイポ主役 | テクニカル・デザイン系。2025-2026 の中心 |
動的生成(@vercel/og)
- @vercel/og(Satori + Resvg) が事実上の標準。HTML + CSS(Flexbox のサブセット)をサーバーで PNG 化する。Next.js App Router は
app/にopengraph-image.tsxを置くだけ。 - 既定出力は 1200×630px、CDN ヘッダー自動付与。バンドル上限 500KB(JSX + フォント + 画像)。フォントは TTF / OTF 推奨(WOFF より解析が速い)。
注意点:
display: grid非対応。Flexbox だけで組む。- 既定フォントは Noto Sans のみ。カスタムフォントの埋め込み漏れでフォールバックが崩れる。
- タイトル長(英語 80 字 / 日本語 30 字超)で折り返しが破綻する。
word-break/white-spaceを制御し、長いタイトルでテストする。 - OG 画像は
prefers-color-schemeを参照できないので、ライトかダークのどちらかに固定して設計する。SNS のダーク UI との不調和を避けてダーク基調にする例が増えている。
ビジュアルトレンド(2025-2026、鮮度注意)
- ノイズ / グレイン + 高彩度グラデーション(Acid Fade)。
- ブルータリズムの成熟(重量感のあるスタック組み、スプレッドシート風グリッド、黒白 + 単色アクセント)。
- タイポグラフィ主役(背景最小)。
- タイトル・著者・カテゴリを URL パラメータで渡す記事単位の動的生成。
検証ツール
| ツール | URL |
|---|---|
| Facebook Sharing Debugger | https://developers.facebook.com/tools/debug/ |
| X Card Validator | https://cards-dev.twitter.com/validator |
| LinkedIn Post Inspector | https://www.linkedin.com/post-inspector/ |
| opengraph.xyz | https://www.opengraph.xyz/ |
| Vercel OG Playground | https://og-playground.vercel.app/ |
未確認(2026-05 時点)
- X の現行アスペクト比(1.91:1 か 2:1 か)を公式一次情報で確認できていない(公式ドキュメントが 402 で取得不可)。
- Retina 向けに 1500×788px で生成する推奨は一次情報なし。
prefers-color-schemeで切り替わる OG 画像を各プラットフォームがサポートする計画は不明。
関連
更新履歴
- 2026-05-08: 初版(ローカル調査ノート)
- 2026-10-17: Wiki へ移植、概念ページとして再構成。冒頭に定義を追加
出典
- https://developers.facebook.com/docs/sharing/webmasters/
- https://www.linkedin.com/help/linkedin/answer/a521928
- https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html
- https://vercel.com/docs/og-image-generation
- https://nextjs.org/docs/app/getting-started/metadata-and-og-images
- https://developers.facebook.com/tools/debug/