オープン・グラフ・プレビュー
ソーシャルメディアでリンクがどのように表示されるかをプレビューします。
プレビュー
既存のOGタグを解析
OGメタタグを含むHTMLコードを貼り付けて、抽出してプレビューします。
Open Graphについて
Open Graph(OG)メタタグは、Facebook、LinkedIn、Slack、Discord、その他のプラットフォームで共有されたときにページがどのように見えるかを制御します。良いタイトル、説明、画像で適切に構成されたOGタグは、ソーシャル共有からのクリック率を大幅に増加させることができます。推奨されるOG画像サイズは1200×630ピクセルです。
Open Graphとは実際に何か
Open Graphプロトコルは、2010年にFacebookによって、任意のウェブページをソーシャルグラフ内の「rich object」に変える方法として作成されました、他のアプリケーション(元々はFacebook、現在はLinkedIn、Slack、Discord、Microsoft Teams、iMessage、WhatsApp、その他多数)が誰かがあなたのURLを貼り付けたときにプレビューカードをレンダリングするために読み取ることができる構造化されたメタデータのセットです。公式仕様はogp.meにあり、プロトコルは事実上ウェブ上のリンク共有のリングア・フランカになりました。
OGタグがないと、ソーシャルプラットフォームはあなたのページをスクレイプして推測します:見出しを選び、見つけられる最初の画像をつかみ、それをカードと呼びます。結果はあなたが望むものになることは稀です。OGタグを使うと、タイトル、説明、画像をコントロールでき、これは洗練されたリンクと壊れたように見えるリンクの違いです。
4つの必須タグ(ogp.meによる)
公式のOpen Graph仕様は4つの必須プロパティを定義しています。Open Graphオブジェクトとして適格となるためには、ページはすべての4つを宣言する必要があります:
| タグ | 何をするか |
|---|---|
og:title | グラフ内に表示されるべきオブジェクトのタイトル。 |
og:type | オブジェクトのタイプ、通常一般的なページにはwebsite、ブログ投稿にはarticle、映画エントリにはvideo.movieなど。 |
og:image | プレビューカード内のオブジェクトを表すべき画像へのURL。 |
og:url | オブジェクトの正規URL、あなたのサイト上の永久アドレス。 |
推奨されるオプションタグにはog:description(1〜2文の要約)、og:site_name(あなたのサイトの名前をラベルとして)、og:locale(言語と地域)、および画像寸法ヒントog:image:width / og:image:height / og:image:altが含まれます。寸法ヒントを含めることで、ソーシャルクライアントは適切な量のスペースを事前に割り当てることができ、画像が読み込まれる間のレイアウトシフトを回避します。
Twitter / X Cards:同じアイデア、少し異なるタグ
X(以前のTwitter)は独自のメタデータ名前空間を持っています、twitter:card、twitter:title、twitter:description、twitter:image、twitter:site、twitter:creator、しかし重要なことに、Twitter固有のタグがないとき、XはOGタグにフォールバックします。したがって、OGタグのみを出荷するページもX上でカードを取得します。2つが異なるのはカードタイプです:
twitter:card=summary、小さな正方形のサムネイル、タイトル、説明。twitter:card=summary_large_image、カードの上部にフル幅の画像。フィードでより視覚的な注目を集めるため、コンテンツ共有のモダンなデフォルト。appとplayer、それぞれアプリインストールとインラインビデオ用。
注:cards-dev.twitter.com/validatorのスタンドアロンTwitter Card Validatorプレビューは、2022年8月2日にXによって削除されました。カードを確認する現在の方法は、Tweet Composerで新しいツイートを開始し、URLを貼り付け、プレビューがレンダリングするのを待つことです、実際にツイートを投稿する必要はありません。一部のサードパーティツール(これを含む)は、レンダリングされたカードを近似し、ライブにする前に反復できるようにします。
実際に機能する画像寸法
完璧な単一のサイズはありませんが、1200×630の画像(1.91:1のアスペクト比)が最も信頼できる単一の賭けです、主要なクロッピングなしですべてで機能します。プラットフォーム別の推奨事項:
| プラットフォーム | 推奨サイズ | ノート |
|---|---|---|
| 1200×630(1.91:1) | 最小200×200;600×315未満は小さなサムネイルとして表示されます。 | |
| 1200×627最小 | 1.91:1の比率、JPG/PNG/GIF、最大5 MB。 | |
| X (summary_large_image) | 1200×675(16:9) | または1200×600(2:1)、どちらもフル幅でレンダリングします。 |
| Slack / Discord | OGタグを直接読む | 1200×630はうまく機能します;アスペクトクロッピングを生き残るために被写体は中央に配置されます。 |
| 縦長(例:1000×1500) | 2:3の比率がPinterestフィードで最もうまく機能します。 |
重要なテキストと顔は画像の中央近くに保ちます、すべてのプラットフォームは異なる方法でクロップし、角のロゴはプラットフォームのUIオーバーレイの後ろに消える可能性があります。
なぜあなたのカードが時々表示されないのか
OGタグを追加したがプレビューがまだ壊れているか空の場合、通常の容疑者:
- HTTPSが必要。Facebookとほとんどのモダンプラットフォームは
http://画像URLを拒否します。og:imageをHTTPSで提供します。 - 画像が公にアクセスできない。認証の後ろ、IP allowlistによってブロック、またはプラットフォームのクローラーに403を返す。プライベートブラウザウィンドウで画像URLを開いてテストします。
- 画像が小さすぎる。プラットフォームの最小値(Facebook 200×200、LinkedIn 1200×627)未満では、カードは小さなサムネイルまたは画像なしにフォールバックします。
- 間違ったアスペクト比。1:1の正方形画像がX上で
summary_large_imageとして送信されると、中央でクロップされ、しばしば悪く。 - キャッシュ。ソーシャルプラットフォームは、あなたのOGメタデータを積極的にキャッシュします。タグを修正した後、FacebookのSharing Debuggerを訪問し、「Scrape Again」をクリックして更新します;LinkedInのPost Inspectorも同じことをします;Xは、誰かがURLを次に貼り付けたときに変更を取り上げます。
- Robots.txtがソーシャルクローラーをブロック。
facebookexternalhit、Twitterbot、LinkedInBot、Slackbotのようなユーザーエージェントがあなたのページと画像を取得できることを確認してください。 - サーバーが2xx以外を返すクローラーに。ソーシャルボットのユーザーエージェントについてサーバーログを確認してください。
- 相対画像URL。
og:imageは絶対URL(https://yoursite.com/og.jpg)である必要があり、決して/og.jpgではありません。
キャッシュの問題
ソーシャルプラットフォームがあなたのページをスクレイプすると、メタデータは一定期間キャッシュされます、コミュニティの伝承ではFacebookとLinkedInで約7日とされていますが、どちらのプラットフォームも正確なTTLを文書化していません。OGタグを更新しても、キャッシュは自動的に更新されません。再スクレイプを強制するには、公式ツールを使用します:Facebook Sharing Debugger、LinkedIn Post Inspector。Xは、URLが次に共有されたときに新しいメタデータを取得します。SlackとDiscordは、フェッチ時のOGタグに基づいてプレビューを更新するため、Facebookよりも速く更新されます。
一般的なog:type値
og:typeタグは、ページがどのようなオブジェクトを表しているかをソーシャルプラットフォームに伝えます。ほとんどのページはwebsite(デフォルト)またはarticleです;垂直特有の値により、プラットフォームはより豊かなカードをレンダリングできます。仕様から:
website、一般的なページのデフォルト。article、ブログ投稿、ニュース。article:published_time、article:author、article:section、article:tagとペア。book、book:author、book:isbnとペア。profile、ユーザープロファイルページ用。video.movie/video.episode/video.tv_show/video.other、ビデオコンテンツ用。music.song/music.album/music.playlist/music.radio_station、音楽用。
実践での長さ制限
タイトルや説明の長さに厳しい上限を強制するプラットフォームはありませんが、すべてのプラットフォームはある時点で切り捨てます:
- タイトル、すべてのプラットフォームで安全であるために~60文字以下に保ちます;~70はほとんどで切り捨てられます。重要なメッセージは最初の50に。
- 説明、切り捨ての前に~155-200文字未満。モバイルではより少ない(約100)。重要な情報を前置きします。
- 画像altテキスト、スクリーンリーダーやアクセシビリティを意識したクライアントのために存在すべき(
og:image:alt);100文字未満。
JSON-LD vs Open Graph(これらは異なるもの)
よくある混乱:JSON-LD構造化データ(schema.orgの語彙を使用)とOpen Graphメタタグは異なる仕事をします。OG / Twitter Cardsはソーシャル共有プレビューをコントロールします、誰かがあなたのURLをSlackやFacebookに貼り付けたときに表示されるもの。schema.orgとJSON-LDは、Googleがリッチ検索結果、レシピカード、製品情報、Google SearchのFAQスニペット用にページを解析するのを助けます。両方が推奨され、お互いを置き換えません。
よくある間違い
- 相対
og:imageURLを使用する。仕様は絶対URLを必要とします。相対パスは静かに削除されます。 - すべてのページに汎用サイトロゴを使用する。OG画像はあなたのカードのヒーローです、すべてのページはユニークな画像に値します、理想的にはページのコンテンツに結びついています。
og:image:widthとog:image:heightを忘れる。一部のクライアントはスペースを事前に割り当て、これらのヒントなしでは画像を見逃します。- twitter:cardタイプ
summary_large_imageがない。それなしでは、Xはより小さなsummaryカードを正方形のサムネイルでデフォルトにします、しばしばあまり魅力的ではありません。 - 画像の角に重要なテキストを置く。異なるプラットフォームは異なる方法でクロップします。被写体と重要なテキストは中央80%にあるべきです。
- タグを更新するがキャッシュをリフレッシュしない。すべての変更後に公式のSharing Debugger / Post Inspectorを訪問してください。
- HTTP画像URLを送信する。ほとんどのプラットフォームは非HTTPS画像を拒否します;カードは画像なしで表示されます。
og:titleとog:descriptionのみを使用する。og:imageがないと、カードはほとんどのプラットフォームでスパースなテキストのみのスタブとしてレンダリングされます。
よくある質問
なぜ私のプレビューは異なるプラットフォームで異なって見えるのですか?
各プラットフォームは同じOGメタデータを独自の方法でレンダリングします、異なる画像クロップ比率、異なるタイトルサイズ、異なるポイントで切り捨てられる異なる説明。このツールは各プラットフォームのカードを近似します;本番環境での実際のレンダリングはわずかに異なる可能性があります。常に最も重要なプラットフォーム(Facebook Sharing Debugger、LinkedIn Post Inspector、およびXのTweet Composer)をテストしてから、カードに依存してください。
私のOGタグは正しいのにFacebookはまだ古いプレビューを表示します。なぜ?
FacebookはOGメタデータを積極的にキャッシュします、一度URLをスクレイプすると、結果は一般的に数日として報告される時間続きます。新鮮なスクレイプを強制するには、URLをFacebook Sharing Debuggerに貼り付け、"Scrape Again."をクリックします。同じトリックがLinkedInのPost Inspector経由で機能します。
OGタグとTwitter Cardタグの両方が必要ですか?
厳密にはそうではない、XはTwitter特有のタグがないときOGタグにフォールバックします。Twitter固有のタグが役立つのは、カードタイプを選ぶ(twitter:card = summary_large_image)ことと投稿を属性付けする(twitter:site、twitter:creator)ことです。Xでの最大限のコントロールのために両方のセットを含めます;最小限の努力のために、きれいなOGタグを出荷し、デフォルトのカードタイプを受け入れます。
私のデータはどこかにアップロードされますか?
いいえ。プレビューは、フォームに入力したものに基づいて完全にブラウザでレンダリングされます。サーバーフェッチもなく、実際のURLのスクレイピングもなく、ドラフトタグのロギングもありません。あなたが貼り付ける画像URLは、その実際のソースからプレビューに読み込まれます(画像はそれらをレンダリングするためにブラウザによって取得されるため)、しかしOGタグの値自体はページを離れません。
出荷できるOGタグの最も簡単なセットは何ですか?
4つの必須タグプラスog:description:
<meta property="og:title" content="Your Page Title" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://yoursite.com/page" />
<meta property="og:image" content="https://yoursite.com/og.jpg" />
<meta property="og:description" content="A short summary of the page." />
完全性のためにog:site_name、og:image:width、og:image:height、およびog:image:altを追加します。Xがフル幅のカードを使用するようにしたい場合はtwitter:card = summary_large_imageを追加します。
Slack / Discordはどのようにプレビューを生成しますか?
SlackとDiscordの両方は、URLがメッセージに貼り付けられたときにOGタグを直接読みます。SlackはoEmbed優先チェーンを使用します(oEmbed → OG → メタタグ);Discordは、エンベッドの左端の色付きストライプを制御するtheme-colorメタタグを含むOGといくつかの専有タグを読みます。両方ともFacebookと比較して速く更新され、通常はタグの更新後の同じURLの次のペーストで更新されます。