🐶

【Ruby/Rails】SEO対策のためのsitemap導入(SGE小話あり)

2024/08/11に公開

SEO対策…してますか?

エンジニアとしてはwebマーケティングにあまり興味がない…という方もいるかもしれませんが、今は生成AIの導入によってエンジニアリングやwebマーケティングに様々な影響が波及しています。そこで、よくあるsitemapの導入について説明しつつ、少しだけ最近Googleが導入したSGEについても書いていきたいと思います。

1. sitemapとは

サイトマップは、Webサイトの構造を示すXMLファイルのことです。検索エンジンのクローラーがサイト内のページを効率的に発見し、インデックスを作成するために必要となります。つまり、「ウェブサイトの全体像を整理し、検索エンジンにウェブサイトの構造を理解しやすくするため」のものです。文字通り、サイトの地図というわけですね。

1.1 sitemapが必要な理由は?

もし、あなたのwebページがユーザにとって有益なコンテンツであれば、やはり検索上位に表示されたいですよね。
そこで「良いwebページだ」と検索エンジンに思ってもらうために様々なやり方がありますが、sitempがあると以下のようなメリットがあります。

  • ページの発見可能性の向上
  • クロール頻度の最適化
  • 新しいコンテンツの迅速なインデックス化
  • サイト構造の明確化

2. Ruby on Railsでのサイトマップ作成

何はともあれ、sitemap導入!

2.1 sitemap_generator gemの使用

2.1.1 gemのインストール

まず、Gemfileに以下を追加します

gem 'sitemap_generator'

そして、以下のコマンドを実行します

bundle install

2.1.2 初期設定

次に、以下のコマンドで初期設定ファイルを生成します

rails sitemap:install

これにより、config/sitemap.rbファイルが作成されます。

2.1.3 サイトマップの設定

config/sitemap.rbを以下のように編集します

SitemapGenerator::Sitemap.default_host = "https://www.yourwebsite.com"

SitemapGenerator::Sitemap.create do
  add '/home', :changefreq => 'daily', :priority => 0.9
  add '/contact_us', :changefreq => 'weekly'
  add '/about', :changefreq => 'monthly'

  # 動的に生成されるページの例
  Post.find_each do |post|
    add post_path(post), :lastmod => post.updated_at, :priority => 0.8
  end

  # カテゴリーページの例
  Category.find_each do |category|
    add category_path(category), :changefreq => 'weekly'
  end
end

2.1.4 サイトマップの生成

以下のコマンドでサイトマップを生成します

rails sitemap:refresh

2.2 高度な設定

2.2.1 複数のサイトマップ

大規模サイトの場合、以下のように複数のサイトマップを生成できます

SitemapGenerator::Sitemap.create_index = true

SitemapGenerator::Sitemap.create do
  # 通常のページ用のサイトマップ
  group(:filename => :main_sitemap) do
    add '/home'
    add '/about'
  end

  # 製品ページ用のサイトマップ
  group(:filename => :products_sitemap) do
    Product.find_each do |product|
      add product_path(product), :lastmod => product.updated_at
    end
  end
end

2.2.2 画像サイトマップ

画像のSEOを向上させるために、画像サイトマップを追加できます

SitemapGenerator::Sitemap.create do
  Product.find_each do |product|
    add product_path(product), :images => [{
      :loc => product.image_url,
      :title => product.name
    }]
  end
end

3. SEOとSGEのためのサイトマップ最適化

3.1 更新頻度と優先度の設定

各ページのchangefreqpriorityを適切に設定することで、クロールの頻度と重要度を検索エンジンに伝えることができます。

3.2 構造化データの活用

サイトマップと併せて構造化データ(Schema.org)を使用することで、SGEがコンテンツをより正確に理解し、適切な回答を生成しやすくなります。

3.3 コンテンツの質と関連性

サイトマップに含めるページの選択には注意が必要です。高品質で関連性の高いコンテンツのみを含めることで、サイト全体の評価が向上し、SGEでの表示機会が増える可能性があります。

3.4 モバイルフレンドリーなページの優先

モバイルファーストインデックスに対応するため、モバイルフレンドリーなページを優先的にサイトマップに含めましょう。

3.5 ページ速度の最適化

サイトマップに含まれるページの読み込み速度を最適化することで、ユーザー体験が向上し、SEOにもプラスの影響があります。

4. サイトマップの管理とモニタリング

4.1 定期的な更新

サイトの内容が頻繁に変更される場合は、サイトマップを自動更新するなどして、情報の鮮度を保つようにしましょう。

4.2 エラーの監視

Google Search ConsoleやBing Webmaster Toolsを使用して、サイトマップのエラーを監視することができますので、保守運用の際に活用してください。

4.3 インデックス状況の確認

検索エンジンのウェブマスターツールを使用して、サイトマップに含まれるURLのインデックス状況を定期的に確認しましょう。

5. 用語集

5.1 SEOとは

「Search Engine Optimization」の略称で日本語にすると「検索エンジン最適化」と呼ばれるものです。
Googleの検索結果を上位に上げるための施策を意味します。

5.2 SGEとは

「Search Generative Experience」の略称で、Googleが導入している新機能のことです。AIを活用して、ユーザーの質問に直接答える形式の検索結果を提供します。※混同されがちですが、SEOがwebマーケティング施策を指す用語で、SGEはGoogleの機能を指す用語です。

6. SGEが登場したことによるSEOへの影響とは

6.1 もし今後SGEが主流になるとして、sitemapは意味あるの?

sitemapを作る意味はあります!そもそも、検索エンジンにサイトの全体像を正確に把握してもらうことが目的なので、その相手が検索エンジンからAIに変わったとしても、大差はないでしょう。

6.2 ユーザの検索行動を変える可能性は大いにある

これから生成AIと共同作業が一般的になっていく可能性は大いにあるかと思います。ユーザの検索行動が変われば、webサイトを作る側もそれに合わせたSEO対策を実施する必要がありますので、SGEについては今後も注目すべき内容になるでしょう。

6.3 SGEを使ってみたい&もう少し詳しく知りたい人はこちら

こちらのサイトがもう少し詳しく解説してくれていますので、ぜひ、ご覧ください。
https://aismiley.co.jp/ai_news/what-is-sge/

Discussion