ふくふくHukuhuku Inc.
EP.02GEO / LLMO 10分公開: 2026-05-10

llms.txt 完全実装ガイド:書き方・配置・自動生成の現実解

Jeremy Howard が提案した llms.txt 規約を、コーポレートサイト・メディア・SaaS の 3 形態別に実装。Next.js / WordPress / 静的サイトでの自動生成パターン、llms-full.txt との使い分け、検証ツールまで。

#llms.txt#LLMO#実装
シェア

EP.01 の概要を扱いました。本記事では実装の詳細を、3 サイト形態別に深掘りします。

1. llms.txt の基本構造 (おさらい)

llms.txt のフォーマット
Markdown
# サイトタイトル
> 1〜3 行のサイト要約
任意で背景説明を 1 段落
## セクション 1
- [タイトル](URL): 説明- [タイトル](URL): 説明
## セクション 2
- [タイトル](URL): 説明
## Optional
- [タイトル](URL): 補助情報

2. サイト形態別の書き分け

サイト形態重視するセクションボリューム目安
コーポレートサイトサービス / 事例 / 会社情報30-50 リンク
B2B SaaS / プロダクト機能 / ドキュメント / API100-300 リンク
メディア / ブログ記事一覧 / シリーズ本数次第 (1000+ も可)
EC サイト商品カテゴリ / 売れ筋 / 会社情報100-500 リンク

3. Next.js (App Router) での自動生成

src/app/llms.txt/route.ts
TypeScript
import { ARTICLES, SERIES_LIST } from "@/data/blog";
const BASE = "https://example.com";
export const dynamic = "force-static";
export async function GET() {  const lines: string[] = [];  lines.push("# サイト名");  lines.push("");  lines.push("> 1 行サイト要約");  lines.push("");  lines.push("## 主要ページ");  lines.push("");  lines.push(`- [トップ](${BASE}): 会社概要`);  lines.push(`- [サービス](${BASE}/services): 提供サービス`);  lines.push("");  lines.push("## ブログ");  lines.push("");  for (const a of ARTICLES) {    lines.push(`- [${a.title}](${BASE}/blog/${a.slug}): ${a.excerpt}`);  }  return new Response(lines.join("\n"), {    headers: { "Content-Type": "text/plain; charset=utf-8" },  });}

4. WordPress での実装

functions.php に追加
PHP
add_action('init', function() {    if ($_SERVER['REQUEST_URI'] === '/llms.txt') {        header('Content-Type: text/plain; charset=utf-8');        echo "# " . get_bloginfo('name') . "\n\n";        echo "> " . get_bloginfo('description') . "\n\n";        echo "## 最新記事\n\n";        $posts = get_posts(['posts_per_page' => 50]);        foreach ($posts as $p) {            echo "- [" . $p->post_title . "](" . get_permalink($p) . "): "                . wp_trim_words($p->post_excerpt, 30) . "\n";        }        exit;    }});

5. 静的サイト (Hugo / Astro 等)

  • Hugo: `layouts/index.llms.txt` をテンプレで作成 → `hugo` でビルド時に生成
  • Astro: `src/pages/llms.txt.ts` で動的生成、ビルド時に静的化
  • Jekyll: `_layouts/llms.txt.liquid` でテンプレ作成
  • Gatsby: `gatsby-node.js` の createPages で生成

6. llms-full.txt の使い分け

項目llms.txtllms-full.txt
内容見出し+リンク+短い説明本文を Markdown で結合
サイズ数 KB-数百 KB数 MB-数十 MB
用途サイト構造の伝達記事本体の AI 学習素材提供
実装難度低 (1 時間)中 (本文クレンジングが必要)
配置/llms.txt/llms-full.txt

7. 検証方法

  • `curl https://example.com/llms.txt` で plain text が返ることを確認
  • `curl -I` で `Content-Type: text/plain` を確認
  • Markdown の構文チェック: 通常の MD パーサで読めることを確認
  • サイズ: 1 MB を超えるとクローラがタイムアウトする可能性、CDN 配信を検討
  • コミュニティリスト: https://llmstxt.org/ には実装サイトのディレクトリがある

8. 次の話

EP.03 では 構造化データ () 完全ガイド に進みます。Article / FAQPage / HowTo / Person 等の使い分けと、AI 検索エンジンが特に好む形式を扱います。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp