WordPress サイト内検索を利用したスパムの対策方法

WordPress でサイト内検索を利用したスパムの対策方法を紹介します。
Google Search Console での確認・対処方法や、WordPress で行える対策を紹介します。

  1. サイト内検索を利用したスパムについて
  2. WordPress でサイト内検索スパムを対策する方法
  3. Google Search Console での対処方法

サイト内検索を利用したスパムについて

まずはじめに、サイト内検索を利用したスパムについておさらいします。
サイト内検索を利用したスパムは、ウェブサイト内の検索機能(検索フォーム)を悪用して、不要な広告や詐欺的なコンテンツを表示しようとする行為のことです。

具体的にこういったスパムの被害にあってしまうと、ウェブサイトで本来の検索結果には含まれていない広告や、偽の情報が表示されることがあります。これは、サイトの管理者が意図して配置したものではなく、悪意を持った第三者が行い、サイト内検索を悪用して不正に表示させる試みを指します。

スパムの対象になっているかを確認する方法

サイトがスパムの対象になったかを確認する方法はいくつか存在します。
例えば、Googleでキーワード検索して表示された検索結果に、作った覚えのないページが検索結果に表示されたり、Google Search Console で「ページのインデックス登録」の「ページがインデックスされなかった理由」などから、スパムの標的になったことを確認することができます。

WordPress でサイト内検索スパムを対策する方法

WordPressを5.7以上にアップデートする

WordPressサイトの場合、WordPress 5.7 以降のバージョンには、こういったスパムに備えて、検索結果ページにあらかじめ no-index が表示されるように設定されています。アップデートが可能な環境であれば、アップデートを検討してください。

検索機能を無効化

サイト内検索を利用したスパムは、検索結果ページを利用するので、検索結果ページを無効化することでも対応が可能です。
たとえば WordPress の検索機能を使用していない場合は、次のコードを function.php に追加することで、検索機能を無効化することができます。

/*【検索機能】サイト内検索を無効化 */
function disable_site_search( $query ) {
if(is_search()){ // 検索結果ページで以下の処理を実行
$query->set_404(); // 404ページへリダイレクト
status_header(404); // ステータスコードを変更
nocache_headers(); // ブラウザのキャッシュを無効
}
}
add_filter( 'parse_query', 'disable_site_search' );

このコードでは、検索結果ページが表示されると404ページへリダイレクトを実行。リダイレクト処理のみでは404ページとはみなされないため、ステータスを404へ変更。併せてインデックスされないためにキャッシュを無効化する処理を実行しています。

サイト内検索を利用したい場合

検索機能を利用したい場合は、違う対処方法が必要になります。たとえば、検索に利用される「?s=」を任意の文字に変更することで、スパムの対象にならないようにする方法や、サイト内にGoogle検索を導入することで対応することも可能です。

Google Search Console での対処方法

Google Search Console での対処方法は、スパムの対象になってしまった後の対処方法になります。

対象のアドレスを削除

サーチコンソールの削除からスパムのアドレスを指定して削除します。
また、スパムの数が多い場合に、スパムのアドレスに類似性があれば、類似部分を指定することで対象範囲を広げて指定することもできます。
ただし、削除したものを元に戻すことは難しいので、削除申請は注意を払って作業してください。

まとめ

WordPress でサイト内検索を利用したスパムの対策方法を紹介しました。