KDIGI CMS
SEO

llms.txt là gì và cách tối ưu website cho AI (GEO, AIO)

Đăng 14 phút đọc

llms.txt là một file Markdown đặt ở gốc website (/llms.txt), do Jeremy Howard (Answer.AI) đề xuất tháng 9/2024, liệt kê có chọn lọc các trang quan trọng kèm mô tả ngắn để mô hình ngôn ngữ và AI agent tìm đúng thông tin. Đây là một đề xuất cộng đồng, không phải chuẩn chính thức, và Google Search cho biết họ không dùng nó.

Tóm tắt nhanh

  • llms.txt là danh mục Markdown dành cho AI agent; robots.txt là quy tắc cho phép/chặn crawler; sitemap.xml là danh sách mọi URL cho công cụ tìm kiếm. Ba file có mục đích khác nhau.
  • Định dạng: một H1 (bắt buộc), blockquote tóm tắt, các mục H2 chứa danh sách liên kết [tên](url): ghi chú.
  • Google Search Central nói rõ: Google Search không dùng llms.txt; có hay không đều không làm tăng hay giảm thứ hạng. Bạn vẫn có thể tạo nó cho các hệ thống khác.
  • Điều thực sự giúp xuất hiện trong AI Overviews/AI Mode là SEO nền tảng: trang lập chỉ mục được, nội dung hữu ích, cấu trúc rõ, crawl được.
  • Cho các AI khác (ChatGPT, Claude, Perplexity), việc quan trọng nhất là không chặn nhầm crawler của họ trong robots.txt và có nội dung HTML server-render.
  • Tạo llms.txt tốn rất ít công, nhưng đừng coi nó là phép màu.

llms.txt là gì và ai đề xuất

Theo trang đề xuất tại llmstxt.org (Jeremy Howard, đăng 3/9/2024), ý tưởng là website thêm một file /llms.txt bằng Markdown để cung cấp nội dung thân thiện với mô hình ngôn ngữ. Lý do: trang HTML được dựng cho con người, kèm điều hướng, quảng cáo, JavaScript, nên việc chuyển ngược thành văn bản sạch khó và thiếu chính xác; cửa sổ ngữ cảnh của mô hình lại có hạn. Một file ngắn, do chuyên gia tuyển chọn, ở một vị trí cố định giúp agent đi thẳng đến thông tin cần.

Đề xuất cũng gợi ý mỗi trang có phiên bản Markdown sạch tại cùng URL cộng thêm .md (ví dụ trang.html.md). Theo chính trang đề xuất, hiện có hàng nghìn website công bố llms.txt, nhiều nền tảng tài liệu tự sinh nó, và các phòng thí nghiệm AI như OpenAI, Anthropic và Google (Gemini API) công bố llms.txt cho tài liệu dành cho nhà phát triển của họ. Việc đó dùng nhiều nhất ở tài liệu phần mềm, nơi coding agent đọc để gọi API đúng.

Định dạng file llms.txt

Spec yêu cầu các phần sau, theo đúng thứ tự:

  1. Một thẻ H1 là tên dự án hoặc site. Đây là phần bắt buộc duy nhất.
  2. Một blockquote tóm tắt ngắn, chứa thông tin then chốt.
  3. Không hoặc nhiều đoạn văn/danh sách (không chứa heading) giải thích thêm.
  4. Không hoặc nhiều mục H2 chứa danh sách liên kết; mỗi mục là - [Tên](URL): ghi chú tùy chọn.

Mục có tên Optional theo quy ước chứa thông tin thứ yếu mà agent có thể bỏ qua khi cần ngữ cảnh ngắn. Ví dụ rút gọn cho một site tài liệu CMS:

# KDIGI CMS

> KDIGI CMS là CMS headless mã nguồn mở (MIT) quản lý nhiều website trên một bản cài, soạn thảo Markdown, SEO tích hợp, REST và GraphQL API.

Nội dung công khai chỉ đọc được qua API với bộ lọc `tenant`; mỗi website là một "site".

## Tính năng

- [Quản lý nhiều website](https://opencms.kdigi.vn/tinh-nang/quan-ly-nhieu-website): tenant, domain, thương hiệu từng site
- [SEO và JSON-LD](https://opencms.kdigi.vn/tinh-nang/seo-json-ld): template SEO, đồ thị JSON-LD, kiểm tra SEO

## Hướng dẫn

- [Chuyển từ WordPress](https://opencms.kdigi.vn/chuyen-tu-wordpress): pipeline 8 phase, giới hạn, checklist
- [Tự host](https://opencms.kdigi.vn/tu-host): Docker Compose, Coolify, VPS

## Optional

- [So sánh với WordPress](https://opencms.kdigi.vn/so-sanh/kdigi-cms-vs-wordpress)

Nên có thêm llms-full.txt chứa toàn bộ văn bản thuần của các trang chính, dành cho agent muốn nạp một lần. Đây là quy ước phổ biến chứ không nằm trong spec cốt lõi. Website này cung cấp cả /llms.txt lẫn /llms-full.txt.

llms.txt, robots.txt và sitemap.xml: khác nhau thế nào

robots.txt sitemap.xml llms.txt
Đối tượng Crawler (tìm kiếm, AI) Công cụ tìm kiếm AI agent, mô hình ngôn ngữ
Mục đích Cho phép hoặc chặn truy cập Liệt kê mọi URL cần lập chỉ mục Danh mục có chọn lọc kèm mô tả
Định dạng Văn bản quy tắc XML Markdown
Mức độ chuẩn hoá Chuẩn thực tế lâu đời (RFC 9309) Giao thức sitemaps.org Đề xuất cộng đồng
Có thể thay thế nhau Không Không Không

Theo llmstxt.org, llms.txt được thiết kế để cùng tồn tại với chuẩn hiện có: sitemap liệt kê mọi trang, còn llms.txt là bản tổng quan được tuyển chọn; nó có thể bổ sung cho robots.txt bằng cách cho ngữ cảnh về nội dung được phép dùng.

Google nói gì về llms.txt, GEO và AIO

Đây là phần dễ bị hiểu sai nhất. Trong hướng dẫn "Optimizing your website for generative AI features on Google Search", Google viết:

  • Bạn không cần tạo file máy đọc mới, file văn bản cho AI, markup hay Markdown để xuất hiện trong Google Search (kể cả các tính năng AI), vì Google Search không dùng chúng.
  • Tạo và duy trì llms.txt cho dịch vụ khác là hoàn toàn ổn; việc đó sẽ không giúp cũng không hại hiển thị hay thứ hạng trên Google Search.
  • Không có yêu cầu bổ sung nào ngoài yêu cầu kỹ thuật của Google Search để xuất hiện trong AI Overviews và AI Mode: trang phải được lập chỉ mục và đủ điều kiện hiển thị kèm đoạn trích (snippet).
  • Về thuật ngữ: AEO (answer engine optimization) và GEO (generative engine optimization) là các tên gọi cho việc tối ưu hiển thị trong trải nghiệm tìm kiếm AI; từ góc nhìn của Google Search, đó vẫn là SEO. Google cũng nhắc không cần "chunking" nội dung hay viết lại riêng cho AI, và cảnh báo thận trọng với các dịch vụ GEO của bên thứ ba.

Nói cách khác: nếu mục tiêu của bạn là AI Overviews, hãy đầu tư vào SEO nền tảng; llms.txt chỉ là một phần bổ sung rẻ cho các agent và dịch vụ có đọc nó.

AIO, GEO, AEO nghĩa là gì

Thuật ngữ Nghĩa
AIO AI Overviews: phần tóm tắt do AI tạo ra ở đầu một số kết quả Google, kèm liên kết nguồn
AI Mode Chế độ tìm kiếm hội thoại của Google cho câu hỏi phức tạp
GEO Generative Engine Optimization: tối ưu để nội dung được trích dẫn trong câu trả lời sinh bởi AI
AEO Answer Engine Optimization: tối ưu để trở thành câu trả lời trực tiếp
RAG Retrieval-Augmented Generation: AI truy xuất trang web rồi tổng hợp câu trả lời dựa trên đó
Query fan-out AI sinh nhiều truy vấn con liên quan để thu thập thêm nguồn

Checklist tối ưu website cho AI (GEO, AIO) thực dụng

Danh sách này bám theo hướng dẫn của Google và nguyên tắc chung, không dựa vào "mẹo" chưa được xác nhận.

1. Nội dung

  1. Trả lời trước: đoạn đầu tiên dưới H1 trả lời thẳng câu hỏi chính trong khoảng 40–60 từ, đủ để trích nguyên văn.
  2. Nội dung không phổ thông: Google khuyên tạo nội dung "non-commodity" có góc nhìn và kinh nghiệm thật, thay vì tóm lại thông tin ai cũng có.
  3. Cấu trúc rõ: heading logic, đoạn ngắn, bảng so sánh, danh sách có thứ tự cho quy trình.
  4. Thông tin kiểm chứng được: số phiên bản, lệnh, tên trường, nguồn dẫn thay vì tính từ chung chung.
  5. Ngày cập nhật hiển thị trên trang và dateModified trong schema.
  6. Tác giả, trang giới thiệu, trang liên hệ thật, để tăng tín hiệu E-E-A-T.

2. Kỹ thuật

  1. Server-render HTML: nội dung quan trọng phải có trong phản hồi HTML đầu tiên, không phụ thuộc JavaScript phía client.
  2. Cho phép crawl: không chặn nhầm trong robots.txt, CDN hay tường lửa. Google nêu rõ cần cho phép crawl ở robots.txt và cả hạ tầng CDN/hosting.
  3. Liên kết nội bộ để mọi trang đều tìm thấy được, không có trang mồ côi.
  4. Trải nghiệm trang tốt trên mọi thiết bị.
  5. Dữ liệu có cấu trúc khớp nội dung hiển thị; xem bài Schema markup và JSON-LD là gì.
  6. Canonical, sitemap, redirect đúng; URL đổi phải có 301, xem Redirect 301 là gì.

3. Cho phép các AI crawler chính trong robots.txt

Mỗi hãng AI có nhiều user-agent với vai trò khác nhau. Bảng dưới là các tên phổ biến; hãy kiểm tra tài liệu chính thức của từng hãng vì danh sách có thể thay đổi.

User-agent Hãng Vai trò (theo cách các hãng mô tả)
GPTBot OpenAI Thu thập dữ liệu cho huấn luyện mô hình
OAI-SearchBot OpenAI Lập chỉ mục cho tìm kiếm trong ChatGPT
ChatGPT-User OpenAI Truy cập khi người dùng yêu cầu
ClaudeBot Anthropic Thu thập dữ liệu cho huấn luyện
Claude-SearchBot Anthropic Lập chỉ mục cho kết quả tìm kiếm
PerplexityBot Perplexity Lập chỉ mục cho Perplexity
Google-Extended Google Token điều khiển việc dùng nội dung cho huấn luyện/grounding của một số hệ thống AI Google khác; không ảnh hưởng thứ hạng Google Search
Applebot-Extended Apple Token điều khiển việc dùng nội dung để huấn luyện AI của Apple
CCBot Common Crawl Thu thập dữ liệu cho kho Common Crawl

Một robots.txt cho phép tất cả:

User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: Applebot-Extended
Allow: /

User-agent: CCBot
Allow: /

User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

Cho phép hay chặn các crawler huấn luyện là quyết định kinh doanh của bạn (nội dung có phải tài sản bán không?). Điều chắc chắn là: chặn nhầm crawler tìm kiếm thì nội dung không thể được trích dẫn trong câu trả lời của dịch vụ đó. Nhớ rằng robots.txt là quy ước tự nguyện; crawler uy tín tuân thủ, nhưng nó không phải cơ chế bảo mật.

4. Tạo llms.txt (và llms-full.txt)

  1. Chọn 10–30 trang quan trọng nhất: sản phẩm, hướng dẫn, so sánh, tài liệu API, chính sách.
  2. Mỗi trang một dòng [Tên](URL): mô tả một câu, nhóm theo H2.
  3. Đưa thông tin thứ yếu vào mục Optional.
  4. Đặt file ở /llms.txt, trả về text/plain hoặc text/markdown, UTF-8.
  5. Với tài liệu kỹ thuật, cân nhắc phiên bản .md của từng trang như đề xuất.
  6. Kiểm thử: đưa riêng file cho một trợ lý AI và hỏi vài câu về site, theo đúng gợi ý của llmstxt.org.

Làm trên website dùng KDIGI CMS

Vì KDIGI CMS là headless (admin và API), frontend của bạn tự sinh llms.txt, sitemap.xml, robots.txt. Playbook migration của KDIGI cũng nêu rõ sitemap và robots.txt do frontend sinh. Lợi thế: nội dung đã có sẵn dạng Markdown (contentMd), nên việc dựng llms-full.txt và bản .md của từng trang rất tự nhiên: bạn đọc contentMd qua REST rồi xuất ra thẳng. Trường content (HTML đã render) vẫn dùng để render trang.

Một số điểm liên quan trong CMS:

  • Mỗi tài liệu có seo.robots (mặc định index, follow), cho phép max-snippet:-1, max-image-preview:large, max-video-preview:-1 để kiểm soát cách đoạn trích hiển thị.
  • seo.jsonLd.raw chứa sẵn đồ thị JSON-LD với BlogPosting, Person, Organization, BreadcrumbList; ngày xuất bản/sửa lưu ở seo.articleMeta.
  • Công cụ SEO audit và gợi ý liên kết nội bộ giúp tránh trang mồ côi.

Xem SEO và JSON-LD, Headless API và soạn thảo Markdown.

Hiểu đúng kỳ vọng

Kỳ vọng Thực tế
"Có llms.txt là được AI Overviews trích dẫn" Google nói họ không dùng llms.txt; AI Overviews dựa vào hệ thống xếp hạng và chỉ mục cốt lõi
"llms.txt thay thế sitemap hoặc robots" Không; ba file khác mục đích
"Phải viết lại nội dung riêng cho AI" Google nói không cần; viết cho người đọc
"Càng nhiều trang con theo từng truy vấn phụ càng tốt" Làm hàng loạt để thao túng có thể vi phạm chính sách scaled content abuse
"Đánh dấu schema đặc biệt cho AI" Google nói không có schema đặc biệt cần thêm
"Công cụ GEO bên thứ ba biết thuật toán nội bộ" Google cảnh báo không công cụ nào truy cập được hệ thống xếp hạng nội bộ

Cách đo thực tế: dùng báo cáo Generative AI performance trong Search Console (theo hướng dẫn của Google) để xem nội dung xuất hiện thế nào trong tính năng AI của Google; với các dịch vụ khác, đối chiếu lượt truy cập giới thiệu từ nguồn của họ trong công cụ phân tích của bạn.

Câu hỏi thường gặp

llms.txt là gì?

llms.txt là file Markdown đặt tại /llms.txt, liệt kê có chọn lọc các trang quan trọng của website kèm mô tả ngắn để mô hình ngôn ngữ và AI agent tìm đúng thông tin. Nó do Jeremy Howard đề xuất tháng 9/2024 và là đề xuất cộng đồng chứ không phải chuẩn chính thức. Cấu trúc gồm H1 bắt buộc, blockquote tóm tắt và các mục H2 chứa danh sách liên kết.

Có cần llms.txt để xuất hiện trong Google AI Overviews không?

Không. Hướng dẫn của Google nói bạn không cần tạo llms.txt hay file máy đọc mới nào để xuất hiện trong Google Search, kể cả AI Overviews và AI Mode, vì Google Search không dùng chúng. Có file cũng không hại và không giúp thứ hạng. Điều kiện duy nhất là trang được lập chỉ mục và đủ điều kiện hiển thị kèm snippet.

GEO khác SEO ở điểm nào?

GEO (Generative Engine Optimization) là cách gọi cho việc tối ưu để nội dung được trích dẫn trong câu trả lời do AI sinh ra. Google khẳng định từ góc nhìn của Google Search, tối ưu cho tìm kiếm AI vẫn là SEO. Thực tế hai công việc chồng lên nhau gần hết: nội dung hữu ích, cấu trúc rõ, crawl và lập chỉ mục được, thông tin đáng tin cậy.

Nên cho phép hay chặn GPTBot, ClaudeBot trong robots.txt?

Tùy chiến lược. Crawler huấn luyện như GPTBot, ClaudeBot dùng nội dung để huấn luyện mô hình; chặn chúng là quyền của bạn. Crawler tìm kiếm như OAI-SearchBot, Claude-SearchBot, PerplexityBot thì ngược lại: chặn nghĩa là nội dung khó xuất hiện trong câu trả lời của dịch vụ đó. Hãy tách biệt từng user-agent và kiểm tra tài liệu chính thức của hãng.

Làm sao tạo llms.txt cho website headless?

Frontend tự sinh file này, giống sitemap.xml. Chọn 10–30 trang chính, mỗi trang một dòng [Tên](URL): mô tả, nhóm theo H2, đặt ở /llms.txt. Với KDIGI CMS, nội dung gốc là Markdown (contentMd) nên bạn có thể đọc qua REST và xuất thẳng thành llms-full.txt hoặc bản .md của từng trang.

Tối ưu nội dung để AI trích dẫn cần làm gì?

Viết đoạn đầu trả lời thẳng câu hỏi trong khoảng 40–60 từ, dùng heading rõ, bảng và danh sách, nêu số liệu và nguồn kiểm chứng được, hiển thị ngày cập nhật và tác giả thật. Về kỹ thuật, render HTML phía server, không chặn crawler, liên kết nội bộ đầy đủ. Những điều này đều là SEO nền tảng và có lợi cho cả người đọc lẫn AI.

Nguồn

Bài viết liên quan

Chính sách biên tập: bài viết do đội ngũ KDIGI biên soạn, thông tin sản phẩm đối chiếu với mã nguồn và tài liệu chính thức, thông tin về sản phẩm khác kèm nguồn dẫn. Xem thêm giới thiệu KDIGI.