Railsでそこそこ真面目にSEO対策する
個人でRailsで開発しているサービスのSEOを少しまじめに調べたので, ブログにもアウトプットしてみた. 基本, 有名そうなGemを拾って対応した.
MetaTags
https://github.com/kpumuk/meta-tags
SEOに重要そうなメタタグの管理を行ってくれるgem. 基本的なメタタグ以外に, OpenGraph, Twitter Cards, などのタグもサポートしてくれている. もちろん独自のメタタグも導入できる.
基本的にREADMEに書かれているメタタグを仕込んでおけば大丈夫そう.
使い方
Bundleでインストールを行う. Gemfileに以下を記述する.
gem 'meta-tags'次に, メタタグを仕込みたいビューファイルに以下を記述する.
<%= display_meta_tags %>display_meta_tagsには引数が渡せて, デフォルトで埋め込むメタタグを設定できる.
ただし, set_meta_tagsで設定するとそのメタタグは上書きされる.
例えば, :siteなどは全ページで共通のものを利用することが多いはずなので,
以下の様に設定しておくと毎回設定しなくて良くて便利.
<%= display_meta_tags({
:site => 'HogePiyoSite',
:reverse => true,
})
%>メタタグを設定するにはset_meta_tagsをコントローラ内またはビューファイルで利用する.
例えばビューファイル内で設定するには以下のようにする.
<% set_meta_tags :title => 'HogePiyoTitle' %>設定しておくと良さそうなメタタグ
この辺は, テストでちゃんと設定されているかチェックしておけば リリース直前で慌てるなんてことがなくなっていいかもしれない.
- 基本的なメタタグ
- title (
:title) - description (
:description) - keywords (
:keywords) - Canonical URL (
:canonical)
- title (
- Open Graph (
:og) - Twiter Cards (
:twitter) - Google Plus (Author Rank)
- Author links (
:author) - Publisher links (
:publisher)
- Author links (
- 必要に応じて
- Pagination links (
:prev,:next) - Noindex, Nofollow
- Pagination links (
SitemapGenerator
https://github.com/kjvarga/sitemap_generator
サイトマップを簡単に作るためのgem. 地味にめんどくさいサイトマップのインデックスの作成や, 各検索エンジンにPing送信, 検索エンジン別にサイトマップを変更したりして便利.
インストール
MetaTagsと同様Bundleでインストールを行う.
gem 'sitemap_generator'次に, config/sitemap.rbを作成する. 以下のコマンドを実行する.
bundle exec rake sitemap:install使い方
config/sitemap.rb以下に追加したいURLをaddメソッドで行う.
SitemapGenerator::Sitemap.create do
Article.all.each do |article|
add article_show_path(article), :priority => 0.7, :changefreq => 'weekly', :astmod => article.updated_at
end
endまた, いろんな設定ができる.
詳細はhttps://github.com/kjvarga/sitemap_generator#sitemap-configurationのSitemap Optionsより確認できる.
# ホストを設定する
SitemapGenerator::Sitemap.default_host = "http://example.com"
# サイトマップを配置するディレクトリを設定する
SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/'
# インデックスサイトマップを作成するかどうか設定する
SitemapGenerator::Sitemap.create_index = :autoサイトマップの生成は, Rakeコマンドより行う.
rake sitemap:clean # サイトマップを削除する
rake sitemap:create # サイトマップを作成する(検索エンジンにpingを送らない)
rake sitemap:refresh # サイトマップを作成し, 検索エンジンにpingを送る
rake sitemap:refresh:no_ping # サイトマップを作成する(検索エンジンにpingを送らない, たぶんsitemap:createと一緒?)