Odoo 20 には、コアの Website アプリケーションに公開された /llms.txt ルートが含まれています。Website 管理者は、アプリケーション外で追加のルートを実装するのではなく、Odoo 内でプレーンテキストの応答を設定できます。関連する変更では、選択された技術系および取引系ルートのクローラー制限も生成された robots.txt ディレクティブへ移されています。 (Odoo Odoo Blob; mergebot.odoo.com)
これらの変更には、2つの別々の確認作業が発生します。管理者は llms.txt の内容を公開して維持するかを決めたうえで、データベースにインストールされているモジュール向けに生成された robots.txt の出力を確認する必要があります。同じ実装から導入されていても、llms.txt と robots.txt は目的が異なるため、個別にテストする必要があります。 (Odoo Odoo Blob; mergebot.odoo.com)
Odoo 20 が公開する内容
Website アプリケーションは、/llms.txt HTTP ルートを通じて Website のルートで llms.txt を公開します。空白でない内容が設定されている場合、このルートは UTF-8 エンコーディングを使用したプレーンテキストとしてその内容を返します。この実装は、既存のページや他の Website レコードから完成済みの llms.txt ドキュメントを自動生成しません。 (Odoo Odoo Blob)
Odoo は、発見しやすくするために Website のルート HTML に llms.txt への参照も追加します。管理者は Website SEO settings の下にあるエディタでファイルの内容を管理し、公開するテキストを既存の Website 設定プロセスに組み込みます。 (mergebot.odoo.com)
このルートはコアの Website アプリケーションの一部であるため、Odoo 20 の Website では、エンドポイントを提供するだけのためにサードパーティ製モジュールを必要としません。それでも管理者は内容を準備し、維持する必要があります。Odoo はルート、設定エディタ、ルート HTML の参照を提供し、保存されたテキストがエンドポイントの返す内容を決定します。 (Odoo Odoo Blob; mergebot.odoo.com)
空白の内容ではファイルは作成されない
Odoo は、llms.txt が入力されていない Website に対する明示的な動作を定義しています。設定値がないか、空白のみの場合、/llms.txt へのリクエストには not-found 応答が返されます。Odoo は空のファイル、プレースホルダー、または自動生成された要約を公開しません。 (Odoo Odoo Blob)
したがって、Odoo 20 にルートがあるからといって、すべての Website がすぐに llms.txt ドキュメントを公開するわけではありません。not-found 応答は、サーバーやルーティングの障害ではなく、空白でない内容が保存されていないことを示している場合があります。管理者は、技術的な障害としてリクエストを調査する前に、Website SEO の設定を確認する必要があります。 (Odoo Odoo Blob; mergebot.odoo.com)
クローラー制限は robots.txt に移動
関連するクローラー変更では、login、checkout、payment、confirmation、portal ページなどのルートに対する制限が robots.txt ディレクティブへ移されます。Odoo は、データベースにインストールされているモジュールに応じて、これらのディレクティブを生成します。 (mergebot.odoo.com)
その結果、生成される robots.txt の出力は Odoo 環境ごとに異なる場合があります。ecommerce や portal モジュールを持つデータベースは、一般的な想定ファイルや別のデータベースからコピーしたファイルだけを基準に評価すべきではありません。レビュー担当者は、評価対象のデータベースによって生成された出力を確認し、インストール済みモジュールを考慮する必要があります。 (mergebot.odoo.com)
この 2 つの仕組みは引き続き別物です。/llms.txt ルートは管理者が提供したプレーンテキストの内容を公開し、robots.txt には指定された技術系および取引系ルートのクローラー制限が含まれます。llms.txt を公開しても robots.txt の確認は不要にはならず、robots.txt ディレクティブが存在しても llms.txt は入力されません。 (Odoo Odoo Blob; mergebot.odoo.com)
サイト運営に関する含意
この機能を使用する組織は、llms.txt 設定の責任者を定めるべきです。Odoo は保存された空白でない内容を公開しますが、他のサイト素材が変更されても、そのテキストを自動的に更新するわけではありません。そのため、内容の正確性は組織のレビューと保守のプロセスに依存します。 (Odoo Odoo Blob; mergebot.odoo.com)
ファイルが公開される想定の場所では、公開エンドポイントをテストする必要があります。管理画面にエディターが表示されることを確認するだけでは不十分です。/llms.txt への直接リクエストは、プレーンテキストの content type と UTF-8 エンコーディングで、意図したテキストを返す必要があります。 (Odoo Odoo Blob; mergebot.odoo.com)
クローラーのレビュー手順では、ルート制限の場所も考慮する必要があります。Odoo 20 の受入テストには、生成された robots.txt の出力を含めるべきで、特にインストール済みモジュールがログイン、チェックアウト、支払い、確認、またはポータルのルートを提供する場合は重要です。 (mergebot.odoo.com)
完全なレビューのためには、チームは生成された robots.txt の指示とは独立して、設定された llms.txt の内容とその公開応答を確認するべきです。この分離により、管理者が入力したテキスト、エンドポイントの挙動、およびモジュール依存のクローラー制限が、それぞれ実装の該当部分に照らして確認されていることを確実にできます。 (Odoo Odoo Blob; mergebot.odoo.com)
実装が明示していないこと
この実装は、Odoo が設定済みの llms.txt コンテンツをどのように公開し管理するかを確認していますが、組織がファイルに何を書くべきかは規定していません。また、承認プロセス、レビューの頻度、内容の責任者も定義していません。これらは組織内部のガバナンス上の判断として残ります。 (Odoo Odoo Blob; mergebot.odoo.com)
この実装は、robots.txt の制限がインストール済みモジュールに応じて生成されることも確認していますが、あらゆるモジュールの組み合わせに対して単一の共通出力を提供するものではありません。チームは、ある Odoo 20 データベースの robots.txt が、別のアプリケーション構成を持つ環境の出力を表すと想定すべきではありません。 (mergebot.odoo.com)
公開前の確認
まず、llms.txt エディターが Website SEO 設定の下で利用できることを確認します。承認済みの内容を入力し、保存してから /llms.txt を直接要求します。内容が入力されたエンドポイントは、保存されたテキストを UTF-8 のプレーンテキストとして返すはずです。内容がない場合、または空白のみの場合は not-found 応答になる必要があります。 (Odoo Odoo Blob; mergebot.odoo.com)
次に、サイトのルート HTML で Odoo の llms.txt 参照を確認します。これにより、エンドポイント自体とは別に発見可能性の要素をテストできます。ルートの応答と HTML の参照は実装の別々の部分であるため、両方を確認する必要があります。 (mergebot.odoo.com)
第三に、評価対象の環境から robots.txt を取得します。関連するログイン、チェックアウト、支払い、確認、ポータルのルートに対する生成済みの指示を確認します。別の環境の想定結果を当てはめるのではなく、インストール済みモジュールが異なるデータベースごとにこの確認を繰り返してください。 (mergebot.odoo.com)
最後に、llms.txt を意図的に公開しているのか、空欄のままにしているのかを記録します。Odoo は設定済みコンテンツの動作と not-found の動作を通じて両方の状態をサポートしていますが、ソフトウェアはどちらの選択にした組織の理由までは文書化しません。サイトの SEO とクローラーのレビューとあわせて決定を記録すると、その後の設定確認のためのより明確な基準になります。 (Odoo Odoo Blob; mergebot.odoo.com)
