301 Moved Permanently

リソースには新しい恒久的な 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 / Expressres.redirect(301, '/new-url')
Python / Flaskreturn redirect('/new-url', code=301)
nginxreturn 301 https://example.com$request_uri;

確認方法

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP ステータスコードを開く