■■noindexを.htaccessでヘッダ情報に追加する方法

※当サイトにはプロモーションが含まれています。

クライアントクライアント

問い合わせページが、Googleにインデックスされているから、インデックスされないようにして欲しいんだけど・・・


にゃテックにゃテック

noindexを追加すればいいにゃ。
あれ、headerを外部ファイルから読み込んでいるから、header情報を追加できないにゃ


お問い合わせページや、プライバシーポリシーなどのページは、Googleにインデックスさせないようにするには、<head>タグ内に、

<meta name="robots" content="noindex">

を記載する方法が一般的だと思います。

しかし、機密保持などの関係で、HTMLやPHPファイルを一切触ることができなかった為、.htaccessファイルでヘッダ情報を追加することにしました。

その備忘録です。

Apacheでmod_headersモジュールを読み込んでいるかを確認

前提として、WebサーバーはApacheです。

また、mod_headersモジュールが無効になっている場合、ヘッダを設定する事ができません。

その為、mod_headersモジュールが有効になっているかを確認する際には、次のコマンドを使用します。

apachectl -M

または、

httpd -M

このコマンドは、ロードされているすべてのApacheモジュールの一覧を表示してくれます。

その為、出力結果の中から、headers_module (または mod_headers.c) を探して、これがリストに存在すれば、mod_headersモジュールが有効になっています。

なお、上記のコマンドは、管理者権限があるサーバーでないと実行できないと思いますので、確認できないようであれば、レンタルしているサーバー会社に問い合わせてみましょう。

2024年4月現在、さくらインターネットのスタンダードプランは、mod_headersモジュールが有効になっていました。

さくらインターネットからの回答

noindexのヘッダ情報を追加する.htaccess

URLが、/contact に完全一致する場合に X-Robots-Tagヘッダを追加して、そのページをインデックスから除外する.htaccessです。

<If "%{REQUEST_URI} =~ m#^/contact$#">
Header set X-Robots-Tag "noindex"
</If>

リンクを辿ることも防ぎたい場合は、followを追加します。

<If "%{REQUEST_URI} =~ m#^/contact$#">
Header set X-Robots-Tag "noindex, nofollow"
</If>

なお、ヘッダ情報に、canonicalリンクを追加したい場合は、

<If "%{REQUEST_URI} =~ m#^/contact$#">
Header set Link '<https://www.example.com/contact>; rel="canonical"'
</If>

と記載することで、ヘッダ情報にcanonicalリンクを追加できます。

※上記3つの例は、お問い合わせページ(contact)だと仮定しています。

補足:X-Robots-Tagとは?

HTTPヘッダーで使用されるタグで、検索エンジンにページやファイルのインデックス登録の可否やクローリングの指示を伝えるために使われます。

HTML内の<meta name=”robots”>タグと同様の役割を持ちますが、HTMLにアクセスしなくてもヘッダーで設定できる点が特徴です。

特に、PDFや画像などHTML以外のリソースの制御に便利で、SEO管理やセキュリティのために活用されます。

以上、noindexのヘッダ情報を.htaccessで追加する方法でした。