CoreDashボット:リクエスト内容と識別方法

ログにある「CoreDash/1.0」は、2種類あるCoreDashボットのいずれかです。どちらのボットも、CoreDashユーザーが要求したページしか開きません。

CoreDashボットの運用元とアクセス理由

要点

  • CoreDashには2種類のボットがあります。アップタイムチェックは30分ごとにページをリクエストします。単一ページの速度テストであるcRUM監査は、ユーザーがそのページのレポートを開いたときにChromeで1回読み込みます。
  • どちらもCoreDash/で始まるユーザーエージェントを送信します。送信元アドレスはips.jsonに記載されています。また、CoreDashユーザー向けにはヘッダーに含まれるシークレットトークンも提供されます。
  • ボットのアクセスを許可するには、ユーザーエージェントを許可してください。アクセスを停止させたい場合は、CoreDashにお問い合わせいただければ停止します。

CoreDashは、Core Web Vitals向けのリアルユーザーモニタリング(RUM)ツールです。Webサイトの運営者はこれを使って、モバイルやデスクトップの実際の訪問者に対するページの読み込み速度を確認できます。CoreDashはオランダのベルヘン・オプ・ゾームに拠点を置き、2つのボットを自社で運用しています。

CoreDashボットがページにアクセスするのは、CoreDashユーザーが要求したときだけです。ページをアップタイム監視に追加したときか、そのページの監査を開いたときです。ボットがリンクをたどることはなく、自発的にページを探し回ることもありません。取得したデータが検索インデックスに登録されたり、AIモデルの学習に使われたりすることもありません。結果はリクエストしたユーザーにのみ提供され、他の誰にも渡りません。

CoreDashのユーザーエージェント

CoreDash/1.0 (uptime; +https://www.coredash.app/bot)
CoreDash/1.0 (audit; +https://www.coredash.app/bot)

括弧内の文字列はリクエストを送信したボットを示し、リンク先はこのページです。今後追加されるツールも含め、すべてのCoreDashツールはCoreDash/で始まるユーザーエージェントを送信します。ログ検索やファイアウォールルールでCoreDash/を指定すれば、すべて検出できます。ただし、この名前は誰でも送信できるため、リクエストの送信元アドレスがips.jsonに含まれているかも確認してください。

アップタイムチェックとcRUM監査

サーバーのアクセスログでは、2つのボットは次のように記録されます。毎時0分と30分のアップタイムチェック、そしてCSSや画像とともにページを読み込む1回の監査です。

Nginx access log of www.example-shop.com: CoreDash uptime checks at 13:00, 13:30 and 14:00 asking for the home page, and a CoreDash audit loading /checkout/ with its CSS and an image, between normal visitors

www.example-shop.comのアクセスログ。

アップタイムチェック

ユーザーがCoreDashのアップタイム監視にURLを登録すると、以降はアップタイムチェックが30分ごとにそのURLをリクエストします。一方のCoreDashサーバーが毎時0分に、もう一方が30分にアクセスします。監視設定1件につき、1日あたり48回チェックされます。

各チェックはHTMLに対する1回のGETリクエストです。リダイレクトが発生した場合はその都度追加され、最大5回まで連続して追従します。読み込むのはレスポンスの先頭256 KBまでで、画像、スクリプト、CSSは読み込みません。ユーザーがサイトのサーバーIPアドレスを登録している場合は、サーバー自体が応答するか確認するため、各チェックでCDNを経由せずそのサーバーへ直接リクエストも送信します。CoreDashが保持するのはステータスコードと所要時間だけであり、ページ自体のデータは一切保持しません。

cRUM監査

cRUM監査は、単一ページを対象としたCoreDashの速度テストです。ユーザーがCoreDashでそのページのレポートを開いたときに実行され、テストを再実行したときや、スマートフォンとデスクトップを切り替えたときにも実行されます。定期実行のスケジュールはありません。誰もレポートを開かないページで監査が実行されることはありません。

監査では、キャッシュを無効にした状態で、スマートフォンまたはデスクトップの初回訪問者としてChromeでページを1回読み込みます。Chromeは通常の訪問者と同様に、CSS、スクリプト、画像など、ページが要求するすべてのリソースを取得します。ログには、URLに_cache_bust=とタイムスタンプが付与されたページへのリクエストと、それに続くファイルへのリクエストが記録されます。これらはすべて監査用のユーザーエージェントで送信されます。

Webフォントやアナリティクススクリプトなど、ページが外部サイトから読み込むファイルも監査用ユーザーエージェントでリクエストされます。そうしたファイルを配信している場合、管理外のページであってもログにCoreDashが記録されることがあります。これらのリクエストはいずれも、ユーザーが選択したページを読み込む処理の一環です。

リクエストがCoreDashからのものか確認する方法

CoreDashはボットの送信元IPアドレスをapp.coredash.app/bot/ips.jsonで公開しています。これはGoogleがクローラーのIPアドレス公開に用いている形式のJSONファイルです。各アドレスには「uptime」または「audit」を示すserviceフィールドが含まれています。CoreDashのユーザーエージェントであっても、このファイルに含まれていないアドレスからのリクエストはCoreDashからのものではありません。

これらのIPアドレスは変更されることがあります。CoreDashは随時サーバーを追加または移設します。常に最新のファイルと照合してください。リストが更新されるたびに、ファイル内のcreationTimeも更新されます。

CoreDashのユーザーには、もう1つの確認方法があります。各プロジェクトには固有のシークレットボットトークンが割り当てられており、両方のボットは、該当プロジェクトのサイトまたはそのサブドメインにアクセスする際、X-CoreDash-Botヘッダーにそのトークンを含めて送信します。それ以外のサイトへのアクセスにはトークンは付与されません。トークンはCoreDashの「Project settings」内にある「CoreDash bot token」タブで確認できます。

ファイアウォールでCoreDashボットを許可する方法

ファイアウォールやCDNがCoreDashボットを信頼できないボットと判断し、ブロックしてしまうことがあります。アクセスを許可するには、ユーザーエージェントがCoreDash/で始まるリクエストを許可してください。対象サイトが自身のCoreDashプロジェクトに登録されている場合は、ボットトークンを使ったルールのほうが安全です。自身のプロジェクトからのリクエストにしかトークンが含まれないためです。IPアドレスによる許可は他の方法が使えない場合の手段にとどめ、アドレスが変更される可能性がある点に注意してください。CDNやファイアウォールでCoreDashボットを許可する手順では、CloudflareおよびAWS WAFでの設定手順を説明しています。

CoreDashボットがrobots.txtを読み込まない理由

robots.txtファイルは、クローラーがサイトを自律的に巡回する際にアクセスしてよいページを指定するものです。CoreDashボットが自発的に巡回することはありません。すべてのアクセスはユーザーが開始したものであり、Lighthouseでテストを実行したときにページが読み込まれる仕組みと同じです。そのため、どちらのボットもrobots.txtを読み込みません。Disallowの記述があってもボットは停止しません。

サイトへのCoreDashボットのアクセスを停止する方法

ボットに関する質問がある場合や、サイトへのアクセスを拒否したい場合は、お問い合わせページからCoreDashへご連絡ください。対象のURLと、ログ内のCoreDashが記録された行をお送りください。確認後、サイトへのアクセスを停止します。

CoreDashボット: ユーザーエージェント、IPリスト、リクエスト内容 Core Web Vitals CoreDashボット: ユーザーエージェント、IPリスト、リクエスト内容