Sets Open Graph meta tags so shared links show the intended title, description, and image on social platforms.
OGP は、SNSでURLを共有したときに表示されるタイトル・説明・画像を <meta> で指定するための仕組みです。
og:*)の「最短セット」を迷わず書けるog:image / og:url を絶対URLで固定して事故を防げるog:type の選び方(website/article など)を判断できるtwitter:card など)とOGPの役割分担を説明できるproperty 属性と <meta> の正誤判定で迷わないOGP は「ページを人に見せる情報」ではなく、「URLを貼ったときにSNSが作るカードの材料」を渡す仕組みです。
OGP は 必ず <head> の中に置きます(本文に書いてもクローラが拾えないことがあります)。
最低限(実務でまず揃える5つ)
og:title / og:description / og:imageog:url / og:typeHTML
<head>
<meta property="og:title" content="記事タイトル">
<meta property="og:description" content="記事の要約(長すぎない)">
<meta property="og:type" content="article">
<meta property="og:url" content="https://example.com/path/">
<meta property="og:image" content="https://example.com/ogp.jpg">
</head>
OGP は <meta> の property="og:*" と content を使い、「このURLは何のページで、カードに何を表示したいか」を機械向けに渡します。
OGP の <meta> は 文書のメタデータなので、<head> に置きます。
name と property の違い<meta name="description"> は「HTMLのメタ名」を name で指定し、OGP は「OG名前空間のプロパティ」を property で指定する、という住み分けです。
og:titleog:descriptionmeta name="description" と同一でなくてよい)。og:imageog:urlcanonical と同じに揃えると混乱が減る)。og:typewebsite、記事なら article がよく使われる)。og:image)で事故りやすいポイントog:image:width / og:image:height を添えて解釈差を減らすog:image:alt を付ける(対応SNSでは代替テキストとして使われる)HTML(画像の補助情報も足す)
<meta property="og:image" content="https://example.com/ogp.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="記事の内容を表すサムネイル">
Twitter(現X)向けには、OGPに加えて twitter:card などのメタを足すことがあります(OGPだけでも表示される場合はあります)。
HTML(Twitterカードの最小例)
<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/ogp.jpg">
<meta> が <head> にあるog:url / og:image が 絶対URL で、実際に取得できるog:image が相対URL/リダイレクト/アクセス制限(403)/サイズが極端、などで取得に失敗している可能性があります。ブラウザで画像URLを直接開いて確認します。og:url と canonical が不一致だったり、末尾スラッシュやクエリの有無が揃っていないと、別URLとしてキャッシュされることがあります。正規URLを統一します。<meta> の情報は画面表示を変えず、機械が読む目的で使う<meta property="og:*" content="..."> の形(name と混同しない)property 属性自体はHTMLのグローバル属性として書けても、意味が出るのはRDFa/OGPなどの文脈<title> と meta name="description" が中心です。<title> と同じにするべき?og:image のように複数候補を並べたいケースだけ用途を決めて追加します。