結論:AIボットは518回来て、llms.txtだけ1度も取りに来なかった
llms.txtを設置した6日間(2026年7月20日〜7月25日)で、AIボットは当サイトに518回リクエストし、そのうちrobots.txtを101回、記事ページを43回取得しました。同じ期間、AIボットによるllms.txtの取得は0回でした。
集計対象は、Xserverのアクセスログに記録された総リクエスト8,680件の全件です。
この記事では、この0という数字が何を意味して、何を意味しないのかを分けて書きます。先に一点だけ断っておくと、「llms.txtは読まれない」という結論にはなりません。 後半で書くのですが、この観測には0だった原因を1つに絞れなくしてしまう条件が紛れ込んでいます。私の設定や確認漏れが主なのですがこれはこれでログとして残させてもらいます。それらの設定を直していく過程の未来の記事、第2期・第3期の観測とセットにして、初めてこの実験は完結します。
そもそもllms.txtとは何か
llms.txtは、サイトのルート直下に置くMarkdown形式のテキストファイルです。「このサイトにはこういう内容がある」をAI向けに要約し、生成AIがサイトを理解しやすくすることを目的に提案されました。robots.txtがクローラーに巡回のルールを伝えるファイルなのに対し、llms.txtはAIに中身の案内を渡すファイルです。
ただしこれは正式な標準ではありません。 2024年9月3日に、fast.ai・Answer.AI の Jeremy Howard 氏が一提案として公開したもので、対応するかどうかは各AI事業者の任意です。本記事はまさに、その「任意」が実際にどう機能しているかを数えた記録です。
なぜ自分のサーバーログを数えることにしたのか
きっかけはAhrefsが2026年6月15日に公開した調査、We Analyzed 137K Sites: 97% of llms.txt Files Never Get Read です。
2026年5月にトラフィックのあった 137,210ドメインを対象に調べたところ、28%(38,360ドメイン)がllms.txtを設置していました。そしてそのうち、97%が同月中に1リクエストも受けていなかったと報告されています。
リクエストが届いた残り3%(約1.1Kドメイン・約22Kリクエスト)の内訳も示されています。96%がボット、4%が人間。 ボットのうちAIボットは19.5%で、さらにその中の AI retrieval bots(OAI-SearchBot、PerplexityBot等)はわずか1.1%でした。
この調査が興味深かったのは、数字そのものよりも、記事が読者に向けたメッセージでした。要約すれば、まず自分のログを確認せよ、97%が読まれないというのが基準値だ、という内容です。
llms.txtを置いたばかりの当サイトは、そのメッセージ内容を試すのにちょうどよい条件でしたので、検証してみることにしました。
公式の言い分が食い違っている
自分でやってみようと思った理由がもう一つ。llms.txtに対する各社の姿勢が、そもそも一貫していません。
Google Search Central の公式ドキュメント Optimizing your website for generative AI features on Google Search には、こう書かれています。
“You don’t need to create new machine readable files, AI text files, markup, or Markdown to appear in Google Search (including its generative AI capabilities), as Google Search itself doesn’t use them.”
“Doing so will neither harm nor help your site’s visibility or rankings in Google Search, as Google Search ignores them.”
(Google Search に表示されるために、機械可読ファイルやAI向けテキストファイル、マークアップ、Markdownを新たに作る必要はない。Google Search 自身がそれらを使っていないからだ。作ってもGoogle Searchでの可視性や順位を損ないもしないし、助けもしない。Google Search はそれらを無視する。)
この記述は2026年5月末に公開され、ドキュメントの Last updated が 2026年7月10日(UTC)となっている時点でも維持されています。
ところがその公開から数日後、ChromeチームがLighthouseの実験的な Agentic Browsing audits に llms.txt のチェックを追加しました。(Chrome for Developers)検索としては使わないが、ブラウザの監査項目としては見る。同じ会社の中で、1週間のうちに両論が出ています。
この矛盾について Lily Ray 氏が John Mueller 氏に問うたところ、Mueller 氏は2026年に「llms.txt は検索のためのものではない」「AIコーディングツールがトークンを節約するための一時的な松葉杖(temporary crutch)」と回答しています。
なお、Googleの言明が及ぶのはGoogle Searchについてだけです。 ChatGPTやPerplexityがllms.txtをどう扱うかについては、この文章は何も言っていません。ここを混同した記事をよく見かけますが、両者は別の話です。自分のサーバーログでならAIボットの実際の挙動を数えられるのでこのあたりを検証してみたいと思っています。
仮説と、それを棄却する条件
観測を始める前に、検証可能な形で仮説を固定しました。
主仮説: AIボットはサイトを訪問しコンテンツを取得するが、llms.txtは取得しない。
棄却基準(事前宣言): 観測期間中に、AIボットによるllms.txt取得が1件でもあれば主仮説は棄却する。
n=1・6日間の観測では統計的検定はできません。だからこそ閾値を事後に決めてはいけないと考え、「1件でも取得があれば棄却」という基準を先に固定しました。
対照条件: robots.txt(llms.txtと同じくルート直下に置かれたテキストファイル)と、コンテンツページ4種。
対照を置いた理由は単純です。llms.txtが0件だったとして、それが「AIボットが来ていないから」なのか「来た上で取りに行かなかったのか」を区別できなければ、この観測には意味がありません。同じルート直下のテキストファイルが取得され、llms.txtだけが取得されないのであれば、パスの問題でもファイル形式の問題でもないと言えます。
この実験は単独では完結しない
先に書くのですが、本検証は「llms.txtへのリンクがどこにも存在しない状態」での観測です。
この条件下では、仮説はほぼ勝ち確定になります。誰もリンクを張っていないファイルが取得されないのは、当たり前のことではあります。これは設定した際の確認漏れなのですが、この後リンクを1本張った状態で同じ手順を回す第2期・第3期と対にして、セットで実験として成立させようと思います。
なのでこの第1期を単独で「llms.txtは読まれない証拠」として読むことはできないので予めご了承ください。
どうやって数えたか
観測条件
| 項目 | 内容 |
|---|---|
| 観測対象 | ai-search-nmlab.com(WordPress / Cocoon、記事2本の新規ドメイン) |
| llms.txt 設置日 | 2026年7月19日(HTTPヘッダ last-modified で確認) |
| llms.txtへのリンク | なし(HTML・robots.txt・サイトマップのいずれにも記載なし。実測で確認) |
| llms.txtのcharset | 未指定(観測期間中ずっと text/plain。2026年7月26日に修正) |
| 観測期間 | 2026年7月20日〜7月25日(6日間) |
| 期間の決め方 | 7月26日はログ取得時点で途中データ(17時台まで)のため除外 |
| タイムゾーン | ログは +0900。ただし日別ログファイルの区切りは午前0時ではなく午前4時(前日4:00〜当日4:00) |
| 測定手段 | Xserverサーバーパネル → アクセス解析 → アクセスログ(全件ダウンロード) |
| 集計対象 | 全8,680行 |
| ボット判定 | UA文字列のパターンマッチのみ。IP逆引きによる検証は未実施 |
| 主要指標 | /llms.txt へのGETリクエスト数(ボット別) |
| 対照指標 | /robots.txt、コンテンツページ4種(/, /about/, 記事2本)へのGET数(ボット別) |
条件表に「リンクなし」と「charset未指定」とありますが、これは設定時の確認漏れ。のちの記事ではここを直したうえでどう変わったかも報告できればと思います。
ボットの判定に使ったUA文字列
集計の再現性は、ここをどう区切ったかで決まります。実際に使ったパターンを全部載せます。
AIボットとして数えたパターン(19種。うち13種が実際に観測された)
GPTBot, OAI-SearchBot, ChatGPT-User,
ClaudeBot, Claude-User, Claude-Web, anthropic-ai,
PerplexityBot, Perplexity-User,
Google-Extended, CCBot, Amazonbot, Bytespider,
meta-externalagent, Applebot, cohere, Diffbot,
Timpibot, DuckAssistBot
検索エンジンボットとして数えたもの(3種)
Googlebot, Bingbot, YandexBot
1つ注記があります。Google-Extended は、ユーザーエージェントではありません。 robots.txt に書く制御用のトークンで、クロールするのはGooglebot本体です。Geminiの学習などに content を使ってよいかを別途指定するための名前なので、アクセスログにこの文字列が現れることはありません。 実際に照合結果は0件でした。上のリストは実際に集計で使ったパターンをそのまま載せているため残していますが、同じことをする方は外してもいいと思います。
手順
- Xserverサーバーパネルにログインし、左メニューの「アクセス解析」を開く。その中に「アクセスログ」があります

- 対象ドメインの行で「対象日」を選び、「ダウンロードする」で生ログを取得する(ブラウザ上で中身を見るだけなら「表示」でも構いません)

Xserverの保持期間の都合上、遡れるのは直近数日分です。
- ログをUA文字列で分類し、AIボット / 検索エンジンボット / それ以外に分ける
- リクエストパスごとに、
/llms.txt、/robots.txt、コンテンツページの取得回数をボット別に集計する - 自分自身のアクセスを特定して除外、または開示する(IPと時刻で照合できます)
結果:16種のボットが756回来て、llms.txtは0回だった
日別の集計
6日間の全リクエストを日別に分けたものです。AI と 検索 はそれぞれAIボット・検索エンジンボットの数で、その内訳としてrobots.txt・コンテンツページ・llms.txtへの取得回数を並べています。
| 日付 | 総リクエスト | AI計 | AI:robots | AI:記事 | AI:llms.txt | 検索計 | 検索:robots | 検索:記事 |
|---|---|---|---|---|---|---|---|---|
| 2026-07-20 | 3,697 | 127 | 18 | 24 | 0 | 100 | 6 | 10 |
| 2026-07-21 | 1,799 | 126 | 21 | 16 | 0 | 33 | 6 | 8 |
| 2026-07-22 | 1,236 | 19 | 11 | 0 | 0 | 33 | 4 | 17 |
| 2026-07-23 | 608 | 82 | 20 | 3 | 0 | 23 | 7 | 10 |
| 2026-07-24 | 645 | 89 | 15 | 0 | 0 | 39 | 0 | 11 |
| 2026-07-25 | 695 | 75 | 16 | 0 | 0 | 10 | 2 | 2 |
| 合計 | 8,680 | 518 | 101 | 43 | 0 | 238 | 25 | 58 |
llms.txtの列は、6日間すべての日で0です。1日も欠かさず0でした。
なお総リクエスト8,680件のうち、ボットと判定できたのは756件(AI 518+検索 238)です。残りは人間のアクセスと、UAで分類できなかったものです。
ボット別の内訳(16種)
観測されたボットを全種類、リクエスト数の多い順に並べます。1種も省いていません。
| ボット | 種別 | 運営 | リクエスト | robots.txt | 記事ページ | llms.txt |
|---|---|---|---|---|---|---|
| ClaudeBot | AI | Anthropic | 221 | 66 | 13 | 0 |
| Googlebot | 検索 | 203 | 20 | 47 | 0 | |
| Applebot | AI | Apple | 157 | 14 | 14 | 0 |
| GPTBot | AI | OpenAI | 75 | 0 | 4 | 0 |
| OAI-SearchBot | AI | OpenAI | 27 | 19 | 1 | 0 |
| Bingbot | 検索 | Microsoft | 25 | 5 | 10 | 0 |
| ChatGPT-User | AI | OpenAI | 13 | 0 | 3 | 0 |
| CCBot | AI | Common Crawl | 10 | 1 | 1 | 0 |
| YandexBot | 検索 | Yandex | 10 | 0 | 1 | 0 |
| PerplexityBot | AI | Perplexity | 8 | 0 | 1 | 0 |
| Claude-User | AI | Anthropic | 2 | 1 | 1 | 0 |
| anthropic-ai | AI | Anthropic | 1 | 0 | 1 | 0 |
| meta-externalagent | AI | Meta | 1 | 0 | 1 | 0 |
| cohere | AI | Cohere | 1 | 0 | 1 | 0 |
| Diffbot | AI | Diffbot | 1 | 0 | 1 | 0 |
| Bytespider | AI | ByteDance | 1 | 0 | 1 | 0 |
| AI小計 | 518 | 101 | 43 | 0 | ||
| 検索小計 | 238 | 25 | 58 | 0 |
16種すべてがllms.txtを取得していません。 延べ756リクエスト、robots.txt 126回、記事ページ 101回に対して、llms.txt は0回です。
「記事ページ」は /、/about/、記事2本の計4ページへの取得のみを数えています。リクエスト総数との差は、CSS・JavaScript・画像などの取得です。GPTBotの75リクエストのうち記事ページが4件しかないのは、そのためです。
同じボットの中でも対照が成立している
集計全体より説得力があるのは、1種のボットの中で取得先が分かれていることのほうです。
ClaudeBot は221回リクエストし、robots.txtを66回、記事ページを13回取得しました。同じボットが同じ期間にllms.txtを取得した回数は0回です。
OAI-SearchBot も27回のうちrobots.txtを19回取得して、llms.txtは0回でした。
robots.txtとllms.txtは、どちらも同じドメインのルート直下にある、拡張子.txtのプレーンテキストファイルです。片方を66回取りに来て、もう片方を1回も取りに来ないという挙動は、サーバー設定やパスの問題ではなさそうです。
生ログではこう見えています。ClaudeBotがrobots.txtとsitemapを取得している実際の2行です。

GET /robots.txt と GET /wp-sitemap.xml が3秒差で並び、UAには ClaudeBot/1.0; +claudebot@anthropic.com と書かれています。この行が GET /llms.txt になったものは、6日間で1度も現れませんでした。(送信元IPはマスクしています)
llms.txt自体は9回取得されている(AIボット以外から)
観測期間中、llms.txtへのアクセスは完全な0ではありませんでした。
- 7月20日の8件 … 運営者本人による設置確認
- 7月21日の1件 … Dataprovider.com(商用のデータ収集業者)
つまりファイルは実在し、正常に配信され、実際に9回取得されています。 404でも権限エラーでもありません。その上で、AIボットによる取得だけが0回でした。
除外と汚染の開示
7月26日を集計から除外しました。 ログを取得した時点で17時台までの途中データであり、他の日と横並びで比較できないためです。除外前後で結論は変わりません(7月26日もAIボットによるllms.txt取得は0件でした)。
そのうえで、7月26日の /llms.txt へのアクセス11件は、すべて調査者自身のものです。 キャッシュ検証とcharset修正の作業によるもので、時刻単位で特定済みです。自分のアクセスが混ざったまま集計すると、それを「到達あり」と数えてしまいます。同じ検証をする方は、まず自分のIPと作業時刻を控えておくことをおすすめします。
「取得されたのにログに出ていない」可能性は潰した
0件という結果には、必ずついて回る疑いがあります。そもそもアクセスログに記録されていないだけではないか、という疑いです。当サイトはnginxのキャッシュ配下にあるため、キャッシュから返された分がログに出ない可能性を考えました。
これは実験で確認しました。2.5秒間隔で /llms.txt を連続2回取得したところ、ログには 17:54:56 と 17:54:58 の両方が記録されていました。
キャッシュ層はアクセスログを抑制していません。「取得されたのに見えていない」という可能性は棄却されます。
この0から何が言えて、何が言えないか
言えること:「来ていないから0」ではない
もし当サイトにAIボットが1度も来ていなければ、llms.txtが0件でも何の情報にもなりません。そうではありませんでした。
AIボットは来ています。robots.txtも取得しています。記事ページも読み込んでいます。その上で、llms.txtだけ誰も取りに来ませんでした。 一旦はこれがこの観測で言える、ほぼ唯一のことになります。
言えないこと:無視されたのか、見つからなかったのか
ただ、0という結果からは、次の2つを区別できません。
- AIボットはllms.txtの存在を知りながら、取りに行く価値がないと判断した(無視)
- AIボットはllms.txtの存在を知る手段がなかった(発見できなかった)
当サイトのllms.txtは、HTMLからもrobots.txtからもサイトマップからもリンクされていません。 トップページのHTML約30万文字の中に llms.txt という文字列は1つもなく、robots.txtは120バイトで、llms.txtへの言及はありません。
そしてAhrefsによると、エージェントは指示されたときにllms.txtを取得するのであって、投機的には取得しない。 同調査では、存在しないllms.txt(404)へのAIボットからのリクエストは0件で、404の98%は人間によるものでした。AIは、llms.txtを自分から探しに来ていません。
当サイトの0件は今のところ、2で説明ができてしまうため、1の主張ができない状態です。
外部の調査と並べる
| 調査 | 時期 | 規模 | 結果 | llms.txtへのリンク |
|---|---|---|---|---|
| Ahrefs | 2026-06 | 137,210ドメイン | 97%が0リクエスト | 不明(多数) |
| Otterly | 2026-02 | n=1・90日 | AIボット62,100件超中84件(約0.1%) | ホームページからリンクあり |
| SE Ranking | 2025-11 | 約30万ドメイン | AI引用との相関なし | 不明(多数) |
| 本検証 | 2026-07 | n=1・6日 | AIボット518件中0件 | なし |
Otterlyとの条件差が重要です。 Otterlyの実験サイトでは、llms.txtが「ホームページから直接アクセス可能」でした。リンクがある状態で0.1%、リンクがない状態で0%。 同列に並べて「どちらも少ない」と読むのは違うかなと。この2つは違う実験なので。
なおOtterlyの調査は、同社が自社のGEO Auditからllms.txtチェッカーを削除した判断の裏付けとして書かれたものです。SE Rankingの調査も、原典自身が「結果はモデルとデータセットに依存する文脈依存的なもの」と断っています。どちらもツールベンダーの自社調査である点は踏まえて読む必要があります。
取得された ≠ 読まれた
これらすべての数字に共通する天井があります。
アクセスログで分かるのは「取得された」ことまでで、「読まれた」ことではありません。 Ahrefs自身も「fetched ≠ read」と明記し、すべての数値は実際の消費量の天井であると注記しています。取得されたOtterlyの84件が本当にAIの回答に使われたかどうかは、ログからは分かりません。
逆向きにも同じことが言えます。0件は「読まれなかった」の十分条件です。 取得されていないものが読まれることはないので、この方向だけは確実に言えます。
llms.txtが機能している場所はある
念のため書いておきますが、llms.txtが無意味だという話ではありません。
現時点で明確に機能している用途が1つあります。AIコーディングエージェント向けのドキュメント参照です。Cursor、GitHub Copilot、Claude Code といったツールが技術ドキュメントを参照するとき、llms.txtがあるとトークンを節約できます。Ahrefsのデータでも、Claude-Code は全てのAI retrieval bot を上回る回数llms.txtを取得しています。
John Mueller氏の「AIコーディングツールがトークンを節約するための一時的な松葉杖」という表現は、否定的な言い方ではありますが、用途を正確に指してもいます。
検索の可視性のために置くのか、開発者向けドキュメントの効率化のために置くのか。目的が違えば、評価も変わります。
この検証の限界
痛い順に並べました。
1. llms.txtがどこからもリンクされていない(最大の問題)
前述のとおりです。「無視された」のか「見つからなかった」のかを、このデータでは区別できません。 Ahrefsは「エージェントは指示されたときに取得する」と書き、Otterlyの実験はホームページからリンクを張っていました。当検証だけが、発見経路のない状態で測っています。 これは第3期でリンクを1本張るまで解消できません。
2. ボットのUAを検証していない
判定はUA文字列のパターンマッチのみで、IP逆引きによる正当性検証は行っていません。 UAは詐称できます。Ahrefsは “verified AI bot requests” と明記しており、当検証は同じ精度ではありません。 ClaudeBotを名乗る誰かが混ざっている可能性は排除できていません。
3. 「AI / 検索エンジン」という二分法そのものが粗い
この記事はボットを2つに分けましたが、現実の境界はもっと曖昧です。
たとえば Google AI Overviews は、Googlebotが集めた既存の検索インデックスを使うとされています。 つまり本記事で「検索エンジン」に分類したGooglebotの203リクエストは、AI回答の素材にもなっている可能性があります。「AI 518 / 検索 238」という切り分けは、あくまで集計上の便宜です。
AIボットの側も、本来は3つに分かれます。学習用(GPTBot、ClaudeBot、CCBot)、回答取得用(OAI-SearchBot、PerplexityBot)、ユーザー起動(ChatGPT-User、Claude-User)。引用に直結するのは2番目だけで、1番目がいくら来ても引用は増えません。Ahrefsが「AIボット19.5%のうちAI retrieval botsは1.1%」と分けているのは、この区別があるためです。本記事はこの3分類までは行っていません。
ただしllms.txtに関する結論は、どう分類しても変わりません。 Googlebotも203リクエスト中0回で、16種すべてが0だからです。
4. 観測期間が公開直後の異常な時期を含む
日別の総リクエストは 3,697 → 1,799 → 1,236 → 608 → 645 → 695 と推移しました。初日が最終日の約5.3倍で、定常状態ではありません。
さらに、AIボットによる記事ページの取得は 7月22日・24日・25日の3日間がゼロでした。AIボット自体は来ているのに、記事を取らない日が後半に3日ある。新規ドメインの初回巡回が一巡した後の落ち着きを見ている可能性があります。 落ち着いた後の数字は、第2期以降で確かめます。
5. 観測が6日しかない
観測できたのは、llms.txtを設置した翌日(7月20日)から7月25日までの6日間です。7月20日より前のログは存在せず、7月26日は取得時点で途中データだったため、完全な日として揃うのが6日でした。
なお、サーバーパネルから閲覧・ダウンロードできるのは過去30日分です(公式マニュアルに「毎日午前4時頃に、過去30日分のログファイルを日別に生成」と明記)。当サイトで7月30日時点に当日分+過去10日分しか選べなかったのは、7月20日がログの開始日だったためです。「アクセスログ → ユーザー領域への保存設定」を有効にすれば最大9週間まで自分のサーバー領域に蓄積できますが、貯まるのは設定した日以降のぶんだけで、過去には遡れません。
6. n=1・記事2本の新規ドメイン
サンプルは1サイトのみで、しかも記事2本・トラフィックの小さい新規ドメインです。大規模サイトや歴史のあるドメインで同じ結果になるとは限りません。この記事は「1件の観察報告」以上のものではありません。
7. 観測期間中ずっとcharsetが未指定だった
llms.txtのHTTPヘッダにcharsetの指定がなく、text/plain のままでした(2026年7月26日に修正)。ただし取得自体が0件のため、結果への影響は理論上ゼロです。副次的な論点として記録しておきます。
次に何を測るか
1変数ずつ変えて、同じ手順で測り直します。
| 期 | 変える条件 | 状態 |
|---|---|---|
| 第1期 | リンクなし・charset未指定 | 完了(本記事) |
| 第2期 | charsetのみ修正。リンクは張らない | 進行中 |
| 第3期 | llms.txtへのリンクを1本張る | 予定 |
| 第4期(任意) | robots.txtに記載を追加 | 検討中 |
第3期が本命です。 リンクを1本張ってAIボットが取りに来るなら、第1期の0件は「見つからなかった」で説明がつきます。張っても来ないなら、そこで初めて「無視されている」という可能性になるかと思います。
charsetは2026年7月26日に修正済みなので、リンクを追加するまで最低1週間空けます。 すぐリンクを張ると、charsetとリンクの2つが同時に変わってしまい、どちらが効いたのか分からなくなるためです。第2期はそのための期間でもあります。
観測期間・集計手順・UA分類は第1期と完全に同一にします。2期3期でllms.txtの設定を一部変えることで、AIボットの挙動がどう変わるのか、あるいは変わらないのかを報告したいと思います。
生データ
集計に使った一次データを公開します。
どちらもUTF-8のCSVで、先頭に # 始まりのコメント行として集計定義(UAの分類、コンテンツページの定義、除外した日とその理由)を書いてあります。
なお元のアクセスログそのものは、訪問者のIPアドレスを含むため公開できません。集計後の数値のみです。
関連記事
訂正履歴
2026年8月9日 ― 方法の節で「タイムゾーンは +0900。日境界もJST」と書いていましたが、正確ではありませんでした。Xserverの日別アクセスログは午前4時で区切られています(公式マニュアルに「前日午前4:00~当日午前4:00までのログファイルを生成」と明記)。本記事の日別表は「その日の0時〜24時」ではなく「その日の4時〜翌日4時」を示しています。期間の総計に欠けや重複はありません。 あわせて、7月30日の訂正で「直近の数日分だけ」と書いた保持期間を、公式の過去30日分に訂正しました。詳しい経緯は続編に書いています。
2026年7月30日 ― 限界5について、当初は観測が6日にとどまった理由を「Xserverのログ保持期間の上限」と書いていましたが、これは誤りでした。7月30日にサーバーパネルの選択可能日を実測したところ、当日分+過去10日分(7月20日〜7月29日)が選択でき、7月26日時点での最古(7月20日)から変わっていません。保持期間ではなく、観測開始日と、7月26日が途中データだったことによる制約でした。あわせて、ログを最大9週間保存できる設定があることを追記しました。


コメント