こんにちは。
AIコミュニケーションの伊藤です。
世はまさに大師走時代。
閑話休題。
いや、まだ本題の話を一切していないですが……。
0からPHP等でコーディングしていると困ること。
普段WordPress等を駆使している場合意外な落とし穴にひっかかったりするものです。
例えばSEOですね。
この大SEO時代、出来る限り多くのオプションをheadの中に閉じ込めてやりたいものです。
SEOなんてとりあえず単純に値を引いてこればいいので楽勝だい!という気持ちがあの頃の私にもありました。
こんなところに魔物が潜んでいるとはつゆ知らず。
その魔物の名は……
「prev」と「next」です。
prevとnextとは
ページネーションが存在するページにおいて、前のページと次のページがどのサイトであるかを示すタグです。
当然、1ページ目にはprevが存在せず、最終ページではnextが存在しないわけで……。
激しい面倒くさそうさが正体を現してきましたね。
とはいえ、ページネーションを作れるぐらいそれなりに作れる貴方だったら、難なく作れるはず。
prevとnextの部分を作ってみよう
さて、面倒そうですが作ってしまいましょう。
prevとnextを作るにあたって必要な情報は、以下の通りです。
・現在何ページ目を閲覧しているか。
・マックス何ページあるか。
というわけで、以下のようなコードになります。
$pagesum → ページ合計数
$pageno → 現行ページ
if($pagesum >= 2){
//2ページ以上存在するなら
$prevno = $pageno -1;
$nextno = $pageno +1;
if($pageno == $pagesum){
//現在が最後のページなので、nextを表記せず、prevだけ表記
$p_canonical .= "";
}else if($pageno == 1){
//2P以上存在してかつ現在は1P目なので、prevを表記せず、nextだけ表記
$p_canonical .= "";
}else{
//2P以上存在してかつ最後でない2P目以降なので、prevとnextともに表記
$p_canonical .= "";
$p_canonical .= "";
}
}else{
//1ページしか存在しないのでcanonicalを表記しない
$p_canonical .= "";
}
意外とシンプルですね!
ページャーよりは……楽……!
ちなみに
記事を書くにあたって裏取り調査していて知ったのですがGoogleは、prev・nextのオプションを3月に廃止していたらしいです……。
Spring cleaning!
As we evaluated our indexing signals, we decided to retire rel=prev/next.
Studies show that users love single-page content, aim for that when possible, but multi-part is also fine for Google Search. Know and do what's best for *your* users! #springiscoming pic.twitter.com/hCODPoKgKp— Google Webmasters (@googlewmc) March 21, 2019
なんじゃそりゃああああああああああああああああああ!
せ、せっかく書いたのに!!
ちなみに、Bing等では依然使われているということなので、削除まではしなくてもいいでしょう。
そして、上記のコードを活用してみてもいいでしょう。
We're using rel prev/next (like most markup) as hints for page discovery and site structure understanding. At this point we're not merging pages together in the index based on these and we're not using prev/next in the ranking model. https://t.co/ZwbSZkn3Jf
— Frédéric Dubut (@CoperniX) March 21, 2019
そしてタイミング良いことに、12月にこれに代わるシステムが予告されたとのこと。
移り変わりの激しいSEO業界、今後の動向に注目です。
【参考】rel=prev/nextサポートの終了後のページネーションのベストプラクティスをGoogleが準備中