【WordPress】中国語のサイト内検索結果ページがインデックスされる

先日、当サイトのインデックス状況を確認してみたところ、以下のような、中国語のタイトルの見知らぬページがインデックスされていました。

中国語のサイト内検索結果ページ画像

クリックしてページを開いて見ると、以下のように、検索ボックスに中国語サイトのURLのようなものが記載されていました。

中国語のサイト内検索結果ページの中身

どうやら、当サイト内に設置していたサイト内検索用の検索ボックスに上記中国語のURLを入力し、検索した結果のページが自動的に生成され、それをGoogleにインデックスされてしまったようです。

中国語のURLは、「.com.com」となっていますが、これはこちらの記載ミスではなく、もとからこのようになっていました。

おそらく、機械的に一斉に入力したため、このようなミスが起こったのではないかと思います。

こうした検索結果ページを大量にに生成し、インデックスさせ、自サイトの宣伝を行う意図なのでしょうか。

理由は定かではありませんが、このまま放置していてもこのページ1ページだけなので、問題は無いのかもしれませんが、中身のない無駄なスパムページですので、やはり、良い気はしません。

それに、同じようなスパムとしてのサイト内検索結果ページが、今後もインデックスされてしまいかねませんので、何とか対処する必要があります。

インデックスされてしまったサイト内検索結果ページへの対処

まず、当サイト、ウィジェット内に設置していたサイト内検索ボックスをサイト内から削除しました。

ユーザーの利便性という観点から言えば、検索ボックスを設置しておいた方が親切なのかもしれませんが、実際、あまり利用している方も少ないだろうという判断の元、削除することにしました。

しかし、実際のところ、検索ボックスを利用しなくても、以下のように、サイトのURLの後に、「?s=」を付けて検索すれば、今回と同様な検索結果ページが生成され、インデックスされる可能性はあります。

http://example.com/?s=検索語句

今回の、中国語サイトのスパムも、わざわざページを開いて検索ボックスから入力したのではなく、「?s=」を付けて検索したものと思われます。

こうしたスパムは機械的な作業なので、この方が、大量に生成するには適しているからです。

検索結果ページをインデックスされないようにする

それはさておき、冒頭のすでにインデックスされてしまったスパムの検索結果ページをインデックスされないようにしなければなりません。

今回、適用したのは、下記のように、サイト内検索結果ページのみ、「noindex」タグを記述する方法です。

<?php if(is_search()): ?>
<meta name="robots" content="noindex">
<?php endif; ?>

「is_search」、つまり検索結果ページに対してのみ、noindexタグを吐き出すようにします。

これをWordPressテーマのヘッダー(header.php)の<head>~</head>内の任意の場所に記述します。

実際に冒頭の中国語のスパムページのソースを表示させ確認したところ、noindexタグが記述されていることを確認しました。

これで、しばらくすれば、Googleのインデックスから除外されるものと思われます。

また、今後もし、同様のスパム行為をされて、検索結果ページが生成されても、noindexタグが自動的に記述されますので、インデックスは防げると思います。

以上、中国語のサイト内検索結果ページがインデックスされた場合の対処方法についてまとめてみました。

今回、1ページのみがインデックスされていただけですが、知らない間に、大量にこうしたスパムの検索結果ページがインデックスされてしまわないように、こまめなチェックと早めの対策が重要ではないかと思います。