Nhật ký công việc cho nhiệm vụ "Triển khai đánh dấu vi dữ liệu"
Vấn đề: Google yêu cầu các trường bắt buộc đối với Product trong dữ liệu có cấu trúc
Bản chất lỗi
Google Search Console đưa ra lỗi:
"Hãy chỉ định giá trị cho một trong các phần tử dữ liệu sau: offers, review hoặc aggregateRating"
Theo tài liệu của Google, đối với đánh dấu Product, bắt buộc phải có ít nhất một trong các mục sau:
offers— thông tin về giá và tình trạng còn hàngreview— đánh giá sản phẩmaggregateRating— xếp hạng trung bình
Nếu không có dữ liệu này, trang sẽ không hiển thị trong kết quả tìm kiếm nâng cao (rich snippets).
Trường hợp điển hình
Cửa hàng trực tuyến có các sản phẩm "giá theo yêu cầu" hoặc "đặt hàng trước". Các sản phẩm này không có giá cố định, vì vậy nhà phát triển không truyền offers — và nhận được lỗi từ Google.
Giải pháp
1. Sử dụng offers không có giá cụ thể
Schema.org cho phép chỉ định priceSpecification mà không cần giá chính xác:
{
"@type": "Product",
"name": "Sân chơi trẻ em Premium",
"offers": {
"@type": "Offer",
"availability": "https://schema.org/InStock",
"priceSpecification": {
"@type": "PriceSpecification",
"priceCurrency": "RUB"
}
}
}
2. Thêm aggregateRating hoặc review
Nếu có hệ thống đánh giá — hãy sử dụng nó:
{
"@type": "Product",
"name": "Sân chơi trẻ em Premium",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "12"
}
}
3. Không sử dụng đánh dấu Product cho các sản phẩm không có giá
Nếu sản phẩm không có giá và không có đánh giá — bạn có thể sử dụng WebPage thay vì Product. Điều này sẽ không tạo ra rich snippets, nhưng sẽ không có lỗi nào xuất hiện.
Khuyến nghị
Đối với các sản phẩm "giá theo yêu cầu", tốt nhất bạn nên truyền offers kèm theo availability, nhưng không có price. Google sẽ chấp nhận đánh dấu này và người dùng sẽ thấy thông tin về tình trạng còn hàng của sản phẩm.