最近SEOが複雑化してきていますよね。AMP対応までSEOのために必須になってしまって、普通のウェブサイトを作るだけでも一苦労です。
この記事ではRailsで構築したウェブサイトをSEOをする上で使うと便利なgemを紹介します。
metaタグの出力には meta-tags
railsでSEOを行う上で鉄板のgemです。headタグ内のmetaタグ出力を大幅に簡略化してくれます。
ソーシャル流入対策で必要な ogp / twitterカードもこのgemで対応します。
サイトマップ生成には sitemap_generator
sitemap.xmlの生成を手助けしてくれるgemです。cron等のスケジューラーで週に1回更新すると良いでしょう。
今の時代にsitemap.xmlが必要か?という問いに対しては「規模が大きくなれば必要」が回答です。sitemap.xmlで網羅されたページに対して、どのページがクロールされた結果indexされているか(indexされていないか)の情報は重要な意味を持ちます。
パンくずナビゲーションには gretel
ビューの中でパンクズを生成するのが楽なgemです。コントローラーでパンクズを作りたい方には向かないです。
これも今の時代に必要か?という問いに対しては「SEOのランキング要素としてはそれほど重要ではないが、あると離脱率が下がる」が回答です、役に立つか微妙なラインです。PCブラウザの利用者にはパンクズ形式のナビゲーションに慣れている方も多いです。
もしパンクズを導入してランキングが上がったのであれば、それはGoogleのスパイダーがクロールし辛いサイトである、すなわち導線設計に失敗している証拠でしょう。
分かりやすいURL設計には friendly_id
リソース名/:id
形式のURLからモデルの属性を使ったユーザーフレンドリーなURLを設計するためのgemです。
ランキング要素に影響していなさそうな個所のため、導入するかは微妙です。検索結果に表示されるURLを見て押すか押さないか決める人は少数派と思われるので、それほど影響はないでしょう。
URLの正規化には canonical-rails
Canonical URLを生成するのが面倒な時があります。でもこのgemを使えば <%= canonical_tag -%>
だけで済むので楽です。
SEO視点で言えば正規化されたURLは非常に重要です。そもそもURLは単一なリソースを指し示すものなので、正規化されていて当然と考える方も多いでしょう。全くもってその通りで正規化されたURLはGoogleが最近重要しているモバイル・スマホ対応、AMP対応の軸として機能しています。
モバイル対応には browser or device_detector
レスポンシブなページがGoogle推奨ですが、PCブラウザとスマホで表示する画像を切り替えたり、一部メニューを入れ替えたりする事がありますよね。
そんな時に便利なgemがbrowserです。
後はこのgemの活用方法として、どのページにGooglebot(クローラー)が到達したのかを知りたい場合があります。
厳密に判定する方法ではないですがbrowser.bot?
でbot判定とbotの名称でgooglebotであるか判別が出来ます。
類似のgemにデバイス判定に特化したdevice_detector
があります。browser
と比べてこちらの方が実行速度に優れているようです。
ページを更新しているのにgooglebotが来てくれないページ(差分を収集してくれないページ)はSEOに弱いと判断できます。また、googlebotが来てくれたページとその頻度を集計すれば、Googleがどのようにウェブサイトを見ているのか、ある程度ですが分かるようになります。
これを本気でやってくれるサービスにBotifyがあります。
検索キーワードの取得には google-api-ruby-client
Google analyticsでは検索エンジン経由で流入したユーザーがどのキーワードで検索したのかを取得できません。
google-api-ruby-client経由でSearch Console API を使うと検索キーワードの情報をキーワード単位・ページ単位で取得できます。ものすごく役に立ちます。
まとめ
- Googleが提唱するユーザーフレンドリーな設計に沿ったウェブサイトを企画して
- Googleが定めた仕様に沿ってウェブサイトを実装して
- Googleがどのようにウェブサイトをインデックスしているのか状況確認して
- Googleが広告込みで提供している検索結果に表示し易いコンテンツを提供する。
こんなGoogleドリブンなウェブサイトがSEOに強いです。
検索エンジンってそういうものだったっけ?と本末転倒な状況を感じつつありますが、RailsでSEOを重視したウェブサイトを実装している方のお役に立てれば幸いです。