Google が同じページを複数回インデックスする問題:canonical 設定に関する不具合

これを Google に入力してみてください:

site:forum.hearingtracker.com/t/costco-kirkland-signature-9-0-product-information/45380

表示される検索結果は以下の通りです(1 ページあたり 48 件の結果):

これは重複コンテンツのバグであり、Discourse プラットフォームにとって緊急の SEO 課題と見なすべきです(現在 v2.4.0.beta3 +4 を稼働中です)。

なぜこのようなことが起きているのか理解しようと試みましたが、ページのソースを調べてみると、ページを下にスクロールするにつれて canonical リンクが更新されていることに驚きました:

例:
<link rel="canonical" href="https://forum.hearingtracker.com/t/costco-kirkland-signature-9-0-product-information/45380?page=2" />

つまり、長いスレッドはページ分割されているという考えなのでしょうが、これはローディング遅延型の SPA であるため、canonical は従来のページ分割が行われているかのように振る舞っています。正直なところ、なぜこのような方法を採用しているのかの根拠はわかりません。

余談ですが、ページ分割における SEO のベストプラクティスでは、2 ページ目以降で同じメタ説明やタイトルを提供しないことが推奨されています。私のウェブサイトの別の部分でページ分割を実装した例を以下に示します:

質問:

  • スレッド内のページ分割されたポイントを指す canonical を提供する SEO 上の根拠は何ですか?
  • もしこのアプローチが何らかの理由で正当化されるなら、少なくともタイトルとメタデータが Google の検索結果ページ(SERPs)で重複結果を生じないようにすることはできますか?

これは誤りです。

クローラーに対しては、Discourse は 20 投稿ごとのページを使用しており、すべての投稿が適切にクロールされます。ボットに対しては SPA は存在しません。

投稿数が 800 を超えているため、これは当然の結果です。

なぜですか?実際の問題は何でしょうか?実際に特定の単語で検索した場合、その単語を含まないページへのリンクが表示されているなど、何か問題があるのでしょうか?

申し訳ありませんが、「SPA」という用語は適切ではなかったかもしれません。私が意図したのは、Discourse のスレッドが、ページネーションが動的に発生する点において、ある意味でシングルページアプリケーションのように振る舞うということでした。

はい、確かにそうだと思います。3 ページ目のいくつかのテキストを検索してみましたが、Google は 3 ページ目に誘導してくれました。これは良い結果です。ページ内の表示位置は異なりますが、この状況ではこれ以上望めないかもしれません。

振り返ってみると、長いスレッドではページネーション用の canonical タグを持つことが理にかなっていると思います。ただし、SEO のベストプラクティスでは、同じタイトルとメタディスクリプションを持つページネーションされたコンテンツを Google にインデックスさせないよう推奨されています。ここでの解決策は、連続するページでタイトルとメタ情報を変更することです。以下を参照してください:

出典:SEO-Friendly Pagination: A Complete Best Practices Guide

それがなぜフォーラムの人間の訪問者にとってより良いのでしょうか?「2ページ目」へ行こうとして「唯一のページ」の領域に到着すると、混乱する人がいると思いませんか?存在しないページネーションナビゲーションを必死に探したりしないでしょうか?

Googleからのトラフィックが減るよりも、混乱した訪問者が増える方がましです。重複コンテンツはSEO上の深刻な問題であり、Discourseチームのメンバー2人があなたのコメントに「いいね」をしたことは、本当に困惑させられます。

「実際の SEO 上の問題」と呼ぶほど深刻だとは私は考えません。私の知る限り、rel="canonical" が指定されていない場合、検索エンジンがサイトが望む結果 URL(正規 URL)ではなく、検索結果に最も一致する URL を決定します。

おそらく、私が以前投稿した画像を見落としたのかもしれません… ここにそのテキストがあります:

John Mueller は コメント しました。「ページネーションを特別に扱うことはありません。通常のページとして扱います。」

つまり、ページネーションされたページは、以前 Google が助言していたように、1 つのコンテンツに統合されたページシリーズとして認識されません。すべてのページネーションされたページは、ルートページとのランキング競争に参加する資格があります。

Google が SERP(検索結果ページ)でルートページを返すように促し、Google Search Console で「重複するメタ説明」や「重複するタイトルタグ」の警告を防ぐために、コードに簡単な修正を加えてください。

ルートページの式が以下の通りだとします:

Root page SERP

連続するページネーションされたページの式は以下のようになります:

pagination page SERP

これらのページネーションされた URL のページタイトルとメタ説明は、意図的に最適化を避け、Google がルートページではなくこれらの結果を表示しないように抑止するためのものである。

もしこのような修正を行っても、ページネーションされたページが SERP でランキングしている場合は、従来のオンページ SEO 戦略を試してください:

  • ページネーションされたページの H1 タグの最適化を解除する。
  • ルートページには有用なオンページテキストを追加するが、ページネーションされたページには追加しない。
  • ルートページには最適化されたファイル名と alt タグを持つカテゴリ画像を追加するが、ページネーションされたページには追加しない。

ああ、ありがとう。重複コンテンツではなく、重複タイトルとメタ説明の警告についての懸念だったのですね。

Discourse の場合、これらはどちらかといえば「警告」ではなく「通知」に近いです。「もし知らなかったなら、問題ないか確認し、問題があれば修正すべき」というようなものです。トピックの議論が最初の投稿にふさわしい内容から大きく逸れて、後の投稿には当てはまらないような状態になることはないので、これらは安全に無視して構いません。

例えば、「1 ページ目」の投稿が「丸い赤いウィジェット」についてで、「2 ページ目」の投稿が「四角い緑色のスプロケット」についてになっている場合、メンバーにはトピックから逸れないよう促すか、議論を別トピックに分割すべきです。