カテゴリ: Rails 更新日: 2025/12/21

RailsでSEOとメタタグ設定を完全ガイド!title・description・OGPをview_componentで管理する方法

SEO/メタタグ設定:title/description/OGPをview_componentで管理
SEO/メタタグ設定:title/description/OGPをview_componentで管理

先生と生徒の会話形式で理解しよう

生徒

「Railsアプリで検索結果に表示されるタイトルや説明文って、どこで設定すればいいんですか?SEOって大切って聞きました。」

先生

「SEOはとても大切ですね。titleタグやdescriptionタグを適切に設定すると、検索エンジンにページ内容が分かりやすく伝わります。最近はview_componentを使ってメタタグ管理を一元化する方法も人気ですよ。」

生徒

「view_componentってUIの部品を作るイメージでしたが、メタタグにも使えるんですか?」

先生

「はい、タイトルやOGP画像をまとめて管理できるので、ビュー(ERB・Haml・Slim)の整理にも役立ちます。では基本から見てみましょう。」

1. SEOのためのメタタグとは?初心者にも分かる基礎

1. SEOのためのメタタグとは?初心者にも分かる基礎
1. SEOのためのメタタグとは?初心者にも分かる基礎

WebサイトのSEO(検索エンジン最適化)では、ページ情報を伝えるためのメタタグがとても重要です。特に検索結果に表示されるtitledescription、SNSで共有されたときに表示されるOGPタグは欠かせません。

RailsではこれらをHTMLの内に書きますが、ページが増えると毎回設定するのが大変になってしまいます。そこで、view_componentを使ってまとめて管理する仕組みを作ると、とても便利になります。

2. titleタグとdescriptionタグをRailsで設定する

2. titleタグとdescriptionタグをRailsで設定する
2. titleタグとdescriptionタグをRailsで設定する

まずは基本のtitleとdescriptionです。これらは検索エンジンが最初に見る情報であり、どんな内容のページなのかを伝えるための「名刺」のような役割を持っています。


<title>ページのタイトル</title>
<meta name="description" content="ページの説明文">

このように直接書いても良いのですが、多くのページに共通して使うので、繰り返しを書くのは非効率です。そこでview_componentを活用します。

3. OGPタグとは?SNSでの見た目を決める大事な仕組み

3. OGPタグとは?SNSでの見た目を決める大事な仕組み
3. OGPタグとは?SNSでの見た目を決める大事な仕組み

OGP(Open Graph Protocol)はSNSでURLが共有された際の情報を決める仕組みです。設定していないとランダムな画像やテキストが表示されてしまい、見た目が悪くなってしまいます。


<meta property="og:title" content="ページタイトル">
<meta property="og:description" content="説明文">
<meta property="og:image" content="画像URL">

Railsではこの記述もview_componentで共通化できます。特にOGP画像は同じ画像を使う場合が多いため、コンポーネント化するメリットが大きいです。

4. view_componentでメタタグをまとめて管理する

4. view_componentでメタタグをまとめて管理する
4. view_componentでメタタグをまとめて管理する

view_componentは再利用可能なUI部品を作るための仕組みですが、HTMLのhead部分も部品化できます。


# app/components/meta_tags_component.rb
class MetaTagsComponent < ViewComponent::Base
  def initialize(title:, description:, image:)
    @title = title
    @description = description
    @image = image
  end
end

<!-- app/components/meta_tags_component.html.erb -->
<title><%= @title %></title>
<meta name="description" content="<%= @description %>">
<meta property="og:title" content="<%= @title %>">
<meta property="og:description" content="<%= @description %>">
<meta property="og:image" content="<%= @image %>">

このように定義することで、個別ページから呼び出すだけでメタタグが設定できるようになります。

5. ビュー(ERB・Haml・Slim)での呼び出し方法

5. ビュー(ERB・Haml・Slim)での呼び出し方法
5. ビュー(ERB・Haml・Slim)での呼び出し方法

view_componentはどのテンプレートエンジンでも同じ呼び出し方です。ERBなら次のように使います。


<%= render MetaTagsComponent.new(
  title: "記事タイトル",
  description: "説明文が入ります。",
  image: asset_path("ogp.png")
) %>

HamlでもSlimでも構造は同じで、renderメソッドでコンポーネントを呼ぶだけです。これにより、アプリ全体のメタタグ設定が統一されます。

6. レイアウトファイルで共通化する仕組み

6. レイアウトファイルで共通化する仕組み
6. レイアウトファイルで共通化する仕組み

Railsのレイアウト(application.html.erb)は、全ページに共通する構造を管理する場所です。ここにview_componentを組み込むことで、必要なページだけメタタグを上書きできます。


<head>
  <%= render @meta_tags if @meta_tags %>
</head>

コントローラ側で次のように設定すれば、ページごとのメタタグ表示が可能です。


@meta_tags = MetaTagsComponent.new(
  title: "記事タイトル",
  description: "ページの説明文",
  image: asset_path("ogp.png")
)

この仕組みを使うと、SEO対策を全ページへ簡単に適用でき、管理も楽になります。

7. SEOに強くなるためのメタタグ設計のコツ

7. SEOに強くなるためのメタタグ設計のコツ
7. SEOに強くなるためのメタタグ設計のコツ

初心者がSEO対策を行うときは、まずtitle、description、OGP画像の三つを整えることが重要です。ページ内容が明確に伝わるタイトル、ユーザーが興味を持つ説明文、SNSで魅力的に見える画像を設定するだけで、検索結果のクリック率が大きく変わります。

Railsではview_componentを使ってメタタグを共通化することで、設定漏れを防ぎ、アプリ全体の質を高めることができます。

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう