パソコン情報

WordPressのサイト内検索がスパムを受けている!?

GoogleSearchConsoleから通知

ある日突然GoogleSearchConsoleから下記の様な通知がきました。

何これ!?ってことで、「インデックスレポートを開く」ボタンをクリックして、ページのインデックス登録ができなかったというレポートに移動すると

ココに注意

大量の得体の知れないリンク先がありました!

ちなみにこのリンクをだどって見ると、

 

 

検索窓を削除して対策

そもそもの検索機能を削除すれば問題解決するんじゃないかと思いウィジェットから検索窓を消してみました。

訳の分からないスパムのURLで試した結果、

ココがダメ

検索結果0件で表示されてしまいました!

 

検索窓はサイトに表示されてなくても、直接URLを打ち込むと0件で表示されてしまうので、仕方なく次のコードを 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' );

 

これで完全にページ検索されなくなったようです。

GoogleSearchConsoleには、クロールの検証を依頼しました。

これで解決できればいいのですが・・・。

 

新たな検索窓のプラグイン設置

やっぱり検索窓が無いと色々と不便です。

そこで、検索窓プラグインを探しました。

ココに注意

デフォルトの検索機能を使っているプラグインが多いのか?

検索機能がうまく動きません。

ここ2時間くらい様々なプラグインを試してみてやっと見つけたのが、「Ajax Search Lite」になります。

ちょっと設定がメンドクサイ感じでしたが、下記の参考サイトをみて設定しました。

 

Ajaxを使っているので、検索すると、検索窓の下に、候補が出現しました。

この検索窓プラグインなら、デフォルトの検索機能は使用して無いようなので、大丈夫じゃないかと思います。

しばらくこれで、GoogleSearchConsoleの様子を見てみようと思います。