はてなキーワード: カノニカルとは
はてブではたまにこういうことが起こる。👇
全国のパン好きのみなさん、一生かけて回るので推しパン屋さんを教えてください→地域別で分けてみた
https://b.hatena.ne.jp/entry/s/togetter.com/li/2064362
全国のパン好きのみなさん、一生かけて回るので推しパン屋さんを教えてください→地域別で分けてみた
https://b.hatena.ne.jp/entry/s/togetter.com/li/2064362?page=2
全国のパン好きのみなさん、一生かけて回るので推しパン屋さんを教えてください→地域別で分けてみた
https://b.hatena.ne.jp/entry/s/togetter.com/li/2064362?page=3
それぞれ何が違うかというと、分割されているページの位置だ。
ページごとにURLが異なるので(?page=nの部分)、はてブからは個別のコンテンツと認識されてしまっているのだ。
Togetter以外にも記事をページ分割するサイトはいくらでもあるが、このようなことが起こることは少ない。
はてブのシステムは、ページ分割されているどのページをブックマークしても親ページ(先頭ページ)がブックマークされるように作られているからだ。
ただし、それにはブックマークされる側のページで「カノニカルURL」が正しく設定されている必要がある。
カノニカルURLとは、「この記事っていろんなURLのバリエーションがあるけど、SNSとかで拡散する時はこのURLを使ってね」という「代表URL」のことだ。
WebページのURLには、(まさにこの例のように)ページ分割位置を示すクエリパラメーターがくっついたり、効果測定やアフィリエイトのためにクエリパラメーターが勝手にくっついたりすることがよくある。同じページでもURLに無限のバリエーションができてしまうが、それぞれが別個のコンテンツだと認識されてしまうと不便なこともある(まさにこの例のように)。
そうならないように、アクセスを本来のまっさらな親ページ(先頭ページ)に集約するのがカノニカルURLの役割だ。
はてブも、分割の途中ページがブックマークされてもカノニカルURLの記述に従って先頭ページがブックマークされる仕組みになっている(この仕組みが実装されたのはわりと最近なんだけど)。
それなのにTogetterのブクマが👆あんな風になっちゃうのは、ひとえにTogetter側のカノニカルURLが正しくないからだ。
カノニカルURLの記述じたいがないのかと思って調べてみると、そんなことはない、ちゃんとある。
<link rel="canonical" href="https://togetter.com/li/2064362?page=3"/>
なんと、クエリパラメーターをくっつけたバリエーションURLのほうをそのままカノニカルURLにしてしまっている。本末転倒な使い方だ。
もろちん、クエリパラメーターがくっついたままのURLをカノニカルとしなければならないケースもあるだろう。クエリパラメーターが記事IDになっているようなサイトはいくらでもある。
しかしTogetterに関しては違うと思う。なぜなら、分割の途中ページでもSNS拡散ボタンは先頭ページのURLを登録するようになっているからだ。
つまり拡散アクセスを記事の先頭ページに集約したいという意思がちゃんとうかがえるのだ。SNS拡散ボタンとカノニカルURLに矛盾がある。
文句のついでにカノニカルURLの解説をしてしまったのでちょっと長くなったけど、とにかくTogetterはカノニカルURLの設定をとっとと見直してほしい。