- Đây là một đặc tả tổng hợp các chức năng kỹ thuật mà một website tốt cần có, độc lập với nền tảng, bao quát từ
<title> đến llms.txt
- Hướng tới cả con người và agent, đồng thời tham chiếu các tiêu chuẩn web hiện đại như WHATWG, W3C, IETF RFCs, WCAG, MDN
- Dù được triển khai bằng WordPress, Next.js, ứng dụng Django hay HTML thuần, bản thân đặc tả vẫn giống nhau, và cũng bao gồm các gợi ý triển khai
- Toàn bộ chủ đề được chia thành 10 lĩnh vực như Foundations, SEO, Accessibility, Security, Performance và được ánh xạ với các tiêu chuẩn được chấp nhận rộng rãi
- Cung cấp MCP server công khai, Agent Skill,
/llms.txt, và phản hồi Markdown để agent và người vận hành có thể dùng cho quy trình kiểm tra, học tập và cải thiện
Đặc tả độc lập nền tảng cho một website tốt
- The Website Specification là một đặc tả tổng hợp các chức năng kỹ thuật mà một website tốt cần có, độc lập với nền tảng, bao quát từ
<title> đến /.well-known/security.txt, độ tương thích WCAG và llms.txt
- Hướng tới cả con người lẫn agent, và mỗi chủ đề đều được liên kết với các nguồn tiêu chuẩn web hiện đại như WHATWG, W3C, IETF RFCs, WCAG, MDN
- Dù triển khai bằng WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, ứng dụng Django hay HTML thuần, bản thân đặc tả vẫn giống nhau, còn gợi ý triển khai được đặt phía sau
- Mọi trang đều có liên kết Edit on GitHub, có thể nhận PR, và mỗi trang đều hiển thị nguồn tham khảo
-
Các lĩnh vực được đề cập
- Toàn bộ chủ đề được chia thành 10 lĩnh vực và ánh xạ với các tiêu chuẩn được chấp nhận rộng rãi
- Foundations: 14 mục, đề cập đến HTML,
head, và các thành phần cơ bản của tài liệu
- SEO: 13 mục, bao gồm các yếu tố hiển thị trên tìm kiếm như
robots.txt, sitemap, canonical, structured data
- Accessibility: 20 mục, đưa ra các quy tắc dựa trên WCAG để người dùng với mọi khả năng đều có thể sử dụng website
- Security: 12 mục, đề cập đến header, truyền tải và chính sách để bảo vệ khách truy cập an toàn
- Well-Known URIs: 9 mục, sắp xếp các đường dẫn chuẩn đã được thống nhất dưới
/.well-known/
- Agent Readiness: 18 mục, đề cập đến các yếu tố giúp AI agent và crawler có thể đọc website
- Performance: 19 mục, bao quát Core Web Vitals, caching, hình ảnh, font và hành vi mạng
- Privacy: 6 mục, đề cập đến sự đồng ý, tín hiệu và việc tôn trọng lựa chọn của khách truy cập
- Resilience: 5 mục, đề cập đến khả năng thất bại mềm như trang lỗi, offline và redirect
- Internationalisation: 12 mục, đề cập đến ngôn ngữ, locale, hướng hiển thị và nội dung dịch
Cách sử dụng dành cho agent và người vận hành website
- Toàn bộ đặc tả được cung cấp qua MCP server công khai, chỉ đọc và không cần xác thực
- Một Agent Skill đã được công bố để cho biết agent tương thích sẽ sử dụng đặc tả khi nào và như thế nào
- Mỗi URL đặc tả đều cung cấp Markdown theo từng trang thông qua
/llms.txt và Accept: text/markdown
- Ví dụ cấu hình MCP server như sau
{
"mcpServers": {
"specification-website": {
"transport": "http",
"url": "https://mcp.specification.website/mcp"
}
}
}
-
Quy trình sử dụng
- Audit: xem qua checklist và kiểm tra từng mục theo câu hỏi “website có làm điều này không — có/không”
- Learn: tại mỗi mục, tìm hiểu đó là gì, vì sao quan trọng và cách triển khai
- Improve: nếu tìm thấy phần còn thiếu, thông tin cũ hoặc chủ đề bị bỏ sót, có thể mở PR kèm nguồn tham khảo
1 bình luận
Ý kiến trên Hacker News
Agent Readiness có vẻ là kiểu thứ sau này sẽ khiến người ta ngượng ngùng, giống như "Web 4.0 Blockchain Integration"
Không phải vì agent sẽ trở nên vô nghĩa, mà vì ngay cả khi chúng trở nên quan trọng, nếu website phải làm xử lý ngoại lệ riêng cho agent thì cũng làm hỏng mục đích ban đầu
Cuối cùng nó sẽ bị các tác nhân xấu dùng để làm cho những gì agent thấy khác với những gì con người thấy, nên có lẽ sẽ bị cố tình phớt lờ
Website ngày nay cái gì cũng là component. Ngay cả một dropdown đơn giản với danh sách hữu hạn cũng có loader riêng và gửi 10 yêu cầu fetch chẳng vì lý do gì. Không hề phóng đại, cứ nhìn bản web của Instagram và Facebook là thấy
Bỏ hết mấy loại đặc tả này đi, tôi chỉ muốn có HTML gốc không bị làm rối bởi những thứ như React, vốn cứ khăng khăng rằng framework JS mới sẽ thay đổi cuộc chơi
Web về bản chất là một môi trường đối kháng, và tôi cho rằng khá nhiều bên vận hành website bản thân họ cũng là tác nhân xấu. Việc làm cho những gì con người thấy khác với những gì agent thấy sẽ được các website cố ý dùng, giống như cách họ từng làm với công cụ tìm kiếm
Lý do "Agent Readiness" sẽ không tồn tại lâu là vì các chủ website sớm muộn cũng sẽ nhận ra agent về thực chất là tự động hóa truy cập. Đó chính là thứ họ vẫn luôn chống lại, và nó đe dọa khả năng kiếm tiền của họ
Dù vậy tôi nghi ngờ chuyện đó có thực sự xảy ra. Vấn đề tác nhân xấu từ lâu đã có thể xảy ra rồi. Ví dụ như cung cấp cho crawler của công cụ tìm kiếm nội dung khác với những gì người dùng thấy sau khi nhấp vào. Nếu nhớ không nhầm, Google từng có thời kỳ phạt những website như vậy
https://frontendchecklist.io/rules
Con người muốn một website nhìn đẹp, và HTML thuần cũng có thể làm được điều đó. Agent thậm chí còn không cần đến mức ấy, lý tưởng nhất là chỉ cần nhìn nội dung trang ở dạng Markdown
Tại sao lại không có phiên bản cho agent? Nó giúp tiết kiệm thời gian và tiền bạc cho cả agent phía client lẫn host website
Sẽ rất hay nếu có một tiêu chuẩn như llms.txt để chỉ định rằng "agent hãy truy cập mirror này, là phiên bản Markdown thô của những gì con người nhìn thấy"
Một phần agent readiness của site này tương đương với SEO cho AI. Ngược lại, với những site không muốn bị AI crawl thì nó cũng phục vụ vai trò ngược lại
Sẽ rất tốt nếu có best practice cho các khu vực như form đăng nhập. Ví dụ như dùng tên trường nhập chuẩn mà trình quản lý mật khẩu nhận ra, tắt autocomplete và tự động viết hoa ở trường đăng nhập, dùng đúng HTML5 input type nếu là email, tránh form bắt người dùng chỉ nhập email rồi phải bấm lại mới được nhập mật khẩu, tuân theo NIST SP 800-53 để tránh 2FA qua SMS hoặc các quy tắc như buộc đổi mật khẩu định kỳ hay yêu cầu tổ hợp mật khẩu tùy tiện
Cũng có quá nhiều site không tự động focus vào form chỉ có một ô nhập
https://adamsilver.io/blog/form-design-from-zero-to-hero-all...
Sau đó ông ấy còn đăng thêm rất nhiều bài mới, và có lẽ đây là một trong những nguồn tài liệu UX tốt nhất trên web
Trước khi nhận được thông tin người dùng gửi lên, bạn không thể biết người đó dùng mật khẩu hay dùng phương thức khác
https://frontendchecklist.io/rules/html/input-types
Khi xây UI component từ đầu, tôi cực kỳ thích site này
https://component.gallery/
Nó liên kết đến component của nhiều design system, và nhiều cái trong số đó cũng bao gồm rất sâu các guideline như accessibility, internationalization. Những ví dụ có tài liệu đặc biệt tốt là Lightning Design System của Salesforce và Stacks của StackOverflow
https://www.lightningdesignsystem.com/2e1ef8501/p/99642e-car...
https://stackoverflow.design/system/forms/checkbox
Rồi đa số website либо không xem đó là ưu tiên, либо thậm chí còn không biết đó là điều cần cân nhắc, và kết quả là tình trạng như hiện nay
Tôi vẫn luôn nghĩ hẳn phải có lý do nào đó khiến các site chuyển sang mẫu này. Ví dụ như chống bot tốt hơn chẳng hạn. Không biết có ai hiểu rõ hơn không
Nhìn bề ngoài thì gần như toàn bộ trông giống nội dung do AI tạo ra, nên cách truyền đạt có thể không hiệu quả. Dù vậy, nếu đọc nhiều mục thì ngoài phần Agent ra, phần còn lại truyền tải khá rõ ràng về vệ sinh web vững chắc, nên tôi nghĩ gửi cho một lập trình viên web đang mới phát triển cũng không tệ
Tuy nhiên, việc chính trang này thậm chí còn không áp dụng cả những thực hành mà họ gọi là "bắt buộc" thì khá mỉa mai
https://validator.w3.org/nu/?doc=https%3A%2F%2Fspecification...
Tôi không hiểu mục tiêu của website này là gì. Họ quảng bá nó là một bản đặc tả, nhưng rốt cuộc đang đặc tả cái gì thì không rõ
Mọi mục đều lấy một "nguồn chân lý" khác làm nguồn tham chiếu
"Tôi đã mệt mỏi với việc phải trỏ đến sáu nguồn khác nhau để hậu thuẫn cho một khuyến nghị duy nhất. HTML là WHATWG, accessibility là WCAG, header là IETF, structured data là schema.org, còn phần còn lại là MDN, web.dev và Google Search Central
Đã không có một bản đặc tả duy nhất, có quan điểm rõ ràng và trung lập với nền tảng, về việc một website hiện đại thực sự phải làm gì
Vì thế tôi đã viết một bản"
[1] https://www.linkedin.com/posts/jdevalk_the-website-specifica...
Tôi tò mò không biết những thứ ở đây phổ biến đến mức nào. /.well-known/change-password thì có cũng tốt, nhưng nhìn vào https://news.ycombinator.com/.well-known/change-password và google.com/.well-known/change-password thì có vẻ chưa được triển khai
Tôi chưa từng nghe nói nó được dùng trong thực tế
URL của Google nằm ở https://accounts.google.com/.well-known/change-password, chứ không có ở domain chính
Cái này trông như bước ra từ một nhà máy rác. "SEO", rồi cả "Agent-readiness" nữa. Đó chính là những điều mà một website tốt không nên làm
Quả nhiên, nó do một chuyên gia WordPress "SEO" dùng Claude LLM kiêm nhà đầu tư cá nhân tạo ra. Người đã tích lũy tài sản bằng cách phá hỏng Internet mà chúng ta từng yêu quý bằng rác quảng cáo, giờ lại muốn phá nốt phần còn lại bằng rác LLM
Việc xếp "stable URLs" vào nhóm "agent readiness" có vẻ là dấu hiệu cho thấy tác giả quan tâm đến AI hơn là con người. Tôi sẽ đưa domain này vào danh sách chặn. Nhìn là thấy nó sẽ làm cho việc tìm kiếm thông tin phát triển web tệ hơn
"Không phải framework. Không phải hướng dẫn. Đây là đặc tả — cái gì là bắt buộc, cái gì được khuyến nghị, và cái gì nên tránh."
Khó mà nói bao nhiêu phần của site này là rác LLM, nhưng một số câu chữ chắc chắn trông đúng như vậy
https://specification.website/llms-full.txt
Thứ nhất là những nhãn màu nhỏ như required, optional, recommended
Thứ hai là lượng nội dung điên rồ mà chẳng ai đọc
Thứ ba là cách triển khai cố đẩy một ý tưởng yếu đi vào chi tiết đến mức đau đớn
Tôi cũng từng định tự làm thứ như thế này, nhưng chỉ cần dán cái này vào bất kỳ cuộc chat agent nào thì nó hoạt động rất tốt
Vừa rồi tôi dùng model local (Qwen3.6 27B / pi) để lập danh sách các tiêu chuẩn bắt buộc còn thiếu cho một site Hugo cũ, tạo danh sách việc cần làm rồi để nó xử lý từng việc một, đồng thời cho tôi duyệt từng thay đổi
Nó còn tự cắt biểu tượng từ logo để làm favicon còn thiếu, và kết quả khá ổn
piđến mức nào. Tôi thích cảm giác ít ma sát của các prompt agent/system ngắn, nhưng nếu cứ giao bừa các tác vụ tùy ý thì có vẻ sẽ có khá nhiều lúc chờ đợi và đi vào ngõ cụtTôi mở site này trên MacBook thì thấy mức dùng CPU vượt 50%
Nghĩ đến việc đây là một bản đặc tả về website nên như thế nào thì cũng khá mỉa mai
Một số nội dung khá tốt, nhưng tôi mong việc chuẩn hóa thành một checklist 128 mục sẽ không khiến mọi người sợ làm website
Bản đặc tả tôi thích nhất là bản đặc tả bị hallucinate. Chắc phải khen là làm tốt rồi
Tôi đã bắt đầu mong chờ phương án thay thế ISO do agent dẫn dắt hoặc máy đánh bạc do LLM vận hành rồi