【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 になっている。
ステータスコードを変えたい場合はroutes のときと同様、status オプションを使う
redirect_to action: 'to_action', status: 302
301 と 302 って以外に気にしてないんですが、SEO的には大事になってくるので注意して設定しましょう!