【Rails】サイトマップを作ってSEO対策をしましょう!sitemap_generatorが便利です!

Webアプリケーションを開発する上でSEO対策は避けては通れない道だと思います。

そんなSEO対策として真っ先に対応が必要となるのがサイトマップになります。

WordPressではプラグインを使用してサイトマップの作成や送信が可能ですが、Railsアプリケーションでも同じくらい簡単に対応することが可能です。

この記事では、サイトマップの導入/作成およびその送信の定期実行の仕組みについてもご紹介させていただきます。


レバテックフリーランス … 業界最大級の案件数業界トップクラスの高単価報酬を誇る最大手のサービスです。実績豊富なコーディネーターが丁寧な対応をしてくれるため、案件の無理な提案はありません。フリーランスで生きていくためにはまず登録しておきましょう。
MidWorks … フリーランス賠償責任保障生命保険の折半など、フリーランスでありながらも正社員並みの保障を受けられるのが特徴です。また、経験豊富なキャリアコンサルタントによる手厚いサポートも受けられるため、安定したフリーランス生活を送りたい方には特におすすめのサービスです。
ポテパンフリーランス … IT業界・技術に詳しいコンサルタントが担当してくれるため、こちらの要望をきちんと理解した上で案件を紹介してくれます。また、案件情報のみならず、フリーランスのイロハについても教えてくれるため、フリーランスとして初めて活動される方には特におすすめのサービスです。

レバテックキャリア … ITエンジニアが利用したい転職エージェントNo.1にも選ばれており、年収600万円以上のハイクラス求人を5,000件以上も保有しています。エンジニアが転職を考えた時にまず初めに登録しておくべきサービスです。
Tech Stars Agent … Tech Stars Agentでは、担当エージェントが全員エンジニア出身のため、スキルやキャリアを見据えたきめ細かな転職支援が受けられます。運営元の株式会社Branding Engineerは、独立支援サービス「MidWorks」も展開しているため、独立を視野に入れたサポートも受けられます
転職ドラフト … 年収UP率93.8%/平均年収UP額126万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け 転職サービスです。毎月1回開催され、厳選された優良IT/Web系企業約150社からダイレクトスカウトを受け取ることができます。年収アップを目指す方は登録必須です。


そもそも、サイトマップとは?

サイトマップとは、その名の通り、サイト全体のページ構成を地図のように分かりやすく整理しているページのことを指します。

サイトマップによって、ユーザーはもちろん、GoogleやYahoo等の検索エンジンに対してもサイトの内容を分かりやすく伝えることが可能となります。

そんなサイトマップですが、その形式にはhtmlxmlの2種類が存在しています。

htmlファイルの方は主にユーザーを対象として作成するページになっており、人間が目で見てわかるようにサイト内の構造がまとめられています

一方、xmlファイルの方は、検索エンジンに対してサイト構造を伝えるために存在しております。

検索エンジンはサイト内のリンクを辿って各ページを認識していくため、サイト構造を整理して伝えることで、検索エンジンが”気付きやすいページ”にすることが可能となるのです。

今回はSEO対策としてのサイトマップの作成が主な目的であるため、xmlファイルの作成方法をご紹介させて頂きます。

sitemap_generatorを使ってサイトマップを作成しましょう

sitemap_generatorのインストール

それでは早速サイトマップを作成していきましょう!

作成にはsitemap_generatorというgemを使用します。

Gemfileに以下を追記し、”bundle install” を実行しましょう。

gem 'sitemap_generator'

続いて、設定ファイルを作成するため、以下のコマンドを実行してください。

rails sitemap:install

実行後、config/sitemap.rbというファイルが作成され、このファイルに記載に従ってサイトマップが作られていくこととなります。

サイトマップ作成のための設定

作成されたconfig/sitemap.rbファイルの内容は概ね以下のようになっているかと思います。

# Set the host name for URL creation
SitemapGenerator::Sitemap.default_host = "http://www.example.com"

SitemapGenerator::Sitemap.create do
  # Examples:
  #
  # Add '/articles'
  #
  #   add articles_path, :priority => 0.7, :changefreq => 'daily'
  #
  # Add all articles:
  #
  #   Article.find_each do |article|
  #     add article_path(article), :lastmod => article.updated_at
  #   end
end

それぞれ順を追って説明させていただきますね。

SitemapGenerator::Sitemap.default_host

まず1行目のこちらの記載ですが、サイトのURLを記載する箇所になります(本サイトであれば、”https://hataworakuni.net” になります)。

add articles_path, :priority => 0.7, :changefreq => 'daily'

add articles_path, :priority => 0.7, :changefreq => 'daily'

続いて、中段部分に記載されているこちらの記載ですが、”add 〇〇path” とすることで、URLを追加することができます。

“add articles_path” であれば記事一覧ページのURLを追加し、”add article_path(article)” であればそれぞれの記事の個別ページのURLを追加することとなります。

さて、ここでいくつかオプションが登場してきているので、そちらも併せてご紹介させていただきますね。

  • priority
  • こちらは直訳すると”優先度” になりますが、他のURLに比べて当該URLのページをどの程度優先するかと示しており、0(低)〜1.0(高)の間で設定されます。

  • changefreq
  • こちらは”change frequency” の略で、当該URLのページがどの程度の頻度で更新されるかを示しており、’always(常に)’, ‘hourly(1時間毎)’, ‘daily(1時間毎)’, ‘weekly(1週間毎)’, ‘monthly(1ヶ月毎)’, ‘yearly(1年毎)’ or ‘never(更新なし)’ の中から選択して記載します。

  • lastmod
  • こちらは”last modified” の略で、当該URLのページの最終更新日を示します。


以上に挙げたもの以外にもオプションは存在しますので、さらに詳しく知りたい方は以下のGithubを見てみてくださいね。

https://github.com/kjvarga/sitemap_generator#a-simple-example

サイトマップの作成

さて、設定ファイルの記載が完了したところで、実際に作成してみましょう。

作成すると言っても難しいものでも何でもなく、以下のコマンドを実行するだけです。

rail sitemap:create

実行後、以下のようなログが表示されていれば無事作成されております。

In '/Users/user/Project/example/public/':
+ sitemap.xml.gz  1 links /  323 Bytes
Sitemap stats: 1 links / 1 sitemaps / 0m00s

なお、サイトマップを作成するコマンドは以下の通り3種類存在しますので、ケースに応じて使い分けてくださいね。

  • rails sitemap:create
  • 上記の通り、単にサイトマップを作成する場合に使用します。

  • rails sitemap:refresh
  • サイトマップを更新し、かつその更新を検索エンジンに通知したい場合に使用します。

  • rails sitemap:refresh:no_ping
  • サイトマップを更新しますが、その更新を検索エンジンに通知したくない場合に使用します。

また、削除する場合には以下のコマンドを実行してください。

rails sitemap:clean

作成後、自身のサイト(本サイトであれば “https://taroblogs.com/sitemap.xml.gz”)へアクセスし、 “sitemap.xml.gz” がダウンロードできれば任務完了です。

サイトマップを.gitignoreへ追加

なお、作成したサイトマップですが、Gitで管理する必要はないため、.gitignoreファイルに以下を追記しておきましょう。

public/sitemap.xml.gz

サイトマップ作成の定期実行

さて、サイトマップを無事作成できたわけですが、記事などを更新する度に手動で送信するのは面倒ですよね。

そういう時に便利なのが、”whenever” というgemになります。

wheneverのインストール

こちらの導入も非常に簡単です。

まずはGemfileに以下を追記し、”bundle install” を実行しましょう。

gem 'whenever'

続いて、設定ファイルの作成のために以下のコマンドを実行しましょう。

bundle exec wheneverize

これで、config/schedule.rbが生成されると思います。

このconfig/schedule.rbファイルに定期実行したい内容を記載していきます。

今回のサイトマップの更新であれば、以下のような記載が考えられます。

# 毎日 8:00 にサイトマップを更新
every 1.day, at: '8:00 am' do
  rails 'sitemap:refresh'
end

タスクの定期実行

ただ、これだけではまだ定期実行されませんので、以下のコマンドを実行し、定期実行タスクを登録しておきましょう。

bundle exec whenever --update-crontab

実行後、”[write] crontab file updated” というログが表示されていたら無事登録できている証拠になります。

上記も併せて、主なコマンドについては以下の通りになっていますので併せてご確認くださいね。

  • bundle exec whenever –update-crontab
  • タスクを登録する(※既存のタスクは残ります)。

  • bundle exec whenever –write-crontab
  • タスクを登録する(※既存のタスクは無くなります)。

  • bundle exec whenever –clear-crontab
  • 登録されたタスクを削除する。

  • crontab -l
  • タスクの登録状況を確認する。

お仕事の途中ですが、少し一休みして、転職独立について考えてみませんか🙌?

現役エンジニアが選ぶおすすめの転職エージェント11選【成功談・失敗談もあります】

レバテックフリーランスの評判ってどう?【現役エンジニアが徹底解説します】

MidWorks(ミッドワークス)の評判ってどう?【現役エンジニアが徹底解説します】

日々の業務に追われて自分を見失わないよう、
定期的にキャリアを振り返るようにしておきましょう🤲

最後に

さて、ここまでサイトマップの作成/送信に始まり、その定期実行までご紹介してきましたがいかがでしたか?

SEO対策にはサイトマップが必須となってきますので、これを機にご自身のWebアプリにも導入してみてくださいね。

このブログを通じて少しでも「傍(はた)を楽(らく)にする」ことができていれば嬉しく思います。

最後まで読んで頂きありがとうございました。