この記事の要約
AI検索が広がる中で、Webサイトの情報をAIにどう伝えるかが重要になり始めています。 その一つの方法が、AI向けのサイト構造ファイル llms.txt です。
- llms.txt は AI向けのサイト構造説明ファイル
- Shopifyはルート直下ファイルを置けない
- Cloudflare Workerで /llms.txt を返す方法がシンプル
この記事では、Shopifyサイトに llms.txt を設置する方法として、 Cloudflare Workerを使った実装方法と実際にハマったポイントを解説します。
※今回の方法は、ドメインのネームサーバーをCloudflareに設定していることが前提になります。
Cloudflare WorkerはCloudflareのエッジでリクエストを処理する仕組みのため、DNSがCloudflareを経由していない場合は動作しません。
この記事の内容
最近は ChatGPT や Claude などのAI検索を通じて、 Webサイトの情報が引用されるケースが増えています。
その中で少しずつ注目されているのが
AI向けのサイト構造ファイル「llms.txt」
です。
今回は Shopifyで運用しているサイトに llms.txt を設置する方法を紹介します。
実際に公開しているファイルはこちらです。
llms.txtとは
llms.txt は、 AI向けのサイト構造説明ファイルです。
検索エンジン向けには
- robots.txt
- sitemap.xml
がありますが、 llms.txt はそれに近い役割を持ちます。
AIに対して
- このサイトは何のサイトか
- どのページが重要か
- どこを読むと理解できるか
といった情報を整理して伝えることができます。
もちろん llms.txt がなくてもAIはサイトをクロールします。
ただし、
サイトの意味構造を先に渡しておくことで、 AIがコンテンツを理解する助けになります。
Shopifyで設置が難しい理由
Shopifyは非常に便利なECプラットフォームですが、
/llms.txt
のようなルート直下の任意ファイルを 直接配置することができません。
つまり通常のWebサイトのように
- サーバーにテキストファイルを置く
- そのまま公開する
という方法が使えません。
Shopifyのファイルアップロードとリダイレクトでも対応できますが、 文字コードやレスポンス制御の面で少し不安が残ります。
そこで今回は
Cloudflare Workerで /llms.txt を返す方法
を採用しました。
今回の構成
今回の構成はとてもシンプルです。
User ↓ Cloudflare ↓ Worker ↓ Shopify
通常のページはそのままShopifyへ流し、
/llms.txt
へのアクセスだけWorkerがレスポンスを返します。
この方法なら
- Shopify本体を変更しない
- 任意ファイルを公開できる
- レスポンスヘッダーを制御できる
というメリットがあります。
Cloudflare Workerの実装
Workerのコードはシンプルです。
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/llms.txt") {
const body = "... llms.txt 内容 ...";
return new Response(body, {
headers: {
"content-type": "text/plain; charset=utf-8",
"cache-control": "public, max-age=3600"
}
});
}
return fetch(request);
}
};
ポイントは
- /llms.txt のときだけレスポンスを返す
- それ以外はShopifyへ転送
というシンプルな仕組みです。
Worker Routeの設定
Workerはコードを書いただけでは動きません。
どのURLでWorkerを動かすかを Worker Routeで設定します。

今回公開しているURLはこちらです。
実際にハマったポイント
wwwあり / wwwなし のドメイン問題
今回一番ハマったのは、 wwwあり / wwwなし のドメインの扱いでした。
Cloudflare Worker自体は正常に動いていたのですが、 独自ドメインでアクセスすると404になるケースがありました。
原因は ShopifyのPrimary domain設定 でした。
今回のサイトでは Shopify のPrimary domainが wwwなしドメインに設定されており、
example.com
へのアクセスは Shopify 側のルーティングが優先される状態でした。
その結果、次のような挙動になっていました。
www.example.com/llms.txt → Workerが返す example.com/llms.txt → Shopifyの404
つまり Cloudflare Worker の問題ではなく、 Shopifyのドメイン優先設定による挙動でした。
実務上は大きな問題ではない
今回のケースでは
で正常に公開できているため、 実務上は特に問題ありません。
検索エンジンやAIクローラは一般的に
- wwwありドメイン
- wwwなしドメイン
の両方を確認することが多く、 どちらかでアクセスできれば問題なく参照されるケースが多いです。
llms.txtを置く意味
llms.txtの役割は、 AIがサイトを理解するときの 意味構造を整理することです。
AIはまず
- このサイトは何か
- どのページが重要か
- どの情報を優先して読むべきか
を理解しようとします。
llms.txt は、 そのためのAI向けサイトガイドのような存在です。
特にブランドサイトやプロジェクト型サイトでは、 AIがサイト構造を理解する入口として役立ちます。
まとめ
Shopifyサイトで llms.txt を設置するなら、 Cloudflare Workerを使う方法がシンプルでした。
- Cloudflare Workerを作成
- /llms.txt のレスポンスを書く
- Worker Routeを設定
- 公開URLで確認
Shopifyではルート直下ファイルを置けないため、 Workerによるエッジ返却はかなりきれいな解決方法です。
AI検索が広がる中で、 今後はこうしたAI向けの情報設計も重要になっていきそうです。