On-Page SEO

Breadcrumb Schema Markup

Khai báo dữ liệu có cấu trúc cho breadcrumb để hiển thị đường dẫn phân cấp trong kết quả tìm kiếm.

4 lượt xem Cập nhật: 26/05/2026

Breadcrumb Schema Markup là gì?

Breadcrumb Schema Markup là đoạn mã dữ liệu có cấu trúc (structured data) dạng JSON-LD hoặc Microdata, dùng để mô tả đường dẫn phân cấp từ trang chủ đến trang hiện tại — ví dụ: Trang chủ > Sản phẩm > Điện thoại > iPhone 15. Đây không phải là thanh điều hướng hiển thị trên giao diện người dùng, mà là khai báo cho công cụ tìm kiếm (như Google) hiểu rõ mối quan hệ phân cấp giữa các trang. Khi được triển khai đúng, nó giúp Google hiển thị breadcrumb dạng văn bản gọn gàng trong kết quả tìm kiếm — gọi là rich result.

Tại sao quan trọng trong SEO?

Breadcrumb Schema Markup hỗ trợ SEO theo ba cách chính:

  • Cải thiện trải nghiệm người dùng trong SERP: Người dùng thấy rõ vị trí trang trong cấu trúc website trước khi click, tăng tỷ lệ nhấp (CTR).
  • Hỗ trợ lập chỉ mục: Google dùng dữ liệu này để hiểu sâu hơn về kiến trúc nội dung, đặc biệt với trang con sâu hoặc trang danh mục lồng nhiều cấp.
  • Tăng độ tin cậy và tính chuyên nghiệp: Rich result breadcrumb thể hiện website có cấu trúc rõ ràng, dễ quản lý — yếu tố gián tiếp hỗ trợ xếp hạng.

Lưu ý: Breadcrumb Schema không trực tiếp cải thiện thứ hạng, nhưng là một phần của chiến lược On-Page SEO toàn diện. Theo tài liệu chính thức của Google (cập nhật tháng 3/2024), breadcrumb là một trong 12 loại schema được hỗ trợ hiển thị rich result — và là loại được triển khai phổ biến nhất sau ArticleFAQ.

Cách hoạt động

Khi bạn thêm Breadcrumb Schema vào trang, bạn đang gửi tín hiệu có cấu trúc cho Google biết: "Đây là trang A, thuộc danh mục B, nằm dưới danh mục C, và C là con trực tiếp của trang chủ". Google đọc dữ liệu này qua thẻ <script type="application/ld+json"> (JSON-LD — cách khuyến nghị) hoặc qua thuộc tính itemscope/itemprop (Microdata). Sau đó, nếu đủ điều kiện, Google sẽ thay thế URL mặc định trong kết quả tìm kiếm bằng chuỗi breadcrumb dạng văn bản, kèm liên kết từng cấp.

Google không bắt buộc phải hiển thị breadcrumb ngay cả khi schema hợp lệ — việc hiển thị phụ thuộc vào: độ phù hợp của truy vấn, cấu trúc trang, và chính sách thuật toán hiện hành (có thể thay đổi).

Hướng dẫn thực hiện

  1. Xác định chuỗi breadcrumb hiển thị trên giao diện: Đảm bảo thanh điều hướng người dùng (visible breadcrumb) khớp với thứ tự phân cấp logic — ví dụ: Trang chủ > Dịch vụ > SEO Website > Triển khai Schema.
  2. Chọn định dạng mã: Dùng JSON-LD (được Google ưu tiên, dễ kiểm tra, không can thiệp DOM). Tránh RDFa trừ khi bắt buộc do hệ thống cũ.
  3. Xây dựng schema chuẩn:
    • Mỗi cấp phải có thuộc tính @id (URL đầy đủ, có HTTP/HTTPS)
    • name phải trùng với văn bản hiển thị trên giao diện (không viết tắt, không chứa ký tự đặc biệt)
    • position bắt đầu từ 1 cho trang chủ, tăng dần theo thứ tự trái sang phải
  4. Chèn vào <head> hoặc cuối <body>: Đặt đoạn JSON-LD trong thẻ <script> — không đặt trong comment hay script bị chặn bởi CSP.
  5. Kiểm tra bằng công cụ: Dùng Rich Results Test hoặc Lighthouse (tab SEO). Không dùng Structured Data Testing Tool cũ — đã ngừng hoạt động từ tháng 6/2023.
  6. Theo dõi sau triển khai: Kiểm tra báo cáo Enhancements > Breadcrumb trong Google Search Console sau 7–14 ngày.

Lỗi thường gặp

Lỗi Dấu hiệu Cách khắc phục
Thiếu hoặc sai @id Google báo lỗi "Missing field '@id'" hoặc URL không khả dụng (404/redirect) Dùng URL đầy đủ, kiểm tra lại trạng thái HTTP (200 OK), không dùng relative path như /dich-vu/
Vị trí (position) không liên tục Báo lỗi "Invalid position value", hoặc rich result không xuất hiện Đảm bảo position bắt đầu từ 1 và tăng dần +1 mỗi cấp (1 → 2 → 3)
Tên (name) không khớp với hiển thị Google hiển thị tên khác trên SERP, hoặc từ chối rich result Sao chép chính xác văn bản trên giao diện — không viết hoa tùy tiện, không thêm icon (ví dụ: "🔍 SEO" → sai)
Chèn nhiều schema trên cùng trang Google chỉ chọn một, hoặc báo lỗi xung đột Chỉ giữ duy nhất một khối BreadcrumbList — xoá schema cũ nếu dùng plugin sinh tự động

Ví dụ thực tế

Dưới đây là đoạn JSON-LD chuẩn cho trang https://example.com/dich-vu/seo-onpage/, với breadcrumb hiển thị: Trang chủ > Dịch vụ > SEO On-Page:

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Trang chủ",
      "@id": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Dịch vụ",
      "@id": "https://example.com/dich-vu/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "SEO On-Page",
      "@id": "https://example.com/dich-vu/seo-onpage/"
    }
  ]
}

Lưu ý: @id phải là URL thực tế, có thể truy cập được. Nếu trang không tồn tại hoặc trả mã 301/302, Google sẽ bỏ qua schema.

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

Breadcrumb Schema có cần thiết với mọi trang?

Không bắt buộc, nhưng nên triển khai cho tất cả trang có phân cấp rõ ràng: trang danh mục, bài viết, sản phẩm, hướng dẫn. Trang chủ, trang liên hệ hoặc trang lỗi (404) không cần — vì không nằm trong chuỗi phân cấp.

Có thể dùng breadcrumb schema cho trang không có thanh điều hướng hiển thị không?

Có thể, nhưng không khuyến khích. Google ưu tiên sự nhất quán giữa dữ liệu schema và trải nghiệm người dùng. Nếu không có breadcrumb hiển thị trên giao diện, người dùng có thể bối rối khi thấy nó trên SERP — ảnh hưởng đến tỷ lệ thoát.

Schema breadcrumb có ảnh hưởng đến tốc độ tải trang không?

Không đáng kể. Đoạn JSON-LD thường dưới 2 KB, không chặn render, không yêu cầu gọi API ngoài. Việc chèn đúng cách (trong <head> hoặc cuối <body>) không làm chậm trang — miễn là không nhúng script không cần thiết kèm theo.