概要
自分のWebサイト用のllms.txtファイルを生成するにはどうすればよいですか?
自社サイトをクロールし、各ページのタイトルと最初の段落を取得して、/llms.txtにあるファイル内でサイト名の下にMarkdownのリストとして書き出します。WebReaderAPIがクロールを行います:1ジョブあたり最大10,000ページをメタデータ付きのMarkdownとして、2026年10月時点で$0.07/1Kページから1ページ1クレジットで処理します。以下のPythonスクリプトがファイルを書き出します。KYC不要、暗号資産で支払い。
llms.txtの概要
| 概要 | 言語モデル向けにサイトの主要ページを一覧化する、サイトルートに置くことが提案されているMarkdownファイル |
|---|---|
| 導入率、上位1,000サイト | Rankabilityによると、2026年9月18日時点で9.3%(93サイト) |
| ファイルを設置しているサイト | Originality.ai調べ、2025年6月から2026年5月の間に4,088から36,120へ |
| 実測された利用状況 | Ahrefsによる137,000ドメインの調査で、llms.txtファイルの97%がリクエストを一切受け取っていない |
| WebReaderAPIで構築するコスト | クロールした1ページにつき1クレジット、10,000ページのコストは$3.75 |
llms.txtは作る価値があるか?
作るのは安価で、これまでに実測された効果は小さいものです。導入は進んでいます。Rankabilityは2026年9月18日時点で上位1,000サイトの9.3%にこのファイルを見つけており、2025年6月の0.3%から増えていますが、2回の集計の間で調査手法が変わっています。Originality.aiはファイルを設置しているサイトが2025年6月から2026年5月の間に4,088から36,120へ増えたと集計しました。
利用状況は別の話です。PPC Landが2026年7月2日に報じたAhrefsの137,000ドメインの調査では、llms.txtファイルの97%がリクエストを一切受け取っておらず、ファイルが受け取ったリクエストのうちAIの取得ボットによるものは1.1%でした。ドキュメントが大規模で、きれいなインデックスが欲しい場合に作りましょう。それだけでアシスタントがあなたを引用する方法が変わるとは期待しないでください。
llms.txtファイルには何を書くか?
タイトル、1段落の要約、そして短い説明を添えたリンクのグループ別リストです。最小構成のファイルは次のようになります。
- 1行目に
# Example Docs、サイトまたはプロジェクトの名前。 > One sentence on what the site covers.を引用符付きの要約として。## Guides、## API reference、その他のセクションを、サイトの各部分ごとに1つずつ。- 各ページに
- [Page title](https://example.com/page): one line on what the page answers.。
説明は事実に基づいて短く保ちましょう。ファイル内にAIシステムへの指示を書かないでください。アシスタントはそうしたテキストを操作とみなす傾向が強まっています。
import os
import time
from collections import defaultdict
from urllib.parse import urlparse
import requests
API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
SITE = "https://docs.example.com/"
def first_paragraph(markdown):
for block in markdown.split("\n\n"):
block = block.strip()
if block and not block.startswith(("#", "-", "|", "!", ">")):
return " ".join(block.split())[:160]
return ""
job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 300}, timeout=60).json()
pages, cursor, delay = [], None, 5
while True:
params = {"cursor": cursor} if cursor else {}
batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
pages += [p for p in batch.get("results", []) if "markdown" in p]
cursor = batch.get("next_cursor")
if batch["status"] == "done" and not cursor:
break
if not cursor:
time.sleep(delay)
delay = min(delay * 2, 60)
sections = defaultdict(list)
for p in pages:
path = urlparse(p["final_url"]).path.strip("/")
section = path.split("/")[0].replace("-", " ").title() if path else "Home"
summary = p.get("description") or first_paragraph(p["markdown"])
sections[section].append("- [" + p["title"] + "](" + p["final_url"] + "): " + summary)
lines = ["# Example Docs", "", "> Documentation for the Example product.", ""]
for name in sorted(sections):
lines += ["## " + name, ""] + sorted(sections[name]) + [""]
with open("llms.txt", "w", encoding="utf-8") as fh:
fh.write("\n".join(lines))
print(len(pages), "pages written to llms.txt")
スクリプトはどのように動作するか?
1つのクロールジョブを開始し、結果をページごとに収集してから、パスの最初のフォルダでページをグループ化します。各ページには、サイトが提供していればmeta descriptionを使い、なければMarkdownの最初の段落を160文字に切り詰めて使います。
SITE、タイトル行、要約行をプロジェクトに合わせて変更し、より大きなサイトではlimitを増やしてください(1ジョブあたり最大10,000ページ)。公開する前に出力を確認してください。セクション名はURL構造から生成されるため、人の手を加える必要がある場合があります。
クロールを許可するようrobots.txtを設定する必要があるか?
はい。WebReaderAPIはWebReaderAPIまたはすべてのロボットに対してrobots.txtが許可しているものだけを読み取り、設定したCrawl-delayがあれば待機します。ご自身のサイトがロボットをブロックしている場合は、クロール中に限り当社のトークンを許可するグループを追加してください。当社のクローラーページに正確な記述があります。
robots.txtが許可しないページはスキップされ、課金されないため、厳格なファイルでも追加コストはかかりません。ただ、それらのページがllms.txtに含まれなくなるだけです。
コストはいくらか?
読み取った1ページにつき1クレジット、ブラウザが必要なページは2クレジットです。300ページのドキュメントサイトなら300クレジット、JavaScriptアプリケーションなら最大600クレジットです。2026年10月時点で、$3.75の10,000ページに余裕で収まり、残ったクレジットはアカウントに残ります。有効期限はありません。
ドキュメントが変わったらファイルを再ビルドしてください。クロール出力を保持しておけば、すべてを再クロールする代わりに、バッチジョブで変更されたページだけを再読み取りできます。
llms.txt: よくある質問
llms.txtファイルはどこに置くか?
サイトのルート、つまり/llms.txtで配信される場所に、プレーンテキストまたはMarkdownで置きます。サイトによっては、リストしたページの全文を含むllms-full.txtも公開しています。
llms.txtはrobots.txtの代わりになるか?
いいえ。robots.txtはロボットがスキップすべきパスを示し、llms.txtはモデルに見つけてほしいページを列挙します。両方を維持してください。当社のrobots.txtガイドが違いを説明しています。
llms.txtはChatGPTやClaudeに私のサイトを引用させるか?
それだけでそうなるという証拠はありません。2026年7月に報じられたAhrefsの調査では、ファイルの97%がリクエストを受け取っていませんでした。明確な回答と日付のある事実を備えた分かりやすいページのほうが重要です。
他人のサイトのllms.txtを生成できるか?
自分のサイト、または所有者の同意がある場合のみです。ファイルはサイトを代表するものなので、公開するのはサイト所有者の役割です。
ソース (2)
- llms.txtの導入データ — Rankability (2026-09-18)
- llms.txtの導入は8.8倍に増加、しかし97%のファイルはAIリクエストを一切受け取っていない — PPC Land (2026-07-02)