nginxで吐き出すヘッダを設定 wp-admin以下の読み込みにnoindexをつける

事の発端は「robots.txt によりブロックされましたが、インデックスに登録しました」とsearch consoleから警告のメールが届いていたことが発端です。どうやらrobots.txtにはインデックスつけるなって書いてあるけど、その下のコンテンツにnoindex書いてないから登録したからなとのこと。

WordPressで/wp-adminのディレクトリをまるごとmetaタグにnoindexに指定したかったのですが、プラグインでも設定できるようですが、これ以上入れるのもなんだかなぁと思っていたところでした。

ヘッダ情報にnoidexを入れてもクローラに対して同じ効果との説明がありましたので、こちらで対応するように・・・

https://developers.google.com/search/reference/robots_meta_tag?hl=ja

PHPだとヘッダ関数で設定はできるのですが、指定したディレクトリ以下全部を設定する設定は手間がかかるので、サーバ側の設定で指定してたディレクトリ以下のアクセスに対してヘッダを付随する方法を取りました。

nginxの任意ヘッダ出力の設定

add_header xxxx “header contents”

nginxの設定ファイルの中にこんな感じで記述するとファイルを読み込んだときに、ヘッダ情報をつけてくれます。

wordpressの管理ディレクトリ以下のphpファイルを読み込まれたときにカスタムheader情報をつける設定です。

location  ~* /wp-login.php|/wp-admin/(.*)\.php$ {
         add_header  X-Robots-Tag "noindex";

自分用のメモ: ignore_invalid_headersのonに設定されてると英数字とハイフン以外は強制的に消されてしまう。この設定をoffにするとやりたい放題でヘッダを付けることが出来ますので注意も必要です。

ignore_invalid_headers off;

http://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers