特定のディレクトリ配下のコンテンツを、検索結果に表示させないようにする
要件
特定のディレクトリ以下に配置されたHTMLファイルやPDFをGoogle等の検索結果に表示させたくない。
現状は各HTMLファイル毎にメタタグの設定をしているが、今後配置するファイルが設定漏れするリスクがある。また、過去にアップロード済みのファイル(かなりの数)はメタタグが設定されていない。
結論
調べると、だいたい下記の4つのような対策案が見つかるが、
今回の要件的には、3の X-Robots-Tag の設定がベストだと思われる。
1. メタタグをHTMLファイルに設定
やり方
対象ディレクトリ配下のHTMLファイルに下記のメタタグを記述していく。
<meta name="robots" content="noindex">
もっともシンプルな方法。
今回の要件的には、対象ファイルが多いと大変だし、漏れのリスクあり。
PDFには設定できない。
2. robots.txt の設定
下記のrobots.txt
をサーバのルートに設置
User-agent: *
Disallow: /target-path/
target-path
の箇所を対象のディレクトリに合わせて変更
注意点として、サーバのルートに置かなければいけない。
また、公式によると、検索結果に表示させないために使うものではない。とのこと。
サーバの過負荷を軽減したりする目的のときに使用するらしい。
検索結果に説明は表示されないものの、URLは表示されることがある。
3. X-Robots-Tag の設定
下記の.htaccess
を対象ディレクトリへ置く(または追記)
<FilesMatch ".*">
Header set X-Robots-Tag "noindex, nofollow"
</FilesMatch>
今回の要件だとこれを採用。
対象のディレクトリ配下のすべてのファイルに対して、noindex(ついでにnofollowも)追加している。
4. アクセス制限をかける
下記の.htaccess
を対象ディレクトリへ置く(または追記)
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /target-path/.htpasswd
Require valid-user
target-path
の箇所を対象のディレクトリに合わせて変更
htpasswd
コマンドで認証ユーザーを追加
そもそもアクセスするときに認証が必要なので今回の要件的には不採用
まとめ
単一ファイルならメタタグで。
たくさんファイルがある場合、またPDFも含みたい場合は X-Robots-Tag で設定するとよさそう。
以上です。
なにか間違いがありましたら、教えていただけると幸いです。
Discussion