noindexメタタグが使えないページをインデックスさせない方法とは?
ひとりで頑張るSEO担当者さんの悩みに答える本連載。今回の質問は「noindexメタタグが使えないページをインデックスさせない方法とは?」です。この回答は「X-Robots-Tagを使いましょう」です。
ログイン画面もインデックスさせたくない
今回の相談内容は検索流入を増やしたいのではなく、検索にヒットさせたくないというものです。ペンネーム「ひろぴ」さんが寄せてくださいました。「ひろぴ」さんのサイトはログインしないとコンテンツを見ることができないサイトで、ログイン後のコンテンツについては検索避けができているとのこと。ただし、ログイン画面がインデックスされてしまったという状況で、そのログイン画面も検索避けしたいのだそうです。
ログイン画面をインデックスさせないためにJavaScriptで生成する形にしている(詳しい実装方法は質問に書かれていませんでした)とのことですが、それでもインデックスされてしまったのだそうです。「ひろぴ」さんはJavaScriptでnoindexメタタグを挿入することがGoogle非推奨であることから、それ以外の方法でnoindexを指定する方法を望んでおられます。
X-Robots-Tagを使う
ログインページを生成するJavaScriptをHTMLページに記述したり、HTMLページから外部JavaScriptを呼び出したりしているのであれば、そのHTMLページにnoindexメタタグを書き込んでおけばよいはずです。おそらく、そうはいかない何らかの事情がおありなのでしょう。
となれば、HTTPレスポンスヘッダーにnoindexディレクティブを追加する「X-Robots-Tag」を使用するのがいいでしょう。詳しい設定方法はこのコーナーの過去記事「PDFを検索にヒットしないようにするには?」にあります。JavaScriptを読み込む大元のページにHTTPリクエストがあったとき、HTTPレスポンスヘッダーに「X-Robots-Tag: noindex」を返すようにしておけば、noindexメタタグをページに挿入した場合と同様の効果があります。
外部JavaScriptを呼び出す形であれば、念のため、そのJavaScriptファイルのクロールをrobots.txtで禁止しておくか、またはX-Robots-Tag: noindexを返すようにしておくといいかもしれません。
まとめ
robots.txtによる検索避けはあくまでも「クロールしないでね」という指定であり、「検索結果に出さないでね」という指定ではないため、不完全な形ながら検索結果に表示される可能性があります。
今回の質問のように検索結果に表示させたくない場合にはnoindexディレクティブを使うのがベストプラクティスです。何らかの事情でHTML内にnoindexメタタグを書き込めない場合には、HTTPレスポンスヘッダーでX-Robots-Tagを返すことで「インデックスせず検索結果にも出さないでね」という指定をすることができます。
P.S.
本コーナーでは、読者の質問にお答えしています。誰にも聞けずに困っていること、現場で感じるふとした疑問など、どしどし質問をお寄せください。
ソーシャルもやってます!