WordPressのアクセスログで見るクローラーと攻撃botの違い|見分け方を実例で解説【Security Log #23】

最近、サーバーログを見ていて気づいたことがあります。

以前に比べて、明らかにクローラーの種類が増えてきました。

検索エンジンだけでなく、AI系、SNS系、SEOツールなど、さまざまなボットが継続的にアクセスしています。

サイトが少しずつ認知されてきた影響なのか、アクセスログの内容も変わってきました。

一方で、ログにはクローラーだけでなく、スキャンや攻撃と思われるアクセスも混ざっています。

見た目が似ているため、「これは正常なクローラーなのか?それとも不審なアクセスなのか?」と迷う場面も少なくありません。

この記事では、実際のアクセスログをもとに、WordPressサイトに来るクローラーの種類と、その見分け方を整理します。

クローラーとは何か

クローラーとは、Webページを自動で巡回し、情報を収集するプログラムのことです。

主な目的は以下の通りです。

  • 検索エンジンのインデックス作成
  • AIの学習・参照
  • SNSのリンクプレビュー生成
  • SEOツールによるサイト分析
  • 脆弱性の調査

現在では、検索エンジン以外にも多くのサービスがクローラーを利用しており、アクセスログには様々な種類のボットが記録されます。


WordPressに来る主なクローラーの種類

検索エンジン系

代表的なものはGoogleやBingのクローラーです。

これらは検索結果に表示するためにページを巡回します。

特徴としては、広範囲のページを定期的にクロールし、比較的安定したアクセス頻度を持ちます。

実際のログ例

GET /wordpress-admin-api-scan/ HTTP/1.1
User-Agent: Googlebot/2.1

このように記事ページへ直接アクセスしており、検索エンジンのインデックス作成を目的としたクロールです。

ページ内容を取得し、検索結果に反映するための通常の挙動といえます。

AI系クローラー

最近増えているのがAI関連のクローラーです。

例えば、OpenAIのChatGPTbotなどがあります。

これらは以下のような目的でアクセスします。

  • コンテンツの収集
  • AIの学習データ取得
  • 検索・推薦アルゴリズムの改善

実際のログでは、記事ページを取得したあとにCSSなどのリソースも読み込むなど、ブラウザに近い挙動をすることがあります。

実際のログ例

GET /robots.txt HTTP/2.0
User-Agent: OAI-SearchBot/1.3

まず robots.txt を確認するのは、クロール可能な範囲を把握するための基本的な動きです。

AIによるコンテンツ収集や検索機能のためのクロールと考えられます。

SEOツール系クローラー

SEO分析ツールも独自のクローラーを持っています。

代表的なのが、AhrefsのAhrefsBotです。

主な目的は以下の通りです。

  • 被リンクの収集
  • コンテンツの評価
  • サイト構造の解析

これらは検索順位には直接影響しませんが、第三者による分析に使われるデータを収集しています。

実際のログ例

GET /wordpress-ssrf-internal-scan/ HTTP/2.0
User-Agent: AhrefsBot/7.0

このように、特定の記事ページを直接取得する形でアクセスしており、コンテンツの分析を目的としたクロールであると考えられます。

SNS系クローラー

SNSのクローラーは少し性質が異なります。

Metaのクローラー(facebookexternalhitなど)は、リンクが共有された際にページ情報を取得します。

主に以下を取得します。

  • タイトル
  • ディスクリプション
  • OGP画像

検索や分析ではなく、表示用データの取得が目的です。

実際のログ例

GET /wordpress-ssrf-basic/ HTTP/2.0
User-Agent: meta-externalagent/1.1

特定の記事ページを取得しており、SNS上でリンクが共有された際の表示(OGP情報)を生成するためのアクセスです。

検索や分析ではなく、プレビュー表示用のデータ取得が目的です。

セキュリティ系クローラー

クローラーの中には、検索やAIとは異なり、脆弱性の調査を目的としたものも存在します。

いわゆるセキュリティ系クローラーです。

これらは以下のような目的でアクセスします。

  • インターネット上の脆弱なサイトの調査
  • 既知の脆弱性のスキャン
  • セキュリティリサーチや統計データの収集

一見すると攻撃のように見える挙動をするのが特徴です。

そのため、通常のクローラーや攻撃ボットとの区別が難しい場合があります。

※セキュリティ系クローラーには、セキュリティ企業だけでなく、研究機関やリサーチャーによるものも含まれます。

実際に確認されたスキャンの具体例については、以下の記事で詳しく紹介しています。

WordPress公開直後に来た「/.git/config」スキャン


クローラーと攻撃botの違い

ログを見ていると、クローラーと攻撃botは一見似ていますが、実際には挙動が大きく異なります。

正常なクローラーの特徴

  • User-Agentが明確に名乗られている
  • 記事ページやリソースを順番に取得する
  • 不自然なURLにアクセスしない

攻撃・スキャンの特徴

  • User-Agentが不自然、または偽装されている
  • 短時間に大量アクセスする
  • 以下のようなURLを狙う
/wp-login.php
/xmlrpc.php
/.env
/.git/config
/wp-admin/setup-config.php

これらは明確に探索や侵入を目的とした動きです。

実際のログ例

POST /xmlrpc.php HTTP/1.1
User-Agent: Jetpack/12.0; WordPress/6.2; http://sitexxx.com

一見するとWordPress公式プラグイン(Jetpack)による通信のように見えますが、実際には外部サイトを名乗ったアクセスです。

XML-RPCはブルートフォース攻撃などに悪用されることが多く、このようなリクエストはスキャンや攻撃の一部である可能性があります。

実際にログに記録される攻撃の例については、以下の記事でも詳しく解説しています。

WordPress公開直後に来たxmlrpc.php POSTリクエスト
WordPressの「/wp-login.php」スキャンとは
WordPressの /setup-config.php を探すBotアクセス


クローラーはブロックすべきか

クローラーへの対応は、目的によって変わります。

基本方針

  • 検索エンジン → 許可
  • SNS → 許可
  • AI系 → 方針次第
  • SEOツール → 必要に応じて制限

robots.txtでの制御例

User-agent: AhrefsBot
Disallow: /

特定のクローラーのみブロックすることも可能です。

WordPressのアクセス制御については、以下の記事も参考になります。

WordPressに海外IPアドレスからアクセスが来る理由|すべてブロックすべきなのか

.htaccessによる制御について

特定のクローラーや不審なアクセスは、.htaccessを使って制限することも可能です。

User-AgentやIPアドレスをもとにアクセスをブロックすることで、不要なクロールや負荷を軽減できます。

ただし、User-Agentは偽装されることも多いため、過信はできません。

また、検索エンジンなどの正規クローラーを誤ってブロックしないよう注意が必要です。


クローラーが増える理由

サイト開設初期はほとんどアクセスがありませんが、徐々に以下の変化が起きます。

  • 検索エンジンに認識される
  • 外部リンクが増える
  • AIボットやツールに拾われる

その結果、クローラーの種類と頻度が増えていきます。

今回のように複数のクローラーが来ている状態は、サイトがインターネット上で認識され始めたサインとも言えます。


WordPressのセキュリティやログ解析については、以下の記事もあわせてご覧ください。

WordPressのセキュリティ対策は何からやるべきか│初心者向けに最低限の設定を解説
WordPressでユーザー名がバレる理由と対策|ユーザー列挙攻撃をログから解説
WordPress公開直後にBotアクセス|favicon取得から分かるスキャンの特徴


まとめ

WordPressのアクセスログには、様々なクローラーが記録されます。

  • 検索エンジン
  • AI
  • SEOツール
  • セキュリティ系
  • SNS

それぞれ目的が異なり、挙動にも違いがあります。

また、攻撃アクセスと見分けるためには、URLや挙動のパターンを見ることが重要です。

ログを継続的に観察することで、正常なアクセスと不審なアクセスの違いが自然と分かるようになります。


このブログの運営環境

  • WordPress
  • GeneratePress
  • エックスサーバー