グロースエンジニアのブログ

プログラミングとウェブ解析をやっています。Googleアナリティクス好きなRuby on Rails エンジニアです!

【Ruby on Rails】 SEO対策での redirect のステータスコード

SEO対策で redirect の設定をしようとしていたんですが、コード上はredirect(または redirect_to)と書いているだけで、ステータスコードは何なんだろう?と気になったので調べました。

301 は恒久的な移動、302は一次的な移動

そもそもなんですが、ステータスコードってあまり意識しなかったので深く知らず。。。

  • 301: 恒久的なページの移動
  • 302: 一次的なページの移動

ようは、ずっと変更されるのか、一次的に変わるのかということみたい

routes.rb でのredirect は301

ここからが本題。

routes.rb にサイト内のrouteを記載していると思いますが、こちらで redirect するときのステータスコードはデフォルトで 301 になる。

ステータスコードを変えたいときは以下のようにすればいいみたい。

get '/test', to: redirect('/to_url', status: 302)

Rails Routing from the Outside In — Ruby on Rails Guides

コントローラーでの redirect_to は302

次にコントローラーのアクション内で使う redirect_to はデフォルトで 302 になっている。

ActionController::Redirecting

ステータスコードを変えたい場合はroutes のときと同様、status オプションを使う

redirect_to action: 'to_action', status: 302

301 と 302 って以外に気にしてないんですが、SEO的には大事になってくるので注意して設定しましょう!