サイトが重複コンテンツに対する耐性を備えているかチェックしているのか
それとも積極的に重複コンテンツをインデックスしようとしているのか
googlebotがWebサーバに残したログで興味深いものが以前からあり、
先ほど立て続けに2種類の不自然なクロールが記録されたのでブログ記事にして公開することにした。
同じスラッグでカテゴリ違いのURLにアクセス
ログの内容
以下のログをgooglebotがしばしば残すことがある。
66.249.69.38 dim5.net dim5.net - - [20/Aug/2014:22:22:32 +0900] "GET /wordpress/unlink-element.html HTTP/1.1" 301 26 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 66.249.69.38 dim5.net dim5.net - - [20/Aug/2014:22:22:33 +0900] "GET /cakephp/unlink-element.html HTTP/1.1" 200 7775 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
正規のURLは、
dim5.net/cakephp/unlink-element.html
になり、
cakephp
の部分がブログのカテゴリ名になるようにパーマリンク設定をしてあるのだが、どういうわけかgooglebotが
dim5.net/wordpress/unlink-element.html
wordpress + スラッグ名
というURLを勝手に構築してログを残すことがある。
上のログでも確認できるように、WordPressの設定により、正規のURLにリダイレクトされるので、重複コンテンツがインデックスされることは無いが、クローラビリティ的に良くない可能性があるので、
要注意事項
としている。
似たようなログを確認しているサイト管理者の方やブロガーの方がいたらコメント欄から連絡して頂きたい。
ページキャッシュの設定によっては重複コンテンツが生成される可能性があるログ
サイトのパフォーマンス向上のためにページ単位のキャッシュを行っている場合に、上のログが記録されるWebクロールが行われると、重複コンテンツがインデックスされる可能性がある。
具体的には、
- 301転送元のURLにgooglebotがアクセス
- 転送先にリダイレクト
- 転送元URLで転送先のページキャッシュを残す
上の順序でリダイレクト処理を行っていると、2回目以降の転送元URLのアクセスでページキャッシュが効く関係上、HTTPステータスコード200がレスポンスされるため、転送元URLでインデックスされ正規のURLと重複コンテンツが生成されるという結果に陥る。
このような結果にならないように、ページキャッシュの処理にPHPの
http_response_code()
を利用してステータスコードが200の場合のみページキャッシュを生成するようにコーディングしておくのがおすすめ。
GET引数を勝手に付加したログ
以下のログは正規のURLにGET引数を追加してgooglebotがアクセスしたログになる。
66.249.69.54 dim5.net dim5.net - - [20/Aug/2014:22:52:53 +0900] "GET /wordpress/new-wp-admin-css-color.html?replytocom=962 HTTP/1.1" 200 10596 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Webエンジニアブログの場合は、
canonical属性
をHTMLのhead領域に設定してあるので、ランダムなGET引数を追加してクロールされても重複コンテンツがインデックスされることは基本的に無いと考えているが、このようなログが頻繁に残るようだと
要注意事項
と判断せざるを得ない。
上のログにより実際に重複コンテンツが多数インデックスされてしまったブログ管理者は存在するようで、
「wordpress replytocom」
でWeb検索してみると、公式フォーラムなどで質問している人がいる模様。
まとめ
googlebotが外部のリンクを読んでアクセスしている可能性があるが、この手の不自然な事例についてはこれからもブログ記事にしていく。
ワードプレスのパーマリンク設定については、冒頭載せたような不自然なログを残させないために、カテゴリ名をURLから排除し、スラッグ名だけにするのがおすすめかなと考えているところ。