リソースには新しい恒久的な URL があります。
使いどころ
サイト再構成後の古い URL。ブラウザーや検索エンジンが記憶します。
知っておきたいこと
SEO の観点では、301 は移転が恒久的であることを検索エンジンに伝えるため、Google はランキングシグナルを引き継ぎ、インデックス内の古い URL を新しい URL に置き換えます。Google は 301 と 308 を同じように扱い、長期間続く 302 でもシグナルを引き継ぎますが、302 では古い URL がより長くインデックスに残ることがあります。301 は少なくとも 1 年間は維持し、チェーンを経由せず最終的な URL を直接指すようにしましょう。
ブラウザーは 301 を積極的にキャッシュし、多くの場合は有効期限なしで保存するため、誤ったリダイレクトはサーバーを修正した後もユーザーのブラウザーに長く残ることがあります。まず 302 でテストするか、リダイレクトに Cache-Control: max-age=3600 を付けてください。クライアントは 301 をたどる際に POST を GET に変えることがあるので、メソッドを維持するには 308 を使います。リダイレクトに頼らず、内部リンクとサイトマップを新しい URL に更新しましょう。
リダイレクト (3xx)
3xx はリダイレクトです。リクエストを完了するには、クライアントが別の場所へ移動するか、キャッシュしたコピーを使う必要があります。
レスポンスでの表示
HTTP/1.1 301 Moved Permanently返し方
| Node.js / Express | res.redirect(301, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=301) |
| nginx | return 301 https://example.com$request_uri; |
確認方法
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/