Dragon Arrow written by Tatsuya Nakaji, all rights reserved animated-dragon-image-0164

Rails: SEO ページタイトルをページごとに設定

updated on 2019-08-04

イメージ

Rails: ページタイトルをページごとに設定


目次

1.ページタイトルとは

2.ページタイトルを設定する場合の注意点

3.Railsでページごとに実装




1. ページタイトル


ページタイトルは、ここではウェブページのHTMLの中でタイトルタグ(<title>タグ)に記述されている文字列を指します。

検索結果(SERPs)に表示されるサイトのリンクには、このページタイトルが使われます。

タイトルタグは、サイトの訪問者や検索エンジンに対してページの内容・トピックを表す、とても重要なタグです。

また、SEO内部対策のチェックポイントとしても、タイトルは一番にチェックすべき部分です。



2. ページタイトルを設定する場合の注意点


  • キーワードの詰め込みすぎに注意(テーマがばらけて何のページか判定されない)

  • 対策キーワードは1つが基本

  • サイト内でできるだけ固有のタイトルにする(検索エンジンが重複した記事を区別できない)

  • 複合ワードに対応させる(キーワードに基づく複合ワードでアクセスされやすくする)


3. Rails でページごとに設定する


Railsでは、特に何もしていなければ、全ページでアプリ名がタイトルになっている。

その理由は、app/views/layouts/application.html.erb の html が全ページで適用されるからである。

$ rails new MyApp

でアプリを作成したなら、titileは自動で

<title>MyApp</title>

になっている。


3-1. application.html.erb ファイルから、タイトルをパラメータで受け取るようにする

(編集前)

<head>
<title>MyApp</title>
...
</head>


(編集後)

<head>
<title><%= content_for?(:html_title) ? yield(:html_title) : "MyApp" %></title>
...
</head>


3-2. タイトルを設定したいビューファイルの冒頭に以下を追記

<% content_for(:html_title) { 'Title' } %>


以上で、ビューファイルからタイトルが取得され、content_for が設定されてないときは"MyApp"がタイトルになります。


***豆知識***

Postテーブルのnameカラムをタイトル設定したいときは

<% content_for(:html_title) { Post.title } %>

とすると、投稿記事と同じタイトルが設定できます。


That's all for now!!