Hướng dẫn BreadcrumbList Schema
Cách triển khai structured data BreadcrumbList để hỗ trợ hiển thị breadcrumb trong kết quả Google, mối quan hệ giữa schema.org/BreadcrumbList và điều hướng breadcrumb HTML thật, cùng cách kiểm thử.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Công cụ trực tuyến liên quanSchema Markup Validator
BreadcrumbList là kiểu schema.org đánh dấu đường dẫn breadcrumb của trang — Home > Category > Page — dưới dạng JSON-LD. Nó làm hai việc: có thể tạo đường dẫn dễ đọc trong đoạn trích Google thay URL thô; và theo tài liệu Google, là tín hiệu phân loại được đọc từ body trang, nên cùng trang có thể xuất hiện dưới các đường dẫn khác nhau cho truy vấn khác nhau. Cấu trúc bắt buộc là BreadcrumbList chứa mảng itemListElement có thứ tự gồm các ListItem, mỗi mục có position, name và item — chỉ mục cuối, tức trang hiện tại, được phép bỏ item. Google khuyên breadcrumb phản ánh lộ trình người dùng điển hình, không nhất thiết thư mục URL; bạn có thể bỏ ListItem cho homepage và trang hiện tại. Đây không phải yếu tố xếp hạng; markup hợp lệ không bảo đảm rich display; và năm 2026 vẫn có bất đồng chưa ngã ngũ về mức độ Google hiển thị breadcrumb trên SERP. Vì vậy, hãy triển khai vì giá trị phân loại và chi phí thấp, rồi kiểm tra kết quả của chính bạn thay vì tin tuyên bố gián tiếp.
TL;DR — BreadcrumbList là đoạn mã — thường là JSON-LD — cho Google biết đường dẫn thể hiện vị trí của một trang trong website:
Home > Category > Page. Google có thể dùng nó để hiển thị đường dẫn dễ đọc trong kết quả tìm kiếm thay cho URL rối rắm, đồng thời hiểu cách trang được phân loại. Bạn cần ít nhất vài bước trong đường dẫn; mỗi bước cóposition,namevà liên kết, ngoại trừ bước cuối — trang hiện tại — không bắt buộc có liên kết.
BreadcrumbList schema là gì?
Breadcrumb là đường dẫn điều hướng nhỏ gần đầu trang, cho biết bạn đang ở đâu: Home > Shoes > Running Shoes. BreadcrumbList là kiểu schema.org dùng để mô tả đường dẫn đó theo cách máy có thể đọc trực tiếp thay vì phải suy đoán. Evidence for this claim Schema.org defines BreadcrumbList as an ItemList representing a chain of linked web pages. Scope: Schema.org vocabulary; Google has separate breadcrumb feature requirements. Confidence: high · Verified: Schema.org: BreadcrumbList
Phần lớn website thêm nó dưới dạng JSON-LD — một khối mã nhỏ trong HTML của trang. Google cũng chấp nhận Microdata và RDFa, nhưng khuyến nghị JSON-LD.
Vì sao đáng triển khai?
Có hai lý do:
- Kết quả tìm kiếm đẹp hơn. Google có thể hiển thị breadcrumb trong đoạn trích thay URL thô, để người dùng thấy
example.com › Shoes › Runningthay vì địa chỉ dài. Evidence for this claim Google says breadcrumb markup can categorize page information and can be used in search-result breadcrumbs. Scope: Google Search breadcrumb documentation; display is not guaranteed. Confidence: high · Verified: Google: Breadcrumb structured data - Giúp Google phân loại trang. Google đọc đường dẫn breadcrumb để hiểu vị trí của trang — vì vậy, cùng một trang có thể xuất hiện dưới các đường dẫn khác nhau tùy nội dung người dùng tìm kiếm.
Yêu cầu tối thiểu
Một BreadcrumbList chứa danh sách có thứ tự tên itemListElement. Mỗi bước trong đường dẫn là một ListItem với ba thành phần:
position— số thứ tự của bước, bắt đầu từ 1.name— nhãn của bước, ví dụ “Giày chạy bộ”.item— URL mà bước liên kết tới.
Ngoại lệ duy nhất: mục cuối cùng — trang hiện tại — không bắt buộc có URL item, vì bạn đang ở ngay trang đó.
Hai điều thường bị hiểu sai
- Nó không phải yếu tố xếp hạng. Breadcrumb schema ảnh hưởng đến cách kết quả hiển thị và cách Google phân loại trang; nó không đẩy thứ hạng lên.
- Đường dẫn nên phản ánh cách người dùng điều hướng, không phải thư mục URL. Google thực sự khuyến nghị điều này. Nếu URL phẳng là
/product-123/nhưng người dùng đi quaHome > Shoes > Running, hãy đánh dấu đường dẫn điều hướng.
Cũng cần biết: thêm schema không tạo breadcrumb hiển thị cho khách truy cập — đó là HTML riêng bạn phải xây dựng. Nếu cần khía cạnh điều hướng và UX của breadcrumb — đường dẫn hiển thị, giá trị internal link — hãy xem chủ đề riêng; trang này tập trung vào markup.
Bạn muốn xem thuộc tính bắt buộc và tùy chọn, ví dụ mã lỗi so với mã sạch, cách xác thực và đánh giá trung thực về việc Google còn hiển thị breadcrumb trong năm 2026 hay không? Hãy chuyển sang tab Nâng cao.
TL;DR — BreadcrumbList đánh dấu đường dẫn breadcrumb của trang thành structured data — khuyến nghị JSON-LD; cũng hỗ trợ Microdata/RDFa. Nó làm hai việc: giúp trang đủ điều kiện hiển thị breadcrumb thay URL trong đoạn trích Google; và — theo lời Google — Google “uses breadcrumb markup in the body of a web page to categorize the information from the page in search results” (bản dịch) “dùng breadcrumb markup trong body của trang web để phân loại thông tin từ trang trong kết quả tìm kiếm”. Vì vậy, một trang có thể xuất hiện dưới đường dẫn khác nhau cho các truy vấn khác nhau. Cấu trúc bắt buộc:
BreadcrumbList.itemListElementlà mảngListItemcó thứ tự; mỗi mục cóposition,namevàitem— chỉ mục cuối, tức trang hiện tại, được phép bỏitem. Google khuyên đường dẫn phản ánh lộ trình người dùng điển hình, không phải cấu trúc URL, đồng thời cho phép bỏListItemcho cả homepage lẫn trang hiện tại. Đây không phải tín hiệu xếp hạng; markup hợp lệ không bao giờ bảo đảm rich display; điều kiện rich result đi qua ba lớp của Mueller — markup hợp lệ → tuân thủ chính sách → độ tin cậy về chất lượng website. Việc Google còn hiển thị breadcrumb ổn định trong SERP năm 2026 thực sự gây tranh luận — vẫn nên triển khai vì có giá trị phân loại, chi phí thấp, không có bất lợi, rồi kiểm tra kết quả của chính bạn.
Định nghĩa chính xác
BreadcrumbList là một kiểu schema.org. schema.org định nghĩa nó là “an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.” (bản dịch) “một ItemList gồm chuỗi trang web được liên kết, thường được mô tả ít nhất bằng URL và tên, đồng thời thường kết thúc ở trang hiện tại”. Trong thực tế, bạn tạo một BreadcrumbList có itemListElement là mảng ListItem có thứ tự — mỗi mục tương ứng một bước. Evidence for this claim Google's breadcrumb examples use ordered ListItem entries with position, name, and item, with documented flexibility for the final item. Scope: Google Search breadcrumb feature requirements; schema.org permits a broader vocabulary. Confidence: high · Verified: Google: Breadcrumb structured data
Bạn có thể biểu diễn bằng JSON-LD, Microdata hoặc RDFa. JSON-LD là định dạng Google khuyến nghị và tôi mặc định chọn: nó nằm trong một script block riêng, không vướng vào markup hiển thị và dễ tạo template cũng như debug nhất.
Hai nhiệm vụ của breadcrumb markup
Đây là cách nhìn phần lớn trang đối thủ bỏ qua — họ chuyển thẳng tới “dán JSON-LD này”. Breadcrumb markup làm hai việc riêng biệt:
1. Đủ điều kiện cho rich display trên SERP. Google có thể hiển thị breadcrumb thay URL thô trong đoạn trích. Hãy lưu ý từ đủ điều kiện: markup hợp lệ chỉ biến bạn thành ứng viên, không bảo đảm hiển thị.
2. Là tín hiệu phân loại Google đọc nội bộ. Tài liệu Google viết: “Google Search uses breadcrumb markup in the body of a web page to categorize the information from the page in search results.” (bản dịch) “Google Search dùng breadcrumb markup trong body của trang web để phân loại thông tin từ trang trong kết quả tìm kiếm”. Đây là nửa giá trị bị xem nhẹ. Nó giải thích vì sao cùng URL có thể xuất hiện dưới các đường dẫn breadcrumb khác nhau cho các truy vấn khác nhau — Google dùng đường dẫn làm ngữ cảnh chứ không chỉ để trang trí. Giá trị đó vẫn tồn tại ngay cả khi breadcrumb không hiển thị.
Cụ thể, tài liệu của Google minh họa bằng nhiều đối tượng BreadcrumbList riêng trên cùng trang — mỗi lộ trình thực tế của người dùng là một khối JSON-LD hoàn chỉnh — chứ không phải một đường dẫn tự thích nghi theo truy vấn. Nếu trang thực sự có thể được truy cập qua nhiều danh mục, thường gặp trong ecommerce, hãy đánh dấu mỗi lộ trình thành một BreadcrumbList riêng và giữ từng đường dẫn thay thế hợp lệ độc lập; mỗi ListItem vẫn cần position, name và item theo quy tắc bên dưới. Đừng coi một đường dẫn “chính” là đại diện cho giá trị phân loại của những lộ trình nó không mô tả.
Thuộc tính bắt buộc và tùy chọn
Đây là trục chính xác — làm đúng phần này thì mọi thứ còn lại chỉ là chi tiết.
Bắt buộc:
BreadcrumbList.itemListElement— “An array of breadcrumbs listed in a specific order.” (bản dịch) “mảng breadcrumb được liệt kê theo một thứ tự cụ thể”. Đây là danh sách bước có thứ tự.ListItem.position— “The position of the breadcrumb in the breadcrumb trail. Position 1 signifies the beginning of the trail.” (bản dịch) “thứ tự của breadcrumb trong toàn bộ đường dẫn; số 1 đánh dấu bước mở đầu”. Hãy bắt đầu từ 1 và tăng dần.ListItem.item— kèmname— URL và nhãn của từng bước. Trường này bắt buộc cho mọi mục trừ mục cuối, tức trang hiện tại, có thể bỏ URL.
Google nêu rõ ngoại lệ mục cuối: “It is not required to include a breadcrumb ListItem for the top level path (your site’s domain or host name), nor for the page itself.” (bản dịch) “Không bắt buộc đưa ListItem breadcrumb cho đường dẫn cấp cao nhất — domain hoặc hostname — cũng như cho chính trang hiện tại”. Vì vậy, cả homepage và trang hiện tại đều không bắt buộc phải có — một ngộ nhận phổ biến là phải đưa chúng vào.
Đường dẫn hợp lệ cần ít nhất hai ListItem mới có ý nghĩa — một “breadcrumb” chỉ có một bước không phải đường dẫn.
Lộ trình người dùng so với cấu trúc URL
Đây là sắc thái cần ghi nhớ vì Google nói rõ nhưng phần lớn hướng dẫn bỏ qua: “We recommend providing breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structure.” (bản dịch) “Chúng tôi khuyến nghị cung cấp breadcrumb đại diện cho lộ trình người dùng điển hình tới trang, thay vì phản chiếu cấu trúc URL”.
Evidence for this claim Google recommends breadcrumbs that represent a typical user path rather than simply mirroring the URL structure. Scope: Google Search breadcrumb guidance; sites should choose an accurate navigational path. Confidence: high · Verified: Google: Breadcrumb structured dataNói cách khác, breadcrumb là tuyên bố về điều hướng, không phải thư mục. Khi hai thứ khác nhau — cấu trúc URL phẳng nhưng phân loại sâu, trang tag hoặc faceted navigation phức tạp khiến sản phẩm có nhiều lộ trình — hãy đánh dấu đường người dùng thực sự đi, không phải thư mục trong URL. Điều này đặc biệt quan trọng với ecommerce, nơi một sản phẩm có thể hợp lý nằm dưới nhiều lộ trình danh mục — cũng là nơi faceted navigation và cấu trúc URL trở nên phức tạp. Hãy chọn lộ trình người dùng chính cho markup của trang.
Không phải yếu tố xếp hạng
Cần nói thẳng vì “nó có giúp xếp hạng không?” là câu hỏi rất phổ biến: không nội dung nào trong hướng dẫn Google gắn BreadcrumbList với thứ hạng. Nó ảnh hưởng đến trình bày SERP và phân loại nội bộ, không phải vị trí. Thêm markup không đẩy bạn lên; thiếu markup không kéo bạn xuống. Lý do triển khai là tín hiệu phân loại cộng khả năng hiển thị với chi phí thấp.
Xác thực và triển khai
Google đưa ra quy trình đơn giản:
- Thêm các thuộc tính bắt buộc bằng định dạng đã chọn theo hướng dẫn vị trí của Google.
- Xác thực bằng Rich Results Test và sửa mọi lỗi nghiêm trọng.
- Triển khai trước trên vài trang, xác nhận bằng URL Inspection trong Search Console rồi mở rộng toàn website.
Search Console có báo cáo enhancement Breadcrumbs riêng, hiển thị lỗi và cảnh báo trên toàn website sau khi triển khai — đây là nơi theo dõi sức khỏe liên tục.
Vì sao rich result breadcrumb không hiển thị?
Markup hợp lệ là cần thiết nhưng chưa đủ. John Mueller đưa ra mô hình ba lớp hữu ích cho điều kiện rich result nói chung — diễn giải lại cách ông trình bày: thứ nhất, markup phải hợp lệ về kỹ thuật; thứ hai, phải tuân thủ chính sách structured data của Google; thứ ba, có tín hiệu chất lượng/độ tin cậy rộng hơn, thường ở cấp website — Google có tin website đủ để hiển thị kết quả nâng cao từ structured data hay không.
Mueller cũng đề xuất chẩn đoán thô: chạy truy vấn site: cho domain của bạn và xem rich result có xuất hiện ở đó không. Nói gần đúng, nếu enhancement xuất hiện với truy vấn site: nhưng không có trên truy vấn thông thường, vấn đề có xu hướng nằm ở chất lượng/độ tin cậy website hơn là markup kỹ thuật.
Riêng với breadcrumb, Mueller đánh giá thấp rủi ro chính sách — ý chính là breadcrumb thuộc nhóm structured data khó làm sai đến mức vi phạm chính sách, vì đường dẫn khá trực quan. Hãy coi đây là sự bảo đảm rằng nếu rich result breadcrumb không hiển thị, nguyên nhân có nhiều khả năng ở lớp hiển thị/chất lượng hơn là vi phạm chính sách trong chính markup.
Một hàng rào chính sách vẫn áp dụng: nguyên tắc chung về structured data của Google yêu cầu markup phản ánh nội dung thật trên trang. Đừng bịa đường dẫn breadcrumb không khớp cấu trúc website để thao túng rich result — markup lệch khỏi nguyên tắc về lý thuyết có thể dẫn tới manual action.
Google còn hiển thị breadcrumb trên SERP không? — câu trả lời trung thực năm 2026
Đây là nơi tôi muốn thận trọng thay vì tỏ ra chắc chắn, vì các nguồn thực sự bất đồng. Một số bài năm 2025–2026 nói Google đã loại bỏ hiển thị breadcrumb — trước ở desktop rồi mobile; các hướng dẫn đề ngày 2026 khác lại mô tả BreadcrumbList là một trong những loại schema ổn định hơn với đường dẫn vẫn xuất hiện. Tài liệu breadcrumb của Google vào giữa năm 2026 vẫn giới hạn tính năng ở “desktop in all regions and languages where Google Search is available” (bản dịch) “desktop tại mọi khu vực và ngôn ngữ có Google Search”, đồng thời không có thông báo ngừng.
Tôi sẽ không giải quyết bất đồng đó bằng kết luận phẳng “Google có hiển thị” hay “nó đã chết” — phía hiển thị rõ ràng đang biến động và tuyên bố gián tiếp, đôi khi dựa trên ảnh chụp nhúng hoặc quan sát ở một khu vực, không phải cơ sở đáng tin. Khuyến nghị ưu tiên quyết định: vẫn triển khai. Giá trị phân loại không phụ thuộc việc đường dẫn hiển thị; chi phí thấp và không có bất lợi. Sau đó, kiểm tra SERP của chính bạn với bộ truy vấn riêng trên các bề mặt và khu vực quan trọng, thay vì tin ảnh chụp trong một bài blog. Đó là lập trường trung thực với câu hỏi live chưa ổn định.
Nếu cần riêng góc độ điều hướng và UX — breadcrumb hiển thị như internal link, luồng PageRank, khả năng truy cập — hãy xem chủ đề liên quan dưới cấu trúc website. Trang này chủ ý chỉ nói về markup.
Bing và các công cụ tìm kiếm khác
BreadcrumbList là kiểu schema.org tiêu chuẩn, không thuộc riêng Google; Bing từ lâu nói rằng họ hỗ trợ bộ từ vựng schema.org — JSON-LD, Microdata, RDFa — cho structured data nói chung. Tôi không tìm thấy trang tài liệu Bing riêng cho breadcrumb schema, nên chỉ nên mô tả là hỗ trợ schema.org tổng quát thay vì bảo đảm rich result breadcrumb của Bing. Markup viết cho Google cũng hợp lệ với Bing; Bing có render enhancement breadcrumb hay không và như thế nào là câu hỏi riêng ít được ghi nhận hơn.
Kết luận
- Cấu trúc hợp lệ tối thiểu:
BreadcrumbList→ mảngitemListElementgồm cácListItem; mỗi mục cóposition— từ 1 —namevàitem; chỉ mục cuối được phép bỏitem. - Google khuyên dùng lộ trình người dùng, không phải cấu trúc URL; homepage và trang hiện tại không bắt buộc phải có.
- Đây không phải yếu tố xếp hạng; markup hợp lệ không bao giờ bảo đảm hiển thị.
- Việc hiển thị trên SERP năm 2026 thực sự gây tranh luận — hãy triển khai vì giá trị phân loại và xác minh trên kết quả của chính bạn.
Tóm tắt do AI tạo
Bản tóm lược nội dung trong phiên bản Nâng cao:
- BreadcrumbList = kiểu schema.org cho đường dẫn breadcrumb của trang, được thêm bằng JSON-LD — khuyến nghị; Microdata/RDFa cũng hoạt động.
- Hai nhiệm vụ: (1) giúp trang đủ điều kiện hiển thị đường dẫn breadcrumb thay URL trong đoạn trích Google; (2) tín hiệu phân loại — Google “uses breadcrumb markup in the body of a web page to categorize the information” (bản dịch) “dùng breadcrumb markup trong body trang web để phân loại thông tin”, nên một trang có thể xuất hiện dưới đường dẫn khác nhau cho các truy vấn khác nhau.
- Cấu trúc bắt buộc:
BreadcrumbList.itemListElementlà mảngListItemcó thứ tự; mỗi mục cầnposition— bắt đầu từ 1 —namevàitem.itemchỉ tùy chọn ở mục cuối cùng — trang hiện tại. - Không bắt buộc: homepage và trang hiện tại — Google nói không mục nào là bắt buộc.
- Lộ trình người dùng, không phải cấu trúc URL: Google khuyên breadcrumb phản ánh lộ trình điển hình, không phải thư mục URL — quan trọng với URL phẳng, trang tag và faceted nav.
- Không phải yếu tố xếp hạng. Nó ảnh hưởng hiển thị và phân loại, không phải vị trí.
- Xác thực bằng Rich Results Test → xác nhận với URL Inspection → triển khai; theo dõi qua báo cáo Breadcrumbs của Search Console.
- Khắc phục rich result — diễn giải các lớp của Mueller: markup hợp lệ → tuân thủ chính sách → chất lượng/độ tin cậy website. Truy vấn
site:là phép chẩn đoán thô — hiển thị ở đó nhưng không trên truy vấn thông thường chỉ về chất lượng hơn markup. - Hiển thị năm 2026 gây tranh luận: một số nguồn nói đã loại bỏ, nguồn khác nói vẫn ổn định; tài liệu Google vẫn giới hạn ở desktop và không có thông báo ngừng. Hãy triển khai và kiểm tra SERP riêng.
- Bing: hỗ trợ schema.org nói chung; không tìm thấy tài liệu breadcrumb riêng, nên coi hỗ trợ đa công cụ là tổng quát chứ không phải bảo đảm riêng.
Tài liệu chính thức
Tài liệu nguồn sơ cấp cho BreadcrumbList markup.
- Structured data Breadcrumb (BreadcrumbList) — thuộc tính bắt buộc, ví dụ JSON-LD/Microdata/RDFa, khuyến nghị lộ trình người dùng và quy trình xác thực/triển khai.
- Nguyên tắc chung về structured data — hàng rào chính sách: markup phải phản ánh nội dung thật trên trang; vi phạm có thể dẫn tới manual action.
- Rich Results Test — xác thực BreadcrumbList trước và sau triển khai.
schema.org
- schema.org/BreadcrumbList — định nghĩa kiểu: “a chain of linked Web pages… typically ending with the current page” (bản dịch) “chuỗi trang web liên kết… thường kết thúc ở trang hiện tại”.
- schema.org/breadcrumb — thuộc tính
breadcrumbgắnBreadcrumbListvớiWebPage. - schema.org/ListItem — kiểu mục cho từng bước:
position,name,item.
Bing / Microsoft
- Không tìm thấy trang tài liệu Bing dành riêng cho breadcrumb schema. Bing hỗ trợ bộ từ vựng schema.org — JSON-LD, Microdata, RDFa — cho structured data nói chung; BreadcrumbList là kiểu schema.org tiêu chuẩn. Vì vậy, cùng markup hợp lệ với Bing nhưng không có bảo đảm rich result breadcrumb riêng để trích dẫn.
Trích dẫn từ nguồn
Phát biểu chính thức từ Google và schema.org. Mỗi trích dẫn nguyên văn liên kết tới đúng đoạn trên trang nguồn.
schema.org — BreadcrumbList là gì
- “A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.” (bản dịch) “BreadcrumbList là một ItemList gồm chuỗi trang web liên kết, thường được mô tả ít nhất bằng URL và tên, đồng thời thường kết thúc ở trang hiện tại.” — schema.org. Đi tới trang định nghĩa kiểu
Google — tín hiệu phân loại
- “Google Search uses breadcrumb markup in the body of a web page to categorize the information from the page in search results.” (bản dịch) “Google Search dùng breadcrumb markup trong body của trang web để phân loại thông tin từ trang trong kết quả tìm kiếm.” — Tài liệu Google Search Central. Đi tới đoạn trích
Google — lộ trình người dùng, không phải cấu trúc URL
- “We recommend providing breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structure.” (bản dịch) “Chúng tôi khuyến nghị cung cấp breadcrumb đại diện cho lộ trình người dùng điển hình tới trang, thay vì phản chiếu cấu trúc URL.” Đi tới đoạn trích
Google — homepage và trang hiện tại là tùy chọn
- “It is not required to include a breadcrumb
ListItemfor the top level path (your site’s domain or host name), nor for the page itself.” (bản dịch) “Không bắt buộc đưaListItembreadcrumb cho đường dẫn cấp cao nhất — domain hoặc hostname — cũng như cho chính trang hiện tại.” Đi tới đoạn trích
Google — ý nghĩa của các thuộc tính
- Với
itemListElement: “An array of breadcrumbs listed in a specific order.” (bản dịch) “Mảng breadcrumb được liệt kê theo một thứ tự cụ thể”. Vớiposition: “The position of the breadcrumb in the breadcrumb trail. Position 1 signifies the beginning of the trail.” (bản dịch) “Vị trí của breadcrumb trong đường dẫn; vị trí 1 biểu thị điểm bắt đầu”. — Tài liệu Google Search Central về structured data breadcrumb.
Lưu ý: các nhận xét của John Mueller về khắc phục rich result — gồm khung điều kiện ba lớp,
phép chẩn đoán site: và ý kiến rằng breadcrumb khó bị làm sai theo cách liên quan đến
chính sách — được diễn giải lại ở đây, không trích nguyên văn. Chúng được thuật lại qua một
bài của Search Engine Journal; một phát biểu liên quan của Mueller lưu hành dưới dạng ảnh/tweet
nhúng không thể được xác minh như chuỗi chính xác trên nguồn live, nên tôi chủ ý giữ dạng diễn
giải thay vì trình bày như trích dẫn đã xác minh. Bing không có phát biểu riêng về breadcrumb
có thể trích dẫn, vì vậy không có trích dẫn nào cho Bing.
Một BreadcrumbList bị lỗi — và lý do thất bại
Đây là khối JSON-LD thoạt nhìn có vẻ ổn nhưng có một số vấn đề thật. Hãy tìm lỗi trước khi đọc ghi chú:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"name": "Shoes",
"item": "https://example.com/shoes/"
},
{
"@type": "ListItem",
"position": 2,
"item": "https://example.com/shoes/running/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Trail Runner 5",
"item": "https://example.com/shoes/running/trail-runner-5/"
}
]
}Các lỗi:
- Mục đầu không có
position. MọiListItemđều cầnposition, và đường dẫn phải bắt đầu tại1. - Vị trí bị trùng và không bắt đầu từ 1. Hai mục cùng dùng
position: 2và không cóposition: 1. Vị trí phải là chuỗi tăng dần, liền mạch từ 1. - Mục thứ hai không có
name. Mọi bước đều cầnname; URLitemtrần là chưa đủ. - Mục cuối có URL
item. Điều này không sai, nhưng đây là nơi duy nhất URL không bắt buộc — vì là trang hiện tại — nên nhiều cách triển khai bỏ trường này.
Phiên bản sạch
Cùng đường dẫn nhưng làm đúng — có hai cấp phía trên trang hiện tại, vị trí tăng từ 1, mọi bước đều có name, và mục cuối — trang hiện tại — bỏ item:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Shoes",
"item": "https://example.com/shoes/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Running Shoes",
"item": "https://example.com/shoes/running/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Trail Runner 5"
}
]
}Những điểm cần lưu ý:
positionchạy 1 → 2 → 3, mỗiListItemmột số theo thứ tự đường dẫn.- Mọi bước đều có
name. - Mục cuối bỏ
itemvì là trang hiện tại — đây là trường hợp được phép bỏ. Bạn có thể thêm; tại đây nó chỉ là tùy chọn. - Không có
ListItemhomepage. Google nói bước cấp cao nhất/domain là tùy chọn; đường dẫn bắt đầu từ danh mục thật đầu tiên. Chỉ thêm bướcHomenếu phản ánh cách người dùng thực sự điều hướng. - Đường dẫn phản ánh lộ trình điều hướng, không nhất thiết thư mục URL. Ở đây chúng tình cờ trùng nhau, nhưng nếu URL sản phẩm phẳng là
/trail-runner-5/, bạn vẫn đánh dấuShoes > Running Shoes > Trail Runner 5vì đó là lộ trình người dùng Google khuyến nghị.
Dán một trong hai khối vào Rich Results Test để thấy khối lỗi bị cảnh báo và khối sạch vượt qua.
Sai lầm và ngộ nhận cần tránh về BreadcrumbList
Ngộ nhận: “Thêm BreadcrumbList schema sẽ tăng thứ hạng.” Không. Hướng dẫn Google không gắn breadcrumb markup với vị trí xếp hạng — nó ảnh hưởng trình bày SERP và phân loại nội bộ, không phải thứ hạng. Hãy coi đây là cách cải thiện hiển thị và phân loại với chi phí thấp, không phải đòn bẩy xếp hạng.
Ngộ nhận: “Mọi đường dẫn đều phải có bước homepage và bước trang hiện tại.” Google nói rõ không mục nào bắt buộc — bạn có thể bỏ ListItem cho bước cấp cao nhất/domain và cho trang hiện tại. Đường dẫn bắt đầu ở danh mục thật đầu tiên và kết thúc bằng mục cuối không có URL item vẫn hoàn toàn hợp lệ.
Sai lầm: vị trí không bắt đầu từ 1, bỏ số hoặc lặp số. Mỗi ListItem.position phải tạo chuỗi tăng dần, liền mạch từ 1 — mỗi bước một số theo thứ tự. Hai ListItem cùng vị trí hoặc đường dẫn bắt đầu từ 2 là lỗi cấu trúc khiến xác thực thất bại; xem mẫu lỗi ở tab Ví dụ.
Sai lầm: bỏ name khỏi một bước. Mọi ListItem đều bắt buộc có name, không chỉ mục có liên kết. URL item trần không có name là markup chưa đầy đủ dù dễ bị bỏ sót.
Sai lầm: phản chiếu thư mục URL thay vì lộ trình người dùng thực sự đi. Google khuyên đường dẫn đại diện cho lộ trình người dùng điển hình tới trang, không phải cấu trúc thư mục URL. Vấn đề rõ nhất với URL phẳng, trang tag và faceted navigation khi một trang có nhiều lộ trình danh mục — hãy chọn lộ trình người dùng chính cho markup, không chỉ sao chép thư mục trên thanh địa chỉ.
Ngộ nhận: “Thêm schema sẽ tạo breadcrumb hiển thị cho khách truy cập.” Không. BreadcrumbList chỉ là structured data máy đọc; breadcrumb hiển thị, có thể nhấp trên trang là HTML riêng bạn xây dựng. Chỉ xuất schema mang lại tín hiệu phân loại và khả năng đủ điều kiện rich result, nhưng không tạo giao diện breadcrumb cho người dùng.
Sai lầm: đánh dấu đường dẫn không khớp cấu trúc website thật. Nguyên tắc structured data chung của Google yêu cầu markup phản ánh nội dung thật trên trang. Bịa đường dẫn để thao túng rich result — không tương ứng cách trang thực sự được truy cập hay phân loại — về lý thuyết có thể dẫn tới manual action, không chỉ mất hiển thị.
Thuộc tính BreadcrumbList trong nháy mắt
Cấu trúc bắt buộc
| Thuộc tính | Thuộc về | Bắt buộc? | Ghi chú |
|---|---|---|---|
itemListElement | BreadcrumbList | Bắt buộc | Mảng ListItem có thứ tự, mỗi bước một mục |
position | ListItem | Bắt buộc | Bắt đầu từ 1, tăng dần, mỗi bước một số nguyên |
name | ListItem | Bắt buộc | Nhãn hiển thị cho bước đó |
item | ListItem | Bắt buộc, trừ mục cuối | URL của bước; chỉ tùy chọn ở trang hiện tại |
Các bước không bắt buộc phải đưa vào
| Bước | Có đưa vào không? | Lý do |
|---|---|---|
| Homepage / domain cấp cao nhất | Tùy chọn | Google nói không bắt buộc có ListItem cho domain hoặc hostname |
| Trang hiện tại — bước cuối | URL tùy chọn, nhưng thường vẫn đưa bước vào | Có thể bỏ item vì khách truy cập đang ở trang đó |
Định dạng markup Google chấp nhận
| Định dạng | Được khuyến nghị? | Ghi chú |
|---|---|---|
| JSON-LD | Có — định dạng Google khuyến nghị | Nằm trong một script block, không vướng markup hiển thị |
| Microdata | Được hỗ trợ | Thuộc tính inline trên HTML hiện có |
| RDFa | Được hỗ trợ | Thuộc tính inline trên HTML hiện có |
Thông tin nhanh
- Đường dẫn hợp lệ cần ít nhất hai
ListItem— một “breadcrumb” chỉ có một bước không phải đường dẫn. - Vị trí phải là chuỗi tăng dần, liền mạch từ 1, không chỉ là các số khác nhau.
- Đường dẫn nên phản ánh lộ trình người dùng điển hình, không nhất thiết thư mục URL.
- BreadcrumbList không phải yếu tố xếp hạng — chỉ ảnh hưởng hiển thị SERP và phân loại.
- Markup hợp lệ giúp rich display đủ điều kiện, không bao giờ được bảo đảm.
- Schema không tạo breadcrumb hiển thị cho khách truy cập — giao diện đó là phần riêng.
- Trang có nhiều lộ trình có thể chứa nhiều đối tượng
BreadcrumbListriêng — mỗi lộ trình một đối tượng hợp lệ độc lập — thay vì một đường dẫn tự thích nghi theo truy vấn.
Công cụ tạo và kiểm tra BreadcrumbList markup
Schema Markup Validator của tôi là nơi nên bắt đầu sau khi viết JSON-LD. Dán khối mã hoặc toàn trang; công cụ chạy kiểm tra theo mức độ nghiêm trọng với bộ từ vựng BreadcrumbList/ListItem của schema.org và yêu cầu rich result Google. Nó bắt đúng lỗi cấu trúc trong các tab Điều không nên làm và Ví dụ — thiếu position, trùng vị trí, ListItem không có name — rồi trả lại khối JSON-LD đã sửa để sao chép.
Rich-Result Eligibility Checker của tôi trả lời câu hỏi khác: không phải “JSON-LD có hợp lệ không” mà là “trang cụ thể này có đủ điều kiện cho rich result breadcrumb Google không”. Dán JSON-LD, trang HTML hoặc tải URL live; công cụ cho biết kiểu Breadcrumb có đủ điều kiện không và chỉ rõ trường bắt buộc bị thiếu.
Nếu bắt đầu từ trang trống thay vì sửa markup hiện có, Schema Markup Generator của tôi có biểu mẫu tập trung để tạo BreadcrumbList mà không phải tự viết JSON-LD — nó hướng dẫn từng position, name, item của ListItem và đánh dấu thuộc tính Google yêu cầu hay khuyến nghị khi bạn nhập.
Sau khi markup vượt qua các phép kiểm tra đó, hãy chạy trang bằng Rich Results Test của Google — công cụ Google dùng để quyết định khả năng đủ điều kiện, nên là kết luận cuối trước khi phát hành.
Vấn đề BreadcrumbList phổ biến và cách sửa
Rich Results Test hoặc Schema Markup Validator báo lỗi BreadcrumbList
Nguyên nhân phổ biến nhất là lỗi cấu trúc trong các tab Điều không nên làm và Ví dụ: ListItem thiếu position, vị trí bị lặp hoặc không bắt đầu từ 1, hay bước thiếu name bắt buộc. Kiểm tra từng ListItem theo thứ tự — cách sửa gần như luôn là một bước sai, không phải toàn bộ khối.
Rich result breadcrumb không bao giờ xuất hiện trên SERP dù markup xác thực sạch
Markup hợp lệ chỉ giúp trang đủ điều kiện, không bảo đảm hiển thị. Mô hình ba lớp của John Mueller cho rich result nói chung áp dụng ở đây: markup phải hợp lệ kỹ thuật; phải tuân thủ chính sách structured data Google; và có tín hiệu chất lượng/độ tin cậy rộng hơn, thường ở cấp website — Google có tin website đủ để hiển thị kết quả nâng cao hay không. Chẩn đoán thô của Mueller: chạy truy vấn site: cho domain và xem rich result có xuất hiện không. Nếu có với site: nhưng không trên truy vấn thông thường, điều đó hướng về vấn đề chất lượng/độ tin cậy hơn kỹ thuật. Mueller cũng đánh giá thấp riêng rủi ro chính sách của breadcrumb vì đường dẫn khá trực quan và khó làm sai theo cách liên quan chính sách.
Không có breadcrumb hiển thị trên trang dù đã thêm schema
Đó là hành vi dự kiến, không phải lỗi. BreadcrumbList chỉ là structured data máy đọc; nó không tạo giao diện breadcrumb hiển thị và có thể nhấp. Bạn phải xây HTML riêng; schema và điều hướng trên trang là hai thứ khác nhau cùng mô tả một đường dẫn.
Không thể biết Google còn hiển thị rich result breadcrumb trong năm 2026 hay không
Đây thực sự là câu hỏi gây tranh luận — một số nguồn năm 2025–2026 nói Google loại bỏ hiển thị breadcrumb, trước ở desktop rồi mobile; nguồn khác mô tả BreadcrumbList là loại schema ổn định hơn với đường dẫn vẫn xuất hiện. Tài liệu Google vào giữa năm 2026 vẫn giới hạn tính năng ở desktop và không có thông báo ngừng. Khuyến nghị: vẫn triển khai vì giá trị phân loại không phụ thuộc hiển thị, rồi kiểm tra SERP của chính bạn với bộ truy vấn riêng thay vì tin ảnh chụp trong blog.
Báo cáo Breadcrumbs của Search Console vẫn có lỗi/cảnh báo cho trang đã sửa
Search Console có báo cáo enhancement Breadcrumbs riêng, hiển thị lỗi và cảnh báo sau khi trang live và được crawl lại. Nếu trang đã sửa vẫn xuất hiện, hoặc bản sửa chưa tới trang live Google thực sự crawl, hoặc một ListItem khác trong cùng đường dẫn có lỗi cấu trúc. Hãy chạy lại URL live qua Rich Results Test thay vì mặc định báo cáo đã cũ.
Chứng minh thay đổi BreadcrumbList có hiệu quả
Phép thử 1: xác thực cấu trúc JSON-LD
Cách kiểm thử: Dán JSON-LD đã cập nhật vào Schema Markup Validator, hoặc chạy trang live qua Rich Results Test của Google.
Kết quả mong đợi: Không có lỗi trong khối BreadcrumbList — mọi ListItem có position theo chuỗi tăng dần, liền mạch từ 1; có name; và có URL item ở mọi bước trừ bước cuối.
Diễn giải khi thất bại: Lỗi thiếu hoặc trùng thuộc tính nghĩa là thuộc tính thực sự sai trong markup đã phát hành, không phải lỗi cache/rendering — kiểm tra trực tiếp nguồn JSON-LD.
Khoảng thời gian theo dõi: Ngay lập tức — cả hai công cụ đọc markup được gửi, không cần chờ crawl.
Điều kiện rollback: Xác thực vẫn thất bại sau khi sửa trực tiếp — hoàn tác thay đổi template và diff với JSON-LD tốt gần nhất.
Phép thử 2: khả năng đủ điều kiện rich result breadcrumb của URL live
Cách kiểm thử: Chạy URL live bằng Rich-Result Eligibility Checker của tôi.
Kết quả mong đợi: Kiểu Breadcrumb hiển thị là đủ điều kiện cho rich result.
Diễn giải khi thất bại: Cảnh báo thiếu trường bắt buộc sau khi Phép thử 1 vượt qua thường nghĩa trang live được tải không khớp nội dung đã xác thực — kiểm tra deploy chưa phát hành hoặc markup chỉ có trên staging.
Khoảng thời gian theo dõi: Ngay lập tức.
Điều kiện rollback: Vẫn không đủ điều kiện sau khi xác nhận bản sửa live — kiểm tra caching, CDN hoặc page cache còn phục vụ bản cũ, trước khi sửa markup lần nữa.
Phép thử 3: báo cáo enhancement Breadcrumbs của Search Console phản ánh bản sửa
Cách kiểm thử: Search Console → Enhancements → Breadcrumbs cho các URL bị ảnh hưởng.
Kết quả mong đợi: Trang rời nhóm lỗi/cảnh báo và hiển thị hợp lệ, số lỗi của URL bằng 0.
Diễn giải khi thất bại: Vẫn bị cảnh báo sau khi Google crawl lại nghĩa là bản sửa chưa tới trang live Google crawl hoặc ListItem khác có lỗi — chạy lại Phép thử 1 trên URL live, không phải staging.
Khoảng thời gian theo dõi: Vài ngày tới khoảng một tuần để Google crawl lại và làm mới báo cáo — dữ liệu Search Console chậm hơn trang live.
Điều kiện rollback: Số lỗi tăng sau khi triển khai template thay vì giảm — thay đổi đã làm hỏng markup trên trang khác dùng cùng template; hãy dừng rollout.
Phép thử 4: breadcrumb thực sự xuất hiện trên SERP live
Cách kiểm thử: Tìm kiếm thủ công — cửa sổ riêng tư/ẩn danh để giảm lệch cá nhân hóa — một truy vấn mà trang có xếp hạng, rồi xem breadcrumb có hiển thị thay URL thô không. Kết quả mong đợi: Đường dẫn render trong đoạn trích. Diễn giải khi thất bại: Không xuất hiện dù trạng thái Search Console hợp lệ không nhất thiết là sửa thất bại — hiển thị gây tranh luận trong năm 2026 và không được bảo đảm. Không xuất hiện kèm trạng thái lỗi/cảnh báo nghĩa là quay lại Phép thử 1 hoặc 3. Khoảng thời gian theo dõi: Google không nêu thời gian cố định; kiểm tra định kỳ trong các tuần tiếp theo thay vì mong đợi ngay sau khi xác thực. Điều kiện rollback: Không có ở phía markup — không có gì để hoàn tác đối với quyết định hiển thị do Google kiểm soát. Chỉ xem lại nếu báo cáo Manual Actions của Search Console cảnh báo trang.
KPI liên tục cho BreadcrumbList markup
Chỉ số: số mục hợp lệ — báo cáo Breadcrumbs của Search Console Cho biết: bao nhiêu trang hiện có BreadcrumbList không lỗi — khía cạnh độ bao phủ. Cách lấy dữ liệu: Search Console → Enhancements → Breadcrumbs. Mức chuẩn / phạm vi thực tế: không có mục tiêu chung — thiết lập baseline theo số trang nên có markup, tức trang có đường dẫn breadcrumb thật, và theo dõi số mục hợp lệ tiến tới con số đó. Tần suất: hằng tháng hoặc ngay sau thay đổi template/CMS ảnh hưởng breadcrumb.
Chỉ số: số mục lỗi/cảnh báo — cùng báo cáo Cho biết: bao nhiêu trang có lỗi cấu trúc — khía cạnh chất lượng, tách khỏi độ bao phủ. Cách lấy dữ liệu: nhóm lỗi/cảnh báo trong cùng báo cáo Breadcrumbs. Mức chuẩn / phạm vi thực tế: mục tiêu trung thực duy nhất là 0; mọi số khác 0 là trang hỏng thật, không phải nhiễu thống kê. Tần suất: hằng tháng và luôn sau deploy ảnh hưởng template markup.
Chỉ số: tỷ lệ vượt Rich Results Test giữa các template Cho biết: mọi template trang cần BreadcrumbList có thực sự triển khai sạch không, không chỉ các trang được kiểm tra ngẫu nhiên. Cách lấy dữ liệu: lấy mẫu một URL mỗi template qua Rich Results Test hoặc Schema Markup Validator của tôi. Mức chuẩn / phạm vi thực tế: 100% là mục tiêu có thể bảo vệ vì đây là kiểm tra hợp lệ nhị phân theo template, không phải vanity metric — template thất bại nghĩa là mọi trang tạo từ nó đều hỏng. Tần suất: sau mọi thay đổi template và kiểm tra mẫu hằng quý trong thời gian còn lại.
Chỉ số: sự hiện diện của breadcrumb trên mẫu truy vấn có xếp hạng
Cho biết: rich display có thực sự render trên SERP cho trang có markup hợp lệ hay không — cách theo dõi trung thực khi hiển thị breadcrumb năm 2026 chưa ổn định.
Cách lấy dữ liệu: kiểm tra thủ công một mẫu truy vấn xếp hạng nhất quán — cửa sổ riêng tư/ẩn danh — theo thời gian, áp dụng chẩn đoán site: so với truy vấn thường của Mueller trong tab Vấn đề phổ biến.
Mức chuẩn / phạm vi thực tế: không có con số cố định có thể bảo vệ; hiển thị gây tranh luận và tùy quyết định Google. Theo dõi tỷ lệ của chính bạn như xu hướng thay vì benchmark bên ngoài.
Tần suất: hằng quý vì câu hỏi hiển thị còn biến động.
Tự kiểm tra: BreadcrumbList schema
Năm câu hỏi nhanh về cách BreadcrumbList markup hoạt động. Chọn một đáp án cho từng câu rồi kiểm tra.
Nhật ký thay đổi
Đã cập nhật 9 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 17 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.