JSON-LD là gì?
JSON-LD là định dạng khai báo Schema Markup được Google khuyến nghị chính thức, viết dưới dạng khối mã JSON tách biệt hoàn toàn khỏi HTML hiển thị. Khác Schema.org (từ vựng) và Schema Markup (khái niệm triển khai chung) - JSON-LD trả lời câu hỏi "viết bằng cú pháp nào". Được khuyến nghị hơn Microdata vì dễ triển khai, dễ kiểm tra lỗi, ít xung đột với thay đổi giao diện.
JSON-LD là gì?
JSON-LD (JSON for Linking Data) là ĐỊNH DẠNG khai báo Schema Markup được Google khuyến nghị chính thức, viết dưới dạng một khối mã JSON tách biệt hoàn toàn khỏi HTML hiển thị — thường đặt trong thẻ <script type="application/ld+json">. Đây là câu trả lời cho câu hỏi “cấu trúc dữ liệu bằng CÚ PHÁP nào”, khác với Schema.org (bộ TỪ VỰNG định nghĩa các loại đối tượng) và Schema Markup (khái niệm chung về việc gắn structured data vào trang).
Ba lớp khái niệm cần phân biệt: định dạng, từ vựng, và triển khai
| Lớp | Khái niệm | Trả lời câu hỏi |
|---|---|---|
| Từ vựng | Schema.org | “Có những LOẠI đối tượng nào được định nghĩa sẵn?” (Product, Organization, Review…) |
| Định dạng | JSON-LD | “Viết structured data bằng CÚ PHÁP nào?” |
| Triển khai | Schema Markup (khái niệm chung) | “Làm sao gắn structured data vào một trang cụ thể?” |
JSON-LD không phải loại duy nhất — Google hỗ trợ ba cú pháp (JSON-LD, Microdata, RDFa) để khai báo CÙNG một bộ từ vựng Schema.org, nhưng JSON-LD là định dạng được khuyến nghị mạnh mẽ nhất.
Ví dụ cấu trúc JSON-LD cơ bản
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "SOGANET",
"url": "https://soganet.com"
}
</script>
Ba thành phần cốt lõi: @context (khai báo dùng từ vựng Schema.org), @type (loại đối tượng cụ thể, ví dụ Organization/Product/Review), và các thuộc tính còn lại mô tả chi tiết đối tượng đó.
Vì sao Google khuyến nghị JSON-LD hơn Microdata
- Tách biệt hoàn toàn khỏi HTML hiển thị — có thể thêm/sửa/xóa mà không động chạm đến cấu trúc HTML hiển thị nội dung, giảm rủi ro làm hỏng giao diện.
- Dễ kiểm tra lỗi hơn — toàn bộ dữ liệu nằm trong MỘT khối mã duy nhất, dễ dùng công cụ kiểm tra cú pháp JSON tiêu chuẩn.
- Dễ triển khai bằng JavaScript động — có thể sinh ra bằng JavaScript sau khi trang tải, phù hợp với các ứng dụng single-page hiện đại.
- Ít xung đột khi thay đổi giao diện — vì không nhúng thuộc tính trực tiếp vào thẻ HTML như Microdata, thay đổi thiết kế giao diện không ảnh hưởng tới dữ liệu structured data.
JSON-LD và khả năng “@graph” — liên kết nhiều đối tượng
Một kỹ thuật nâng cao phổ biến là dùng thuộc tính @graph để khai báo NHIỀU đối tượng structured data liên quan trong cùng một khối JSON-LD duy nhất, thay vì tách thành nhiều khối riêng lẻ — ví dụ khai báo đồng thời Organization, WebSite, và BreadcrumbList trong một cấu trúc thống nhất, giúp Google hiểu rõ mối quan hệ giữa các đối tượng này thông qua tham chiếu @id.
Cách kiểm tra JSON-LD hợp lệ
Sau khi triển khai, cần xác thực qua Rich Results Test — công cụ chính thức của Google kiểm tra cả tính hợp lệ cú pháp JSON lẫn khả năng đủ điều kiện rich result cụ thể, đáng tin cậy hơn nhiều so với chỉ dùng trình kiểm tra JSON thông thường không hiểu ngữ cảnh tìm kiếm của Google.
JSON-LD được sinh động (dynamic) hay viết cứng (static)
Với website quy mô nhỏ, viết cứng JSON-LD trực tiếp vào HTML của từng trang là đủ. Nhưng với website quy mô lớn (ví dụ hàng nghìn trang sản phẩm), cách tiếp cận bền vững hơn là SINH ĐỘNG JSON-LD từ cùng nguồn dữ liệu (database) đang hiển thị nội dung trên trang — đảm bảo structured data luôn đồng bộ tự động với nội dung thực tế, tránh tình trạng dữ liệu lệch nhau theo thời gian như đã nêu ở vấn đề khớp dữ liệu của Product Schema.
Sai lầm thường gặp
- Nhầm lẫn JSON-LD (định dạng) với Schema.org (từ vựng) như thể là cùng một khái niệm.
- Viết sai cú pháp JSON (thiếu dấu phẩy, ngoặc không khớp) khiến toàn bộ khối structured data bị Google bỏ qua hoàn toàn.
- Khai báo dữ liệu trong JSON-LD không khớp với nội dung thực tế hiển thị trên trang.
Checklist triển khai JSON-LD
- Cú pháp JSON có hợp lệ (không lỗi dấu phẩy/ngoặc) không?
- Dữ liệu khai báo có khớp chính xác với nội dung hiển thị trên trang không?
- Đã kiểm tra qua Rich Results Test trước khi triển khai chính thức chưa?
Câu hỏi thường gặp
JSON-LD có ảnh hưởng đến tốc độ tải trang không?
Ảnh hưởng không đáng kể trong hầu hết trường hợp — khối JSON-LD thường có dung lượng nhỏ; chỉ cần lưu ý với các trang có nhiều loại structured data phức tạp lồng nhau, dung lượng có thể tăng lên đáng kể nếu không được tối ưu.
Có thể dùng cả JSON-LD và Microdata trên cùng một trang không?
Về mặt kỹ thuật có thể, nhưng không khuyến nghị — dùng đồng thời nhiều định dạng cho cùng một loại dữ liệu có nguy cơ gây xung đột hoặc trùng lặp khai báo, tốt nhất nên chọn nhất quán một định dạng (JSON-LD) cho toàn bộ website.
Bạn muốn tra cứu thuật ngữ khác?
