Product Availability Schema Property
Thuộc tính schema.org:availability trong markup sản phẩm, dùng giá trị như InStock, OutOfStock hoặc PreOrder để hỗ trợ hiển thị trực tiếp trên SERP.
Product Availability Schema Property là gì?
Product Availability Schema Property là thuộc tính availability trong cấu trúc dữ liệu schema.org dành riêng cho loại Product. Thuộc tính này giúp máy chủ tìm kiếm (như Google) hiểu trạng thái tồn kho thực tế của sản phẩm — ví dụ: còn hàng (InStock), hết hàng (OutOfStock), đặt trước (PreOrder), hoặc đang tạm ngưng bán (Discontinued). Đây không phải là thẻ meta hay nội dung hiển thị trên trang, mà là đoạn mã JSON-LD hoặc Microdata được nhúng vào HTML để cung cấp ngữ nghĩa rõ ràng cho công cụ tìm kiếm.
Tại sao quan trọng trong SEO?
Trong thương mại điện tử, việc hiển thị đúng trạng thái tồn kho trên kết quả tìm kiếm (SERP) ảnh hưởng trực tiếp đến trải nghiệm người dùng và tỷ lệ chuyển đổi. Khi Google đọc được giá trị availability hợp lệ, nó có thể:
- Hiển thị nhãn "Còn hàng" hoặc "Hết hàng" ngay dưới tiêu đề sản phẩm trong SERP — tăng độ tin cậy và giảm tỷ lệ bấm sai;
- Ưu tiên hiển thị sản phẩm còn hàng khi người dùng tìm theo từ khóa như "mua [sản phẩm] online" hoặc "đặt hàng ngay";
- Hỗ trợ tính năng Rich Result (kết quả mở rộng) cho sản phẩm — đặc biệt khi kết hợp với
offers,price,reviewvàaggregateRating; - Giảm tỷ lệ thoát do người dùng nhấn vào trang nhưng phát hiện sản phẩm đã hết hàng — một yếu tố gián tiếp cải thiện tín hiệu chất lượng trang (page experience).
Lưu ý: Google không dùng availability để xếp hạng trực tiếp, nhưng nó tác động mạnh đến CTR và hành vi người dùng — hai yếu tố gián tiếp ảnh hưởng đến thứ hạng dài hạn.
Cách hoạt động
Google thu thập dữ liệu schema thông qua quá trình thu thập (crawling) và phân tích (parsing) mã nguồn trang. Khi gặp thuộc tính availability trong markup Product, hệ thống kiểm tra:
- Tính hợp lệ của giá trị (phải là một trong các giá trị chuẩn của schema.org — xem bảng bên dưới);
- Tính nhất quán giữa giá trị schema và nội dung hiển thị trên trang (ví dụ: trang ghi "Còn hàng" nhưng schema lại là
OutOfStock→ có thể bị bỏ qua); - Tính cập nhật: nếu giá trị không thay đổi trong nhiều ngày dù sản phẩm đã hết hàng, Google có thể giảm độ tin cậy với toàn bộ schema trên trang đó.
Hướng dẫn thực hiện
Dưới đây là các bước triển khai chính xác và an toàn:
- Xác định trạng thái tồn kho thực tế: Lấy dữ liệu trực tiếp từ hệ thống quản lý kho (ERP/CRM) hoặc API backend — không nhập tay.
- Chọn định dạng markup phù hợp: JSON-LD được khuyến nghị vì dễ bảo trì và ít gây lỗi render hơn Microdata hoặc RDFa.
- Sử dụng giá trị chuẩn từ schema.org: Chỉ dùng các giá trị được định nghĩa chính thức (không viết hoa sai, không thêm khoảng trắng, không dịch sang tiếng Việt).
- Kiểm tra tính nhất quán: Nội dung văn bản trên trang (ví dụ: "Đang có hàng") phải khớp với giá trị schema.
- Test bằng công cụ chính thức: Dùng Rich Results Test hoặc Schema Markup Validator trước khi triển khai.
- Cập nhật tự động: Thiết lập cron job hoặc webhook để đồng bộ trạng thái khi kho thay đổi — tránh tình trạng schema lỗi thời.
Lỗi thường gặp
Dưới đây là những sai lầm phổ biến và cách xử lý:
- Dùng giá trị không hợp lệ: Ví dụ
"ConHang","Còn hàng","in stock"(thiếu chữ hoa). → Sửa thành"https://schema.org/InStock"hoặc"InStock"(nếu dùng namespace đầy đủ). - Không cập nhật khi sản phẩm hết hàng: Schema vẫn giữ
InStocktrong khi trang hiển thị "Hết hàng". → Gây mâu thuẫn ngữ nghĩa → Google bỏ qua toàn bộ schema. Khắc phục: tích hợp real-time sync. - Thiếu thuộc tính bắt buộc đi kèm: Nếu dùng
availability, nên có ít nhấtoffersvànametrong cùng khối schema — nếu thiếu, Rich Result có thể không xuất hiện. - Đặt schema ở vị trí không thể crawl: Ví dụ trong
<script>bị chặn bởi robots.txt hoặc nằm sau lazy-load không kích hoạt. → Đảm bảo script nằm trong<head>hoặc đầu phần<body>, không bị delay.
Ví dụ thực tế
Dưới đây là đoạn JSON-LD mẫu cho sản phẩm iPhone 15 Pro còn hàng, tích hợp đầy đủ các thuộc tính cần thiết:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "iPhone 15 Pro",
"image": "https://example.com/images/iphone15pro.jpg",
"description": "Smartphone cao cấp với chip A17 Pro và khung titan.",
"sku": "IP15PRO-256GB-SILVER",
"offers": {
"@type": "Offer",
"url": "https://example.com/iphone-15-pro",
"priceCurrency": "VND",
"price": "28990000",
"priceValidUntil": "2025-12-31",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock"
}
}
Lưu ý: Giá trị availability có thể viết ngắn gọn là "InStock" nếu khai báo @context đầy đủ — cả hai cách đều hợp lệ.
Các giá trị availability chuẩn theo schema.org
| Giá trị | Ý nghĩa | Ghi chú |
|---|---|---|
InStock |
Sản phẩm sẵn sàng giao ngay | Phổ biến nhất, dùng cho hàng có sẵn tại kho |
OutOfStock |
Sản phẩm hiện không có trong kho | Không nên dùng khi sản phẩm ngừng kinh doanh hoàn toàn |
PreOrder |
Sản phẩm chưa lên kệ nhưng đã mở đặt trước | Thường kết hợp với availabilityStarts |
BackOrder |
Sản phẩm đang chờ nhập hàng, khách có thể đặt trước | Tùy trường hợp — một số nền tảng thương mại điện tử hỗ trợ |
Discontinued |
Sản phẩm đã ngừng sản xuất và không còn bán | Có thể thay đổi — Google chưa xác nhận hỗ trợ Rich Result cho giá trị này |
Câu hỏi thường gặp
Google có hiển thị trạng thái tồn kho trên SERP cho mọi website?
Không. Việc hiển thị nhãn "Còn hàng" hay "Hết hàng" chỉ xảy ra khi trang đạt đủ điều kiện: (1) markup schema hợp lệ và vượt qua kiểm tra Rich Results Test, (2) sản phẩm có đủ dữ liệu bổ sung (giá, hình ảnh, tên), (3) trang có độ tin cậy cao (domain authority, lịch sử index ổn định). Một số website nhỏ hoặc mới có thể không thấy nhãn dù schema đúng.
Có nên dùng availability cho sản phẩm không bán trực tiếp (chỉ đặt hàng theo yêu cầu)?
Có thể dùng PreOrder hoặc BackOrder, tùy vào quy trình bán hàng thực tế. Tuy nhiên, cần đảm bảo nội dung trang giải thích rõ thời gian giao hàng và chính sách hủy đơn — để duy trì trải nghiệm người dùng và tránh khiếu nại.
Nếu sản phẩm có nhiều biến thể (màu/số lượng), nên khai báo availability thế nào?
Mỗi biến thể (variant) cần có schema riêng, hoặc dùng ProductGroup với các Product con. Không gộp chung một giá trị availability cho tất cả biến thể — vì trạng thái tồn kho có thể khác nhau. Việc này đòi hỏi tích hợp kỹ thuật sâu với hệ thống quản lý sản phẩm.