Structured Data (Schema.org)
Dữ liệu có cấu trúc được nhúng vào trang (JSON-LD, Microdata, RDFa) giúp công cụ tìm kiếm hiểu nội dung rõ hơn.
Structured Data (Schema.org) là gì?
Structured Data (dữ liệu có cấu trúc) là đoạn mã được nhúng vào trang web để mô tả rõ nội dung — như sản phẩm, bài viết, doanh nghiệp, sự kiện hay người — dưới dạng dữ liệu máy đọc được. Schema.org là tập hợp chung do Google, Bing, Yahoo! và Yandex cùng xây dựng, cung cấp hàng trăm loại markup (định dạng đánh dấu) chuẩn hóa. Cách phổ biến nhất hiện nay là dùng định dạng JSON-LD, đặt trong thẻ <script> ở phần <head> hoặc đầu phần <body>.
Tại sao quan trọng trong SEO?
Dữ liệu có cấu trúc không trực tiếp nâng thứ hạng trên Google, nhưng giúp công cụ tìm kiếm hiểu đúng ngữ cảnh và mối quan hệ giữa các yếu tố trên trang — từ đó tăng khả năng xuất hiện trong các tính năng đặc biệt như rich result (kết quả mở rộng), knowledge panel, breadcrumb, FAQ, đánh giá sao, hoặc carousel sản phẩm.
Theo báo cáo chính thức từ Google (cập nhật tháng 6/2024), hơn 30% kết quả tìm kiếm trên thiết bị di động hiển thị ít nhất một rich result có nguồn gốc từ structured data hợp lệ. Các trang có schema đúng và đầy đủ thường có tỷ lệ nhấp (CTR) cao hơn 15–30% so với trang không có — đặc biệt ở các truy vấn thông tin (informational queries) như "mở cửa lúc mấy giờ", "giá bao nhiêu", "có nhận đặt online không".
Cách hoạt động
Khi Googlebot thu thập trang, nó phân tích cả nội dung hiển thị (text, hình ảnh) lẫn dữ liệu có cấu trúc. Nếu markup hợp lệ và phù hợp với nội dung thực tế, Google sẽ dùng thông tin đó để:
- Xác minh danh tính và thuộc tính của thực thể (ví dụ: nhà hàng A có địa chỉ X, số điện thoại Y, xếp hạng 4.5 sao);
- Liên kết nhiều trang cùng chủ đề thành một thực thể thống nhất (ví dụ: tất cả bài viết về "Cà phê Trung Nguyên" được gộp vào knowledge graph);
- Hiển thị thông tin bổ sung trong SERP mà không cần người dùng nhấn vào trang.
Lưu ý: Schema không phải là “lệnh” cho Google — nó chỉ là lời đề xuất. Việc hiển thị rich result phụ thuộc vào nhiều yếu tố khác như độ tin cậy trang, chất lượng nội dung, trải nghiệm người dùng và chính sách thuật toán hiện hành.
Hướng dẫn thực hiện
- Xác định loại schema phù hợp: Dựa vào nội dung trang — ví dụ: trang sản phẩm →
Product, trang blog →Article, trang giới thiệu công ty →Organization. Danh sách đầy đủ tại schema.org/docs/full.html. - Chọn định dạng: Ưu tiên JSON-LD (khuyến nghị chính thức của Google). Tránh Microdata và RDFa nếu không bắt buộc vì khó bảo trì và dễ xung đột với CMS.
- Tạo markup: Dùng công cụ miễn phí như Rich Results Test hoặc Schema Markup Validator để sinh mã. Đảm bảo mỗi thuộc tính có giá trị thực, không để trống hoặc điền giả.
- Nhúng vào trang: Đặt khối JSON-LD trong thẻ
<script type="application/ld+json">...</script>. Với website dùng WordPress, nên dùng plugin đã kiểm chứng như Rank Math hoặc Yoast SEO (phiên bản Pro hỗ trợ schema nâng cao). - Kiểm tra & theo dõi: Dùng Google Search Console → mục "Enhancements" để xem trạng thái lỗi, cảnh báo và số lần xuất hiện rich result.
Lỗi thường gặp
- Thiếu thuộc tính bắt buộc: Ví dụ
Productyêu cầuname,offers;Articleyêu cầuheadline,datePublished. Giải pháp: Kiểm tra tài liệu chính thức tại schema.org từng loại. - Mâu thuẫn nội dung: Schema ghi "giá 299.000₫" nhưng trang hiển thị "349.000₫" → Google có thể bỏ qua toàn bộ markup. Luôn đồng bộ dữ liệu.
- Sử dụng schema không liên quan: Đặt
Recipetrên trang dịch vụ tư vấn. Google coi đây là spam schema — có thể gây cảnh báo hoặc giảm độ tin cậy. - Đặt sai vị trí: JSON-LD trong
<body>vẫn hoạt động, nhưng nên đặt trong<head>để đảm bảo tải sớm. Microdata đặt sai thẻ HTML (ví dụ: thiếuitemscope) sẽ không được nhận diện.
Ví dụ thực tế
Dưới đây là markup JSON-LD cho trang sản phẩm bánh mì kẹp thịt tại một tiệm ăn nhỏ:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Bánh mì thịt nướng",
"image": "https://example.com/images/banh-mi-thit.jpg",
"description": "Bánh mì truyền thống với thịt nướng thơm, dưa chua và nước sốt đặc biệt.",
"offers": {
"@type": "Offer",
"price": "35000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock"
}
}
Khi triển khai đúng, trang có thể xuất hiện trong SERP với giá, trạng thái còn hàng và hình ảnh — tăng độ tin cậy và CTR.
Câu hỏi thường gặp
Structured data có làm tăng thứ hạng không?
Không trực tiếp. Google khẳng định rõ: structured data không phải yếu tố xếp hạng. Tuy nhiên, nó gián tiếp hỗ trợ SEO bằng cách cải thiện CTR, tăng thời gian ở lại trang và củng cố tín hiệu thực thể — những yếu tố ảnh hưởng đến hiệu suất tổng thể.
Có nên dùng schema cho mọi trang?
Không. Chỉ áp dụng khi trang có nội dung rõ ràng và thuộc loại được Google hỗ trợ hiển thị rich result (xem danh sách tại Google Search Gallery). Trang chủ, trang danh mục sản phẩm tổng quan hoặc trang lỗi 404 thường không cần schema — trừ khi có mục đích cụ thể như WebSite hoặc BreadcrumbList.
JSON-LD có ảnh hưởng đến tốc độ tải trang không?
Không đáng kể. Một khối JSON-LD điển hình chỉ nặng 1–3 KB. Nếu đặt trong <head>, nó không chặn render HTML. Tuy nhiên, nếu nhúng hàng chục schema trên một trang (ví dụ: thêm schema cho từng bình luận), cần kiểm tra kỹ — trường hợp này có thể gây chậm nhẹ và không mang lại lợi ích thực tế.
Bảng so sánh định dạng Structured Data
| Định dạng | Ưu điểm | Nhược điểm | Khuyến nghị |
|---|---|---|---|
| JSON-LD | Dễ viết, dễ bảo trì, không xung đột với HTML, hỗ trợ đầy đủ bởi Google | Không hiển thị trực tiếp trên DOM (không ảnh hưởng đến giao diện) | Ưu tiên hàng đầu cho mọi dự án mới |
| Microdata | Được nhúng trực tiếp vào HTML, dễ kiểm tra bằng trình duyệt | Dễ sai cú pháp, khó bảo trì khi thay đổi layout, không hỗ trợ đầy đủ trên một số CMS | Chỉ dùng nếu bắt buộc tương thích với hệ thống cũ |
| RDFa | Hỗ trợ đa ngôn ngữ, linh hoạt với XML/XHTML | Phức tạp, ít được hỗ trợ bởi công cụ kiểm tra, gần như không còn được cập nhật | Không khuyến nghị — tùy trường hợp khi làm với hệ thống legacy |