実務で使える分析入門|クロールログって何? どうやってSEOに活用するの?

クロールログ分析の入門記事です。Googlebotのアクセス状況を把握してクロールバジェット最適化を図る方法を、分かりやすく解説いたします。サイト改善にお役立てください。

こんにちは、あるいはこんばんは。ミッションインポッシブルが完結してちょっぴりロスっているエージェントエゴシです(多分作品違い)。

時の流れは早いもので、実は江越がJADEに入って1年が経ったようです。感覚的には「ようやくハイハイから卒業しました!」という感じなのですが、今日はハイハイ卒業記念にクロールログ分析について書こうと思います。

と言っても僕も1年前までは「クロールログ?何それ美味しいの?」状態だったので多分難しい話はできません。

この記事では

  • 「クロールログってそもそも何?」
  • 「クロールログ見たはいいんだけど、これをどう活用していけばわからない」

といった方に向けた話をできればなと思っているので、「人に説明されなくても一定以上できているぜ!」という方は続編をお待ちいただくか、いま話題のLLMO/GEOに関する以下のブログを読んでいただくかしていただければと思います。

 

【LLMOの前に知るべきこと】

blog.ja.dev

【現実的なGEOロードマップ】

blog.ja.dev

なおここでは話をシンプルにするために一般的なGooglebotのクロールログ分析にスコープを絞ってお話できればと思います。ご了承ください。

ではクロールログ分析入門、スタートです!

【もくじ】

 

クロールログは「Botによるサーバーへのアクセスログ」

クロールログとはそもそも何なのか。一言で説明するなら「Botによるサーバーへのアクセスログ」をクロールログということになります。つまりサーバーへのアクセスログの一部であり、クロールログというものが元々独立して存在するものではないということです。

検索エンジンが使用するBotも、一般ユーザーと同じくサーバーにアクセスして各ドキュメント(URL)の情報を取得します。そしてその足跡はサーバーへのアクセスログに残るため、それを分析しようというのがクロールログ分析の大まかな趣旨となります。

ここで一旦「サーバーログってどんな情報が確認できるのか」について知っておきましょう。サーバーログを通じて確認できるようなデータとして代表的なものとしては以下のような情報があります(LLMに作らせたサンプルデータなので、多少の不整合はご容赦ください)。

 

サーバーログで取得できる情報の例

timestamp ip_address method path full_url status_code request_size response_size user_agent
2025-01-02 09:15:23 192.168.1.100 GET /login https://example.com/login 200 1024 4096 Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0
2025-01-02 09:15:45 192.168.1.101 POST /api/v1/users https://api.example.com/v1/users 201 2048 1024 Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0
2025-01-02 09:16:02 192.168.1.102 GET /products https://example.com/products?category=electronics 200 512 8192 Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.7151.103 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
2025-01-02 09:16:15 192.168.1.103 GET /images/banner.jpg https://cdn.example.com/images/banner.jpg 304 0 0 Mozilla/5.0 (Linux; Android 11) Chrome/120.0.0.0
2025-01-02 09:16:30 192.168.1.104 POST /api/v1/orders https://api.example.com/v1/orders?source=mobile 400 1536 512 PostmanRuntime/7.32.3
2025-01-02 09:16:45 192.168.1.105 GET /checkout https://example.com/checkout?session=abc123 200 768 6144 Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.7151.103 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
2025-01-02 09:17:01 192.168.1.106 DELETE /api/v1/cart/15 https://api.example.com/v1/cart/15 204 256 0 Mozilla/5.0 (iPhone; CPU iPhone OS 16_0) Safari/605.1.15
2025-01-02 09:17:15 192.168.1.107 GET /about https://example.com/about?lang=ja 404 512 2048 Mozilla/5.0 (Windows NT 10.0; Win64; x64) Firefox/121.0
2025-01-02 09:17:30 192.168.1.108 PUT /api/v1/users/profile https://api.example.com/v1/users/profile 403 4096 1024 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Safari/605.1.15
2025-01-02 09:17:45 192.168.1.109 GET / https://example.com/?ref=social 500 1024 1536 Mozilla/5.0 (Linux; Android 11) Chrome/120.0.0.0

上記を見るとHTTP通信でやり取りされているデータのログなんだなということがざっくりお分かりいただけたら良いかなと思います。

また上記のデータのUser-Agentの欄に注目すると所々Googlebotと記載があるレコードがあることがご確認いただけるかと思います。これがGooglebotによるクロールの足跡です。

つまり一般ユーザーによるアクセスかBotによるアクセスなのかはUser-Agentの情報をもとに仕分けることができます。この性質を利用してBotのクロール情報だけ抽出してきたものがクロールログというわけです。

ちなみにGooglebotが実際にどんなUser-Agentを使用しているかはGoogle検索セントラルに記載がありますので、気になる方はみてみてください。

developers.google.com

 

【エンジニアへのお願いのしかた】

なお上記で示したダミーデータのように分析しやすい形に落とし込むためには、原則としてサイトのサーバーを管理しているエンジニアの協力が必要になってくることが多いかと思います。その際のお願いの仕方として「クロールログが欲しいんだけど!」ではなく「サーバーログのうちUser-Agentの値が~~になっているものを抽出してきて欲しい」とすることをお勧めします。

「サーバーログ」ほど「クロールログ」は一般的な呼称ではないという点にご注意ください。

 

クロールログを見ることで自分の好きな粒度で分析できる

ここまでクロールログは「Botによるサーバーへのアクセスログ」であるという話をしてきました。次に気になるところとしては、「クロールログを見たら何が分かるのか」という話になってくるかと思います。

個人的には以下の3点を知りたいときにクロールログを確認することが多いです。

 

サイト管理者が未把握のURLのクロール状況

サイト管理者がサイト内で発生しうるURL全てを把握しているのであれば、Google Search ConsoleのURL Inspection APIで調査するなどの手段も考えられます。

一方でサイト管理者にとって想定外のURL、例えば画面生成にあたって呼び出されたAPIのURLや通信中に含まれるURLらしい文字列へのクロール状況はURL Inspection APIで調査することが難しいので、クロールログをみるという判断になります。

その中で無駄なURLにクロールが回ってきていることがわかれば、無駄なURLへのクロールをブロックすることによってクロールして欲しいURL群へクロールを寄せられる可能性があるというわけです。

 

クロールバジェットの消費実態の把握

URL Inspection APIを使用した調査では1プロパティあたり2,000件/日の上限があり、かつ各URLへのクロール総数はわかりません(最終クロール日はわかっても、回数までは分からない)。どのURLに対してクロールバジェットが多く割かれているのかを把握するためには、クロールの全量データを確認する方法が最も正確です。

クロール制御をするにしてもどのURLから精査すべきかどうか優先順位をつけたい時に、クロールログを確認することでより多くのクロールバジェットが消費されているURLから対処していくという判断に繋げられます。

 

クロール速度・頻度の確認

Search Consoleでも各URLへの最終クロール日を確認することができますが、各URLにどのくらいの頻度・公開してからどれだけの速さでクロールが回ってきているのかという点については確認できません。クロール頻度・速度を確認するには1クロールごとの状況がわかるクロールログを見るのが正確と考えています。

例えば速報性が求められるニュースサイトや新商品がよく追加されるようなECサイトにおいては、極端な話「ニュースリリース/新商品発売から2週間後にようやくクロールが回ってきた」という状態では機会損失が大きいため、クロールログでその様子を確認して必要に応じて改善Actionを取ろうとなるわけです。

総じて言えば、Botによるアクセスのすべてが見えるからこそ好きに分析ができるということです。いつ/どこに/どれだけのクロールがきていたのかについて、粒度を自在にコントロールして分析できるというのが生データを分析する強みですが、これがクロールログ分析にも当てはまっていると言えるでしょう。

 

クロールログ分析の注意点

より厳密にBotのアクセスを抽出したい場合はIPアドレスもセットで確認しよう

先ほどUser-Agentで検索エンジンのBot(Googlebot)であるかを判別できると申し上げましたが、厳密に言えばブラウザのデベロッパーツールなどを通じてUser-Agentを偽装してアクセスしていると言った可能性もあり、そのケースはUser-AgentだけでBotによるアクセスかどうかを仕分けるのは難しくなります。

より厳密に実際のBotのアクセスかを確認したい場合はUser-Agentに加えて、IPアドレスの情報も仕分けに使用するという手段があります。例えばGooglebotの場合は、Google検索セントラルで実際にBotが使用しているIPアドレスを公開しているため、これをkeyにして絞り込むと言ったアプローチが考えられます。

developers.google.com

 

Googlebotによるクロールは原則として参照元は渡さない

また「クロールログがサーバーログの一部ならreferrerの情報を通じてGooglebotがどこからそのURLを発見したのかがわかるのでは?」と思われた方もいらっしゃるのではないかと思いますが、通常のGooglebotのクロールでは参照元情報を渡しません。

そもそもGooglebotはサイト上を回遊するような形で情報を取りに行くのではなく、クロールキューにある1個1個のURLに優先順位をつけて調査しにいくため、一般ユーザーの行う遷移とは異なり参照元は原則ないという状態になるわけです。

もしIPアドレスで仕分けた上でGooglebotのアクセスレコードの参照元情報に自ドメインの値が入っていれば、それはJavaScript実行のためのクロールの可能性があります。

 

クロール制御はインデックス状況も確認して行おう

ここまでクロールログ分析の話をしてきたわけですが、クロールログ分析を行う共通の目的としてはクロール状況の最適化があると言えるかと思います。

そしてクロール状況の最適化とは、各URLがどのURLから発見されているのか/またインデックスされているのかに加えて、各URLがサイト上で果たして欲しい役割を総合して考えて、初めて成せるものと僕は考えています。

上記のような判断を行うにはクロールログから得られるクロールの情報だけでなく、各URLが検索エンジン(Google)にどのように扱われているか、つまりURLごとの調査が必要になります。

このURLごとの調査を定量的に行うのに便利なツールが、 Amethyst(アメジスト) のIndex Workerというわけです。もちろんSearch ConsoleのURL Inspection APIをうまく使いこなせる方はそれでも良いと思うのですが、かなり癖のあるAPIではあると思うので、是非クロール制御のための分析を行う際は一度検討してみてください!

 

amethy.st

 


ここでは入門編ということで具体的な分析までは踏み込みませんでしたが、要望があればまた初級編を書こうかなと思いますので、ぜひコメントなどいただけると嬉しいです!

クロールログ分析入門、これにて完。エージェントエゴシの次回作にご期待ください。