2017年09月 / 08月≪ 123456789101112131415161718192021222324252627282930≫10月
2009.02.19(Thu)
Top Page > Web/ブログ > URLを正規化するcanonical属性をFC2ブログに導入してみた

URLを正規化するcanonical属性をFC2ブログに導入してみた

さすが!と言わせる FC2ブログ徹底攻略術 第2版
Google、Yahoo!、Microsoftの主要3つの検索エンジンがこぞってURLを正規化する「canonical属性」を導入したという訳で、FC2ブログでも導入できないか試してみました。

ちなみに以下のがそのニュースです。

検索エンジン3社、正しいサイトURLを認識させるcanonical属性を導入(URLの正規化) :: SEM R
http://www.sem-r.com/09/20090213153711.html


検索エンジン大手3社、URL正規化タグを揃って導入:マーケティング - CNET Japan
http://japan.cnet.com/marketing/story/0,3800080523,20388248,00.htm

URLを正規化とは何なのかというと、例えば検索クエリのパラメーターがついていた場合URLの末尾に「?=<検索語>」となったり、プロモーション方法を区別するために引数をURLの末尾につけて「?=promoxxxx」とする場合に、検索エンジンは本来のURL「sample.html」とこれらの引数が付与されたURLとの区別が難しくなってしまいます。
そこで「正しいURLはこれだよ」と検索エンジンに教えてあげる。それがURLの正規化であり、canonical属性の役割であり、本当は単一のURLのはずなのに複数のURLになる可能性がある場合に、本来のURLを検索エンジンに教えてあげるという訳です。

基本的な導入方法は簡単で、htmlファイルのhead部(~の間)に以下を記述するのみです。
<link rel="canonical" href="http://amatoboss.blog31.fc2.com/" />

FC2ブログで導入するには、まず正規のURLとは違ったURLになる場合、つまり「?=xxxxx」等となる場合を洗い出さないとなりません。

そこで調べてみると、大きく「月間の一覧ページ」「tag検索の場合」「キーワードで検索された場合」「カテゴリの一覧ページ」の3つが洗い出されました。

tag検索の場合は「http://amatoboss.blog31.fc2.com/?tag=<タグ>」という形になり、キーワード検索された場合は「http://amatoboss.blog31.fc2.com/?q=<検索後>」という形になります。
また、月間一覧のページ「?date=yyyymm(dd)」と「blog-date-yyyymm(dd).html」という2つの形式を取ります。

カテゴリの一覧ページは「blog-category-no.html」と「http://amatoboss.blog31.fc2.com/?cat=no」(noはカテゴリに与えられた番号)とURLが2種類あります。

tag検索、キーワード検索


tag検索、キーワード検索は非常に簡単で、それぞれ「tag検索の場合」「キーワード検索の場合」にだけ表示するFC2ブログの変数「<!--tag_area-->」と「<!--search_area-->」を使い以下のように記述します。
「?以降の変数は不要と考え、「canonical属性」でトップページを指定します。
<!--search_area--><link rel="canonical" href="<%url>" /><!--/search_area-->
<!--tag_area--><link rel="canonical" href="<%url>" /><!--/tag_area-->


月間記事一覧、カテゴリ一覧


月間一覧のページの場合は、月間(日間)一覧を表示する変数「<!--date_area-->」はあるのですが、月間一覧ページのURLを表示する変数が無いため断念。

また、カテゴリ一覧ページも「<!--category_area-->」というカテゴリ一覧ページの場合のみに表示する変数はあるものの、カテゴリ一覧ページのURLを表示する変数が無いため断念。

一応試したコードを以下に示します。上二つはカテゴリがある分だけ表示されてしまいます。つまり3つカテゴリがあったら3つ連続で表示されてしまう結果でした。
一番最後のものはページが表示すらされなくなってしまいます。
<!--category_area--><!--category--><link rel="canonical" href="<%category_link>" /><!--/category--><!--/category_area-->

<!--category_area--><!--topentry--><link rel="canonical" href="<%topentry_category_link>" /><!--/topentry--><!--/category_area-->

<!--category_area--><link rel="canonical" href="<%url>/blog-category-<%cno>.html" /><!--category_area-->


トップページとエントリー個別ページ


トップページとエントリーの個別ページは、他のページから引数が付与されてアクセスされる可能性があるので念の為、以下のように指定しました。
<!--topentry--><!--permanent_area--><link rel="canonical" href="<%topentry_link>"/><!--/permanent_area--><!--/topentry-->
<!--index_area--><link rel="canonical" href="<%url>" /><!--/index_area-->


カテゴリ一覧ページと月間(日間)一覧ページで指定できなかったのが消化不良で残念です。どなたか解決方法をご存知でしたら教えてください。
関連記事

タグ(ブログ内検索もできます)FC2ブログ カスタマイズ canonical

21:09  |  Web/ブログ  |  TB(0)  |  CM(1)  |  EDIT  |  Top↑

関連エントリー

Loading


Comment

●古い記事にお邪魔します

カテゴリ一覧ページの正規化、参考になりました。
もう解決しているかもしれませんが、三つめのコードが上手くいかないのは、エリア変数が閉じてないからだと思います。
半角スラッシュを加える事で正常に表示されました!
にゃ | 2015年03月10日(火) 11:38 | URL | コメント編集

コメントを投稿する

※コメントは承認するまで表示されません。


管理者だけに表示

▲PageTop

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP |