こんにちは。今自分は業務で使うWebシステムを担当しています。
このシステムは外からスマホなどでアクセスできることが売りなので、インターネットに公開しています。ただ、一般ユーザーの目に入らないように、Googleなどの検索の結果には表示させないようにする必要があります。
自分がこのシステムを担当してから数年が経った時、一般ユーザーにバレていることが発覚し、小さな問題が発生しました。検索対策を施したはずのシステムがGoogle検索の結果に表示されているのです。
誤った対策
社内で面白いものを見つけました。それは、僕が担当になるずっと前のとある時期に、このシステムが検索結果に表示されていた時の対策報告資料でした。
中身を見ると、検索結果に表示されてしまったのはrobots.txt
の設定ミスと書かれており、正しくは以下のように修正する、と書かれていました。
User-agent: *
Disallow: /
そして今後の対策として、「robots.txt
の修正後が反映されるまでYahoo, Google, Bingなどの検索サイトで毎日確認する」といったことが書かれておりました。
さらに、再発防止策として、「robots.txt
の内容を実装者と複数名でダブルチェックをおこなう」とまで記載されていました。
そしてその対策は全く実施できていないということは皆さまご想像された通りでございます。そんな面倒なこと誰もやりません。
その数年後、自分が開発に参加し、小さな問題が発生したことによってこの間違いに気付いたのでした。
誤った対策の結果
確かに、robots.txt
でDisallow: /
を指定すると、クロールがされなくなり、Webページの中身をGoogleなどの検索botが確認することはできなくなります。
ただし! URLは確認できます。そしてそのページが他所からリンクが貼られていたりして注目を集めていた場合、「中身はクロール禁止だが検索合致度が高そうだし、URLは検索結果に表示させよう」と検索結果に表示されるのです。
その時は以下のような文言とともに表示されます。
このページの情報はありません。
詳しい理由
一度くらい見たことがあるかもしれません。小さな問題が発生したときの検索結果にも、この文言とともに、検索結果に表示されていました。逆に怪しいサイトとして悪目立ちしてしまうかもしれません。
正しい対策
Webシステムを検索結果に表示させたくないとき、全てのページのHTMLヘッダー内metaタグを以下のように追加します。
<head>
...
<meta name="robots" content="noindex, nofollow, noarchive">
</head>
- noindex: 検索結果にページを表示しない
- nofollow: ページ内のリンクを辿らせない
- noarchive: キャッシュページを作成させない
そして、検索botにもこの noindex
を見せる 必要があります。
User-agent: *
Allow: / # botに見せる
これによってWebシステムが検索結果に表示されなくなります。
さらに、確認・対策についても、毎日検索してチェックする、のような絶対に続かない対策を立てるのではなくて、Googleが提供しているツール Google Search Consoleで確認しましょう。
プロパティを追加→URLプレフィックス→WebページのURLを入力し、Googleに指定された認証用ファイルをページにアップロードして、確認ボタンを押すと、許可が下りてサイトの状態が表示できます。
サイドバーからインデックス作成→ページを開いて、未登録であることを確認します。
下にスクロールすると、「ページがインデックスに登録されなかった理由」という項目があり、そこで、「noindex タグによって除外されました」という表示が確認出来たら、検索結果に表示されなくなります。
もし、インデックスに登録されている場合は、まず、インデックス作成→非表示から、一時的な非表示をリクエストして速やかに検索結果から消します。
次に、metaタグとrobots.txt
を修正して、インデックス登録をリクエストします。
「noindex タグによって除外されました」という表示が確認出来たら、そのサイトが登録されることは無いでしょう。
細かいことはGoogleの公式文書にあたってみてください。皆様も間違った対策で後世にトラブルの種を残さなきよう。。。
ページ インデックス登録レポート
robots.txt ファイルの制約について
noindex を使用してコンテンツをインデックスから除外する
自身のサイトでホストしているページを Google から非表示にする