【実務・中級編】OGPのog:site_nameプロパティ – HTML実践ガイド

OGPの「顔」を整える:`og:site_name`がUXにもたらす意外なほど大きな影響

フロントエンドエンジニアの皆さん、日々の実装お疲れ様です。CSSの細かな調整や、State管理の設計に追われていると、つい疎かになりがちなのが``内のメタデータですよね。「OGPなんてとりあえず`og:title`と`og:image`さえ入っていればいいんでしょ?」なんて思っていませんか?

実は、SNS上であなたのサイトが「信頼できるメディア」として認識されるか、それとも「どこかの誰かが書いた得体の知れないページ」に見えるかは、この`og:site_name`の使い方が分かれ道になります。

今日は、地味ながらも実は戦略的に重要な`og:site_name`について、現場の視点から掘り下げていきましょう。

—

そもそも`og:site_name`は何のためにあるのか

Open Graph Protocol(OGP)は、Facebookが策定したWebページを構造化するための仕様です。その中で`og:site_name`は、非常にシンプルに「そのページが属するサイトの名前」をSNSプラットフォームに伝えるためのものです。

技術的には、SNSのクローラーがページをスクレイピングした際、以下のように解釈されます。

  • `og:title`: 記事のタイトル(個別のコンテンツ名)
  • `og:site_name`: サイトのブランド名(そのページが所属する母体)

SNSのタイムライン上では、多くの場合「記事タイトル – サイト名」のような形式で整形されて表示されます。もし`og:site_name`を設定していないと、プラットフォーム側がドメイン名から無理やり推測しようとしたり、最悪の場合、サイト名が空欄のまま表示されたりすることになります。

ブランディングの観点から言えば、「どこのサイトのコンテンツなのか」を明示しないのは、名刺を出さずに挨拶しているようなものです。

—

実装のベストプラクティス:コピペで使えるコード例

実務で扱う際は、動的なページ(記事詳細など)であっても静的なページであっても、このタグは定数として定義するか、あるいはCMSのサイト設定から呼び出すのが定石です。

以下に、SEOとOGPを考慮したクリーンな実装例を挙げます。



なぜ `og:title` とは別に設定するのか?

時々、`og:title`の中に「記事タイトル | サイト名」と含めてしまうケースを見かけます。しかし、OGPの仕様上、`og:title`にはコンテンツのタイトルのみを記述し、サイト名は`og:site_name`へ分離するのが正解です。

なぜなら、SNS側の表示ロジックは常にアップデートされています。将来的にSNS側のUIが変わり、サイト名を強調するデザインに変更された際、`og:title`に全て詰め込んでいると、タイトルが重複して表示されるなどの「見栄えのバグ」を生む可能性があるからです。

—

現場で遭遇する「落とし穴」を回避する

シニアの視点から、一つだけアドバイスしておきます。それは「言語によるサイト名の揺らぎ」です。

グローバル展開しているサイトや、ブランディングで「英語表記」と「日本語表記」を使い分けているサイトの場合、`og:site_name`をどちらにするか迷う場面があるでしょう。結論としては、「ユーザーがSNSで検索した時に最もヒットしやすい名前」を優先してください。

また、ReactやVueなどのSPA(シングルページアプリケーション)で開発している場合、`react-helmet`や`vue-meta`といったライブラリを使って、ページ遷移のたびに`og:site_name`が意図せず書き換わっていないかを必ず確認してください。たまにコンポーネントの再レンダリングでメタデータが空になる、あるいは不正な値が入るというケースは、ベテランでもやりがちなミスです。

—

最後に:メタデータは「Webの玄関」

`og:site_name`は、たった一行のタグですが、それが積み重なることで「このサイトは情報の出所が明確である」という信頼の証明になります。

コードを書くとき、「これはただのメタデータだ」と切り捨てるのではなく、「SNSという巨大なプラットフォーム上の、うちのサイトの看板」だと思って実装してみてください。そうした細部へのこだわりこそが、あなたの作るプロダクトの品格を決めるのです。

それでは、また次回の記事でお会いしましょう。実装頑張ってください!

コメント

タイトルとURLをコピーしました