Webサイトやページを公開する際、「検索エンジンにインデックスされたくない」「Googleの検索結果に表示させたくない」といった要望は少なくありません。
この記事では、検索エンジンに対して noindex, nofollow
を指示する全ての主要な方法をまとめて解説します。サーバー構成やコンテンツ種類に応じて適切な手段を選びましょう。
1. robots.txt によるクロール拒否
設定内容
User-agent: *
Disallow: /
解説
- サイトルートに
robots.txt
を設置し、検索エンジン全体に「クロール禁止」を伝える。 Disallow: /
により、全URLがクロール対象から除外されます。- ただし、すでにインデックスされたページは削除されません。
設置場所
/var/www/html/robots.txt
2. HTML メタタグによる noindex 指示
記述方法(HTML <head> 内)
<meta name="robots" content="noindex, nofollow">
解説
- ページ単位で検索エンジンにインデックス拒否を指示。
- クローラーがこのタグを見て、そのページのインデックスとリンクのクロールを止めます。
- ページごとに柔軟に対応可能。
3. HTTP ヘッダーで X-Robots-Tag を付与(Apache)
方法①:.htaccess に直接記述
<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex, nofollow"
</IfModule>
方法②:すでに設定されている値を削除して上書き
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
解説
- サーバー単位またはディレクトリ単位で HTTP レスポンスに noindex 指示を加える方法。
.htaccess
に設定することで、HTMLを編集せずに制御可能。- 特定ファイル形式(PDFなど)にも適用できる。
4. Nginx で X-Robots-Tag を設定する場合
サーバー設定例(nginx.conf またはバーチャルホスト定義)
location / {
add_header X-Robots-Tag "noindex, nofollow";
}
解説
- Apache では
.htaccess
、Nginx ではadd_header
を使用。 - HTML以外のファイル(例:PDF)にも適用可能。
5. PHP やアプリ側でレスポンスにヘッダーを追加
PHPでの例
header("X-Robots-Tag: noindex, nofollow");
解説
- アプリケーションレイヤーから動的に制御したい場合に有効。
- ログインページや会員制ページなどで柔軟に対応可能。
6. 特定のファイル形式(PDFなど)にも適用可能
Apache の .htaccess でPDFファイルだけに設定する例
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</FilesMatch>
7. WordPressなどCMSの場合
- 多くのSEO系プラグイン(All in One SEO Pack、Yoast SEOなど)でページ単位に noindex 設定が可能。
- カスタム投稿やアーカイブページごとに制御できるため便利。
まとめ
方法 | 適用範囲 | 柔軟性 | 備考 |
---|---|---|---|
robots.txt | サイト全体 | △ | 過去のインデックスには効果なし |
HTMLメタタグ | ページ単位 | ◎ | ページごとに設定可能 |
.htaccess / Nginx | サーバー単位 | ○ | HTML以外のファイルも可 |
PHP / アプリコード | 動的ページ | ◎ | アプリ層での制御 |
WordPressプラグイン | CMS全体 | ◎ | 非公開記事などに便利 |
検索エンジンのインデックスを完全に防ぐには、robots.txt
だけに頼らず、HTTPヘッダーやメタタグとの併用が重要です。
公開範囲を限定したいページやファイルがある場合は、適切な場所で noindex, nofollow を設定し、安全な運用を心がけましょう。
コメント