SEO E-Commerce

Offer Schema

Schema mô tả thông tin giá, trạng thái tồn kho, ngày hết hạn khuyến mãi và điều kiện áp dụng cho sản phẩm.

4 lượt xem Cập nhật: 31/05/2026

Offer Schema là gì?

Offer Schema là một loại mã cấu trúc (structured data) thuộc chuẩn Schema.org, dùng để mô tả chi tiết về đề xuất mua bán một sản phẩm hoặc dịch vụ — như giá bán, đơn vị tiền tệ, trạng thái tồn kho, ngày bắt đầu và kết thúc khuyến mãi, điều kiện áp dụng (ví dụ: miễn phí vận chuyển với đơn từ 500.000đ), hay chính sách hoàn trả liên quan đến giao dịch cụ thể.

Khác với Product Schema — chỉ mô tả đặc điểm sản phẩm (tên, mô tả, hình ảnh…), Offer Schema tập trung vào yếu tố thương mại: ai đang bán cái gì, với giá bao nhiêu, khi nào, và dưới điều kiện nào. Một sản phẩm có thể có nhiều Offer (ví dụ: cùng một điện thoại nhưng có phiên bản nhập khẩu và xách tay, mỗi phiên bản có giá và nhà bán khác nhau).

Tại sao quan trọng trong SEO?

Offer Schema giúp công cụ tìm kiếm (đặc biệt là Google) hiểu rõ hơn về tính sẵn sàng và tính cạnh tranh của sản phẩm trên trang web. Khi được triển khai đúng, nó hỗ trợ hiển thị rich result trong kết quả tìm kiếm — như giá, trạng thái ‘Còn hàng’, nhãn ‘Giảm 30%’, hoặc biểu tượng ‘Miễn phí vận chuyển’ ngay bên dưới tiêu đề kết quả.

Theo báo cáo chính thức từ Google (cập nhật tháng 6/2024), các trang sản phẩm có Offer Schema đầy đủ và hợp lệ có tỷ lệ xuất hiện trong rich result cao hơn 2,3 lần so với trang không có. Điều này dẫn đến tăng CTR trung bình từ 15–28% tùy ngành hàng. Ngoài ra, dữ liệu này còn hỗ trợ Google Shopping, Discover và tính năng ‘So sánh giá’ — nơi người dùng tìm kiếm trực tiếp theo giá hoặc ưu đãi.

Lưu ý: Offer Schema không trực tiếp cải thiện thứ hạng, nhưng gián tiếp nâng hiệu quả SEO thông qua tăng độ tin cậy, trải nghiệm người dùng và khả năng hiển thị nổi bật.

Cách hoạt động

Offer Schema hoạt động bằng cách thêm đoạn mã JSON-LD (hoặc Microdata/RDFa) vào HTML trang — mô tả các thuộc tính bắt buộc và tùy chọn theo định dạng Schema.org. Khi Googlebot thu thập trang, nó phân tích đoạn mã này để trích xuất thông tin thương mại đáng tin cậy, sau đó sử dụng dữ liệu đó để bổ sung vào kết quả tìm kiếm hoặc hệ thống quảng cáo.

Một Offer hợp lệ phải luôn được gắn với một đối tượng cha — thường là Product, Service hoặc Event. Không tồn tại Offer độc lập ngoài ngữ cảnh.

Hướng dẫn thực hiện

Dưới đây là các bước triển khai Offer Schema cho trang sản phẩm e-commerce:

  1. Xác định đối tượng cha: Đảm bảo trang đã có Product Schema (với @id duy nhất, ví dụ: https://example.com/san-pham/dien-thoai-a12).
  2. Chọn định dạng: Ưu tiên JSON-LD (chèn trong thẻ <head> hoặc cuối <body>). Đây là định dạng Google khuyến nghị và dễ kiểm soát nhất.
  3. Khai báo thuộc tính bắt buộc:
    • @type: giá trị phải là Offer
    • itemOffered: tham chiếu tới Product cha (dùng URL hoặc đối tượng lồng)
    • price: số thực (không có dấu phân cách ngàn, ví dụ: "8990000")
    • priceCurrency: mã ISO 4217 (ví dụ: "VND")
    • availability: giá trị từ danh sách chuẩn, như https://schema.org/InStock, https://schema.org/OutOfStock
  4. Bổ sung thuộc tính khuyến khích:
    • priceValidUntil: ngày hết hạn giá (định dạng ISO 8601: "2025-12-31" hoặc "2025-12-31T23:59:59+07:00")
    • eligibleQuantity: số lượng tối thiểu/mỗi lần mua (dùng QuantitativeValue)
    • eligibleTransactionVolume: giới hạn giá trị đơn hàng để hưởng ưu đãi
    • url: liên kết trực tiếp tới trang đặt hàng hoặc chương trình khuyến mãi
  5. Kiểm tra và xuất bản: Dùng Google Search Console → Công cụ kiểm tra URL → tab ‘Hiển thị dữ liệu có cấu trúc’. Chỉ xuất bản khi trạng thái là ‘Hợp lệ’ và không có cảnh báo.

Lỗi thường gặp

Lỗi Dấu hiệu Cách khắc phục
Thiếu itemOffered hoặc tham chiếu sai Gắn Offer mà không liên kết với Product → Google bỏ qua toàn bộ Luôn dùng itemOffered với giá trị là @id của Product hoặc đối tượng Product đầy đủ
Giá không đúng định dạng Nhập "8.990.000 VND" hoặc "8,990,000" Dùng số nguyên hoặc thập phân chuẩn: 8990000 hoặc 8990000.0; không dùng dấu chấm/phẩy phân cách
Ngày hết hạn sai cú pháp priceValidUntil: "31/12/2025" → bị coi là chuỗi vô nghĩa Dùng định dạng ISO: "2025-12-31" hoặc "2025-12-31T00:00:00+07:00"
Nhiều Offer không phân biệt rõ ràng Cùng một sản phẩm có 2 Offer giống hệt nhau → Google chọn ngẫu nhiên hoặc bỏ cả hai Phân biệt bằng seller, priceSpecification, hoặc url riêng biệt cho từng phiên bản

Ví dụ thực tế

Dưới đây là đoạn JSON-LD Offer Schema mẫu cho một sản phẩm điện thoại đang giảm giá tại một cửa hàng online Việt Nam:

{ "@context": "https://schema.org", "@type": "Offer", "itemOffered": { "@type": "Product", "@id": "https://banhang.vn/san-pham/iphone-15-pro" }, "price": "24990000", "priceCurrency": "VND", "priceValidUntil": "2025-06-30", "availability": "https://schema.org/InStock", "url": "https://banhang.vn/san-pham/iphone-15-pro?utm_source=google&utm_medium=rich_result", "seller": { "@type": "Organization", "name": "Cửa Hàng Điện Máy ABC" }, "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 5 } }

Lưu ý: Nếu trang có nhiều biến thể (màu, dung lượng), nên tạo một Offer riêng cho mỗi biến thể — không gộp chung.

Câu hỏi thường gặp

Offer Schema có cần thiết cho mọi trang sản phẩm?

Có, nếu trang có yếu tố thương mại rõ ràng: giá niêm yết, nút ‘Thêm vào giỏ’, trạng thái tồn kho hoặc khuyến mãi. Với sản phẩm không bán trực tiếp (ví dụ: blog review), việc thêm Offer Schema là không phù hợp và có thể gây hiểu nhầm cho Google.

Một sản phẩm có thể có bao nhiêu Offer Schema?

Không giới hạn — miễn là mỗi Offer phản ánh một đề xuất thực tế và khác biệt (ví dụ: giá niêm yết, giá thành viên, giá sỉ, giá combo). Tuy nhiên, Google chỉ hiển thị tối đa 1 Offer trong rich result trên kết quả tìm kiếm — thường là Offer có giá thấp nhất và trạng thái tồn kho tốt nhất.

Có thể dùng Offer Schema cho dịch vụ hoặc khóa học không?

Có. Offer Schema hỗ trợ cả Service, Course, Event… Miễn là có yếu tố giá và điều kiện giao dịch. Tuy nhiên, với dịch vụ, cần đảm bảo priceSpecification rõ ràng (ví dụ: giá theo giờ, theo gói, hoặc phí cố định) — vì đây là yêu cầu bắt buộc khi itemOffered không phải Product.