リンクプレビュー確認ツール
チャットにリンクを貼ると、画像、見出し、一行の説明が付いたカードになります。あるいは寂しい灰色の箱に。このチェックは、カードの元になるタグを読み、画像を測り、6つの場所での見え方を描きます。
リンクを貼ったときに起きること
投稿やチャットにアドレスを貼った瞬間、そのサービスのサーバーがページを要求します。表示はしません。HTMLの最初の部分を読んで、いくつかの <meta> タグを探し、その一つが指す画像をダウンロードして、それらの部品からカードを組み立てます。そしてカードを保存し、そのリンクを見る人は全員、保存された版を目にします。
これらのタグはOpen Graph(OGP)という規約に従っています。2010年にFacebookが導入し、今ではほぼすべてのSNSやメッセージアプリが読んでいます。どれも og: で始まります。Xも同じタグを読み、レイアウトを選ぶための独自タグ twitter:card を加えています。
タグを影響の大きい順に
og:image- 画像です。リンクが目に留まるかどうかを、何よりもこれが決めます。アドレスは
https://で始まる絶対URLでなければなりません。 og:title- カードの見出しです。ないと、サービスは
<title>タグを代わりに使います。こちらは、繰り返したくないサイト名で終わっていることがよくあります。 og:description- 見出しの下に出る1〜2文です。ないとmeta descriptionが使われ、それもなければサービスが勝手に選んだ一節になります。
twitter:cardsummary_large_imageにすると、Xは画像を横幅いっぱいに表示します。ないと、テキストの横に小さな正方形が出るだけです。og:url- いいねやシェアが集計されるアドレスです。ページのcanonical URLと同じにしてください。
og:site_name、og:type、og:locale、og:image:alt- 補助的な情報です。SlackやDiscordで見出しの上に出るラベル、コンテンツの種類、言語、そしてスクリーンリーダーの利用者向けの画像の説明です。
画像の判定基準
当サーバーは og:image(それしかない場合は twitter:image)に書かれたファイルをダウンロードし、次の基準で測ります。
| 測定内容 | 結果 |
|---|---|
og:image がまったくない | 問題。twitter:image だけがある場合は警告になります。Xには画像があり、ほかにはないからです。 |
| ファイルを取得できない、画像ではない、または5 MBを超える | 問題 |
| 600 × 315 pxより小さい | 問題。FacebookとLinkedInはサムネイルに縮小するか、表示しません |
| 1200 × 630 pxより小さい | 警告。表示はされますが、高解像度の画面ではぼやけます |
| 幅÷高さが1.6未満または2.2超 | 警告。カードは約1.91対1なので、端が切れます |
| 1 MBより重い | 警告。待つのをやめる取得ボットがあります |
/img/share.jpg のような相対アドレス | 警告。完全なURLが必要なサービスがいくつかあります |
どこでも通用するレシピがほしいなら、1200 × 630ピクセル、300 KB未満のJPEGかWebPを一枚作り、文字は端から離して置いてください。チェックでは、タイトルや説明文がないこと、60文字を超える <title>、200文字を超える説明文、canonicalリンクと食い違う og:url も指摘します。
結果に描かれる6枚のカードは、あなたのタグから再現したものです。画像はブラウザが当サーバーから縮小版として読み込むので、テスト対象のサイトにあなたの訪問は伝わりません。
タグの追加と古いカードの更新
結果の最後に、見つかった内容をもとに埋めたブロックがあります。<head> の中に入れてください。
<meta property="og:title" content="How we made our builds twice as fast">
<meta property="og:description" content="Three changes to our pipeline, with the numbers before and after.">
<meta property="og:image" content="https://www.example.com/img/build-time-card.jpg">
<meta property="og:url" content="https://www.example.com/blog/build-time/">
<meta name="twitter:card" content="summary_large_image">属性に注意してください。Open Graphのタグは property= を、Xのタグは name= を使います。CMSなら、これを手で書くことはまずありません。WordPressのSEOプラグイン、Shopifyのテーマ、Squarespace、Webflowには、どれもページごとの「SNS用画像」欄とサイト全体の既定値があります。
タグを直しても、すでにあるカードは変わりません。各サービスは保存したコピーを数日から数週間持ち続けます。FacebookのSharing DebuggerやLinkedInのPost Inspectorで再取得を依頼できます。チャットアプリでは、リンクに ?v=2 のような余分なパラメーターを付けると、新しいアドレスとして扱われます。
覚えておきたい制限が2つあります。レイアウトは変わるので、図が示すのはどの部品が出るかであって、正確なピクセルではありません。また、このチェックはスクリプトを実行せずにHTMLを読みます。これはプレビュー取得ボットと同じ動き方です。JavaScriptで挿入されるタグはここに出てきませんし、SNSでも出てきません。
よくある質問
og:imageのサイズはどれくらいがよい?
1200 × 630ピクセル、比率1.91対1で、JPEG、PNG、WebPのいずれかです。できれば300 KB未満、どんな場合でも1 MB未満にしてください。600 × 315より小さいと、FacebookとLinkedInは大きなカードで表示しなくなります。
画像を変えたのに古い画像が表示されるのはなぜ?
サービスは、リンクが最初に共有されたときにカードをキャッシュしています。FacebookのSharing Debuggerにアドレスを通して「Scrape Again」を押すか、LinkedInのPost Inspectorを使ってください。WhatsApp、iMessage、Slackにはそうしたツールがないので、URLを少し変えて新しいカードを作らせます。
Xにはまだtwitter:タグが必要?
一つだけです。Xは twitter: 版がなければ og:title、og:description、og:image を読みます。横長の画像を出すには、twitter:card を値 summary_large_image で追加してください。
リンクを貼ってもプレビューがまったく出ないのはなぜ?
よくあるのは、タグを出すのにJavaScriptが必要なページ、プレビュー用のボットを追い返すサーバーやファイアウォール、ログインの壁、エラーを返す og:image のアドレスです。画像のエラーがあれば、このチェックで表示されます。
OGPタグは検索順位に効きますか?
いいえ。検索エンジンはtitleタグとmeta descriptionからスニペットを作ります。Open Graphのタグが決めるのは共有された場所でのリンクの見た目だけで、それがクリックする人の数に影響します。