SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール

SEO対策の定番gem(sitemap_generator/meta-tags)をRailsで使おう

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第7回

MetaTagsとは

 続いてMetaTagsを紹介します。MetaTagsは、SEO対策で必須であるtitleタグやmetaタグをページごとに設置するための仕組みを提供します。具体的には、RailsのレイアウトファイルとビューファイルにMetaTagsが提供するヘルパーメソッドを使用することで、SEO上必要なタグを簡単に設置することができます。

MetaTagsの導入

 SitemapGeneratorに引き続き、同一のRailsアプリケーションにMetaTagsを導入します。

インストール

 Gemfileにmeta-tagsを追記します。

[リスト4]Gemfile
…(中略)…
gem 'meta-tags'
…(中略)…

 以下のコマンドを実行しmeta-tagsをインストールします。

bin/bundle

 ▼

…(中略)…
Installing meta-tags 2.10.0
Bundle complete! 20 Gemfile dependencies, 83 gems now installed.
Bundled gems are installed into `./vendor/bundle`

 記事執筆時点では2.10.0がインストールされました。

設定ファイルを生成

 以下のコマンドを実行し、meta-tags用のinitializersファイルを作成します。

bin/rails g meta_tags:install

 ▼

create  config/initializers/meta_tags.rb

設定項目を確認

 生成された設定ファイルは、デフォルト設定がコメントアウトされた状態です。

[リスト5]config/initializers/meta_tags.rb
# Use this setup block to configure all options available in MetaTags.
MetaTags.configure do |config|
  # How many characters should the title meta tag have at most. Default is 70.
  # Set to nil or 0 to remove limits.
  # config.title_limit = 70
…(中略)…

 主な設定項目は以下の通りです。

表:MetaTagsの設定項目
設定項目 意味 デフォルト値
title_limit titleタグの最大文字数 70
truncate_site_title_first trueならサイトタイトルを非表示 false
description_limit meta description(要約タグ)の最大文字数 300
keywords_limit metaキーワードの最大数 255
keywords_separator metaキーワードに設定する単語間の区切り文字 ,
keywords_lowercase metaキーワードに設定する単語を小文字に true
open_meta_tags falseならmetaタグをセルフクロージング形式(<meta .../>)に true

レイアウトファイルの修正

 ここからは実際にMetaTagsのヘルパーメソッドを使用して、metaタグを設定します。

 まず、ページごとにmetaタグをセットできるようにするために、レイアウトファイルを以下の通り修正します。

[リスト6]app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
  <head>
    <%= display_meta_tags site: 'MetaTagsサンプル' %>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>
…(中略)…

 あらかじめ固定でセットされていたtitleタグはページごとにセットするため、削除してdisplay_meta_tagsヘルパーメソッド呼び出しに置き換える点に注意が必要です。

 display_meta_tagsは、MetaTagsが提供するヘルパーメソッドで、引数のハッシュにさまざまな設定を入れることができます。ここではシンプルにサイト名のみを設定しています。

記事一覧のビューファイルを修正

 次に、記事一覧ページ(/articles)に対応するビューファイルを修正し、titleタグとmetaタグを以下のように指定します。

[リスト7]app/views/articles/index.html.erb
<% title '記事一覧' %>
<% description 'このページでは記事を一覧することができます。' %>
<% keywords %w(Ruby Rails gem) %>

<p id="notice"><%= notice %></p>
…(中略)…

 このように、MetaTagsが提供するtitle/description/keywordsヘルパーメソッドの引数に値をセットするだけで、ビューファイルに対応するページにtitleタグ/metaタグが出力されるようになります。

 なお、keywordsの引数は、提示したコードのように配列を指定することもできますが、単に文字列で「keywords 'Ruby, Rails, gem'」のように指定することもできます。

記事一覧ページの確認

 rails sコマンドでpumaサーバーを起動し「http://localhost:3000/artices」にアクセスして、デベロッパーツールでtitleタグ/metaタグがちゃんと出力されていることを確認します。

記事一覧ページの確認
記事一覧ページの確認

まとめ

 ここまで、SEO対策で重宝するgemであるSitemapGeneratorとMetaTagsの基本的な使い方を紹介しました。

 次回は、MetaTagsをActiveRecordと関連付けて使う方法を紹介するとともに、パンくずリストを生成するgretelというgemの使い方も紹介する予定です。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 竹馬 力(チクバ ツトム)

WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11192 2018/11/08 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー