HTTPステータスコードとは?

HTTPレスポンスステータスコードは、特定のHTTPリクエストが正常に完了したかどうかを示します。多くのステータスコードがありますが、SEOの文脈で意味を持つのはその一部のみです。

それらを見ていきましょう。

200

HTTP 200 OK 成功ステータスレスポンスコードは、リクエストが成功したことを示します。

Googleにページがインデックスされるためには、ステータスコード 200 を返す必要があります。これは通常、ページがオーガニックトラフィックを受けるために確認したいコードです。Next.jsがページを正常にレンダリングすると、このコードがデフォルトで設定されます。

301/308

HTTP 301 Moved Permanently リダイレクトステータスレスポンスコードは、リクエストされたリソースが確定的に移動先URLに移動したことを示します。

これは恒久的なリダイレクトです。一般的に、最も広く使用されるリダイレクトタイプです。

リダイレクトは様々な理由で使用されますが、主な理由はURLが場所Aから場所Bに移動したことを示すためです。コンテンツが移動した場合、現在および潜在的なクライアントを失わず、ボットがサイトをインデックスし続けられるようにするためにリダイレクトが必要です。

: Next.jsの恒久的リダイレクトは、より新しいバージョンでより良い選択肢とされる308をデフォルトで使用します。

これら2つのステータスコードの主な違いは、301 はリクエストメソッドを POST から GET に変更することを許可しますが、308 は許可しない点です。

Next.jsで 308 リダイレクトをトリガーするには、getStaticProps() 関数でpropsの代わりにredirectを返します。

//  pages/about.js
export async function getStaticProps(context) {
  return {
    redirect: {
      destination: '/',
      permanent: true, // 308をトリガー
    },
  };
}

また、next.config.js で設定するリダイレクトでも permanent: true キーを使用できます。

//next.config.js
 
module.exports = {
  async redirects() {
    return [
      {
        source: '/about',
        destination: '/',
        permanent: true, // 308をトリガー
      },
    ];
  },
};

302

HTTP 302 Found リダイレクトステータスレスポンスコードは、リクエストされたリソースが一時的に移動先URLに移動したことを示します。

ほとんどの場合、302 リダイレクトは 301 リダイレクトであるべきです。これは、ユーザーを一時的に特定のページ(例:プロモーションページ)にリダイレクトする場合や、ロケーションに基づいてユーザーをリダイレクトする場合には当てはまらないかもしれません。

404

HTTP 404 Not Found クライアントエラーレスポンスコードは、サーバーがリクエストされたリソースを見つけられないことを示します。

前述のように、移動したページは新しい場所に HTTP 301 ステータスコードでリダイレクトされるべきです。これが行われない場合、URLは 404 ステータスコードを返す可能性があります。404 ステータスコードは、存在しないURLにユーザーがアクセスした場合の望ましい結果であるため、必ずしも悪いものではありませんが、ページ内で頻繁に発生すると検索ランキングの低下につながる可能性があるため、頻繁なエラーであってはいけません。

Next.jsは、アプリケーション内に存在しないURLに対して自動的に 404 ステータスコードを返します。

場合によっては、ページから 404 ステータスコードを返したいこともあるでしょう。これは、propsの代わりに以下を返すことで行えます:

export async function getStaticProps(context) {
  return {
    notFound: true, // 404をトリガー
  };
}

pages/404.js を作成することで、ビルド時に静的に生成されるカスタム404ページを作成できます。

例:

// pages/404.js
export default function Custom404() {
  return <h1>404 - ページが見つかりません</h1>;
}

410

HTTP 410 Gone クライアントエラーレスポンスコードは、ターゲットリソースへのアクセスがオリジンサーバーで利用できなくなり、この状態が永続的である可能性が高いことを示します。

これはあまり使用されませんが、ウェブサイトから削除され、今後存在しないコンテンツがある場合にこのステータスコードを確認したいかもしれません。

HTTP 410 Gone を使用することが賢明な例には以下があります:

  • Eコマース: 在庫から永久に削除された商品
  • フォーラム: ユーザーによって削除されたスレッド
  • ブログ: サイトから削除されたブログ投稿

このステータスコードは、ボットに対してこのコンテンツをクロールするために再び訪れるべきではないことを伝えます。

500

HTTP 500 Internal Server Error レスポンスコードは、サーバーがリクエストを満たすのを妨げる予期しない状態に遭遇したことを示します。

Next.jsは、予期しないアプリケーションエラーに対して自動的に 500 ステータスコードを返します。pages/500.js を作成することで、ビルド時に静的に生成されるカスタム500エラーページを作成できます。

例:

// pages/500.js
export default function Custom500() {
  return <h1>500 - サーバー側でエラーが発生しました</h1>;
}

503

HTTP 503 Service Unavailable サーバーエラーレスポンスコードは、サーバーがリクエストを処理する準備ができていないことを示します。

ウェブサイトがダウンしており、長期間にわたってダウン状態が続くと予測される場合に、このステータスコードを返すことが推奨されます。これにより、長期的なランキングの低下を防ぐことができます。

On this page