# AIクローラー実態調査 データセット 2026-07 Data source: Majestic Million (https://majestic.com/reports/majestic-million) licensed under CC BY 3.0 Majestic Million の .jp ドメイン全件を対象に、`robots.txt` / `llms.txt` / `ads.txt` と ルートへの HEAD を1回ずつ取得し、主要AIクローラーの User-agent が許可されているかを 機械的に判定した結果である。判定は公開ファイルの内容から導いた事実であり、 個別サイトへの評価ではない。 調査日: 2026-07-29 / 対象: 18,976 ドメイン --- ## 1. 元データのスナップショット | 項目 | 値 | |---|---| | ソース名 | Majestic Million | | ソースURL | https://majestic.com/reports/majestic-million | | ライセンス | CC BY 3.0 | | ダウンロードURL | https://downloads.majestic.com/majestic_million.csv | | SHA256 | `781ecf0d094f1431c5ac8c53d58a8dd1a51a3dc850b407dd70d2c2a696e2c507` | | Last-Modified | Wed, 29 Jul 2026 05:00:25 GMT | | ETag | `"4cb2745-657b8d558bfe7-gzip"` | | 取得時刻 (UTC) | 2026-07-29T06:06:34Z | | 取得時刻 (JST) | 2026-07-29T15:06:34+09:00 | | 元CSV総件数 | 1,000,000 行(不正行 0) | | 抽出条件 | ドメイン末尾が `.jp` の行を全件抽出。正規化・除外は一切行わない | | 抽出件数 | 18,976 件(最下位ランク 999,906) | --- ## 2. ファイル | ファイル | 行数 | 内容 | |---|---:|---| | `cohort.csv` | 18,976 | 追跡コホート。Majestic から抽出したドメイン一覧 | | `parsed_2026-07-29.csv` | 18,976 | 判定結果本体。1行1ドメイン | | `ns_2026-07-29.csv` | 18,976 | NS レコード引き当て結果(Cloudflare の DNS-only 判定用) | | `REPORT.md` | — | 集計結果と限界の記述 | 各ファイルの SHA256(UTF-8 / LF): ``` bc2205068bee939a915622cac24d8978b7786b2c07c32c8a5551ecba8d5fa530 cohort.csv 5f0ebbf5dfbdd507e0e23aec6461c8006d5e25346802c8f9a03d322e0ffe011c parsed_2026-07-29.csv bfb855d4937ce79b50d0a25394f362218cdebb76adc2701db89c3ef93f41406b ns_2026-07-29.csv 181e3008aea40539e8659a974e837d14f8009807876962dd35ac2addd2eb0b0e REPORT.md ``` --- ## 3. 列定義 ### `cohort.csv` | 列 | 内容 | |---|---| | `rank` | Majestic Million でのグローバルランク | | `domain` | ドメイン名。14件はサブドメイン形式を含む(§6 の限界2) | ### `parsed_2026-07-29.csv` 判定対象の User-agent は次の17件。AI系15件と、対照の検索エンジン2件。 ``` GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, Claude-SearchBot, Google-Extended, PerplexityBot, Perplexity-User, CCBot, Bytespider, Amazonbot, Applebot-Extended, meta-externalagent, Applebot (以上 AI系) Googlebot, Bingbot (以上 対照) ``` **UAごとに `__verdict` と `__basis` の2列がある。** `__verdict` — そのUAがトップページを取得してよいか。 | 値 | 意味 | |---|---| | `allowed` | `robots.txt` を解析した結果、許可されている | | `disallowed` | `robots.txt` を解析した結果、禁止されている | | `no_robots_404` | `robots.txt` が 404。未設置なので許可とみなす | | `no_robots` | `robots.txt` を取得・解析できなかった(エラー・ソフト404・403等)。**判定不能** | | `parse_error` | パーサが例外を返した。本データセットでは 0 件 | `__basis` — その判定がどのグループに由来するか。 | 値 | 意味 | |---|---| | `named` | `User-agent:` にそのUA名が明記されたグループに一致 | | `prefix_named` | 前方一致で他UAのグループが適用された(§6 の限界3)。例: `User-agent: Applebot` が `Applebot-Extended` に適用される | | `wildcard` | 名指しがなく `User-agent: *` のグループが適用された | | `no_matching_group` | `robots.txt` はあるが、そのUAに適用されるグループが1つもない(=許可) | | `none` | `verdict` が `no_robots` / `no_robots_404` / `parse_error` のとき。判定の根拠なし | その他の列: | 列 | 内容 | |---|---| | `rank`, `domain` | `cohort.csv` と同じ | | `fetched_host` | 実際に取得したホスト(apex または www) | | `www_attempted` | apex が失敗し www で再試行したか | | `in_www_sample` | `robots_differs_www` 測定用の標本200件に含まれるか | | `robots_differs_www` | apex と www で `robots.txt` の内容が異なったか(標本のみ) | | `is_reachable` | apex または www に到達できたか | | `robots_kind` | `ok` / `http_404` / `fetch_error` / `html_soft404` / `http_403` / `http_` | | `robots_status` | HTTPステータス | | `robots_error` | エラー種別(`dns` / `tls` / `connect_timeout` 等) | | `robots_bytes` | 取得バイト数 | | `robots_parse_error` | パース例外。全件 0 | | `in_robots_denom` | 分母 `denom_robots` に含まれるか(§4) | | `in_reachable_denom` | 分母 `denom_reachable` に含まれるか(§4) | | `has_wildcard_group` | `robots.txt` に `User-agent: *` のグループがあるか | | `llms_txt_kind` / `ads_txt_kind` | `present` / `html_soft404` / `unrecognized_format` / `http_` / `error:<種別>` / `robots_skipped` | | `llms_txt_present` / `ads_txt_present` | 内容検証を通ったか。**HTTPステータス200だけでは数えていない**(§6 の限界5) | | `root_status` / `root_error` / `root_server` | ルートへの HEAD の結果 | | `cloudflare` | HEAD のレスポンスに `cf-ray` があるか `server: cloudflare` か。**HTTP が Cloudflare のエッジを通ったか**を測る | `robots_skipped` は、`robots.txt` が当該パスを禁止していたため取得しなかったことを示す。 ### `ns_2026-07-29.csv` | 列 | 内容 | |---|---| | `domain` | コホートのドメイン | | `zone` | 実際に NS を引いたゾーン。頂点でない名前は囲みゾーンまで遡る | | `ns` | NS ホスト名を `;` 区切りで連結 | | `ns_count` | NS の件数 | | `ns_cloudflare` | NS のいずれかが `*.ns.cloudflare.com` か。**権威 DNS が Cloudflare か**を測る | | `error` | 判定不能の理由(`NXDOMAIN` / `SERVFAIL` / タイムアウト / 遡り先がレジストリゾーン 等) | `cloudflare`(HTTPヘッダ判定)と `ns_cloudflare`(NS判定)は測っている対象が違う。 両者は一致しない。詳細は `REPORT.md` §13〜§14。 --- ## 4. 分母の定義 率を読むときは必ず分母を確認すること。 | 記号 | 定義 | 件数 | |---|---|---:| | `n` | コホート全件 | 18,976 | | `reachable` | apex または www に到達できた | 15,962 | | `denom_robots` | `robots.txt` を取得し内容として解析できた(`robots_kind == ok`) | **9,919** | | `denom_reachable` | `denom_robots` + `robots.txt` が404(未設置=許可) | **14,043** | - `rate_among_robots` = 分母 **9,919**。`robots.txt` を設置しているサイトの中での率。 - `rate_among_reachable` = 分母 **14,043**。`robots.txt` が404のサイトは「クロールを 許可している」という情報を持つため分母に含める。含めないとブロック率が過大になる。 `REPORT.md` の見出しの数字は `rate_among_reachable` を使っている。 --- ## 5. 調査手法 | 項目 | 値 | |---|---| | UA文字列 | `GRLabSurveyBot/0.1 (+https://lab.guest-reply.jp/bot)` | | 身元ページ | https://lab.guest-reply.jp/bot/ | | 同一ホストへのリクエスト間隔 | 1.0 秒(1req/s を超えない) | | ホスト間並列度 | 30 | | タイムアウト / リトライ | 10.0 秒 / 1回(例外時のみ) | | 取得対象 | `/robots.txt`, `/llms.txt`, `/ads.txt`, トップページへの `HEAD` 1件 | | 1ドメインあたりのリクエスト数 | 通常 最大4(www 再試行時は最大5) | | `robots.txt` の尊重 | `llms.txt` / `ads.txt` / トップHEAD は `robots.txt` の判定に従いスキップ | | 取得日時 (UTC) | 2026-07-29 06:42 〜 08:28 | | 取得日時 (JST) | 2026-07-29 15:42 〜 17:28 | | `robots.txt` パーサ | protego | NS レコードの取得は別実行。 | 項目 | 値 | |---|---| | 取得日時 | 2026-07-29 13:48:28 〜 13:49:17 UTC(22:48 〜 22:49 JST) | | リゾルバ / ライブラリ | 8.8.8.8, 8.8.4.4 / dnspython 2.7.0 | | 並列数 / タイムアウト / 再試行 | 25 / 5秒 / 1回 | | 対象サイトへの HTTP リクエスト | なし(DNS のみ) | --- ## 6. 限界 `REPORT.md` §3 の要約。数値を引用する前に原文を参照すること。 1. **Majestic は被リンク数ベースのランキングであり、トラフィックベースではない。** メディア・官公庁・大学など被リンクの多いサイトに偏る。本データを 「日本のウェブ全体の実態」と読み替えることはできない。 2. **コホートに14件のサブドメイン形式を含む。正規化していない**(18,976件中 0.07%)。 3. **protego は User-agent を前方一致で照合する。** `User-agent: Applebot` しか 書いていない `robots.txt` が `Applebot-Extended` にも適用される。該当分は `basis` が `prefix_named` になる。実際に影響が出たのは Applebot-Extended の 56件のみ。 4. **`robots_differs_www` は全件ではなく200件の標本調査。** さらに apex/www 双方を 比較できたのは90件で、分母は200でも18,976でもなく **90**。 5. **HTTPステータス200だけでファイル保有を数えると大幅に過大になる。** トップページのHTMLを200で返す「ソフト404」が `llms.txt` で1,989件、 `ads.txt` で1,962件ある。`*_present` 列はすべて内容検証後の値。 6. 到達判定は apex(+www再試行)基準。CDN配下で apex が実サイトでないケースを 取りこぼしている可能性がある。 7. `verdict` が `no_robots` の 4,933件は判定不能であり、「許可」でも「拒否」でもない。 --- ## 7. ライセンス **このデータセット全体を CC BY 3.0 で提供する。** `cohort.csv` および `parsed_2026-07-29.csv` / `ns_2026-07-29.csv` の `domain` 列は Majestic Million(CC BY 3.0)由来である。CC BY 3.0 に ShareAlike(継承)の義務はなく、 二次的著作物のライセンスは本来自由に選べる。そのうえで全体を CC BY 3.0 に揃えた理由は 次の2点である。 - CSVの1行は「ドメイン名(Majestic由来)」と「判定結果(本調査による測定)」が同居して おり、利用者は必ず行ごと使う。列単位でライセンスを分けても、実際の利用場面では どちらの条件が適用されるか判断できず、解釈コストが増えるだけになる。 - 上流と条件を揃えておけば「表記が不十分」という指摘が発生しない。引用されることを 目的としたデータセットで、ライセンスそのものが論点になるのを避ける。 判定結果部分(`__verdict` / `__basis` および各種集計列)は、公開されている `robots.txt` 等から機械的に導いた本調査の測定結果である。これも上記の方針により CC BY 3.0 の対象に含める。 **帰属表示は CC BY 3.0 の義務であり省略できない。** 再配布・引用の際は本文書冒頭の 表示を残すこと。 --- ## 8. 連絡先 Guest Reply(個人事業) — harumi@guest-reply.jp