SEO対策

llms.txt 実装ガイド 2026|日本の BtoB サイトで LLM 引用を制御する 5 ステップ

2026-05-05更新 2026-05-0612分で読める
llms.txt 実装ガイド 2026|日本の BtoB サイトで LLM 引用を制御する 5 ステップ
目次

llms.txt 実装ガイド 2026|日本の BtoB サイトで LLM 引用を制御する 5 ステップ

この記事の結論(150 字以内) llms.txt はサイト運営者が LLM 向けにコンテンツの優先順位と概要を伝える Markdown ファイル。/llms.txt と /llms-full.txt の 2 階層で実装し、引用させたい記事を絶対 URL で列挙します。laboz では実装後 30 日で AI 流入が月 24 件に達しました。

結論:llms.txt 実装の 5 ステップ

  1. /llms.txt を作成:サイト概要 + 主要記事リンクを Markdown で記述
  2. /llms-full.txt を作成(任意):本文を含む拡張版を別配置
  3. 絶対 URL で記述:相対パスは LLM 側で解決できないことがある
  4. 更新トリガーを CMS に組み込む:記事公開時に自動再生成
  5. robots.txt と整合:LLM クローラーをブロックしている場合は llms.txt も読まれない

llms.txt は 2024-2025 年に提案された軽量な仕様で、強制力はありません。ただし Anthropic / Perplexity / OpenAI の一部クローラーは参照していると報告されており、整備しておく価値はあります。日本語 BtoB サイトでの導入はまだ稀少なため、早期実装が引用機会の取りこぼし防止につながります。

2026 年実測動向

llms.txt の参照状況

llms.txt 仕様は 2024 年後半に Answer.AI の Jeremy Howard が提案した軽量フォーマットで、現在は llmstxt.org に仕様がまとまっています。Anthropic と Perplexity の一部クローラーが参照しているとの報告があり、ChatGPT のブラウザツールも将来的に対応すると見込まれています。

laboz の実装結果

laboz では 2026 年 Q1 に /llms.txt と /llms-full.txt を実装し、その後 30 日で chatgpt.com 13 件、perplexity.ai 6 件、claude.ai 3 件、gemini.google.com 2 件の合計 24 件の AI 流入が観測されました。実装単独の効果切り分けは困難ですが、構造化データ + IndexNow + llms.txt の組み合わせが効いていると推測されます。

記述の中央値

LLM 各社が参照する llms.txt の中央値は 50-200 行程度。本文は要約済みの Markdown で、絶対 URL のリストが中心。リンク数は 30-100 本が多い印象です。

引用されやすい llms.txt の構造分析

構造 1:H1 にサイト名と要約

# laboz — マーケティングの実践知

> マーケティング・SEO・AIO の実践知を編纂する研究機関。BtoB 中堅企業の AI 検索対応・補助金活用・1 人マーケ運用を支援。

構造 2:トピックごとに H2

## AIO / AI 検索

- [AI Overview 対策 5 戦術 2026](https://laboz.jp/column/ai-overview-implementation-5-tactics-2026)
- [Perplexity に引用される記事の作り方](https://laboz.jp/column/perplexity-cited-japan-2026)

構造 3:絶対 URL のみ

相対パス(/column/...)は LLM 側で https://laboz.jp/column/... に解決できない実装があります。すべて https:// から始まる絶対 URL で書きます。

構造 4:Optional セクションで補助情報

## Optional

- [著者プロフィール](https://laboz.jp/about)
- [更新ポリシー](https://laboz.jp/editorial-policy)

構造 5:簡潔さを保つ

llms.txt は要約版で 200 行以内に収めます。本文丸ごとは /llms-full.txt に分離。

実装手順(HowTo JSON-LD で記述)

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "Next.js / WordPress サイトに llms.txt を実装する手順",
  "totalTime": "PT4H",
  "step": [
    { "@type": "HowToStep", "position": 1, "name": "/llms.txt の雛形作成", "text": "サイト概要 + トピック別 H2 + 主要記事の絶対 URL を Markdown で記述する。" },
    { "@type": "HowToStep", "position": 2, "name": "ルート配置", "text": "Next.js は /public/llms.txt または app/llms.txt/route.ts、WordPress は functions.php にエンドポイント追加で配信する。" },
    { "@type": "HowToStep", "position": 3, "name": "/llms-full.txt の作成(任意)", "text": "本文を含む拡張版を別ファイルで配置し、/llms.txt 末尾でリンクする。" },
    { "@type": "HowToStep", "position": 4, "name": "CMS フックで自動再生成", "text": "記事公開時のフックで /llms.txt を再生成し、新規記事を自動追加する。" },
    { "@type": "HowToStep", "position": 5, "name": "robots.txt と整合確認", "text": "GPTBot / ClaudeBot / PerplexityBot を robots.txt で許可していることを確認する。" }
  ]
}

Next.js (App Router) での実装例

// app/llms.txt/route.ts
import { NextResponse } from 'next/server';
import { listPublishedArticles } from '@/lib/articles';

export async function GET() {
  const articles = await listPublishedArticles();
  const body = `# laboz — マーケティングの実践知

> マーケティング・SEO・AIO の実践知を編纂する研究機関。

## AIO / AI 検索

${articles
  .filter(a => a.cluster === 'AI 検索 / SEO')
  .map(a => `- [${a.title}](https://laboz.jp/column/${a.slug})`)
  .join('\n')}

## Optional

- [完全版](https://laboz.jp/llms-full.txt)
`;

  return new NextResponse(body, {
    headers: { 'Content-Type': 'text/plain; charset=utf-8' },
  });
}

WordPress での実装例

// functions.php
add_action('init', function() {
  add_rewrite_rule('^llms\.txt$', 'index.php?llms_txt=1', 'top');
});

add_filter('query_vars', function($vars) {
  $vars[] = 'llms_txt';
  return $vars;
});

add_action('template_redirect', function() {
  if (get_query_var('llms_txt') !== '1') return;
  header('Content-Type: text/plain; charset=utf-8');
  echo "# laboz\n\n";
  $posts = get_posts(['numberposts' => 100, 'post_status' => 'publish']);
  foreach ($posts as $post) {
    echo "- [{$post->post_title}](" . get_permalink($post->ID) . ")\n";
  }
  exit;
});

計測方法(GA4 / サーバーログ)

サーバーアクセスログでクローラーを観測

/llms.txt への GET リクエストを Vercel ログ / nginx ログ / CloudFront ログから抽出します。User-Agent が GPTBot ClaudeBot PerplexityBot Google-Extended を含むものを集計し、月次でカウントします。

GA4 では補助的に

llms.txt は通常 GA タグが入らないため、GA4 で直接計測はできません。代わりに AI 流入セグメント(chatgpt.com / perplexity.ai / claude.ai / gemini.google.com)の月次推移を見て、llms.txt 実装前後で増えたかを比較します。

失敗事例と回避策

失敗 1:robots.txt で AI クローラーをブロックしたまま llms.txt を置く

llms.txt が読まれません。回避策: GPTBot / ClaudeBot / PerplexityBot / Google-Extended を robots.txt で Allow する判断を経営層と合意する。

失敗 2:相対パスで記述する

LLM が解決できず引用候補から外れます。回避策: すべて絶対 URL に統一。

失敗 3:手動メンテで放置

新規記事が追加されず、llms.txt が古くなります。回避策: CMS フックで自動再生成。

失敗 4:本文丸ごと llms.txt に書く

ファイルサイズが膨らみ LLM 側で打ち切られます。回避策: 要約版を /llms.txt、本文版を /llms-full.txt に分離。

FAQ

Q1: llms.txt は SEO に効きますか?

直接の検索順位影響はありません。LLM 引用率の改善が主目的です。AIO 引用や Perplexity 引用に間接的に効きます。

Q2: llms.txt がなくても LLM は引用しますか?

します。llms.txt は補助信号で、なくてもクロールされます。ただし整理された llms.txt がある方が「優先記事」「概要」を伝えやすく、引用候補に入りやすくなります。

Q3: GPTBot / ClaudeBot を robots.txt で許可することのリスクは?

学習データに使われる可能性があります。逆に許可しないと LLM 引用候補から外れます。トレードオフを経営層と合意する必要があります。laboz は許可方針を採用しています。

Q4: 日本語サイトでも llms.txt は意味がありますか?

意味があります。LLM は言語非依存でクロールします。日本語 BtoB は導入が稀少なため、早期実装が引用機会の独占につながりやすいです。

Q5: llms.txt と sitemap.xml の違いは?

sitemap.xml は検索エンジン向けの全 URL リスト。llms.txt は LLM 向けの優先記事 + サイト要約。役割が異なるため両方実装します。

関連記事

この課題を1人で抱え込まないために

ATKは、AIマーケティング部長として、記事設計、検索意図、内部リンク、CTA、月次改善レポートを継続的に整えます。まず現状を確認したい場合は、無料SEO / AIO診断で課題を棚卸ししてください。

Powered by ATK - labozはGXO Inc.が運営するマーケティング知見メディアです。