米Googleは2011年9月15日、ウェブサイトのインデクシングにおいて近年話題(問題)となっていた、ページネーション(pagination)について、適切にインデックスするための方法を発表した。
ページネーション問題
ページネーションはページ送りのことで、1ページでは収まらないような情報をページ分割して掲載する方法。たとえば通販・不動産サイトの検索結果一覧を10件や20件単位で複数ページで掲載したり、一定以上の文章量で構成されるニュースやコラム記事をページ分割して掲載するなど、様々な場所で利用されている。しかし、適切なページが検索結果に表示されない、リンク資産を有効に集約できない、サイト全体のインデクシングに問題が発生する恐れがあるなどSEOの観点からは様々な課題があることから、近年は rel="canonical" とあわせて議論されてきた。
ビューオールページを優先表示
Google社内の一部のエンジニアがこの議論に加わってきた経緯もあり、今回、このページネーション問題を解消するために新たに2つの事項をサポートしたことが発表された。第1に、ビューオールページ(view-all pages)を自動的に検出して優先表示すること、第2に、(ビューオールページの優先表示を望まない場合に)標準HTMLの 『rel=”next” and rel=”prev”』をheadセクションに記述することでページネートされたページの関係性を伝える方法だ。
1点目について。Googleが実施したユーザーテストによると、ある情報を a) ビューオールページ、つまり1つのページに全ての情報を掲載した場合、b) ページ送り(次へ、前へ、等)で複数ページに分割して情報を掲載した場合、の2つを比較した時、検索ユーザーは前者(ビューオール)を好んでいることが判明したという。
このため、Googleはユーザーエクスペリエンス(UX)の観点から、サイト内にある情報が複数ページに分割されたもの(たとえば page-1.html、page-2.html、page-3.html の3ページ構成)、1ページに全情報を掲載したもの(たとえば page-all.html)、2つのバージョンを検出した場合は、後者(ビューオール)を検索結果に表示するように試みているという。
この「ビューオールページを優先的に表示しようとする」試みは検索アルゴリズムにより自動的に行われ、また、分割された個々のページに張られたリンク資産は合算されてビューオールページ(page-all.html)に加えるような処理が行われる。つまり、SEOにおける課題の1つであった「リンク資産の分散化」問題は、こうしたGoogle側の処理により解消されるようになる。
ただしこの処理は完璧に行われるわけではないため、Googleに対してこのページの関係性を明示的に伝える方法として新たにサポートされたのが、2点目に挙げた『rel=”next” and rel=”prev”』HTMLのサポートだ。
たとえば、page-1.html、page-2.html、page-3.html、page-4.html で構成される一連の情報ページがあったと仮定すると、page-1.html には rel="next" href="page-2.html" を、page-2.html には rel="prev" href="page-1.html / ref="next" href="page-3.html"( ※ 正しい記述は公式ブログやヘルプを参照のこと)といった具合に、ページ送りの関係を prev と next を利用して記述することで、Googleはそれらが一連の関連性があると判断し、リンク資産も個々のページではなく、1つのグループとして計算する。検索結果には、検索キーワードに最も関連するいずれかのページを表示する(大抵は最初のページ、つまり page-1.html)。
Googleの提案するベストプラクティス
以上を踏まえて、Googleが提案するページネーション処理のベストプラクティスは次の通り。
まず第1に、ページネートしたページ群とは別に、1ページ内に全て納めたビューオールページも持っており、ビューオールページが表示されるようにしたい場合。この場合は、Google側が自動的に解析するので何もする必要はない。ただし、Googleにページ構成を明示して、意図したページが検索結果に表示される確率を高めたい場合は、分割した個々のページに rel="canonical" を設定して、そのリンク先を page-all.html(ビューオールページ)に向ける。分割した個々のページは、page-all.htmlのサブセット(一部)なので、rel="canonical" で全ての情報を含む page-all.html を設定すれば良い。逆に、ビューオールページが表示されないようにしたい場合は、個々のページに rel="canonical" を設定せず、かつ、ビューオールページに noindex を指定して検索結果に表示されないようにする。
第2に、ページネートされたページが検索キーワードとの関連性にあわせて表示されるようにしたい場合は、rel="prev" / rel="next" を使用する。
Googleのページネーション処理方法まとめ
最後にまとめると、選択肢は次の3つ。
- 何もしない
- ビューオールページを表示させる (rel="canonical" 使用)
- 分割したページを表示させる (rel="prev" / rel="next" 使用)
現状のGoogleの解析技術の限界や、ウェブ制作業界における慣習を考慮すると、1 「何もしない」という選択肢はありえない。よって 2 か 3 になる。ただ、私個人的な意見を述べると、2. 3. も支持しなくて、単純にサイト内のナビゲーション設計の工夫で解決した方がいいと思います。
Pagination
http://www.google.com/support/webmasters/bin/answer.py?answer=1663744
Pagination with rel=“next” and rel=“prev”
http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html
View-all in search results
http://googlewebmastercentral.blogspot.com/2011/09/view-all-in-search-results.html
#
これは検索アルゴリズムの問題ではなく、UX の問題です。でもGoogleは技術の問題と捉えて、一般的な解決方法として提示してしまっているんですよね。そこが問題。
第1、この公式ブログの説明見てわかるウェブマスターというのは少数ではないでしょうか。一応私はこの領域わりと専門ですが、しかし難しく感じます。全体趣旨を把握するのに何度も読み返してしまいました。だいたい、こういう処理が必要なサイトは大規模サイトが対象になるでしょうが、そういうサイトは複数のソート(並び替え)機能を提供していたりして、rel="canonical" を十分に検討して設計しないといけませんよね、でも私の経験的に、少なくともここ日本では、そういうことできる人材って限られると思うのですよ。
第2に、上記提案はページネーションに関するほんの一部の問題しか解決していません。少なくとも、最近問題となっているクローリングによるリソース消費問題は解決しないのではないでしょうか。前提条件として「すべてのページネートされたページには価値ある情報がある」とするなら、それを明記してあげないと、中途半端にSEOかじっている担当者がブラックな手法に手を染めてしまう懸念がぬぐえません。
第3に、アクセシビリティの観点から検証しているの?
とかいろいろ言いたいことがあるので後日まとめますが、私が言いたいことは、いったいGoogleはこの提案を通じて、ウェブマスターの何の悩みをどのように解決したいのかが明確ではない、ということです。
ちなみにpaginationですが、デザイン・出版業界で長く「ページネーション」という用語が使われていますので、それに従って表記しています。別にここは英語教室ではありませんし、日本ですので、カタカナ英語として使います。英語発音に近づけても(日本人が)辞書で調べられない、広く通じないのでは意味がありませんので。英語発音は dictionary.com などの音声でご確認下さい