※WordPressのタグが正しく表示されていませんでしたので修正しました。
今朝なんとなくTwitterをみているとロットン(id:lifefucker)さんのあるツイートが目に入ってきました。
マジでファ◯クやな pic.twitter.com/BT9i4Jj87x
— ロットン@はてなブログ (@thelifefucker) 2017年3月15日
URLを見てみるとロットンさんのブログがスパムっぽい感じでインデックスされているようです。
自分のブログがスパムに汚染されいているかのチェック方法と、ブログ別(はてなブログ、WordPress)に対応した方法を紹介します。
怪しいURLがインデックスされているか確認する方法
まずはsite:(自分のブログドメイン)+ロットンさんのツイートに入っている文字列で検索してみると、まったく同じような内容でインデックスされていました・・・。
よく見ると共通点があり、インデックスされているのは検索結果のページのようですのでsite:www.weblog-life.net/search?q=で検索してみると見事に汚染されていました。
Googleに対する対応方法
既にインデックスされてしまったURLはSearch ConsoleのURLの削除で消していきます。
リクエストタイプはいろいろありますが一番上の検索結果からの一時非表示+キャッシュの削除を選びました。
保留中となりますので反映されるまで待ちます。
なお一時的に非表示になるのは90日間ですので、以下の方法でインデックスされないようにしていきます。
参考 URL 削除ツール - Search Console ヘルプ
ブログ別の対応方法
はてなブログ
はてなブログはいろいろと制約が多いのでjavascriptで追加するしかないかなと思っていたところ、以下のめかりるさんの記事にやりたいことが紹介されていましたので使わせていただきました。
コード全体は以下の記事を参照してください。
はてなブログのブログ内検索結果ページだけを "noindex" にするよー - めかりる
ちなみにわたしは以下の1行だけ修正して実装しました。
meta.setAttribute(“content”,“noindex”);
↓
meta.setAttribute(“content”,“noindex,follow”);
GoogleBotにリンク先のページへは辿って欲しいのでfollowを追加してます。
一応検索結果ページをChromeの開発者ツール(mac:command + option +i)でチェックしてみたところコードの挿入は確認できました。
※コードの挿入はPC、スマホ両方入れたほうが良さそうです。
WordPress
WordPressの場合は、function.phpに以下のような記述を追記すれば、検索結果のページにnoindexが入りますので今後はインデックスされないと思います。
function search_page_noindex(){ if (is_search()) { echo '<meta name="robots" content="noindex,follow" />'; } } add_action('wp_head', 'search_page_noindex');
※テーマによっては既に適用されていますので適用前に確認することをお勧めします。(
AFFINGER4はデフォルトでヘッダーテンプレートに処理が入ってました)
Q82019309.comはフィッシングサイトなので注意【追記】
汚染された検索結果に共通している文字列(URL)がQ82019309.comです。
そう言えば何のサイトなんだ?と思いチェックしてみたところフィッシングサイトでした。
VirusTotalでも複数のエンジンで検出されていましたのでアクセスしないほうが良さそうです。このスパムを生成しているbot?はフィッシングサイトに誘導するのが目的なんでしょうね。
最後に
今回はサイト内検索スパムの対応について書きました。
予期せぬところでスパム判定されてたくないので、このような内容はなるべく早く対応したいものです。
参考 ユーザー生成スパムに関するガイドライン - Search Console ヘルプ
※急いで書いたのでおかしなところがあったらご指摘ください・・