『Rails』 sitemap.xmlの作成&Google search consoleへ自動送信
2019/09/14◉ 146 views

sitemap.xml を作成する前に
sitemap.xmlって何?
ウェブサイト内のURLを記述するxml形式のファイルのことです。
ユーザーに向けてのサイトマップとは別で、クローラーに向けてのファイルになります。
ウェブサイト内のURLを記述するxml形式のファイルのことです。
ユーザーに向けてのサイトマップとは別で、クローラーに向けてのファイルになります。
sitemap.xmlを作ることで、クローラーにサイトをしっかりと正しくクロールしてもらうために必要なものですね。
このsitemapを作る前にGoogle search consoleにまずは登録しましょう。
上のリンクから飛んで、今すぐ登録をクリックから登録してください。
ここでは登録の仕方は省きます。
Google search consoleの登録方法などで調べてみてください!
てかGoogle search consoleって何?
このGoogle search consoleは色んな事ができる無料ツールです。
例えば今から作るsitemapを送信して正しく早く検索エンジンに登録(インデックス)してもらったり
検索エンジンキーワードのトラフィックなどを知ることもできます。
って言っても初学者にはさっぱりなんだがわからないし、僕も全然扱えてませんw
でも今はそんなもんでいいと思います。
後から少しづつわかって行ってSEO対策に力入れて行けばいい!
とにかくまずはこのsitemap.xmlを送信すること!これをまずやっていく!
せっかく作ったサイトなんだから早く検索に出て欲しいもんw
ってことで早速作っていきましょーう!
このsitemapを作る前にGoogle search consoleにまずは登録しましょう。
上のリンクから飛んで、今すぐ登録をクリックから登録してください。
ここでは登録の仕方は省きます。
Google search consoleの登録方法などで調べてみてください!
てかGoogle search consoleって何?
このGoogle search consoleは色んな事ができる無料ツールです。
例えば今から作るsitemapを送信して正しく早く検索エンジンに登録(インデックス)してもらったり
検索エンジンキーワードのトラフィックなどを知ることもできます。
って言っても初学者にはさっぱりなんだがわからないし、僕も全然扱えてませんw
でも今はそんなもんでいいと思います。
後から少しづつわかって行ってSEO対策に力入れて行けばいい!
とにかくまずはこのsitemap.xmlを送信すること!これをまずやっていく!
せっかく作ったサイトなんだから早く検索に出て欲しいもんw
ってことで早速作っていきましょーう!
『gem sitemap_generator』
sitemap_generator を使うと、サイトマップ( sitemap.xml )を自動生成できる。
まずはgemの追加をします。
Gemfile
gem 'sitemap_generator'
そしてbundle
お次に設定ファイルを作成します。
rails sitemap:install
そしたらconfig/sitemap.rbが作成されていると思います。
ここに設定を書いていきます。
ちなみに僕はこんな感じで設定してみました。
config/sitemap.rbに
SitemapGenerator::Sitemap.default_host = "https://pgmg-rails.com" SitemapGenerator::Sitemap.create do add root_path add blogs_path add index_path blogs = Blog.published blogs.each do |blog| add blog_path(blog), :lastmod => blog.updated_at end end
ここではトップページ、ブログ一覧ページ、お問い合わせページ、公開記事だけをサイトマップに登録してます。
これはblogsにmodelで設定した公開記事と下書き記事で使ったenumの事ですね!
blogs = Blog.published
enumの記事は前書いたのでよかったらどうぞ!
そして、published(公開)の記事をblogsに入れて、それをeach doで回してるって感じです!
blog_path(blog)は各IDを指してますね!
lastmod は、URLの最終更新日を指定する要素です。
あとはご自分の作品と相談して追加するなりしてください!
rails sitemap:create で生成
rails sitemap:create でsitemap.xml.gzを生成します。
In '/Users/hogehoge/pgmg/public/': + sitemap.xml.gz 13 links / 467 Bytes Sitemap stats: 13 links / 1 sitemaps / 0m00s Pinging with URL 'https://pgmg-rails.com/sitemap.xml.gz': Successful ping of Google Successful ping of Bing
こんな感じに表示されたら生成完了です!
public/sitemap.xml.gz が生成されたとおもいます。
そしてここで.gitignoreに追加しときましょう!
.gitignoreってなんだ?
.gitignoreを使うと無視するファイル or ディレクトリを指定できます。
github等にpushしないように設定する場所って感じです。
詳しくは調べて見てください!ここでは説明省きます。
初学者は.gitignoreで結構ハマると思います。
僕はめっちゃハマりましたwww
pushしてはダメなやつをpushしちゃったりして1回pushしてしまったら、すぐ.gitignoreで無視させても無視されません!
お気をつけて.....githubから消す事で解決しますが、ミスったら恐ろしいことに.....。
githubから完全に消したと思ったら自分のローカルのワークスペースからも消えていた。
なんてことも、ちょめこにはありましたwww
サイトマップを自動更新
お次は作ったsitemapを自動で更新するgemを使ってみます。
例えば毎日sitemapを朝9時に自動で更新する設定とかができちゃいます。
いちいち手動で更新を伝える手間が省けますね!
Gemfileに追加
gem 'whenever', require: false
お決まりのbundle
そしたらconfig/schedule.rbファイルを作成します。
config/schedule.rbの作成 コマンドもあるけど手動で追加しました。
set :output, 'log/crontab.log' env :PATH, ENV['PATH'] every 1.day, at: '9:00 am' do rake '-s sitemap:refresh' end
毎日朝9:00にサイトマップ更新する設定にしてます。
更新すると同時にサーチエンジンに通知もしています。
自由に設定できるので調べてみて下さい!
rake sitemap:refresh を実行するとサーチエンジンに通知までしてくれます。
rake sitemap:refresh:no_ping を使えば通知を無効にしてくれます。
まだ通知したくないなら
rake sitemap:refresh:no_pingにしましょう。
デプロイでsitemapを自動作成
ここからはVPSにdeployしてる人向けです。
herokuにdeployする方は参考記事があったので、貼らせていただきます。
こちら
僕は本番環境にdeployするのにcapistrano3を使ってデプロイを自動化しています。
そのため下記はcapistrano3を使用してる前提での話になります。
capistrano3やデプロイの事は今後記事にまとめようと思っています。
正直エラー出まくりで苦戦しながら実装したので、記憶も自分でメモとったのも、グチャグチャなんで参考程度にしかならない記事になると思いますが...w
またその話は今後の記事で!!!!
まずはCapfileに追加
herokuにdeployする方は参考記事があったので、貼らせていただきます。
こちら
僕は本番環境にdeployするのにcapistrano3を使ってデプロイを自動化しています。
そのため下記はcapistrano3を使用してる前提での話になります。
capistrano3やデプロイの事は今後記事にまとめようと思っています。
正直エラー出まくりで苦戦しながら実装したので、記憶も自分でメモとったのも、グチャグチャなんで参考程度にしかならない記事になると思いますが...w
またその話は今後の記事で!!!!
まずはCapfileに追加
require 'whenever/capistrano'
config/deploy.rbに設定を書いていきます。
ここの設定は参考記事をそのままお借りしました。
以下引用します。
desc 'Generate sitemap' task :sitemap do on roles(:app) do within release_path do execute :bundle, :exec, :rake, 'sitemap:create RAILS_ENV=production' end end end after 'deploy:restart', 'deploy:sitemap'
これでcapistranoでデプロイするとsitemapが作成されるようになりました!
毎度のようにデプロイをします。
毎度のようにデプロイをします。
bundle exec cap production deploy
さらにこちらをデプロイ後に実行
bundle exec cap production deploy:sitemap
これでVPS側でpublic内にsitemap.xml.gzが作成されていると思います!
CyberduckなどのFTPクライアントで確認したらわかりやすいと思います。
FTPクライアントとは、FTPサーバーに接続してファイルのアップロードやダウンロードを行うツールです。
僕はこれで確認するしか方法を知りませんwww
ここまでで無事sitemapを作成し、自動でdeployできて、毎朝sitemapを更新して通知までやれるようになっていると思います。
記憶も曖昧な中書いてるのでどこか抜けてるかもしれませんが、あくまで参考程度で見てもらえたらと思います。
FTPクライアントとは、FTPサーバーに接続してファイルのアップロードやダウンロードを行うツールです。
僕はこれで確認するしか方法を知りませんwww
ここまでで無事sitemapを作成し、自動でdeployできて、毎朝sitemapを更新して通知までやれるようになっていると思います。
記憶も曖昧な中書いてるのでどこか抜けてるかもしれませんが、あくまで参考程度で見てもらえたらと思います。
Google Search Consoleにサイトマップを追加
最後に作ったsitemapをGoogle search consoleに追加してあげましょう。

site mapはドメイン名/sitemap.xml.gzで追加する事ができます。
無事に追加できたら、成功しましたの文字が出ますので、サイトマップってとこをクリック後にこのページに飛びます。

そして右上のサイトマップを開くから、
自分が指定したURLが作られているか確認して下さい。
これで以上になります!!
あとはインデックスされずにエラーだったり、問題があればガバレッジって所で詳細が見れるので
各自ググって修正しましょう!
RSSの生成をしてランキングサイトにRSSフィードを知らせる
サイトマップの上にRSSってのが見えると思います。
これを次回の記事で説明して生成のやり方を教えようと思います。
ランキングサイト等に教えて記事のリンクを作ってくれるので、ぜひ参考にしていただけたらと思います!
最後に
ここまで読んでくれてありがとうございました。
そしてもう一度言います。
先輩方のメモに初学者の僕たちはすごい助かっています。
いつも記事に残していただきありがとうございます。
僕もそんな存在になりたいので少しでも参考になるように、記事に試した事を残していきます。
間違った所や抜けてるとこがあるかもしれませんが、もしわかったら優しく教えていただけたら嬉しいです。
そしてちょっとでも参考にしてくれてる初学者の同士よ。
お互い頑張ろうぜえええええ!!!!!!
以上!!!

このブログサイトは初学者の僕が独学で
Ruby on Railsで作ったブログサイトです。
間違っている所もあるかもしれません。
あくまで参考程度にしていただけたらなと思います。
何かありましたらお問い合わせか、Twitter@ちょめこよりご連絡下さい。
人気記事
最新記事
タグリスト