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)
    • Open Graph (:og)
    • Twiter Cards (:twitter)
    • Google Plus (Author Rank)

      • Author links (:author)
      • Publisher links (:publisher)
    • 必要に応じて

      • Pagination links (:prev, :next)
      • Noindex, Nofollow

    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と一緒?)

    Yuichiro MUKAI
    Yuichiro MUKAIGame & Web Programmer

    シブヤで働くゲームプログラマー. C#(For Unity)をメインに, 趣味でPHPなどを書きます.

    Twitter / Facebook