Odoo 20 在核心 Website 應用中包含一個公開的 /llms.txt 路由。Website 管理員可以直接在 Odoo 中設定純文字回應,而不必在應用程式外另行實作路由。相關變更也將部分技術與交易路由的爬蟲限制移入產生的 robots.txt 指令中。 (Odoo Odoo Blob; mergebot.odoo.com)

這些變更帶來兩項獨立的審查工作。管理員必須決定是否發佈並維護 llms.txt 內容,接著檢查資料庫中已安裝模組所產生的 robots.txt 輸出。雖然兩者由同一套實作引入,llms.txt 與 robots.txt 的用途不同,應分開測試。 (Odoo Odoo Blob; mergebot.odoo.com)

Odoo 20 發佈的內容

Website 應用透過 /llms.txt HTTP 路由,將 llms.txt 暴露在網站根目錄。當設定的內容不為空白時,該路由會以 UTF-8 編碼回傳該內容的純文字。此實作不會自動根據現有頁面或其他網站記錄組成完整的 llms.txt 文件。 (Odoo Odoo Blob)

Odoo 也在網站根目錄 HTML 中加入 llms.txt 參照,以提升可發現性。管理員可透過 Website SEO 設定中的編輯器管理檔案內容,將發佈文字納入既有的網站設定流程。 (mergebot.odoo.com)

由於該路由屬於核心 Website 應用的一部分,Odoo 20 網站不需要第三方模組就能提供這個端點。不過,管理員仍必須準備並維護內容。Odoo 提供路由、設定編輯器與根目錄 HTML 參照,而儲存的文字決定端點實際回傳的內容。 (Odoo Odoo Blob; mergebot.odoo.com)

空白內容不會產生檔案

Odoo 對尚未填入 llms.txt 的網站定義了明確行為。如果設定值缺失或僅包含空白字元,對 /llms.txt 的請求會收到 not-found 回應。Odoo 不會發佈空檔案、預留內容,或自動產生的摘要。 (Odoo Odoo Blob)

因此,Odoo 20 中有這個路由,不代表每個網站都會立即公開 llms.txt 文件。not-found 回應可能表示尚未儲存非空白內容,而不一定是伺服器或路由錯誤。管理員在將此請求視為技術故障之前,應先檢查 Website SEO 設定。 (Odoo Odoo Blob; mergebot.odoo.com)

爬蟲限制移至 robots.txt

相關的爬蟲變更,會將登入、結帳、付款、確認與入口網站頁面等路由的限制移入 robots.txt 指令。Odoo 會根據資料庫中已安裝的模組產生這些指令。 (mergebot.odoo.com)

因此,產生的 robots.txt 輸出可能會因 Odoo 環境而異。具有 ecommerce 或 portal 模組的資料庫,不應只拿通用的預期檔案,或從其他資料庫複製的檔案來判斷。審查者需要檢查受審查資料庫所產生的輸出,並將其已安裝模組納入考量。 (mergebot.odoo.com)

這兩種機制仍然不同。/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 應回傳預期文字,並使用純文字內容類型與 UTF-8 編碼。 (Odoo Odoo Blob; mergebot.odoo.com)

爬蟲審查程序也應考慮路由限制的位置。Odoo 20 驗收測試應包含產生的 robots.txt 輸出,尤其是在已安裝模組提供登入、結帳、付款、確認或入口網站路由時。 (mergebot.odoo.com)

為了完整審查,團隊應獨立驗證已設定的 llms.txt 內容及其公開回應,並與產生的 robots.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)