結論
あるURLを知っている人だけが見れる共有機能を作るときには、noindex
ディレクティブを使用すべき。そうしないとGoogle検索等の結果に表示されてしまい、URLを通じた限定共有機能として意味をなさなくなる。
noindex
ディレクティブ
noindex
ディレクティブはGoogle等の検索エンジンに対して、検索結果に表示しなように指示する仕組み。HTMLファイルなら以下のようにヘッダに記載できる。
<meta name="robots" content="noindex nofollow">
それ以外のファイルでもHTTPヘッダに以下のように記載できる。
X-Robots-Tag: noindex, nofollow
noindex
はそのファイルを検索結果に表示しないことを指示する、nofollow
はそのファイル内にあるリンク先をたどらないことを指示する。基本的にこの二つを書いておけば良い。
robots.txt
との違い
noindex
ディレクティブはrobots.txt
とよく似た機能を持っているが、目的が異なる。robots.txt
は無駄なコンテンツがクロールされてサイトの質が低く評価されたり、多くのリクエストが飛んでサーバに負荷がかかるのを防ぐための仕組みである。Googleも「robots.txt
を検索結果に表示させない目的で使用するな。その場合noindex
を使え。」と言っている。
Trello流出事故
すでに結構前の話だが、Trelloというタスク管理サービスにおいて、社内の内部情報と見られる情報がGoogle検索することで表示されてしまうという事故があった。これは言うなれば、インターネット上のサービスには同じ公開共有の仕組みでもnoindex
ディレクティブを使用した公開と使用しない公開の2種類があるという認識がユーザになかったことに起因すると思われる。ユーザはTrelloの公開設定をたとえばGoogle DriveのURL共有と同じモノだと考えたのだろう。実際URLを打ち込めば誰でもアクセスできるという点は同じである。しかしGoogle DriveのURL共有はnoindex
という検索結果に表示させない仕組みを利用しているが、Trelloはそういうモノではなかった、その認識がなかったために起きた事故なんじゃないかと思う。(調査はしてないので間違っているかも。)