ウェブ全体に占めるボットの割合は増加しており、サイト運営者にとって無視できない存在になっています。AIによるアクセスが約300%増加したと報告されたこの1年間に、Kinstaが実施した100億件以上のリクエストを対象とした調査結果でも、その傾向が裏付けられています。

自動アクセスが増加する今、異常なアクセスによってサイトのパフォーマンスが低下したり、リソースが過剰に消費されたりする前に、できる限り先手を打ってボット対策を講じることが重要です。しかし、単にすべてのボットをブロックすればいいわけではありません。検索エンジンのクローラーや監視ツールなど、サイトにとって有益な自動アクセスもあれば、悪意はなくてもリソースを消費するボットも存在します。

また、サイトのパフォーマンスやセキュリティに深刻な問題を引き起こすボットについては、迅速に対処する必要があります。アクセスしているボットの種類や性質を見極め、それぞれに適した対策を講じましょう。

慌てずに対処できるよう、事前の対策が重要

問題が発生しても、慌ててすべてのボットをブロックする必要はありません。以下の手順に沿って対処することが効果的です。

  • 影響を評価する:何が起きているのか、どのようなトラフィックが原因なのかを把握します。

  • サイトを安定させる:必要に応じて、サイトの稼働状況を速やかに安定させます。

  • 長期的な対策を立てる:どのアクセスを許可、検証、ブロックするかを判断し、継続的なボット対策の方針を決めます。

  • 結果を監視して改善する:対策の効果を確認し、必要に応じて調整を加え、今後に備えて対応内容を記録します。

以下、それぞれの手順を詳しく見ていきましょう。また記事の最後には、実際の対応に役立つチェックリストもご紹介します。

1. 状況を把握する─通常のボットアクセスか、実際の攻撃か

ボットアクセスへの対策を講じる前に、まずはサイトで何が起きているのかを把握することが重要です。

  • サイトで発生しているのは、早期対処が望ましいが、緊急性は高くない一般的なボット関連の問題なのか
  • 悪意のある第三者から実際に攻撃を受けているのか
  • 悪意の有無にかかわらず、特定の自動アクセスが大量のリソースを消費し、深刻な問題を引き起こしているのか

意図的な攻撃やその他の緊急性の高い問題が発生していると判断した場合は、できるだけ早くサイトを安定させることが最優先です。具体的な対処方法については、後ほどご紹介します。

現時点でボットによる問題が発生していない場合あっても、問題が起きてから動くのではなく、事前に対策を講じておくことをおすすめします。先手を打つことで、正規のアクセスに影響が及ぶ前にボットに対処できます。

Kinstaのボット対策の分析機能では、サイトのどの部分にどのようなボットがアクセスしているのかを把握することができます。Kinstaをご利用の場合は、このデータをもとに状況を分析し、ボットの種類に応じた適切な対策を検討可能です。

「リクエストの内訳」チャートでは、サイトへのトラフィックを以下のカテゴリ別に確認できます。

  • 人間の可能性が高い

  • ボットの可能性が高い

  • AIクローラー

  • リクエスト頻度の高いAIクローラー

  • 未分類のトラフィック

  • 自動化されたトラフィック

  • 悪意のあるトラフィック

  • Kinstaがサイトに設定したカスタムルール

  • WordPressの自動処理

Kinstaのボット対策「リクエストの内訳」チャート
Kinstaのボット対策「リクエストの内訳」チャート

その下にある「上位のトラフィック」セクションには、トラフィックの分類ごとに、アクセス数の多いパス、ユーザーエージェント、国・地域、IPアドレスが表示されます。

トラフィックの上位パス、ユーザーエージェント、国、IPアドレスを確認
トラフィックの上位パス、ユーザーエージェント、国、IPアドレスを確認

この情報から、サイトのどの部分にどのような種類のボットがアクセスしているのか、さらには具体的にどのボットがアクセスしているのかまで把握できます。これらのデータをもとに、サイトへのアクセスが正当なボットによるものなのか、悪意のある攻撃なのかを判断してみてください。

サイトに負荷がかかっているか

サイトに負荷がかかっているかどうかは、問題の深刻度を判断するうえで特に重要なポイントです。

以下のような問題が発生していないか確認してください。

  • ページの読み込み速度の低下やエラーの発生

  • サーバー、PHP、データベースのリソース使用量の増加

  • 実際の訪問者数やその他の指標と一致しないトラフィックの急増

  • 同じURLへの大量のリクエスト

こうした問題が見られる場合は、サイトに何らかの負荷がかかっている可能性があります。正規のアクセスにも悪影響を及ぼすおそれがあるため、速やかに対処し、サイトの稼働状況を安定させることが重要です。

2. 必要に応じてサイトを安定させる

すでに正規の訪問者に影響が出ている場合は、詳しい調査を終えるまで対処を待たずに、まずはサイトの稼働状況を安定させ、正規の訪問者が問題なくアクセスできる状態に戻すことを優先しましょう。その後差し迫った問題が解消されてから、対策ルールを調整します。

現時点でサイトに問題が発生しておらず、予防的にボット対策を講じたい場合は、この手順を飛ばして、次のセクションでより詳しい対策方法をご覧ください。

早急な対応が必要な場合は、以下の対策を検討してください。

  • ボット対策を一時的に強化する:Kinstaであれば標準のボット対策機能を使用して、ボットによるアクセスからサイトを迅速に保護

  • 明らかに悪質なトラフィックをブロックする:問題の大きいアクセスをサイトに到達する前に遮断

    不審なトラフィックに検証を行う:正当なアクセスかどうか判断が難しい場合は、検証を実施して確認(検証の仕組みについては、次のセクションで)

  • 重要なクローラーや外部サービスとの連携を維持する:サイトの主要な機能や、Google検索での掲載順位などのビジネス上重要な指標に影響が出ないようにする

Kinstaのボット対策機能を使用すると、サイトの状況を迅速に安定させながら、サイトに適した長期的な対策を柔軟に検討できます。

Kinstaでは、基本的なセキュリティ対策によって悪意のあるトラフィックをすでにブロックしていますが、ボット対策レベルを引き上げることで、必ずしも悪意があると分類されない自動アクセスにも対処できます。

たとえば、検証済みボット以外のすべてのアクセスに検証を要求したり、すべてのアクセスに検証を要求したりすることが可能です。

このような厳しい設定は、多くのサイトで長期的に使用するには過剰な場合がありますが、サイトの状況を迅速に安定させるには効果的です。まずは厳格な対策で問題を抑え、その間にサイトの状況に合わせた、よりきめ細かな対策を検討できます。

Kinstaのボット対策機能レベル
Kinstaのボット対策機能レベル

3. 許可、検証、ブロックするボットを判断する

サイトの稼働状況が安定したら、ボットトラフィックに対処するための長期的な方針を検討します。

具体的には、ボットの種類に応じて「許可」「検証」「ブロック」のいずれかを選択します。

  • 許可:サイトへのアクセスを許可

  • 検証:サイトへのアクセスを許可する前に、追加の検証を要求(Kinstaでは、検証を通過した訪問者は、同じブラウザとIPアドレスを使用している限り、通常は10日間は再度検証されない)

  • ブロック:サイトへのアクセスを遮断

どのボットを許可、検証、ブロックするかを判断する際は、以下の点を考慮してください。

  • ボットによるアクセスに価値はあるか:たとえば、検索エンジンのクローラーは、検索結果からサイトへのアクセスを獲得するうえで重要。また、一部のAIクローラーは、AIが生成する回答でサイトが紹介されたり、情報源として引用されたりする機会につながる可能性がある。その一方、サイトへのアクセス流入につながらないスクレイピングボットは、特に価値がないかもしれない。

  • ボットトによってどの程度のコストが発生しているか:サーバーの処理能力、帯域幅、データベースクエリなどのリソース消費量や、正規の訪問者に対するパフォーマンスへの影響を分析する。すべてのリクエストが同じ負荷をかけるわけではなく、キャッシュされたブログ記事へのアクセスは、WooCommerceのカートページなど、動的なページへのアクセスに比べて通常リソース消費が少ない。

  • ボットをブロックするとどのような影響があるか:ブロックによって生じる影響も考慮する必要がある。たとえば、Googlebotをブロックすると、Googleがサイトのコンテンツを適切にクロール、インデックスできなくなり、Google検索での露出が大幅に減少するおそれがある。一方で、ブロックしてもサイトに影響がないボットも数多く存在する。

これらを踏まえ、以下のように対策を使い分けることができます。

  • 許可:正当なアクセスであり、サイトに価値をもたらす場合に適している

  • ブロック:明らかに不要なアクセスや悪質なアクセス、リソース消費に見合う価値がないアクセスに適している

  • 検証:許可すべきかブロックすべきか、判断が難しい場合に適している

また、サイト全体に同じルールを適用する必要はありません。特定の種類のボットについて、サイト内の一部のコンテンツへのアクセスは許可し、別のコンテンツへのアクセスには検証を要求したり、ブロックしたりすることもできます。

Kinstaのボット対策機能では、IPアドレス、パス、ユーザーエージェント、国・地域に基づく例外を設定することで、このような柔軟なボット対策を実現できます。

ボットアクセスの例外設定
ボットアクセスの例外設定

ボットアクセスの状況に応じた対処方法

以下、WordPressサイトでよく見られるボットアクセスの例を取り上げ、前述の判断基準をどのように活用できるかを見ていきます。

あらゆる状況を網羅しているわけではありませんが、実際のサイトでどのように対処すればよいかを理解するための参考にしてください。

検索エンジンのクローラーによるアクセスが大量に発生している場合

検索エンジンのクローラーから大量のリクエストが発生し、サーバーへの負荷が懸念される場合は、以下の点を確認します。

  • どのURLがクロールされているか

  • 検索エンジンにインデックスされるべき有用なコンテンツがクロールされているか

  • URLパラメータやフィルター、動的エンドポイントなど、本来インデックスする必要のないURLが繰り返しクロールされていないか

  • 実際にサイトのパフォーマンスが低下し、正規の訪問者に影響が出ているか

確認した結果に応じて、以下のような対策が考えられます。

  • クローラーをすぐにブロックするのではなく、クロールに問題や無駄がないかを調査する

  • インデックスされるべき重要なコンテンツへのアクセスを維持する

  • 不要な動的URLへのクロールを制限または抑制する

AIクローラーが大量のリソースを消費している場合

AIクローラーは大量のリクエストを発生させることがありますが、そのアクセスがサイトにどの程度の価値をもたらしているかは、判断が難しい場合があります。以下の点を確認すると、判断の手がかりになります。

  • AI検索での露出や引用を重視しているか

  • AIクローラーによって、実際に意味のある参照トラフィックが発生しているか

  • 明確なメリットがないまま、コンテンツを収集されているだけではないか。AIモデルの学習に無償でコンテンツを提供することと、AI検索での露出や引用の増加につながることは別の話です。

  • AIクローラーによるアクセスが、サーバーなどのインフラリソースを大量に消費していないか

すべてのAIクローラーを同じように扱う必要はありません。サイトにとって価値のあるクローラーもあれば、そうでないものもあります。その違いを踏まえて対策を検討することが重要です。Kinstaのボット対策機能を使用すると、クローラーごとに異なるルールを設定できます。

上記の点を確認したうえで、以下のような対策を検討できます。

  • サイトの目的に合致し、価値をもたらすAIクローラーは許可する

  • 過剰なアクセスを行うクローラーには検証を要求するか、アクセスを制限する

  • サイトへのメリットが少なく、リソースを大量に消費するAIクローラーはブロックする

ボットがリソース消費の大きい動的エンドポイントにアクセスしている場合

ボットによる動的エンドポイントへのアクセスは、キャッシュされた静的ページへのアクセスに比べて、はるかに多くのリソースを消費する可能性があります。

WordPressでは、買い物カゴ、購入手続き、検索、ログインなどのページが該当します。特にWooCommerceを利用したECサイトでよく見られますが、その他のサイトでも発生する可能性があります。

こうしたボットアクセスに必ずしも悪意があるわけではありませんが、以下のような問題を引き起こすことがあります。

  • キャッシュを経由せずにリクエストが処理される

  • PHPによる処理が必要になる

  • データベースクエリが実行される場合がある

  • 正規の訪問者とボットが同じリソースを消費するため、サイトのパフォーマンスに影響が出る

このようなアクセスが発生している場合は、以下の対策を検討してください。

  • リソース消費の大きい特定のエンドポイントを保護する

  • 買い物カゴや購入手続きなどの機能に対する不要なクローラーのアクセスを防ぐ

  • 検索エンジンのクローラーが他のコンテンツにアクセスできるよう、サイト全体でのブロックは避ける

  • URLパラメータの増殖やクロールのループが発生していないか調査する

  • 対策を適用した後もサーバーのパフォーマンスを監視する

不明なスクレイピングボットが数千ものURLをクロールしている場合

正体不明のボットが大量のURLをクロールしているにもかかわらず、サイトに明確なメリットをもたらしていないケースもあります。

正体がわからないからといって、必ずしも悪意のあるボットとは限りませんが、詳しく調査する価値はあります。特に、大量のリソースを消費している場合は注意が必要です。

以下のような手順で対処することをおすすめします。

  • ユーザーエージェント、IPアドレス、アクセス先のパス、リクエストの傾向を確認する

  • サイトが実際に利用している外部サービスや連携機能によるアクセスではないか確認する

  • 正当なアクセスかどうか判断できない場合は、検証を要求する

  • 明らかに不要なアクセスで、サイトに問題を引き起こしている場合はブロックする

  • 重要な外部サービスや連携機能によるアクセスだった可能性も考慮し、ブロック後にサイトで問題が発生していないか監視する

  • ボットが識別情報を変更したり、リクエストの傾向を変えたりしていないか注意する

4. 結果を監視し、必要に応じて調整する

ボット対策を実施した後は、意図したとおりに機能しているかを確認するため、継続的に結果を監視することが重要です。

トラフィック分析、リソース使用量、検索結果での露出、AIによる引用や参照トラフィック、その他のビジネス上重要な指標を確認します。

特に、以下の点に注目してみてください。

  • 不要なトラフィックは減少したか

  • サーバーのパフォーマンスは改善したか

  • 正規のクローラーは引き続き正常に動作しているか

  • 外部サービスとの連携に問題は発生していないか

  • 価値のあるトラフィックを誤ってブロックしていないか

これらの確認結果をもとに、追加の対策が必要かどうかを判断します。

  • 問題がない場合:現在のルールをそのまま維持できます。その後も定期的に状況を確認し、変化がないか監視します。

  • ボットによる問題が続いている場合:ブロックや検証、リクエスト頻度の制限を強化するなど、ルールをさらに厳しくする必要があるかもしれません。

  • 正規の訪問者や有益なボットに影響が出ている場合:特定のアクセスを許可する例外を追加したり、ルールを緩和したりすることを検討してください。

ボット対策チェックリスト

最後に、ここまでご紹介した内容を振り返り、サイトのボット対策に役立つチェックリストにまとめました。

理想的には、ボットによる問題が発生する前に、以下の手順に沿って予防的な対策を講じることをおすすめします。すでに問題が発生しており、早急な対応が必要な場合にも活用できます。

異常なトラフィックに気づいたら

  • 実際にサイトのパフォーマンスに問題が発生しているか

  • 人間によるアクセスか、自動アクセスか、悪意のあるアクセスか、あるいはそれらが混在しているか

  • どのURLにアクセスが集中しているか

  • アクセス先のURLはキャッシュされているか、動的に生成されているか

  • どのユーザーエージェント、IPアドレス、トラフィックの種類が原因となっているか

サイトに負荷がかかっている場合

  • まずはサイトの稼働状況を安定させる

  • 必要に応じてボット対策を強化する

  • 問題の原因となっているトラフィックに検証を要求するか、ブロックする

  • 可能な限り、重要なクローラーや外部サービスとの連携を維持する

サイトが安定したら

  • トラフィックがビジネス上の価値をもたらしているか判断する

  • インフラリソースの消費によるコストを確認する

  • 許可、検証、ブロックのいずれかを選択する

  • 問題のあるアクセスに絞ってルールを調整する

  • リソース消費の大きいエンドポイントを保護する

問題が解消したら

  • 対策の効果を監視する

  • 必要に応じて例外の追加やルールの厳格化などの調整を行う

  • 発生した問題と対応内容を記録する

  • ボット対策の方針を定期的に見直す

増え続けるボットアクセスへの対策をKinstaがサポート

今やボットによるアクセスは、サイト運営において当たり前の存在となっています。しかし、サイトにとって重要な役割を果たし、実際に価値をもたらすボットも存在するため、すべてのボットをブロックすることは、現実的でも望ましい対策でもありません。

重要なのは、サイトのどの部分にどのようなボットがアクセスしているのかを把握し、それぞれがもたらす価値とリソース消費によるコストを考慮したうえで、先手を打って対策を講じることです。

Kinstaのボット対策と分析機能を使用すると、WordPressサイトの所有者やWeb制作・運用会社は、ボットによるアクセス状況を詳しく把握し、種類に応じて柔軟に管理できます。ご興味がありましたら、KinstaのWordPress専用マネージドクラウドサーバーをぜひお試しください。

Steve Bonisteel Kinsta

Kinstaのテクニカルエディター。救急車や消防車を追いかける記者としてキャリアをスタート。1990年代後半からインターネット関連の技術情報を担当している。