クローキングとは

クローキング(Cloaking)とは、ウェブページにアクセスしてくる対象の種類によって、表示する内容を変えること。

クローキングで言う、アクセスしてくる対象の種類とは、人間だけでなく、プログラムそのものによるアクセスも含まれる。このプログラムの方は、大抵検索エンジンでロボットと言われるものを指す場合が多い。しかし、ウェブページを巡回するプログラムは知識があれば、誰でも作れる。特に珍しいものでもない。

クローキングは本来、その技術に問題があるわけではない。訪問してくる相手によって内容を変えるのは、ホームページ管理者の自由である。「htaccess」を使って、ユーザーエージェントで振り分けても、IPアドレスもしくはその特定範囲を指定して、君こっち、貴方はあっち、といういう風に、相手によって色々変更しても別に悪いことではない。

では、なぜ問題になるのか。それは、ウェブページの内容から順位付けしている検索エンジンなどは、その順位を正しく測定できなくなるからだ。でたらめな順位付けがされると、その検索エンジンの価値は下がる。これが営利企業となれば、抱えている人員に対しても悪影響が出てくる。そして、存続が危ぶまれることになる訳だ。

つまり、検索エンジンから高く評価されたい場合は、クローキングをすると、順位が下がるよ、というだけの話である。もちろん、その順位が生活を左右するほど影響を受ける人にとっては、クローキングによる下落は大問題である。いわゆる正しいSEOが必要となる。一方、個人の趣味でウェブページを作成していて、それを見るのが友達とか限られた人だけの場合は、Aさんはあっち、Bさんはこっち、という具合にクローキングしても別に問題はない。

ただ、ホームページをこんな使い方をして、クローキングしてる人は見かけたことがない。普通はBasic認証とかかけて、他人は閲覧できないようにログイン画面を表示したりするだろう。多分。

クローキングとよく似ているが、実際はクローキングに該当しない、というケースも存在する。例えば、スマホでは画面が小さいため、デフォルトでは非表示にして、デスクトップではそれを表示するといった形態。また、javascriptなど、クライアントサイドで動作するスクリプトを使い、何らかの簡単なイベントによってコンテンツが自動で切り替えられるタイプもある。後者は、サーチエンジンにもよるが、javascriptを実行してもイベントを発生させないため。

ただ、URLにパラメーターがついていて、アドレスがロボットに発見され、そのアドレスの先にjavascriptのイベントを発生させるプログラムを組んでいる場合は、ロボットでもイベントを発生させるようだ。

いずれにせよ、何がクローキングになって、どういったものがクローキングではない、とするのかはサーチエンジンの解釈によって異なる。また、時代の変遷と共に、クローキングの定義が変わる可能性も十分にある。今は大丈夫なクローキングでも未来ではアウトになることだって、あり得る訳だ。

クローキングの意味を簡潔に説明すると

ロボットと人間に別々のコンテンツを表示すること。