はじめに
こんにちは。HRBrainでオウンドメディア・ランディングページの開発を担当している渡邉です。
先日、Netlifyでホスティングしている特定のPDFファイルを検索エンジンのインデックスから除外したい、という依頼を受けました。
通常、HTMLファイルであれば、以下のようにmetaタグを設置することで簡単にnoindexに設定できます。
<meta name="robots" content="noindex">
しかし、PDFファイルにはmetaタグを設置することができません。
そこでこの記事では、Netlifyで特定のページやリソース(PDF、動画、画像など)をmetaタグを使わずにnoindexに設定する方法を紹介します。
レスポンスヘッダーのX-Robots-Tagでnoindexを設定する
結論から言うと、X-Robots-Tagというカスタムヘッダーを指定することで、この問題を解決できます。
X-Robots-Tag: noindex
X-Robots-Tagは、HTTPレスポンスヘッダーに設定することで、検索エンジンに対するインデックス指示を行うためのものです。
これを使うことで、metaタグによるnoindex設定と同様に、ページやリソースを検索エンジンのインデックスから除外することができます。
実は、この方法はGoogleの公式ドキュメントでも紹介されています。
ちなみに、Netlifyのdeploy-preview環境が検索エンジンにインデックスされないのは、deploy-preview環境に対してx-robots-tag: noindex
がデフォルトで設定されているためです。
netlify.tomlでの設定方法
Netlifyで特定のディレクトリやファイルにX-Robots-Tagを設定するには、netlify.tomlファイルを使用します。
手順1: netlify.tomlファイルの作成
プロジェクトのルートディレクトリにnetlify.tomlという名前のファイルを作成します。
手順2: HTTPレスポンスヘッダーの設定
netlify.tomlにカスタムヘッダーを設定するためのセクションを追加します。
以下のように記述することで、特定のディレクトリやファイルにX-Robots-Tag: noindex
を指定できます。
[[headers]]
path = "/hoge/*"
[headers.values]
X-Robots-Tag = "noindex"
[[headers]]
path = "/fuga/sensitive-file.pdf"
[headers.values]
X-Robots-Tag = "noindex"
上記の設定では、/hoge/
ディレクトリ内のすべてのファイルと、/fuga/sensitive-file.pdf
という特定のファイルにnoindexが適用されます。
手順3: デプロイ
設定が完了したら、netlify.tomlを保存してNetlifyにデプロイします。
指定したリソースにアクセスすると、ヘッダー情報にX-Robots-Tag: noindex
が適用されていることが分かります。
これにより、検索エンジンのインデックスから除外されます。
もし、すでにページやファイルがGoogleにインデックスされている場合は、Google Search ConsoleからURLの削除を行なってください。
まとめ
X-Robots-Tagというカスタムヘッダーを設定することで、Netlifyにホスティングした特定のページやリソースをnoindexに設定することが可能です。
検索エンジンに対して特定のコンテンツをインデックスしないように指示でき、SEO対策やコンテンツ管理で役に立ちます。
実装する際の参考にしてください。
PR
HRBrainではフロントエンドエンジニア(コミュニケーションデザイン)の採用も行なっているのでぜひ!