Tấn Phát Digital — Bài viết được biên dịch và Việt hóa từ tài liệu chính thức "Introduction to Product structured data" của Google Search Central. Đây là bài hướng dẫn thực hành chi tiết nhất về Product Schema — với code mẫu, validation guide và best practices cho thị trường Việt Nam.
Vì sao 90% shop online VN chưa có Product Schema?
Hãy thử search một sản phẩm trên Google và để ý:
Kết quả từ Tiki, Shopee, Lazada:
🌟🌟🌟🌟🌟 4.8 (1,247 reviews)
Áo Thun Nam Cotton Trắng - Giá: 299.000đ
✅ Còn hàng - 🚚 Miễn phí ship
Kết quả từ shop A (không có schema):
Áo Thun Nam Cotton Trắng | Shop A
shopA.com/ao-thun-nam-cotton-trang
Áo thun nam cotton chất lượng cao với mẫu mã đa dạng...
Bạn click vào kết quả nào? 90% người chọn kết quả có sao đánh giá và giá. Đó là lợi thế của Product Schema.
Vậy tại sao 90% shop VN chưa có? Vì:
Phức tạp — Schema markup nhìn "kỹ thuật"
Không biết bắt đầu — Không có guide cụ thể
Sợ làm sai — Google sẽ phạt?
Không thấy ngay — Không có ROI tức thì
Bài viết này, Tấn Phát Digital sẽ giải mã toàn bộ Product Schema — từ A đến Z, với code mẫu sẵn dùng cho shop VN.
Bài viết này dành cho:
Chủ shop online muốn hiển thị rich snippets
Developer triển khai schema cho ecommerce site
SEO specialist chuyên ecommerce
Marketing manager cần hiểu để giao việc
Phần 1: Product Schema — Tổng quan
1.1. Product Schema là gì?
Google định nghĩa:
"Khi bạn add structured data cho product pages, thông tin sản phẩm có thể appear in RICHER WAYS trong Google Search results (bao gồm Google Images và Google Lens). Ví dụ, users có thể thấy giá, availability, review ratings, shipping information, và nhiều hơn nữa NGAY TRONG SEARCH RESULTS."
Đơn giản: Schema giúp Google hiểu content và hiển thị đẹp hơn trong search.
1.2. Lợi ích cụ thể của Product Schema
Lợi ích | Tác động |
|---|---|
⭐ Rich Snippets | CTR tăng 20-40% |
🏷️ Hiển thị giá | Filter user có ý định mua |
✅ Availability | Trust + conversion |
🚚 Shipping info | Reduce friction |
🔄 Return policy | Trust signal |
📊 Reviews count | Social proof |
🛍️ Google Shopping | Free traffic mới |
📱 Google Lens | Visual search |
🤖 AI Overviews | Sản phẩm xuất hiện trong AI responses |
1.3. Nơi schema hiển thị trên Google
Google liệt kê 4 surfaces chính:
A. Product Snippet (Text result)
Áo Thun Nam Cotton Trắng | Shop XYZ
shop.com/ao-thun-trang
⭐⭐⭐⭐⭐ 4.5 (127) · 299.000đ · Còn hàng
Áo thun nam cotton 100% dáng regular, mềm mại...
B. Popular Products (Visually rich)
┌──────────┬──────────┬──────────┐
│ [Image] │ [Image] │ [Image] │
│ Product1 │ Product2 │ Product3 │
│ 299k │ 359k │ 199k │
│ ⭐⭐⭐⭐⭐ │ ⭐⭐⭐⭐ │ ⭐⭐⭐⭐⭐ │
└──────────┴──────────┴──────────┘
C. Shopping Knowledge Panel
Panel bên phải khi search brand name + product:
iPhone 16 Pro Max
Apple
⭐⭐⭐⭐⭐ 4.7 (12,847)
Giá từ: 32.990.000đ
Mua tại:
• FPT Shop
• ShopDunk
• CellphoneS
• Apple Store VN
D. Google Images
Hình ảnh sản phẩm + giá + shop trong Google Images:
[Image]
Áo thun nam cotton trắng - 299k
Shop XYZ
Phần 2: 2 Loại Product Schema — Phân biệt quan trọng
Đây là phần ít người Việt biết. Google phân biệt rõ ràng:
2.1. Product Snippet vs Merchant Listing
Google nói:
"Có 2 main classes của product structured data. Follow requirements cho TYPE phù hợp NHẤT với use case của bạn."
Loại 1: Product Snippet
Dành cho: Trang sản phẩm mà user KHÔNG thể mua trực tiếp.
Ví dụ:
Blog review sản phẩm
Editorial review
Comparison sites
Affiliate marketing pages
Forum discussions về sản phẩm
Đặc điểm:
Focus vào REVIEW INFORMATION
Có thêm pros and cons options
Không cần thông tin shipping/return
Loại 2: Merchant Listing
Dành cho: Trang sản phẩm mà user CÓ THỂ mua trực tiếp.
Ví dụ:
Trang sản phẩm của ecommerce site
Trang booking dịch vụ
Trang đặt hàng
Đặc điểm:
Focus vào DETAILED PRODUCT INFO
Apparel sizing
Shipping details
Return policy
Pricing chi tiết
2.2. Sự overlap và chiến lược kết hợp
Google nói:
"Có MỘT SỐ OVERLAP giữa 2 product features. Generally, adding required product information properties cho merchant listings nghĩa là product pages có thể ELIGIBLE CHO CẢ product snippets."
Khuyến nghị từ Tấn Phát Digital:
✅ Shop ecommerce → Dùng Merchant Listing (có thể được hưởng cả 2 enhancements)
✅ Blog review → Dùng Product Snippet
✅ Site lai (blog + bán) → Dùng theo từng page
2.3. Bảng so sánh chi tiết
Tính năng | Product Snippet | Merchant Listing |
|---|---|---|
Mục đích | Review/giới thiệu | Bán trực tiếp |
Reviews | ⭐ Mạnh | ⭐ Hỗ trợ |
Pros/Cons | ✅ Có | ❌ Không |
Price | ✅ Có | ✅ Có |
Availability | ❌ Không cần | ✅ Bắt buộc |
Shipping info | ❌ Không | ✅ Có |
Return policy | ❌ Không | ✅ Có |
Apparel sizing | ❌ Không | ✅ Có |
Free Google Shopping | ❌ Không | ✅ Có |
Phần 3: Required Properties — Bắt buộc phải có
Đây là các trường BẮT BUỘC để Schema được Google chấp nhận.
3.1. Properties tối thiểu cho Merchant Listing
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Áo thun nam cotton trắng",
"image": "https://shop.com/ao-trang.jpg",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock"
}
}
Giải thích:
Property | Mô tả | Ví dụ |
|---|---|---|
| Vocabulary |
|
| Loại schema |
|
| Tên sản phẩm |
|
| URL hình ảnh | URL hình ảnh sản phẩm |
| Object chứa offer info | Bắt buộc |
| Giá (số) |
|
| Đơn vị tiền |
|
| Tình trạng | Xem phần dưới |
3.2. Availability values
Google chỉ chấp nhận các giá trị sau:
"availability": "https://schema.org/InStock" // Còn hàng
"availability": "https://schema.org/OutOfStock" // Hết hàng
"availability": "https://schema.org/PreOrder" // Đặt trước
"availability": "https://schema.org/BackOrder" // Đặt hàng (chờ)
"availability": "https://schema.org/SoldOut" // Đã bán hết
"availability": "https://schema.org/Discontinued" // Ngừng kinh doanh
"availability": "https://schema.org/LimitedAvailability" // Số lượng có hạn
Phần 4: Recommended Properties — Tăng cường rich results
Càng có nhiều properties → càng có nhiều cơ hội xuất hiện trong rich results.
4.1. Schema đầy đủ cho Merchant Listing
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Áo Thun Nam Cotton Trắng Dáng Regular",
"image": [
"https://shop.com/photos/1x1/ao-trang.jpg",
"https://shop.com/photos/4x3/ao-trang.jpg",
"https://shop.com/photos/16x9/ao-trang.jpg"
],
"description": "Áo thun nam cotton 100% chất liệu cao cấp, dáng regular fit, phù hợp đi làm, đi chơi. Có 4 màu: Trắng, Đen, Xanh Navy, Xám.",
"sku": "AT-001-WHITE-M",
"mpn": "925872",
"gtin13": "0614141999996",
"brand": {
"@type": "Brand",
"name": "Shop XYZ"
},
"offers": {
"@type": "Offer",
"url": "https://shop.com/ao-thun-nam-cotton-trang",
"priceCurrency": "VND",
"price": "299000",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "VN",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "VND"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "VN"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 3,
"unitCode": "DAY"
}
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "127",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Nguyễn Văn A"
},
"datePublished": "2026-05-15",
"reviewBody": "Áo chất rất đẹp, vải mịn, form chuẩn. Sẽ ủng hộ shop tiếp!",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
}
}
]
}
4.2. Schema chi tiết cho Product Snippet (Blog Review)
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "iPhone 16 Pro Max 256GB",
"image": "https://blog.com/iphone-16-review.jpg",
"description": "Review chi tiết iPhone 16 Pro Max sau 30 ngày sử dụng",
"brand": {
"@type": "Brand",
"name": "Apple"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "247"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Tấn Phát Digital"
},
"datePublished": "2026-05-19",
"reviewBody": "Sau 30 ngày sử dụng, iPhone 16 Pro Max thực sự là...",
"positiveNotes": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Pin trâu hơn iPhone 15 Pro Max"
},
{
"@type": "ListItem",
"position": 2,
"name": "Camera telephoto 5x ấn tượng"
},
{
"@type": "ListItem",
"position": 3,
"name": "Material titanium nhẹ hơn"
}
]
},
"negativeNotes": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Giá cao hơn 200$ so với iPhone 15"
},
{
"@type": "ListItem",
"position": 2,
"name": "Vẫn dùng USB-C 10Gbps"
}
]
}
}
}
Lưu ý: positiveNotes và negativeNotes là pros và cons — chỉ có ở Product Snippet, không có ở Merchant Listing.
Phần 5: Product Identifiers — GTIN, MPN, SKU
Đây là phần cực kỳ quan trọng nhưng nhiều người Việt bỏ qua.
5.1. Tại sao Product Identifiers quan trọng?
Identifiers giúp Google:
Match sản phẩm của bạn với databases sản phẩm toàn cầu
Hiển thị trong Shopping Knowledge Panel
Compare giá với các seller khác
Tăng trust với buyer
5.2. 3 loại Identifiers chính
GTIN (Global Trade Item Number)
Là gì: Mã barcode quốc tế (UPC, EAN, ISBN, JAN)
Format:
gtin8— 8 chữ sốgtin12— 12 chữ số (UPC-A, Bắc Mỹ)gtin13— 13 chữ số (EAN, Châu Âu, VN)gtin14— 14 chữ số (ITF-14)
Ví dụ:
"gtin13": "8938503001234"
MPN (Manufacturer Part Number)
Là gì: Mã của nhà sản xuất
Ví dụ:
"mpn": "A2784" // iPhone 16 Pro Max
SKU (Stock Keeping Unit)
Là gì: Mã quản lý của shop bạn
Ví dụ:
"sku": "AT-001-WHITE-M" // Áo thun-001-trắng-M
5.3. Khi nào dùng gì?
Loại sản phẩm | Identifier ưu tiên |
|---|---|
Sản phẩm có brand (iPhone, Adidas...) | GTIN + MPN + SKU |
Sản phẩm OEM/no-brand | MPN + SKU |
Sản phẩm tự sản xuất | SKU |
Sản phẩm cũ, vintage | SKU + Mô tả chi tiết |
Phần 6: Tích hợp với Organization Markup
Google khuyến nghị:
"Ngoài structured data cho individual products bạn sell, chúng tôi cũng RECOMMEND bạn add structured data defining the POLICIES của ecommerce business của bạn, nested under Organization markup."
6.1. Schema toàn site (Organization-level)
Đặt schema này trên trang chủ hoặc mọi trang:
{
"@context": "https://schema.org/",
"@type": "OnlineStore",
"name": "Shop XYZ",
"url": "https://shop.com",
"logo": "https://shop.com/logo.png",
"description": "Shop bán quần áo nam chính hãng",
"sameAs": [
"https://facebook.com/shopxyz",
"https://instagram.com/shopxyz",
"https://www.youtube.com/shopxyz"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+84-901-234-567",
"contactType": "customer service",
"areaServed": "VN",
"availableLanguage": ["Vietnamese", "English"]
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "VN",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
},
"hasMemberProgram": {
"@type": "MemberProgram",
"name": "Shop XYZ Rewards",
"description": "Tích điểm với mỗi đơn hàng, đổi voucher giảm giá",
"url": "https://shop.com/rewards"
}
}
6.2. Merchant Return Policy
Áp dụng ở Organization level (cho toàn site):
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "VN",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn",
"refundType": "https://schema.org/FullRefund"
}
Các giá trị returnPolicyCategory:
MerchantReturnFiniteReturnWindow— Có thời hạn (vd: 30 ngày)MerchantReturnUnlimitedWindow— Không giới hạnMerchantReturnNotPermitted— Không hỗ trợ đổi trả
Các giá trị returnFees:
FreeReturn— Miễn phí đổi trảReturnFeesCustomerResponsibility— Khách trả phí shipOriginalShippingFees— Tính phí ship gốc
6.3. Loyalty Program
"hasMemberProgram": {
"@type": "MemberProgram",
"name": "Shop XYZ VIP",
"description": "Chương trình khách hàng thân thiết",
"url": "https://shop.com/vip",
"hasTiers": [
{
"@type": "MemberProgramTier",
"name": "Bronze",
"hasTierBenefit": "TierBenefitLoyaltyPrice",
"hasTierRequirement": {
"@type": "UnitPriceSpecification",
"price": "0",
"priceCurrency": "VND"
}
},
{
"@type": "MemberProgramTier",
"name": "Gold",
"hasTierBenefit": "TierBenefitLoyaltyPrice",
"hasTierRequirement": {
"@type": "MonetaryAmount",
"value": "5000000",
"currency": "VND"
}
}
]
}
Phần 7: Implementation Guide — Triển khai thực tế
7.1. JSON-LD (Khuyến nghị)
Đặt trong <head> hoặc cuối <body>:
<!DOCTYPE html>
<html>
<head>
<title>Áo Thun Nam Cotton Trắng | Shop XYZ</title>
<!-- Product Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Áo Thun Nam Cotton Trắng",
"image": "https://shop.com/ao-trang.jpg",
"description": "Áo thun nam cotton 100%",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock"
}
}
</script>
</head>
<body>
<!-- Page content -->
</body>
</html>
7.2. WordPress + WooCommerce
Plugin recommended:
Yoast SEO — Tự động thêm Product Schema cơ bản
Rank Math — Schema mở rộng
Schema Pro — Schema chuyên sâu
WooCommerce — Built-in schema (có thể enhance)
Code custom (functions.php):
// Add custom Product Schema cho WooCommerce
add_action('wp_head', function() {
if (!is_product()) return;
global $product;
$schema = [
'@context' => 'https://schema.org/',
'@type' => 'Product',
'name' => $product->get_name(),
'image' => wp_get_attachment_url($product->get_image_id()),
'description' => $product->get_short_description(),
'sku' => $product->get_sku(),
'offers' => [
'@type' => 'Offer',
'url' => get_permalink($product->get_id()),
'price' => $product->get_price(),
'priceCurrency' => get_woocommerce_currency(),
'availability' => $product->is_in_stock()
? 'https://schema.org/InStock'
: 'https://schema.org/OutOfStock'
]
];
echo '<script type="application/ld+json">' .
json_encode($schema, JSON_UNESCAPED_UNICODE) .
'</script>';
});
7.3. Shopify
Cách 1: Theme built-in (đa số theme hỗ trợ)
Hầu hết theme premium đã có Product Schema. Kiểm tra trong: Themes → Edit code → Snippets → product-json-ld.liquid
Cách 2: Custom Liquid
Trong templates/product.liquid:
{% comment %} Custom Product Schema {% endcomment %}
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": {{ product.title | json }},
"image": [
{% for image in product.images %}
{{ image | img_url: '1024x' | prepend: 'https:' | json }}
{% unless forloop.last %},{% endunless %}
{% endfor %}
],
"description": {{ product.description | strip_html | json }},
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"brand": {
"@type": "Brand",
"name": {{ product.vendor | json }}
},
"offers": {
"@type": "Offer",
"url": {{ shop.url | append: product.url | json }},
"priceCurrency": {{ cart.currency.iso_code | json }},
"price": {{ product.selected_or_first_available_variant.price | divided_by: 100.00 | json }},
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}"
}
}
</script>
7.4. Custom platform (React, Vue, Next.js...)
React/Next.js:
import Head from 'next/head';
export default function ProductPage({ product }) {
const schema = {
"@context": "https://schema.org/",
"@type": "Product",
"name": product.name,
"image": product.images,
"description": product.description,
"sku": product.sku,
"offers": {
"@type": "Offer",
"price": product.price,
"priceCurrency": "VND",
"availability": product.inStock
? "https://schema.org/InStock"
: "https://schema.org/OutOfStock"
}
};
return (
<>
<Head>
<title>{product.name}</title>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
</Head>
{/* Page content */}
</>
);
}
Phần 8: Validation — Test Schema trước khi deploy
8.1. Rich Results Test (Khuyến nghị)
URL: https://search.google.com/test/rich-results
Quy trình:
Paste URL của product page
Click "Test URL"
Xem kết quả:
✅ Valid — Đủ điều kiện rich results
⚠️ Warning — Optional fields thiếu
❌ Error — Phải fix
8.2. Schema Markup Validator
URL: https://validator.schema.org/
Test structure của schema (theo schema.org spec).
8.3. Search Console
Sau khi deploy:
Vào Search Console
Enhancements → Products
Xem:
Valid items
Items with errors
Items with warnings
8.4. Common errors và cách fix
Error | Nguyên nhân | Cách fix |
|---|---|---|
Missing field 'image' | Không có hình | Thêm |
Missing field 'offers' | Không có offer | Thêm |
Missing field 'price' | Không có giá | Thêm |
Invalid value 'availability' | Sai format | Dùng schema.org URLs |
Missing 'aggregateRating' fields | Thiếu count | Thêm |
Price không match | Schema khác với UI | Sync schema với giá hiển thị |
Phần 9: Best Practices và Common Mistakes
9.1. Best Practices
✅ Schema phải MATCH với content hiển thị trên trang
✅ Giá trong schema = giá user thấy
✅ Reviews thật, không fake
✅ Update schema khi data thay đổi (giá, stock, reviews)
✅ Test với Rich Results Test trước khi deploy
✅ Multiple image ratios (1x1, 4x3, 16x9)
✅ Đầy đủ identifiers (GTIN, MPN, SKU)
✅ Self-referencing canonical trên mọi product page
9.2. Common Mistakes — Tránh ngay!
❌ Mistake 1: Reviews giả
Hậu quả: Vi phạm chính sách, có thể bị manual action.
Đúng: Chỉ dùng reviews thật từ khách hàng.
❌ Mistake 2: Schema không match content
Ví dụ:
Schema: "298.000đ"
Trang: "359.000đ"
Hậu quả: Google ignore schema, có thể warning.
Đúng: Sync dynamic từ database.
❌ Mistake 3: AggregateRating khi không có reviews
"aggregateRating": {
"ratingValue": "5",
"reviewCount": "0" ← Sai!
}
Đúng: Chỉ thêm aggregateRating khi CÓ reviews thật (≥1).
❌ Mistake 4: Schema chỉ trên 1-2 trang
Hậu quả: Mất cơ hội cho hàng nghìn sản phẩm khác.
Đúng: Schema trên TẤT CẢ product pages.
❌ Mistake 5: Quên update khi giá thay đổi
Hậu quả: User click vào thấy giá khác → trust giảm.
Đúng: Schema generate dynamic từ database.
❌ Mistake 6: Dùng priceValidUntil trong quá khứ
"priceValidUntil": "2024-12-31" ← Đã quá hạn
Hậu quả: Google cảnh báo deprecated offer.
Đúng: Update priceValidUntil thường xuyên.
❌ Mistake 7: Không có currency
"price": "299000" ← Không biết là VND hay USD
Đúng: Luôn có priceCurrency.
❌ Mistake 8: Image URL relative
"image": "/photos/ao.jpg" ← Sai
Đúng:
"image": "https://shop.com/photos/ao.jpg"
Phần 10: Schema cho Product Variants
Nếu sản phẩm có biến thể (màu, size), Google có support đặc biệt.
10.1. ProductGroup pattern
{
"@context": "https://schema.org/",
"@type": "ProductGroup",
"name": "Áo Thun Nam Cotton",
"productGroupID": "AT-001",
"variesBy": ["color", "size"],
"hasVariant": [
{
"@type": "Product",
"sku": "AT-001-WHITE-M",
"name": "Áo Thun Nam Cotton Trắng - Size M",
"color": "Trắng",
"size": "M",
"image": "https://shop.com/photos/at-001-white-m.jpg",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "Product",
"sku": "AT-001-WHITE-L",
"name": "Áo Thun Nam Cotton Trắng - Size L",
"color": "Trắng",
"size": "L",
"image": "https://shop.com/photos/at-001-white-l.jpg",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "Product",
"sku": "AT-001-BLACK-M",
"name": "Áo Thun Nam Cotton Đen - Size M",
"color": "Đen",
"size": "M",
"image": "https://shop.com/photos/at-001-black-m.jpg",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock"
}
}
]
}
10.2. Lợi ích của ProductGroup
Google hiểu variants là cùng product
Hiển thị options trong Shopping
Better consolidation trong knowledge panel
Variant-level pricing và availability
Phần 11: Checklist hoàn chỉnh
Tấn Phát Digital tổng hợp checklist 30 điểm:
Phần A: Required Properties
[ ]
@contextset chính xác[ ]
@type= "Product"[ ]
namerõ ràng[ ]
imageURL absolute, chất lượng cao[ ]
offerscó đầy đủ[ ]
priceđúng định dạng (số, không có ký tự)[ ]
priceCurrency= "VND"[ ]
availabilitydùng schema.org URLs
Phần B: Recommended Properties
[ ]
descriptionmô tả chi tiết[ ]
skucó mã quản lý[ ]
brandđầy đủ[ ]
gtin13hoặcmpn(nếu có)[ ]
aggregateRating(nếu có reviews)[ ]
reviewchi tiết (nếu có)[ ]
priceValidUntilcập nhật
Phần C: Merchant Listing Enhancements
[ ]
hasMerchantReturnPolicy[ ]
shippingDetails[ ] Multiple image ratios (1x1, 4x3, 16x9)
[ ]
itemCondition
Phần D: Variants (nếu có)
[ ] ProductGroup pattern
[ ]
variesByproperties[ ] Each variant có unique URL + SKU
[ ] Canonical strategy đúng
Phần E: Validation
[ ] Test với Rich Results Test
[ ] Test với Schema Validator
[ ] Không có errors
[ ] Warnings được xử lý
Phần F: Implementation
[ ] Schema trên TẤT CẢ product pages
[ ] Generated dynamic từ database
[ ] Update real-time khi data thay đổi
[ ] Schema match với content hiển thị
Phần G: Monitoring
[ ] Setup Search Console alerts
[ ] Check Enhancements report weekly
[ ] Track rich results performance
[ ] Fix errors ngay khi phát hiện
Product Schema — ROI cao nhất của Ecommerce SEO
Trong tất cả kỹ thuật SEO Ecommerce, Product Schema có ROI cao nhất:
Chi phí thấp (chỉ cần implement code)
Hiệu quả nhanh (1-2 tuần thấy rich results)
Tác động lớn (CTR tăng 20-40%)
Bền vững (không bị Google update phạt)
5 thông điệp cuối
1. Schema không phải optional cho ecommerce. Đó là bắt buộc nếu muốn cạnh tranh.
2. Match content hiển thị. Schema phải = giá user thấy.
3. Variants cần ProductGroup. Đây là cách Google hiểu mối quan hệ.
4. Validate trước khi deploy. Rich Results Test là người bạn tốt nhất.
5. Monitor liên tục. Search Console alerts khi có vấn đề.
Bài tiếp theo
Đây là bài cuối cùng của Cluster 1: Ecommerce SEO. Tiếp theo, chúng ta sẽ chuyển sang Cluster 2: International & Local SEO với:
Bài 14: SEO Quốc Tế Toàn Diện
Bài 15: Hreflang Tag Chi Tiết
Bài 16: Local SEO + Google Business Profile
Tài liệu tham khảo
Về Tấn Phát Digital
Tấn Phát Digital cung cấp Schema Implementation Service chuyên sâu cho ecommerce:
Schema Audit — Đánh giá schema hiện tại
Full Schema Implementation — Triển khai đầy đủ cho mọi product
Variant Schema Setup — ProductGroup cho sản phẩm có biến thể
Schema Monitoring — Theo dõi và fix issues
Liên hệ Tấn Phát Digital để được tư vấn schema strategy cho shop của bạn.
Bài viết được biên soạn từ tài liệu Google Search Central, cập nhật 10/12/2025. Code mẫu, implementation guide và checklist thuộc về Tấn Phát Digital.
Product Schema là một phần quan trọng trong chiến lược SEO Ecommerce hiện đại.
Nếu bạn muốn tối ưu website bán hàng chuẩn SEO và triển khai structured data đúng cách, hãy liên hệ Tấn Phát Digital để được tư vấn.









