トラフィックデータにおけるクローラーの検出とフラグ付けの改善

管理ダッシュボードで、クローラー由来のトラフィックの可能性が高いアクセス(リアルブラウザのJavaScriptを使用するものの、人間ではない訪問者である自動化ボットやスクレイパー)を識別し、それらのページビューを通常のトラフィック数値から分離できるようになりました。

本トピックでは、このトラフィックの識別アプローチと、今日からこの機能を有効にする方法について共有します。

:microscope: 変更点

Discourseは従来、標準的なボット用ユーザーエージェント(例えばGooglebot)を名乗るCrawlers(クローラー)を、サイトトラフィックデータ内の別のカテゴリに分類してフィルタリングしていました。しかし、現代の自動化トラフィックはより巧妙になりました。フルブラウザを実行し、JavaScriptを実装し、まるで実際の訪問であるかのようにページビューデータに紛れ込みます。管理者は、Anonymous(匿名)ページビューのトラフィックスパイクを確認しても、それがスクレイパーであることを判別できなかったり、AIボットによって訪問者数が水増しされていたりする場合があり、それらを真の匿名(つまり未ログインの)人間トラフィックと区別する手段がありませんでした。

このアップデートにより、サイトトラフィックデータにLikely Crawlers(クローラーの可能性が高い)というカテゴリが追加されました。改善されたクローラー検出が有効な場合、当社のヒューリスティックが自動化の可能性が高いとフラグを立てたページビューは別枠で集計されるため、人間によるトラフィック数値がより正確になります。

検出の仕組み

システムは、一連の行動シグナルを用いて各ブラウザのページビューをスコアリングします。

  • 自動化ユーザーエージェント — UAがヘッドレスブラウザや自動化ツール(HeadlessChrome、Playwright、Puppeteer、Selenium、PhantomJS、jsdom)を明示的に名乗っている
  • 検証済みクローラーASN — IPの自律システム番号(ASN)が既知のクローラーネットワーク(Baidu、Ahrefs、Yandex、Internet Archiveなど)に属している
  • データセンターASN — IPが主要なクラウドまたはホスティングプロバイダーのアドレス空間内にある
  • 速度 — IP + ユーザーエージェントによる1時間あたりのページビュー数が異常に多い
  • 高速ナビゲーション — ページビュー間の中央値のインターバルが5秒未満
  • セッションチャーン — 同じIP + ユーザーエージェントから、多くの短いセッション(大部分が1ページのみ)が発生している
  • エンゲージメントの欠如 — セッションおよびその隣接セッションにおいて、人間のようなインタラクション(マウス移動、キーストローク、スクロール)が記録されていない。このシグナルは、ログイン済みトラフィックよりも匿名トラフィックに対してより重み付けされます。
  • 悪いリファラー比 — 大部分のページビューがリファラーなし、または外部からのリファラーで到来しており、サイト内ナビゲーションではなく直接URLアクセスであることを示唆している
  • 単一のリクエスト — リファラーなしの単一のエンゲージメントのないページビュー。URLにロケールパラメータが含まれている場合、スコアは高くなります
  • 高速IPローテーション — 単一のセッション内で複数のIPが使用され、人間の行動範囲を超えて高速に切り替わっている
  • 古いChromium — エンゲージメントシグナルがない、古いバージョンのChrome
  • 分散トラフィック — 一部のクローラーはIPアドレスをローテーションし、ほぼすべてのページビューで新しいセッションを開始します。現在では、ユーザーエージェントを共有し、ネットワークまたは外部リファラルソースを共有する匿名訪問パターンを検索しています

複数のシグナルからのスコアは積み重なり、ページビューに上記シグナルの一定数が含まれる場合、likely crawler(クローラーの可能性が高い)として分類されます。

:gear: コミュニティでの改善されたクローラー検出の有効化

現時点では、これは実験的な変更とみなされています。 検出ヒューリスティックの調整を継続しており、フィードバックを歓迎します。

有効にするには、管理エリアの**今後の変更**ページに移動し、改善されたクローラー検出項目を見つけてください。**有効化対象…**フィールドを更新して、サイトを選択してください。

有効化後、管理ダッシュボードの「サイトトラフィック」セクションでは、クローラーの可能性が高いアクセスが別カテゴリとして表示されます。

:warning: 重要な注意事項:

  • これは完璧な科学ではなく、時間の経過とともにヒューリスティックの改良を継続してまいります。ただし、これらの計算を更新する際に過去のデータを遡及して再計算することはありません。
  • ページビューをクローラーの可能性が高いと分類することは、リクエストを拒否したり、レート制限を課したりするものではありません。
  • クローラーの可能性が高いページビューは、既知のクローラーが今日扱われるのと同じ方法で、リファラー、国、その他のトラフィック内訳から除外されます。
  • 検出ルールの変更により、すべての履歴トラフィックが自動的に再処理されるわけではありません。

:mega: ご意見をお聞かせください

フィードバックをお待ちしています — 特に、異常なトラフィックパターンや説明のつかないスパイクに気づいたコミュニティからの声を歓迎します。サイトの数値は正しく見えていますか?実在のユーザーと思われる訪問がフラグを立てられていませんか?このトピックで見ている状況を共有してください。

「いいね!」 21

いいですね。これらのシグナルについて、ログイン済みユーザーも対象になりますか?

「いいね!」 1

おそらく likely crawler は、毎月のページビュー制限にカウントされますか? :slightly_smiling_face:

「いいね!」 1

モデルを使用しながら何かを貼り付けた際、そのURLを編集し忘れていました。その結果、建設中のフォーラムで35,000%という急増が発生しました。

今後は、私が作業している内容への実際の参照をクリーンアップするために、小さなローカルモデルをインストールするという未処理タスクが残っています。

このオプションを第二のフィルターとして活用できるのは素晴らしいです。作成してくださってありがとうございます。

良いご質問ですね。まだ決定していませんが、クローラー検出モデルの微調整が必要になると予想しており、これはオプションの機能であるため、ページビュー上限にどのような影響があるのか(あるいは影響があるのか)は現時点ではわかりません。

社内でこの件について検討し、後ほどお知らせいたします!

「いいね!」 3

お取り組みありがとうございます。検出アルゴリズムに満足が得られた時点で、それらに対してアクションを実行する機能をロードマップに追加する予定はありますか?

「いいね!」 2

特定したユーザーエージェントの一覧、あるいはボット/クローラーと判断される可能性が高いユーザーエージェントの一覧が取得できれば、非常に助かります。

これにより、それらをブロック対象またはレート制限対象のグループに追加できます。

「いいね!」 3

はい、ログインユーザーによる自動化も検出するようにしています。Metaでは、信頼レベル0の「ユーザー」がサイトをスキャンしているのを数件発見しました。

「いいね!」 1

課題は、「クローラーの可能性が高い」とされるものの多くが、正当なユーザーエージェントを使用しているという点です。ブラウザのバージョンがかなり古いように見えることもありますが、それだけではボットと判断する十分なシグナルとは言えません。そのため、私たちは多くのメトリクスを収集し、それらを組み合わせることで可能性を評価しています。

クローラーが Bingbot や Googlebot のようなユーザーエージェントで正直に自己紹介した場合、それは直接「クローラー」のカテゴリに分類されます。

「いいね!」 1

確かに。チームディスカースがバックエンドから取得できる統計情報によると、アクセスパターンが一時的に増加する、より obscure なユーザーエージェント(ユーザーエージェントが特定しにくいもの)が対象となることが多く、ユーザーに影響を与えることなくリストからいくつか除外することができました。

これは厳密な科学ではありません。特定の地理的場所(ジオ)にマッピングできれば、それらの管理においてより高い解像度が得られる可能性があります。

「いいね!」 2