【保存版】2013年度発売全パチスロアプリ一覧(iPhone,iPad)

【CakePHP】これまた簡単!CakePHP2で内部重複コンテンツ対策rel="canonical"を設定する。

CakePHPに限ったことではないのですが、DBからデータを取得して
WEBページを作成する場合、
結果的に重複コンテンツができやすくなるかと思います。

検索エンジンは重複コンテンツを嫌います。
(同内容のコンテンツが複数あっても意味がないため)
重複するコンテンツ - ウェブマスター ツール ヘルプ

では、この重複コンテンツにどのように対応
すればよいのでしょうか?

1) 意図せず発生する内部重複コンテンツについて


例えば、商品の紹介ページを考えてみます。
商品はさまざまに切り口で検索できることが普通です。
このとき、メーカー別一覧から商品紹介ページへ遷移した場合と、
価格別一覧から遷移した場合では、表示するコンテンツは
ほぼ同じ内容でも以下のようにURLが異なることがあります。

1(メーカー別) http://メーカー別一覧/商品ID
2 (価格別) http://価格別一覧/商品ID

また、別のパターンとして、URLにトラッキングコードが
埋め込まれているような場合も結果としてURLが変わります。

3 (トラッキングidつき) http://メーカー別一覧/商品ID?トラッキングid

検索エンジンでは、上記3パターンのURLを
それぞれ別ページと認識し、かつ内容が類似しているため
重複コンテンツとみなします。
検索エンジンは、重複コンテンツが存在する場合、
最適と思われるものを自動判定しますが完璧ではありません。
また、重複コンテンツを判定するという無駄な作業により、
本当にインデックスしてほしいページのインデックス作業が
遅れる可能性もあります。
このため、できるならば重複コンテンツ状態はサイト側で解消して
おきたいところです。

2) rel="canonical"で内部重複コンテンツを解消する


では、この重複コンテンツをどのように解消すればよいのでしょうか。
一番簡単な方法は、rel="canonical"タグによるURLの
正規化です。異なるURLを正規化して一つにまとめることにより、
重複コンテンツ状態を解消することができます。

具体的な記述方法は、重複コンテンツページの<head>で、
rel="canonical"を記述し、
hrefでそのコンテンツの正規化するURLを指定します。
(書式)
<link rel="canonical" href="正規化URL"/>

例えば先ほどの3パターンあるURLを正規化するとするとします。
1のメーカー別のURLをインデックス対象としたい場合、
2、3のURLでページ表示された際には、
ヘッダ部のrel="canonical"で1のメーカー別のURLを指定します。
これにより検索エンジンは2、3のページ表示の際も
1のURLでの表示とみなします。
結果として1のURLのみインデックスが行われ、
重複コンテンツ状態が解消されます。
なお、このrel="canonical"ですが、コンテンツ内容がほぼ同じものに
のみ使用できます。

さらに詳しく知りたい方は以下の情報もご参考にどうぞ。

Googleによるcanonicalについての説明。
rel="canonical" 属性について

こちらも具体的で非常にわかりやすいページです。
検索エンジン3社、正しいサイトURLを認識させるcanonical属性を導入(URLの正規化)
Google、Yahoo!、Microsoft3社が rel="canonical" (正規化、canonicalization )をサポート。クローラが適切な(canonical)サイトを見つける手がかりに。rel="canonical" はページの head の中に記述すること。

また別の方法としては、こちらはGoogleの検索エンジンのみに
使える対応方法となりますが、
Googleのウェブマスターツール上でURLパラメータを
指定することによりURLの正規化が可能です。
(こちらはパラメータ単位の正規化になります。)
URL パラメータ - ウェブマスター ツール ヘルプ
ただ、ページ内でのrel="canonical"指定のほうが柔軟性があり
運用がしやすいかと思います。
ページ側に何らかの事情で修正がいれられない場合に
Googleのウェブマスターツールを検討すればよいでしょう。

3) CakePHP2.xでrel="canonical"を指定する方法


最後にこのrel="canonical"をCakePHPで指定する方法です。
(CakePHP2.2.5で動作確認しています。)
ヘルパーを使うとさくっと簡単に出力できます。

//ビュー
echo $this->Html->meta(
 'canonical',
 $this->Html->url('正規化先URL', true),
  array(
   'rel' => 'canonical',
   'type' => null,
   'title' => null,
   'inline' => false
  )
 );

上記の記述によりhead内に以下の内容が出力されます。
<link href="http://正規化先URL" rel="canonical" />

ちなみに私の運用サイトをGoogleのウェブマスターツールで
確認すると、類似ページを原因とした
メタデータとタイトルの重複がありました。
canonical対応前 ウェブマスターツール

今回、rel="canonical"対応を行ったので、かなりの重複が
解消されると期待します。結果はまたこのエントリでご報告します。

【CakePHP2.x系 おすすめ書籍】
>>詳解CakePHP辞典―2.0/2.1/2.2/2.3対応


>>CakePHP2 実践入門 (WEB+DB PRESS plus)


わかりやすいチュートリアル風。
>>WebデザイナーのためのCakePHPビューコーディング入門

[Google PR]

Twitterはじめました。プラプラ | Twitter

<< 【e-mobile】(2013年3月12日)GL02P用の新ファーム(V3)がリリースされました。
【XperiaZ】大人気!ラスタバナナのXperiaZ(SO-02E用)バンパーケース&バッテリ。 >>

[関連エントリ 最新5]

[Google PR]


[最新エントリ 5]

>>トップページ
人気カテゴリ:AccessTips SQLServer CakePHP iPad
過去ログ(全記事一覧)

コメント
SEO対策をしている中で、canonicalを使った正規化について、調べていてこのページに辿り着きました。

Cake PHPについて詳しくないのですが、phpを使えるサーバーを利用していれば、上記の、「//ビュー」で始まるコードを記述することで、
<link href="http://正規化先URL" rel="canonical" />
が自動で、<head>内に記述されるということなのでしょうか?

また、たとえばindex.phpというファイル自身を正規化したい場合、index.phpファイル内の、どの部分に記述するのが一般的なのでしょうか?

(自分は、<html>タグの前の、1行目に記述しようかと思っていましたが、もし間違っていたら、ご指摘頂けますと助かります。)

よろしくお願い致します。
  • はじめまして
  • 2014/11/02 6:48 AM
>はじめましてさん
CakePHPは、PHPでWebサイトを作成するためのフレームワークです。

さて、canonicalについてのご質問でございますが、
canonical指定は、headセクション内に記述する必要があります。

(参考)
https://support.google.com/webmasters/answer/139066?rd=1#2

ご確認ください。
コメントする(お気軽にどうぞ)









この記事のトラックバックURL
トラックバック
カテゴリー
プロフィール
お問い合わせ
Powered by NINJA TOOLS
links
recent comment
  • 【Access】vbaでhmacが正しく計算できた!!
    まさ (06/01)
  • 【Access】AccessReportMailメール送信時のポートを25から587へ
    わら (05/31)
  • 【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。
    sazi (09/08)
  • 【あまっちゃお】Amazon商品検索「あまっちゃお」プロジェクト始動。Ver00-06-00 β
    カメちゃん (07/31)
  • 【Access】あれ?DoCmd.RunCommand acCmdSaveRecordの内部仕様が変わった?
    花姉 (03/17)
  • 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
    亀 (02/06)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    管理人 (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    あ (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    K (11/13)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    管理人 (08/04)
recent trackback
  • 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
    awgs Foundry (10/29)
  • 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
    XMLがキライ。 (04/09)
  • Vistaから、LinkStation(NAS)にアクセスできません。
    そのほかいろいろ (09/06)