web-dev-qa-db-ja.com

範囲外のページネーションクエリは404を生成する必要がありますか?

答えは「はい」のように見えますが、私はもっと確かなアイデアが欲しいです。

範囲外のページネーションクエリ、たとえば11の10で404が生成されますか?

とりあえず、スタックの同形の再作業を遅らせることに成功したReact.jsアプリケーションに取り組んでいます。 Railsバックエンドがアプリケーションを配信し、React.jsフロントエンドがページ分割された結果の検索APIをフロントエンドで呼び出します。

現在これが意味することは、?page=が何であっても、検索クエリ(ページパラメータを含む)に結果がない場合でも、応答コードは200になることです。現時点では、バックエンドはクエリの結果が何であるかわかりません。

常識的なSEOの知恵では、これは悪いと言われます。なぜなら、技術的に無限のURLは、同じページコンテンツで200になるからです。

とはいえ、この特定のページネーションのシナリオでは、状況がそれほどひどくないという可能性を完全に排除したいと考えています。

2
Daniel B.

理想的には404ステータスが使用されます。ただし、このような場合にステータスが200になることは珍しくありません。

9ページ目が最後のページである場合、ページ10にリンクしないようにしてください。最後のページを超えるリンクがない場合、検索エンジンボットは範囲外のページに大量のクロールを行うことはほとんどありません。

ボットが範囲外のページを見つける場合があります。たとえば、結果の数が減少し、ボットが、以前は結果が表示されていたが現在は表示されていない大きい番号のページを再クロールした場合。

このような場合、一部のボットは200ステータスについて混乱します。しかし、彼らは頻繁にこの状況に対処する必要があります。このような状況では、多くのWebサイトが200ステータスを返します。 Googleは、ステータスが200の「ソフト404」の「見つかりません」ページを呼び出します。ソフト404検出アルゴリズムは、小さなページサイズや「見つかりません」というテキストの存在などに依存します。コンテンツは、ステータスが200であっても、ほとんどの検索エンジンボットによってソフト404としてページが表示される可能性が高いため、「結果が見つかりません」などの1つの文を使用します。

手短に言えば、あまり手間をかけずにできる場合は、応答コードを404に変更します。しかし、そうでない場合は、「結果が見つかりません」と出力するだけで、検索ボットはほとんど正しいことを行います。

2