WebサイトをSNSで魅力的にシェアするために欠かせないのが「OGPタグ」の適切な設定です。しかし、OGPタグには多くの種類があり、どのタグをどのように設定すればよいのか戸惑う方も多いのではないでしょうか。特に、「必須のOGPタグ一覧」や「og:typeの使い分け」「SNSごとの表示仕様」など、知っておきたい基礎から応用まで押さえておく必要があります。
この記事では、初心者の方でもわかりやすいように以下の内容を丁寧に解説します。正しいOGPタグの書き方やHTMLのheadタグへの記述方法のほか、FacebookやTwitter、LINEなどの主要SNSに最適化された設定例も紹介します。さらに、SEOへの影響や設定後のトラブルを避けるためのチェックリスト、WordPressを使った手軽なOGP設定方法も網羅しています。
これらを理解すれば、SNSでのシェア時に魅力的な表示を実現し、Webサイトのクリック率や認知度アップに繋げられます。ぜひ最後までご覧ください。
必須のOGPタグ一覧と基本の書き方

必須のOGPタグ一覧とそれぞれの役割
OGP(Open Graph Protocol)を正しく機能させるために設定すべき基本タグは以下の5つです。これらを適切に設定することで、Facebook、Twitter、LINEなどの主要SNSでページ情報が正確に表示されます。
| プロパティ名 | 役割 | 設定内容 |
|---|---|---|
og:title | ページタイトル | SNSでシェアされた際に表示されるタイトル。通常は<title>タグと同じ内容を設定 |
og:description | ページ説明文 | シェア時に表示される説明テキスト。120文字程度が推奨。必須ではないが、SNS表示上必ず設定すべき |
og:image | サムネイル画像URL | シェア時に表示される画像の絶対URL。推奨サイズは1200×630px |
og:type | ページタイプ | website(トップページ)またはarticle(記事ページ)を指定 |
og:url | 正規URL | ページの正規URL(パーマリンク)。相対パスではなく絶対URLで記述必須 |
og:locale | 言語・地域設定 | 日本語の場合はja_JPを指定。多言語サイトでは必須 |
重要なポイント
og:urlは必ず正規URL(パーマリンク)を設定してください。パラメータ付きURLや相対パスではSNS側でページが正しく認識されません。og:descriptionは仕様上任意ですが、実務上は必須です。設定しない場合、SNSが本文から自動抽出した不適切なテキストが表示される可能性があります。
OGPタグの正しい書き方とHTMLのhead内での記述位置
OGPタグは<meta>タグのproperty属性を使用して記述します。name属性ではなくproperty属性を使うことが正式な仕様です。
基本の記述形式
<meta property="og:title" content="ページタイトル" />
<meta property="og:description" content="ページの説明文" />
<meta property="og:image" content="https://example.com/image.jpg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://example.com/" />記述位置の推奨
OGPタグは<head>セクション内のできるだけ上部に配置することが推奨されます。具体的には、以下の順序が理想的です。
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- OGPタグはこの位置に記述 -->
<meta property="og:title" content="..." />
<meta property="og:description" content="..." />
<!-- 以下OGPタグ -->
<title>ページタイトル</title>
<meta name="description" content="..." />
<!-- その他のmetaタグやCSS読み込み -->
</head>技術的理由: SNSのクローラーは<head>内を上から順に解析します。OGPタグが後方にあると、解析がタイムアウトして正しく取得されない可能性があります。特にJavaScriptやCSSの読み込みより前に配置することで、確実な情報取得が保証されます。
SNS横断で使える!OGPタグ設定の基本テンプレート
以下は、Facebook、Twitter、LINEなど主要SNSすべてで正しく表示されるOGP設定の汎用テンプレートです。このコードをコピーして、content属性の値を自サイトの情報に書き換えてください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- 基本OGPタグ -->
<meta property="og:title" content="あなたのページタイトル" />
<meta property="og:description" content="ページの説明文を120文字程度で記述してください" />
<meta property="og:image" content="https://example.com/ogp-image.jpg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://example.com/" />
<meta property="og:site_name" content="サイト名" />
<meta property="og:locale" content="ja_JP" />
<meta property="og:image:alt" content="記事のメインビジュアル画像の説明" />
<!-- Twitter Card設定 -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@your_twitter_account" />
<meta name="twitter:title" content="あなたのページタイトル" />
<meta name="twitter:description" content="ページの説明文を120文字程度で記述してください" />
<meta name="twitter:image" content="https://example.com/ogp-image.jpg" />
<meta name="twitter:image:alt" content="記事のメインビジュアル画像の説明" />
<title>あなたのページタイトル</title>
<meta name="description" content="ページの説明文を120文字程度で記述してください" />
</head>
<body>
<!-- コンテンツ -->
</body>
</html>テンプレート使用時の注意点
- 画像URL(
og:image)は必ず絶対URLで記述してください(https://から始まるフルパス) og:urlはパラメータを含まない正規URLを設定してください- Twitter Cardは
summary_large_imageを指定することで、大きな画像付きカードとして表示されます twitter:siteにはTwitterアカウント(@付き)を設定します。アカウントがない場合は省略可能です
全OGPタグの種類と役割、正しい使い方
全OGPプロパティ一覧と記述例
基本タグ以外にも、Open Graph Protocolは多様なプロパティを定義しています。以下は実務で使用頻度の高い主要なOGPタグの完全一覧です。
| プロパティ名 | 用途 | 記述例 |
|---|---|---|
og:site_name | サイト全体の名称 | <meta property="og:site_name" content="サイト名" /> |
og:locale | 言語・地域設定 | <meta property="og:locale" content="ja_JP" /> |
og:locale:alternate | 代替言語設定 | <meta property="og:locale:alternate" content="en_US" /> |
fb:app_id | Facebook App ID | <meta property="fb:app_id" content="1234567890" /> |
og:video | 動画コンテンツのURL | <meta property="og:video" content="https://example.com/video.mp4" /> |
og:video:secure_url | HTTPS動画URL | <meta property="og:video:secure_url" content="https://example.com/video.mp4" /> |
og:video:type | 動画のMIMEタイプ | <meta property="og:video:type" content="video/mp4" /> |
og:video:width | 動画の幅(ピクセル) | <meta property="og:video:width" content="1280" /> |
og:video:height | 動画の高さ(ピクセル) | <meta property="og:video:height" content="720" /> |
og:audio | 音声コンテンツのURL | <meta property="og:audio" content="https://example.com/audio.mp3" /> |
og:audio:secure_url | HTTPS音声URL | <meta property="og:audio:secure_url" content="https://example.com/audio.mp3" /> |
og:audio:type | 音声のMIMEタイプ | <meta property="og:audio:type" content="audio/mpeg" /> |
og:image:secure_url | HTTPS画像URL | <meta property="og:image:secure_url" content="https://example.com/image.jpg" /> |
og:image:type | 画像のMIMEタイプ | <meta property="og:image:type" content="image/jpeg" /> |
og:image:width | 画像の幅(ピクセル) | <meta property="og:image:width" content="1200" /> |
og:image:height | 画像の高さ(ピクセル) | <meta property="og:image:height" content="630" /> |
og:image:alt | 画像の代替テキスト | <meta property="og:image:alt" content="画像の説明" /> |
実装例:動画コンテンツを含むページ
<meta property="og:type" content="video.movie" />
<meta property="og:title" content="動画タイトル" />
<meta property="og:description" content="動画の説明文" />
<meta property="og:url" content="https://example.com/video-page" />
<meta property="og:image" content="https://example.com/video-thumbnail.jpg" />
<meta property="og:video" content="https://example.com/video.mp4" />
<meta property="og:video:secure_url" content="https://example.com/video.mp4" />
<meta property="og:video:type" content="video/mp4" />
<meta property="og:video:width" content="1280" />
<meta property="og:video:height" content="720" />実装例:画像の詳細情報を含む設定
<meta property="og:image" content="https://example.com/ogp-image.jpg" />
<meta property="og:image:secure_url" content="https://example.com/ogp-image.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="記事のメインビジュアル画像" />og:type="article"使用時に必須の追加タグ
og:typeをarticleに設定した場合、記事の詳細情報を提供する追加タグの設定が推奨されます。これらのタグはFacebookなどのSNSが記事コンテンツを正しく理解し、適切に表示するために使用されます。
| プロパティ名 | 役割 | 記述形式 |
|---|---|---|
article:published_time | 記事公開日時 | ISO 8601形式(YYYY-MM-DDTHH:MM:SSZ) |
article:modified_time | 記事更新日時 | ISO 8601形式(YYYY-MM-DDTHH:MM:SSZ) |
article:expiration_time | 記事有効期限 | ISO 8601形式(YYYY-MM-DDTHH:MM:SSZ) |
article:author | 記事著者のプロフィールURL | Facebookプロフィールまたは外部URL |
article:section | 記事カテゴリ | カテゴリ名を文字列で指定 |
article:tag | 記事タグ | タグを文字列で指定(複数設定可) |
ISO 8601形式での正しい記述例
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2025-11-14T09:00:00+09:00" />
<meta property="article:modified_time" content="2025-11-14T15:30:00+09:00" />
<meta property="article:author" content="<https://www.facebook.com/authorname>" />
<meta property="article:section" content="テクノロジー" />
<meta property="article:tag" content="OGP" />
<meta property="article:tag" content="SEO" />
<meta property="article:tag" content="Web制作" />ISO 8601形式とは
日付や時刻を「世界共通のわかりやすい順序」で表す国際標準規格です。主にコンピューター処理やデータ交換でよく使われます。
ISO 8601形式の書き方
- 基本形式:
YYYY-MM-DDTHH:MM:SS+09:00 - UTC基準:
YYYY-MM-DDTHH:MM:SSZ(Zは協定世界時を示す) - 日本時間の場合: タイムゾーン
+09:00を末尾に追加
推奨理由: これらの追加タグを設定することで、SNS側が記事の鮮度や関連性を判断できるようになり、ニュースフィードでの表示優先度が向上する可能性があります。また、Facebookインサイトでより詳細な分析データが取得可能になります。
記事ページの完全な実装例
<meta property="og:type" content="article" />
<meta property="og:title" content="OGPタグ完全ガイド" />
<meta property="og:description" content="OGPタグの設定方法を網羅的に解説" />
<meta property="og:url" content="<https://example.com/article/ogp-guide>" />
<meta property="og:image" content="<https://example.com/images/ogp-guide.jpg>" />
<meta property="og:site_name" content="Web制作ブログ" />
<meta property="article:published_time" content="2025-11-14T09:00:00+09:00" />
<meta property="article:modified_time" content="2025-11-14T15:30:00+09:00" />
<meta property="article:author" content="<https://www.facebook.com/webauthor>" />
<meta property="article:section" content="Web制作" />
<meta property="article:tag" content="OGP" />
<meta property="article:tag" content="HTML" />
<meta property="article:tag" content="SNS" />複数ページのOGPを自動生成する際のタイプ設定のベストプラクティス
og:typeの設定は、ページの性質によって明確に使い分ける必要があります。間違ったタイプを設定すると、SNS側での表示が最適化されず、ユーザーエンゲージメントが低下する可能性があります。
ページタイプごとの使い分け指針
| ページ種類 | 推奨されるog:type | 理由 |
|---|---|---|
| トップページ | website | サイト全体を代表するページとして認識される |
| 会社概要・サービス紹介 | website | 静的な情報ページとして適切 |
| カテゴリ一覧 | website | コンテンツの集合ページとして機能 |
| ブログ記事 | article | 時系列コンテンツとして最適化 |
| ニュース記事 | article | ニュースフィード表示が最適化される |
| 製品ページ | product | ECサイトの商品詳細ページ用(Facebook Shop連携時) |
| 動画ページ | video.movieまたはvideo.other | 動画コンテンツとして認識 |
| 音楽ページ | music.song | 音楽コンテンツとして認識 |
| プロフィールページ | profile | 人物情報として最適化 |
タイプ設定を間違えた場合のSNS表示挙動
ケース1: ブログ記事にwebsiteを設定した場合
- 公開日時が表示されない
- ニュースフィードでの優先度が低下
- 「古い記事」として扱われる可能性
ケース2: トップページにarticleを設定した場合
- 不要な「公開日時」が表示される
- サイト全体の代表ページとして認識されない
- Facebook Insightsのデータが不正確になる
WordPressなど動的サイトでの実装パターン
<?php
// 条件分岐によるog:type自動設定例(WordPress)
if ( is_front_page() || is_home() ) {
$og_type = 'website';
} elseif ( is_singular('post') || is_singular('news') ) {
$og_type = 'article';
} elseif ( is_singular('product') ) {
$og_type = 'product';
} else {
$og_type = 'website';
}
?>
<meta property="og:type" content="<?php echo esc_attr($og_type); ?>" />推奨設定フロー
- サイト構造を明確にする – どのページが「記事」で、どのページが「静的ページ」か整理
- デフォルトは
website– 判断に迷う場合はwebsiteを設定 - 時系列コンテンツは
article– ブログ、ニュース、更新情報は必ずarticle - ECサイトは
product– 商品詳細ページにはFacebook Shop連携用にproductを推奨
この使い分けを徹底することで、各SNSでの表示が最適化され、シェア時のクリック率(CTR)向上が期待できます。
SNSごとの表示仕様と最適化テクニック
Twitter Card(twitter:card、twitter:siteなど)の完全対応ガイド
TwitterはOGPタグを基本的にサポートしていますが、独自の「Twitter Card」タグを設定することで、より最適化された表示が可能になります。Twitter Card専用タグを設定しない場合でも、OGPタグから情報を自動取得しますが、明示的な設定が推奨されます。
Twitter Cardの4種類と推奨用途
| カードタイプ | 表示形式 | 推奨画像サイズ | 用途 |
|---|---|---|---|
summary | 小さな正方形画像 | 120×120px(最小)144×144px(推奨) | シンプルな情報表示、プロフィールリンク |
summary_large_image | 大きな横長画像 | 1200×630px(推奨) 最小300×157px 最大4096×4096px | ブログ記事、ニュース記事、視覚的訴求が必要なコンテンツ |
app | アプリ情報表示 | 対応プラットフォームによる | モバイルアプリのダウンロード促進 |
player | 動画/音声プレーヤー | 動画サイズに依存 | 動画・音声コンテンツの埋め込み再生 |
実務での推奨: ほとんどのWebサイトではsummary_large_imageを使用してください。視覚的なインパクトが大きく、クリック率が最も高い傾向にあります。
基本的なTwitter Card設定コード
<!-- Twitter Card: summary_large_image(最も一般的) -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@your_account" />
<meta name="twitter:creator" content="@author_account" />
<meta name="twitter:title" content="ページタイトル" />
<meta name="twitter:description" content="ページの説明文120文字程度" />
<meta name="twitter:image" content="<https://example.com/twitter-image.jpg>" />Twitter Card: summaryの設定例
<!-- Twitter Card: summary(小さな正方形画像) -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@your_account" />
<meta name="twitter:title" content="ページタイトル" />
<meta name="twitter:description" content="ページの説明文" />
<meta name="twitter:image" content="<https://example.com/square-image.jpg>" />Twitter Cardタグの詳細
| タグ名 | 必須/任意 | 説明 |
|---|---|---|
twitter:card | 必須 | カードタイプを指定(summary、summary_large_imageなど) |
twitter:site | 推奨 | サイトのTwitterアカウント(@付き)。設定するとアカウントへのリンクが表示される |
twitter:creator | 任意 | コンテンツ作成者のTwitterアカウント。記事の著者が異なる場合に使用 |
twitter:title | 任意 | タイトル。未設定時はog:titleを使用 |
twitter:description | 任意 | 説明文。未設定時はog:descriptionを使用 |
twitter:image | 任意 | 画像URL。未設定時はog:imageを使用 |
twitter:image:alt | 推奨 | 画像の代替テキスト。アクセシビリティ向上のため設定推奨 |
Twitter Card Validatorでの確認方法
Twitter Cardが正しく設定されているかを確認するには、公式の検証ツールを使用します。
Twitter Card Validator URL:
https://cards-dev.twitter.com/validator
使用手順:
- 上記URLにアクセス
- 確認したいページのURLを入力
- 「Preview card」ボタンをクリック
- カードのプレビューが表示され、エラーがあれば警告が表示される
キャッシュをクリアする方法
Twitter Cardの情報は一度取得されるとキャッシュされます。OGP情報を更新した後に反映させるには、以下の手順でキャッシュをクリアします。
キャッシュクリア手順:
- Twitter Card Validatorに該当URLを入力
- 自動的に最新情報を再取得してキャッシュが更新される
- プレビューで更新内容を確認
注意: Twitter Card Validatorでプレビューを実行するだけでキャッシュがクリアされます。特別な「キャッシュクリア」ボタンは存在しません。
Facebook特有の要素(fb:app_id、シェアデバッガーでの確認方法)
Facebookでは、基本的なOGPタグに加えて、Facebook独自のタグを設定することで、より詳細な分析やインサイトが利用可能になります。
fb:app_idの役割と設定
fb:app_idは、Facebook App IDを指定するタグです。このタグを設定することで、Facebook Insightsでページのシェア状況やエンゲージメント数を詳細に分析できます。
<meta property="fb:app_id" content="1234567890123456" />重要: fb:app_idは設定がなくてもOGP自体は正常に機能します。このタグはあくまで分析用であり、シェア時の表示には影響しません。
Facebook App IDの取得方法:
- Facebook for Developers(https://developers.facebook.com/)にアクセス
- 「マイアプリ」から新しいアプリを作成
- アプリダッシュボードに表示される「アプリID」をコピー
fb:app_idのcontent属性に設定
その他のFacebook独自タグ
<!-- Facebook管理者IDの指定(個人アカウント) -->
<meta property="fb:admins" content="1234567890" />
<!-- 複数の管理者を指定する場合 -->
<meta property="fb:admins" content="1234567890,0987654321" />fb:adminsとは: Facebook個人アカウントのユーザーIDを指定することで、fb:app_idと同様にInsightsへのアクセス権限が付与されます。小規模サイトではfb:app_idよりも設定が簡単です。
Facebookシェアデバッガー(Sharing Debugger)の使い方
Facebookが正しくOGP情報を取得できているかを確認するには、公式の「シェアデバッガー」を使用します。
Sharing Debugger URL:
https://developers.facebook.com/tools/debug/
使用手順:
- 上記URLにアクセス(Facebookアカウントでのログインが必要)
- 確認したいページのURLを入力
- 「デバッグ」ボタンをクリック
- OGPタグの取得状況とプレビューが表示される
エラー表示が出た場合のチェックポイント
シェアデバッガーでエラーや警告が表示された場合、以下の項目を確認してください。
| エラー内容 | 原因 | 解決方法 |
|---|---|---|
| 「画像を取得できません」 | 画像URLが相対パスまたはアクセス不可 | 絶対URL(https://から始まる完全なURL)に修正 |
| 「推奨サイズではありません」 | 画像サイズが小さすぎる | 1200×630px以上の画像を使用 |
| 「og:urlが見つかりません」 | og:urlタグが未設定 | 正規URLをog:urlに設定 |
| 「プロパティが重複しています」 | 同じOGPタグが複数存在 | 重複タグを削除し、1つのみ残す |
| 「robots.txtでブロックされています」 | クローラーがアクセス不可 | robots.txtでFacebookbotを許可 |
キャッシュをクリアして最新情報を取得する方法
Facebookは一度取得したOGP情報を長期間キャッシュします。OGP情報を更新した後、すぐに反映させるには以下の手順を実行してください。
キャッシュクリア手順:
- Sharing DebuggerにURLを入力
- 「もう一度スクレイピング」ボタンをクリック
- Facebookが強制的に最新情報を再取得
- プレビューで更新内容を確認
注意: 「もう一度スクレイピング」は短時間に何度も実行できません。レート制限があるため、エラーが解決してから実行してください。
LINEで正しく表示させるための注意点とOGP仕様のポイント
LINEは独自のOGPタグを持たず、基本的にFacebookのOGP仕様に準拠しています。そのため、前述の基本OGPタグを正しく設定していれば、LINEでも問題なく表示されます。
LINEでのOGP表示の基本仕様
LINEでURLをシェアした際、以下の情報が自動取得されて表示されます。
- サムネイル画像:
og:imageで指定した画像 - タイトル:
og:titleで指定したテキスト - 説明文:
og:descriptionで指定したテキスト
<!-- LINE表示に必要な基本OGP設定 -->
<meta property="og:title" content="ページタイトル" />
<meta property="og:description" content="ページの説明文" />
<meta property="og:image" content="<https://example.com/line-image.jpg>" />
<meta property="og:url" content="<https://example.com/page>" />
<meta property="og:type" content="website" />LINEに最適な画像サイズ
LINEはFacebookと同じ1200×630pxの画像を推奨していますが、モバイル表示が中心のため、以下の点に注意が必要です。
推奨画像サイズ:
- 最適サイズ: 1200×630px(Facebookと共通)
- 最小サイズ: 200×200px(これ以下は表示されない可能性)
- アスペクト比: 1.91:1(横長)または1:1(正方形)
モバイル最適化のポイント:
- 文字を含む場合は、小さな画面でも読める大きさのフォントを使用
- 重要な要素は画像の中央付近に配置(LINEのトリミングに対応)
- 背景とのコントラストを明確にする
LINE特有の表示挙動と注意点
LINEは他のSNSと異なる表示特性があります。以下の点に注意してください。
1. 画像のトリミング
LINEはサムネイル表示時に画像を自動でトリミングする場合があります。重要な情報は画像の端に配置しないようにしてください。
2. 説明文の文字数制限
LINEでは説明文が約80文字程度で省略されます。重要な情報は前半に記述してください。
3. キャッシュの持続時間
LINEは一度取得したOGP情報を長期間キャッシュします。キャッシュをクリアする公式ツールは存在しないため、URLにパラメータを付与する(例: ?v=2)ことで強制的に再取得させることができます。
LINE公式アカウントからのメッセージ配信時の注意点
LINE公式アカウントの「メッセージ配信」機能でURLを含める場合、以下の特殊な仕様があります。
配信時のOGP表示:
- リッチメッセージ内にURLを含めた場合、OGP情報は自動取得されない
- カードタイプメッセージを使用する場合、管理画面で画像とテキストを個別設定
- 通常のテキストメッセージ内のURLは、タップ後のプレビューでOGPが表示される
LINEでの表示確認方法
LINEには公式のOGP検証ツールがありません。実際の表示を確認するには、以下の方法を使用してください。
確認手順:
- 自分宛てにLINEでURLを送信
- トーク画面で表示プレビューを確認
- 画像、タイトル、説明文が正しく表示されているか検証
テスト用アカウント活用: 社内やチーム内でテスト用LINEグループを作成し、本番公開前に必ず表示確認を行うことを推奨します。
LINE表示の完全な実装例
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- LINE表示に最適化されたOGP設定 -->
<meta property="og:title" content="【最新版】OGPタグ完全ガイド" />
<meta property="og:description" content="LINEでも美しく表示されるOGP設定の方法を徹底解説。モバイル最適化のポイントも網羅。" />
<meta property="og:image" content="<https://example.com/images/line-optimized.jpg>" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:url" content="<https://example.com/ogp-guide>" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="Web制作の教科書" />
<title>【最新版】OGPタグ完全ガイド</title>
</head>
<body>
<!-- コンテンツ -->
</body>
</html>この設定により、LINE、Facebook、Twitterすべてで最適な表示が実現できます。
OGPとSEO・運用のポイント
OGPタグのSEO効果と検索結果でのメリットの正しい理解
OGPタグはGoogleなどの検索エンジンの順位決定要因には含まれません。これは明確に断言できる事実です。OGPタグを設定しても、検索結果での表示順位が直接的に上昇することはありません。
OGPタグとSEOの関係性
| 項目 | 影響の有無 | 詳細 |
|---|---|---|
| 検索順位への直接的影響 | なし | Googleはランキング要因としてOGPタグを使用していない |
| 検索結果での表示 | なし | 検索結果のスニペットにはOGP情報は使われない |
| クリック率(CTR)への影響 | あり(間接的) | SNSでの魅力的な表示がトラフィック増加につながる |
| 被リンク獲得 | あり(間接的) | シェアされやすくなることで自然な被リンクが増える可能性 |
| ブランド認知 | あり | SNS上での一貫した表示がブランド価値を向上させる |
間接的なSEOメリット
OGPタグは以下のような間接的なSEO効果をもたらします。
1. SNS経由のトラフィック増加
- 魅力的なOGP画像とタイトルにより、SNSでのクリック率が向上
- サイト訪問者数の増加はGoogleが評価するシグナルの一つ
- ダイレクトトラフィックの増加は、サイトの権威性向上に貢献
2. エンゲージメント指標の改善
- 適切なOGP設定により、訪問者が期待通りのコンテンツにたどり着く
- 直帰率の低下、滞在時間の増加につながる
- これらの行動指標はGoogleの品質評価に影響する可能性
3. 自然な被リンク獲得
- SNSでシェアされやすいコンテンツは、他サイトからの言及も増える
- 結果として自然な被リンクが獲得できる可能性が高まる
4. ブランド検索の増加
- SNSで一貫した表示により、ブランド認知度が向上
- ブランド名での検索が増え、サイト全体の評価が上昇
SEOとOGPの正しい関係図
OGP設定 → SNS表示最適化 → CTR向上
↓
トラフィック増加
↓
エンゲージメント改善
↓
間接的なSEO効果
結論: OGPタグは「SEO対策」ではなく「SNSマーケティング施策」として位置づけるべきです。ただし、適切に設定することで、結果的にサイト全体のパフォーマンスが向上し、間接的なSEO効果が期待できます。
OGPタグをHTML <head>内に記述する際の「優先順位」と注意点
複数のmetaタグが存在する場合、SNS側がどの情報を優先的に取得するかを理解することが重要です。
既存metaタグとOGPタグの関係
| metaタグ | OGPタグ | SNS側の優先順位 |
|---|---|---|
<meta name="description"> | <meta property="og:description"> | OGPタグが優先 |
<title> | <meta property="og:title"> | OGPタグが優先 |
<link rel="canonical"> | <meta property="og:url"> | それぞれ独立(両方設定推奨) |
<meta name="robots"> | なし | robots設定が優先(クローラー制御) |
SNSクローラーの情報取得優先順位
Facebook、Twitter、LINEなどのSNSクローラーは、以下の優先順位で情報を取得します。
タイトルの優先順位:
<meta property="og:title">または<meta name="twitter:title"><title>タグ<h1>タグ
説明文の優先順位:
<meta property="og:description">または<meta name="twitter:description"><meta name="description">- ページ本文の最初のテキスト
画像の優先順位:
<meta property="og:image">または<meta name="twitter:image">- ページ内の最初の
<img>タグ - デフォルト画像なし(SNSによってはロゴを表示)
OGPタグが複数存在する場合の挙動
同じプロパティのOGPタグが複数記述されている場合、SNS側の挙動は以下のようになります。
<!-- 悪い例:同じプロパティが重複 -->
<meta property="og:title" content="タイトル1" />
<meta property="og:title" content="タイトル2" />
<meta property="og:image" content="<https://example.com/image1.jpg>" />
<meta property="og:image" content="<https://example.com/image2.jpg>" />SNS側の処理:
- Facebook: 最初に記述されたタグを優先
- Twitter: 最初に記述されたタグを優先
- LINE: 最初に記述されたタグを優先
例外: 複数画像の設定og:imageのみ、複数設定が仕様上許可されています。Facebookでは複数画像からユーザーが選択できるようになります。
<!-- 正しい例:複数画像の設定 -->
<meta property="og:image" content="<https://example.com/image1.jpg>" />
<meta property="og:image" content="<https://example.com/image2.jpg>" />
<meta property="og:image" content="<https://example.com/image3.jpg>" />canonical URLとog:urlの関係
<link rel="canonical">と<meta property="og:url">は、それぞれ異なる目的を持ちます。
<!-- 両方設定することが推奨 -->
<link rel="canonical" href="https://example.com/page" />
<meta property="og:url" content="https://example.com/page" />| タグ | 目的 | 対象 |
|---|---|---|
<link rel="canonical"> | 検索エンジンに正規URLを伝える | Google、Bingなどの検索エンジン |
<meta property="og:url"> | SNSに正規URLを伝える | Facebook、Twitter、LINE |
重要: 両方のURLは一致させることが推奨されます。異なるURLを設定すると、SNSと検索エンジンで異なるページが正規ページとして認識されてしまいます。
記述順序のベストプラクティス
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- 1. 基本メタ情報 -->
<title>ページタイトル</title>
<meta name="description" content="ページ説明" />
<link rel="canonical" href="<https://example.com/page>" />
<!-- 2. OGPタグ(基本メタ情報の直後) -->
<meta property="og:title" content="ページタイトル" />
<meta property="og:description" content="ページ説明" />
<meta property="og:image" content="<https://example.com/image.jpg>" />
<meta property="og:url" content="<https://example.com/page>" />
<meta property="og:type" content="article" />
<!-- 3. Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="ページタイトル" />
<meta name="twitter:description" content="ページ説明" />
<meta name="twitter:image" content="<https://example.com/image.jpg>" />
<!-- 4. その他のメタタグ、CSS、JSなど -->
<link rel="stylesheet" href="style.css" />
</head>この順序により、SNSクローラーが効率的に情報を取得でき、タイムアウトのリスクが最小化されます。
OGP設定の「反映・キャッシュ問題」解決:デバッガーツールの使い方
SNSは一度取得したOGP情報をキャッシュ(一時保存)する仕組みを持っています。これは、SNS側のサーバー負荷を軽減するための措置ですが、OGP情報を更新してもすぐに反映されない原因となります。
SNSのキャッシュ保持期間
| SNS | キャッシュ保持期間 | 備考 |
|---|---|---|
| 約30日間 | 定期的に自動更新されるが、タイミングは不定 | |
| 約7日間 | 比較的短期間で自動更新 | |
| LINE | 不定(長期間) | 公式の情報なし。1ヶ月以上保持される場合も |
キャッシュが原因で発生する問題
よくある症状:
- OGP画像を変更したのに、古い画像が表示され続ける
- タイトルや説明文を修正したのに、SNSでは古い情報が表示される
- 新規公開ページなのに、「画像が見つかりません」と表示される
各SNSのデバッガーツールでキャッシュをクリアする方法
Facebookのキャッシュクリア
使用ツール: Sharing Debugger(シェアデバッガー)
URL: https://developers.facebook.com/tools/debug/
手順:
- Sharing Debuggerにアクセス(Facebookログインが必要)
- 対象ページのURLを入力フィールドに貼り付け
- 「デバッグ」ボタンをクリック
- 現在のキャッシュ情報が表示される
- 「もう一度スクレイピング」ボタンをクリック
- Facebookが強制的に最新情報を取得
- 更新されたプレビューを確認
注意事項:
- 「もう一度スクレイピング」は短時間に連続実行できない(レート制限あり)
- エラーが表示される場合は、まずHTMLを修正してから再実行
Twitterのキャッシュクリア
使用ツール: Twitter Card Validator
URL: https://cards-dev.twitter.com/validator
手順:
- Twitter Card Validatorにアクセス(Twitterログイン推奨)
- 対象ページのURLを入力
- 「Preview card」ボタンをクリック
- 自動的に最新情報を取得し、キャッシュが更新される
- カードプレビューで更新内容を確認
注意事項:
- Twitterはプレビュー表示時に自動でキャッシュを更新
- 特別な「キャッシュクリア」ボタンは存在しない
- ログインなしでも利用可能だが、ログイン推奨
LINEのキャッシュクリア
使用ツール: なし(公式デバッガーツールは存在しない)
代替手段:
- URLパラメータ追加方式
元のURL: <https://example.com/article>
新しいURL: <https://example.com/article?v=2>
パラメータ(?v=2など)を追加することで、LINEは別のURLとして認識し、新たにOGP情報を取得します。
- リダイレクト方式 サーバー側で301リダイレクトを設定し、新しいURLに転送することでキャッシュをバイパスできます。
- 時間経過による自動更新を待つ LINEのキャッシュは時間経過で自動更新されますが、期間は不定です。
キャッシュ問題を予防する運用テクニック
1. 公開前に必ずデバッガーで確認 ページを公開する前に、各SNSのデバッガーツールで表示確認を行い、キャッシュを事前に作成しておきます。
2. OGP画像のファイル名を変更 画像を更新する際は、ファイル名自体を変更することで、確実に新しい画像が取得されます。
<!-- 変更前 -->
<meta property="og:image" content="https://example.com/ogp.jpg" />
<!-- 変更後(ファイル名を変更) -->
<meta property="og:image" content="https://example.com/ogp-v2.jpg" />3. クエリパラメータを付与 OGP画像のURLにクエリパラメータ(バージョン番号など)を付与することで、強制的に新しい画像として認識させます。
<meta property="og:image" content="https://example.com/ogp.jpg?v=20251114" />4. 画像のキャッシュ制御ヘッダー設定 サーバー側で画像のCache-Controlヘッダーを適切に設定し、キャッシュ期間をコントロールします。
Cache-Control: public, max-age=604800
キャッシュクリアの完全フロー
1. HTMLを修正
↓
2. サーバーにアップロード
↓
3. Facebook Sharing Debuggerで「もう一度スクレイピング」
↓
4. Twitter Card Validatorでプレビュー実行
↓
5. LINE(自分宛てに送信して表示確認)
↓
6. すべてのSNSで正しい表示を確認
この手順を必ず実施することで、OGP情報更新後のトラブルを最小限に抑えられます。
よくある質問(FAQ)
-
OGP画像が表示されない場合のチェックリストを教えてください
-
OGP画像が正しく表示されない問題は、最も頻繁に発生するトラブルの一つです。以下のチェックリストを上から順に確認してください。
1. 画像URLが絶対パスで記述されているか
問題: 相対パスで記述されている
<!-- ❌ 間違い:相対パス --> <meta property="og:image" content="/images/ogp.jpg" /> <meta property="og:image" content="images/ogp.jpg" />解決策: 必ず
https://から始まる絶対URLで記述<!-- ✅ 正しい:絶対パス --> <meta property="og:image" content="https://example.com/images/ogp.jpg" />2. 画像ファイルが実際にアクセス可能か
確認方法:
- ブラウザのアドレスバーに画像URLを直接入力
- 画像が正常に表示されればOK
- 404エラーやアクセス拒否が表示される場合は、ファイルパスやサーバー設定を確認
よくある原因:
- ファイル名のスペルミス(大文字小文字の違いも含む)
- ファイルがサーバーにアップロードされていない
- Basic認証やIP制限で画像へのアクセスがブロックされている
3. 画像サイズが推奨範囲内か
各SNSの推奨画像サイズ:
SNS 最小サイズ 推奨サイズ 最大サイズ Facebook 200×200px 1200×630px 8192×8192px Twitter(summary_large_image) 300×157px 1200×630px 4096×4096px Twitter(summary) 120×120px 144×144px – LINE 200×200px 1200×630px – 注意: 最小サイズ未満の画像は表示されない可能性があります。
4. 画像ファイル形式が対応しているか
対応形式:
- 推奨: JPEG(
.jpg、.jpeg)、PNG(.png) - 一部対応: WebP(
.webp) – Facebookは対応、Twitter/LINEも対応が進んでいるが、確実性を求める場合はJPEG/PNGを推奨 - 非対応: GIF(アニメーション)、SVG、BMP
解決策: JPEGまたはPNG形式の画像を使用してください。
5. 画像ファイルサイズが大きすぎないか
推奨ファイルサイズ: 1MB以下
大きすぎる画像ファイルは、SNSクローラーのタイムアウトにより取得できない場合があります。画像圧縮ツールで最適化してください。
6. robots.txtやmetaタグでクローラーをブロックしていないか
確認項目:
# robots.txtで画像ディレクトリをブロックしていないか User-agent: * Disallow: /images/ # これがあると画像が取得できない<!-- metaタグでクローラーをブロックしていないか --> <meta name="robots" content="noindex, nofollow" />解決策: OGP画像のディレクトリはクローラーがアクセスできるように設定してください。
7. HTTPSで配信されているか
問題: HTTP(非SSL)で画像を配信している
<!-- ❌ 間違い:HTTP --> <meta property="og:image" content="http://example.com/ogp.jpg" />解決策: HTTPSで配信
<!-- ✅ 正しい:HTTPS --> <meta property="og:image" content="https://example.com/ogp.jpg" />FacebookやTwitterは、セキュリティ上の理由からHTTP画像の表示を制限する場合があります。
8. キャッシュが原因で古い情報が表示されている
解決策:
- Facebook: Sharing Debuggerで「もう一度スクレイピング」を実行
- Twitter: Card Validatorでプレビューを実行
- LINE: URLにパラメータ(
?v=2など)を追加
完全なチェックリスト表
チェック項目 確認内容 解決方法 ✓ 絶対パス https://から始まっているか相対パスを絶対パスに修正 ✓ アクセス可能 ブラウザで画像が開けるか ファイルパス、サーバー設定を確認 ✓ 画像サイズ 1200×630px以上か 推奨サイズの画像を用意 ✓ ファイル形式 JPEGまたはPNGか 対応形式に変換 ✓ ファイルサイズ 1MB以下か 画像を圧縮 ✓ クローラー許可 robots.txtでブロックしていないか 画像ディレクトリを許可 ✓ HTTPS配信 HTTPSで配信されているか SSL証明書をインストール ✓ キャッシュクリア デバッガーで最新情報を取得したか 各SNSのデバッガーを実行
-
WordPress(Yoast SEO / All in One SEO)での設定の概要は?
-
WordPressを使用している場合、OGPタグの設定を手動で行う必要はありません。主要なSEOプラグインが自動生成機能を提供しています。
Yoast SEOでのOGP設定
プラグイン情報:
- プラグイン名: Yoast SEO
- 提供元: Yoast
- 無料版でOGP対応: はい
設定手順:
- WordPressダッシュボードから「SEO」→「ソーシャル」をクリック
- 「Facebook」タブでOGP機能を有効化
- デフォルトのOGP画像をアップロード(サイト全体の代替画像)
- 「Twitter」タブでTwitter Card機能を有効化
- Twitterアカウント名(@付き)を入力
投稿ごとの個別設定:
- 投稿編集画面の下部にある「Yoast SEO」メタボックスを開く
- 「ソーシャル」タブをクリック
- FacebookとTwitterそれぞれの以下の項目を設定:
- タイトル: SNS表示用のタイトル(未設定時は投稿タイトルが使用される)
- 説明: SNS表示用の説明文(未設定時は抜粋が使用される)
- 画像: OGP画像をアップロードまたはメディアライブラリから選択
自動生成されるタグ:
<meta property="og:locale" content="ja_JP" /> <meta property="og:type" content="article" /> <meta property="og:title" content="投稿タイトル" /> <meta property="og:description" content="投稿の抜粋" /> <meta property="og:url" content="https://example.com/post-url/" /> <meta property="og:site_name" content="サイト名" /> <meta property="article:published_time" content="2025-11-14T09:00:00+09:00" /> <meta property="og:image" content="https://example.com/image.jpg" /> <meta name="twitter:card" content="summary_large_image" />All in One SEOでのOGP設定
プラグイン情報:
- プラグイン名: All in One SEO Pack(AIOSEO)
- 提供元: All in One SEO Team
- 無料版でOGP対応: はい
設定手順:
- WordPressダッシュボードから「All in One SEO」→「ソーシャルネットワーク」をクリック
- 「Facebook」セクションで「Open Graphマークアップを有効化」にチェック
- デフォルトの投稿画像ソースを選択(アイキャッチ画像、最初の画像など)
- デフォルトのOGP画像をアップロード
- 「Twitter」セクションで「Twitterカードを有効化」にチェック
- デフォルトのTwitterカードタイプを選択(推奨: summary_large_image)
投稿ごとの個別設定:
- 投稿編集画面の「AIOSEO設定」メタボックスを開く
- 「ソーシャル」タブをクリック
- 「Facebook」セクション:
- タイトル: 独自タイトルを入力(任意)
- 説明: 独自説明文を入力(任意)
- 画像: OGP画像を選択
- 「Twitter」セクション:
- カードタイプを選択
- タイトル・説明・画像を個別設定(任意)
自動生成されるタグ:
<meta property="og:type" content="article" /> <meta property="og:title" content="投稿タイトル" /> <meta property="og:description" content="投稿の説明" /> <meta property="og:url" content="https://example.com/post-url/" /> <meta property="og:site_name" content="サイト名" /> <meta property="og:image" content="https://example.com/image.jpg" /> <meta property="article:published_time" content="2025-11-14T09:00:00+09:00" /> <meta property="article:modified_time" content="2025-11-14T15:30:00+09:00" /> <meta name="twitter:card" content="summary_large_image" />プラグイン比較表
機能 Yoast SEO All in One SEO OGP自動生成 ✓ ✓ Twitter Card対応 ✓ ✓ 投稿ごとの個別設定 ✓ ✓ デフォルト画像設定 ✓ ✓ Facebook App ID設定 ✓ ✓ article:タグ自動生成 ✓ ✓ 無料版での機能制限 なし なし(OGP機能は完全無料) プラグインなしで手動設定する場合
テーマのheader.phpに直接記述することも可能です。
<!-- header.php内に記述 --> <head> <?php if ( is_single() ) : ?> <!-- 投稿ページの場合 --> <meta property="og:type" content="article" /> <meta property="og:title" content="<?php the_title(); ?>" /> <meta property="og:description" content="<?php echo get_the_excerpt(); ?>" /> <meta property="og:url" content="<?php the_permalink(); ?>" /> <meta property="og:image" content="<?php echo get_the_post_thumbnail_url(get_the_ID(), 'full'); ?>" /> <?php else : ?> <!-- トップページの場合 --> <meta property="og:type" content="website" /> <meta property="og:title" content="<?php bloginfo('name'); ?>" /> <meta property="og:description" content="<?php bloginfo('description'); ?>" /> <meta property="og:url" content="<?php echo home_url('/'); ?>" /> <meta property="og:image" content="<?php echo get_template_directory_uri(); ?>/images/ogp.jpg" /> <?php endif; ?> <meta property="og:site_name" content="<?php bloginfo('name'); ?>" /> </head>
-
記事公開後にOGPを変更した場合の反映タイミングは?
-
OGP情報を変更しても、SNS側にすぐには反映されません。これは各SNSがキャッシュを保持しているためです。
SNS別の自動反映タイミング
SNS 自動反映までの期間 手動での即時反映方法 Facebook 約30日後 Sharing Debuggerで「もう一度スクレイピング」 Twitter 約7日後 Card Validatorでプレビュー実行 LINE 不定(1ヶ月以上の場合も) URLパラメータ追加( ?v=2など)変更内容別の反映難易度
変更内容 反映の容易さ 推奨対応 タイトル変更 やや容易 デバッガーでキャッシュクリア 説明文変更 やや容易 デバッガーでキャッシュクリア 画像変更(URLそのまま) 困難 画像ファイル名を変更 画像変更(URL変更) 容易 デバッガーでキャッシュクリア 画像変更時の確実な反映方法
方法1: 画像ファイル名を変更(最も確実)
<!-- 変更前 --> <meta property="og:image" content="<https://example.com/ogp.jpg>" /> <!-- 変更後 --> <meta property="og:image" content="<https://example.com/ogp-v2.jpg>" />方法2: クエリパラメータを追加
<!-- 変更前 --> <meta property="og:image" content="<https://example.com/ogp.jpg>" /> <!-- 変更後 --> <meta property="og:image" content="<https://example.com/ogp.jpg?v=20251114>" />既にシェアされた投稿の表示は変更されるか
重要: SNSに既に投稿(シェア)された内容は、OGP情報を変更しても過去の投稿は更新されません。
状況 表示内容 変更前にシェアされた投稿 変更前のOGP情報のまま表示され続ける 変更後に新たにシェアされる投稿 変更後の最新OGP情報が表示される 対応策:
- 重要な情報変更の場合は、改めて新しい投稿としてシェアし直す
- SNS投稿に「情報を更新しました」などの補足コメントを追加
反映確認の完全フロー
1. OGP情報を変更(HTMLまたはCMS) ↓ 2. 変更内容をサーバーにアップロード ↓ 3. Facebook Sharing Debuggerで「もう一度スクレイピング」実行 ↓ 4. Twitter Card Validatorでプレビュー実行 ↓ 5. LINE(自分宛てにテスト送信) ↓ 6. 各SNSで最新情報が表示されることを確認 ↓ 7. 確認後、正式にシェア緊急時の対応
公開直後に重大な誤りを発見した場合:
- すぐにHTML/CMSを修正
- 各SNSのデバッガーで即座にキャッシュクリア
- 既にシェアされた投稿には訂正コメントを追加
- 可能であれば投稿を削除し、正しい情報で再投稿
予防策: 本番公開前に必ずステージング環境でOGP表示を確認し、デバッガーでテストしてください。
まとめ
ここまでOGPタグの設定方法から運用のポイントまで、実務で必要な情報をすべて解説してきました。
OGP設定は一見複雑に見えますが、実際には基本の5タグを正しく設定し、デバッガーで確認するだけで完璧に機能します。特別な知識は必要ありません。この記事で紹介したテンプレートをコピペして、あなたのサイト情報に書き換えれば、今すぐFacebook、Twitter、LINEすべてで最適な表示が実現できます。
OGPタグを正しく設定することで、SNSでシェアされた際の見栄えが劇的に改善され、クリック率が大きく向上します。これは単なる見た目の問題ではなく、サイトへの訪問者数やエンゲージメントに直結する重要な施策です。
設定で迷ったら、この記事のテンプレートに戻ってきてください。コピペと各SNSのデバッガーツールがあれば、誰でも完璧なOGP設定ができます。
あなたのWebサイトが、SNSで美しく表示され、より多くの人に届くことを願っています。最後まで読んでいただき、ありがとうございました。設定が完了したら、ぜひ実際にシェアしてその効果を実感してみてください。

