ある日、スパム攻撃されたブログ内検索結果が、Google さんに大量にインデックスされるという事件がおきまして。
Google Search Console から「 URL の削除」と、この JavaScript の設置で、なんとかこの件は落ち着きそうです。
つまり、やっぱり( Google の)検索結果に(このブログの)検索結果なんてなくてもいいよね、ってことで、バッサリいこうと。はてなブログさんには困ったもんで、robots.txt も .htaccess も編集できないんですよね。では、どうするか。
ということで、ブログ内検索結果ページのパラメータに反応して meta タグを追加する JavaScript を挿入することに。
ブログ内検索結果ページに "noindex" を追加する JavaScript
はい。
<!-- NoindexesSearchthisBlog --> <script type="text/javascript"> <!-- var doc = document; var parameter = location.search; var q = /q=.*/i; if (q.test(parameter)) { var head = doc.getElementsByTagName("head")[0]; var meta = doc.createElement("meta"); meta.setAttribute("name","robots"); meta.setAttribute("content","noindex"); head.appendChild(meta); } // --> </script>
簡単なソースの簡単な解説
- 「 location.search 」で URL のパラメータ部分を取得
- はてなブログの検索結果ページの場合、「 ?q=~~~ 」にあたります。
- 「 RegExp.test 」は、取得したパラメータ部分に「 q= 」を含むかを検索
- 「 q= 」を含むパラメータがあった場合にのみ、head タグ内に、「Google さん、インデックスしないでね」タグを追加
「 test 」の記述箇所を間違ってて、「???」ってなってた。
3/17 追記
理屈の上でも現実でも、ここに follow を記述する必要はありません。これらの属性は、例外の場合に記述するものなので。nofollow は記述してもいいかもしれません。
記述場所
- 「ダッシュボード」 -> 「デザイン」 -> 「カスタマイズ」 -> 「フッタ」
JavaScript の動作中は、ページの読み込みが止まりますので、なるべく後ろに記述します。Googlebot さんは、head タグへの後書きの記述も勘案しますので、問題ありません。
挙動の確認
ブラウザ付属の開発者ツールでパラメータのあるページとないページとで meta タグが追加されたかどうかをチェックします。
Windows で、Vivaldi を含めた Google Chrome 系のブラウザであれば、「 F12 」か「 Ctrl + Shift + I 」で開くアレです。
- パラメータに「 q= 」があると "noindex" がある
- ないと、ない
よくできました。
まとめ
このタイプのスパムは、遅かれ早かれ、Google さんがなんとかするだろうと思ってはいますが。後顧の憂いを断つ意味でも。
あ。もし、Google Search Console で「 URL パラメータ」を編集して、「クロールしない」にしている場合は、「リセット」してください。クロールしてくれなきゃ、Googlebot さんが "noindex" を見てくれないので。
これで、安心! できたら、いーなー。
利用しようと思われた奇特な方は、ぜひ感想などいただきたく。
Q and A
ここまでに書いたことではありますが、改めて。
- いつから効くのか -> "noindex" を追加する JavaScript の設置直後から
- いつ スパム URL がなくなるのか -> ???
Google 検索に露出するスパム URL のキャッシュのタイムスタンプは、設置以前のものと思います。これらは Javascript が効力を発揮する前のものです。
この Javascript は、設置以降 Google にインデックスされなくなるというものです。Javascript の設置によって、Google にインデックスされるスパム URL の総数の「増加」が止まります。
それまでにインデックスされたスパム URL は、Search Console からの「 URL の削除」か再クローリングされない限り、なくなりません。
現在、露出していないスパム URL が、今後、露出することがあります。これらは、再クローリングされるのを待つよりも、当然のことながら、ちまちまと「 URL の削除」をした方が早く消えます。
JavaScript の設置後にキャッシュされたスパム URL が Google 検索に露出した場合、このエントリーは再考する必要があります。ご連絡ください。