Product Schema Markup
Đoạn mã JSON-LD hoặc Microdata bổ sung thông tin cấu trúc về sản phẩm (giá, đánh giá, tồn kho) để hỗ trợ rich snippet.
Product Schema Markup là gì?
Product Schema Markup là đoạn mã cấu trúc (thường ở định dạng JSON-LD hoặc Microdata) được chèn vào trang web để mô tả rõ ràng thông tin về sản phẩm — như tên, hình ảnh, giá, đánh giá, tình trạng tồn kho, thương hiệu và SKU. Đây là một phần của Scheme.org, chuẩn dữ liệu được Google, Bing và các công cụ tìm kiếm khác hỗ trợ để hiểu sâu hơn nội dung trang.
Mã này không hiển thị cho người dùng, nhưng giúp máy tìm hiểu chính xác sản phẩm bạn đang bán — từ đó tạo điều kiện hiển thị rich snippet (đoạn kết quả mở rộng với sao, giá, nút mua ngay…) trên trang kết quả tìm kiếm (SERP).
Tại sao quan trọng trong SEO?
Product Schema Markup không trực tiếp nâng thứ hạng từ khóa, nhưng có tác động mạnh đến tỷ lệ nhấp (CTR) và chất lượng trải nghiệm người dùng — hai yếu tố gián tiếp ảnh hưởng đến hiệu quả SEO tổng thể.
- Tăng CTR lên 30–50% so với kết quả tiêu chuẩn (theo nhiều báo cáo kiểm thử A/B từ các agency SEO Việt Nam và quốc tế, ví dụ: BrightEdge, Search Engine Journal — số liệu có thể thay đổi tùy ngành hàng và đối tượng tìm kiếm).
- Hỗ trợ hiển thị rich result trên Google: sao đánh giá, giá hiện tại, trạng thái ‘Còn hàng’, nút ‘Mua ngay’ (trong một số trường hợp tích hợp với Google Shopping).
- Cải thiện khả năng xuất hiện trong Google Discover và Google Lens khi sản phẩm có hình ảnh và thuộc tính rõ ràng.
- Giúp Google phân biệt giữa sản phẩm thật và nội dung quảng cáo, giảm rủi ro bị xếp vào nhóm ‘không đủ độ tin cậy’.
Cách hoạt động
Google thu thập dữ liệu từ trang web bằng trình thu thập (crawler). Khi gặp Product Schema Markup, crawler đọc các thuộc tính đã được đánh dấu (ví dụ: @type: "Product", offers.price, aggregateRating.ratingValue) và so sánh với nội dung hiển thị trên trang. Nếu khớp, Google coi đây là thông tin đáng tin cậy để tạo rich snippet.
Quá trình này dựa trên nguyên tắc “tính nhất quán” (consistency): giá trong schema phải giống giá hiển thị trên trang, đánh giá phải phản ánh đúng số sao và lượt đánh giá thực tế — nếu không, Google có thể bỏ qua schema hoặc cảnh báo trong Google Search Console.
Hướng dẫn thực hiện
- Xác định trang cần triển khai: Chỉ áp dụng cho trang chi tiết sản phẩm (product detail page), không dùng trên danh mục hay trang chủ.
- Chọn định dạng: Ưu tiên JSON-LD (chèn trong thẻ
<head>hoặc trước</body>). Đây là định dạng Google khuyến nghị vì dễ bảo trì và ít xung đột với HTML. - Thu thập thuộc tính bắt buộc:
@context→ "https://schema.org"@type→ "Product"name→ Tên sản phẩm (giống tiêu đề H1)image→ URL ảnh chính (định dạng JPG/PNG, tối thiểu 300x300px)description→ Mô tả ngắn (dưới 500 ký tự, không chứa mã HTML)offers→ Đối tượng bao gồm@type: "Offer",price,priceCurrency,availability(ví dụ: "https://schema.org/InStock")
- Thêm thuộc tính tùy chọn nhưng khuyến nghị:
sku→ Mã sản phẩm nội bộbrand→ Thương hiệu (dạng{"@type": "Brand", "name": "..."})aggregateRating→ Tổng hợp đánh giá (cần cảratingValue,reviewCount,bestRating)gtin8/gtin13→ Mã vạch (nếu có)
- Kiểm tra và triển khai:
- Dùng Google Rich Results Test hoặc Schema Markup Validator để kiểm tra lỗi.
- Đảm bảo schema chỉ xuất hiện một lần duy nhất trên mỗi trang.
- Theo dõi trong Google Search Console > Enhancements > Rich results sau 3–7 ngày.
Lỗi thường gặp
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Giá trong schema không khớp giá hiển thị | Giá được hardcode trong schema, trong khi trang thay đổi theo chương trình khuyến mãi | Dùng JavaScript động hoặc hệ thống CMS tự sinh schema theo giá thực tế — tránh giá tĩnh |
Thiếu thuộc tính bắt buộc (ví dụ: offers) |
Bỏ sót khối offers hoặc gõ sai tên thuộc tính (offer thay vì offers) |
Copy mẫu chuẩn từ schema.org/product, kiểm tra lại cú pháp JSON bằng trình validator |
| Hiển thị nhiều schema trên cùng trang | Plugin SEO tự động thêm schema + tay thêm schema riêng → trùng lặp | Vô hiệu hóa schema tự động trong plugin (ví dụ: Yoast, Rank Math), chỉ giữ schema do bạn kiểm soát |
| Ảnh không hợp lệ (URL hỏng, không truy cập được) | Ảnh nằm trong thư mục private, hoặc dùng đường dẫn tương đối (/images/sp.jpg) |
Dùng URL đầy đủ (https://…), kiểm tra ảnh trả về mã 200, kích thước tối thiểu 300x300px |
Ví dụ thực tế
Dưới đây là đoạn JSON-LD chuẩn cho sản phẩm điện thoại iPhone 15 Pro (giá niêm yết 24.990.000₫, còn hàng, có 127 đánh giá trung bình 4.8/5):
{
"@context": "https://schema.org",
"@type": "Product",
"name": "iPhone 15 Pro 256GB",
"image": "https://example.com/images/iphone15pro.jpg",
"description": "iPhone 15 Pro với chip A17 Pro, khung titan, camera chuyên nghiệp.",
"sku": "IP15PRO-256-BLK",
"brand": {
"@type": "Brand",
"name": "Apple"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/iphone-15-pro",
"priceCurrency": "VND",
"price": "24990000",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "127",
"bestRating": "5"
}
}
Lưu ý: Giá phải là số nguyên (không dùng dấu chấm, phẩy), availability phải là URL hợp lệ từ schema.org, không phải chuỗi văn bản.
Câu hỏi thường gặp
Product Schema Markup có làm website chậm không?
Không. JSON-LD là đoạn mã nhẹ (thường dưới 2KB), chèn trong <head> hoặc cuối <body>, không chặn render và không ảnh hưởng đến tốc độ tải trang — miễn là không chèn sai vị trí hoặc dùng script nặng để sinh schema.
Có cần thêm schema cho mọi biến thể sản phẩm (màu, dung lượng)?
Tùy trường hợp. Nếu mỗi biến thể có trang chi tiết riêng (URL khác nhau), bạn nên triển khai schema riêng cho từng trang. Nếu dùng tab hoặc JS để đổi màu/dung lượng trên cùng một URL, chỉ cần schema cho sản phẩm chính — nhưng phải ghi rõ sku và offers phù hợp với lựa chọn đang hiển thị (cần xử lý động).
Google có bắt buộc dùng Product Schema Markup không?
Không. Đây là tính năng nâng cao, hoàn toàn tự nguyện. Tuy nhiên, gần 68% website thương mại điện tử top 100 Việt Nam (theo khảo sát tháng 04/2024) đã triển khai schema sản phẩm — vì lợi ích rõ rệt về CTR và khả năng hiển thị đặc biệt.