On-Page SEO

Structured Data

Dữ liệu có định dạng chuẩn (JSON-LD, RDFa, Microdata) giúp công cụ tìm kiếm hiểu ngữ nghĩa nội dung.

3 lượt xem Cập nhật: 26/05/2026

Structured Data là gì?

Structured Data (dữ liệu có cấu trúc) là đoạn mã được chèn vào trang web dưới dạng JSON-LD, Microdata hoặc RDFa — nhằm mô tả rõ nội dung theo cách máy móc có thể hiểu được. Khác với văn bản thường, dữ liệu có cấu trúc không chỉ nói cái gì, mà còn nói nó là cái gì: ví dụ một chuỗi '1997' không phải chỉ là con số, mà là năm sinh của một người; hay 'Hà Nội' không chỉ là tên thành phố, mà là địa điểm kinh doanh của doanh nghiệp.

Công cụ tìm kiếm như Google, Bing dùng dữ liệu này để phân tích ngữ nghĩa — tức là hiểu mối quan hệ giữa các yếu tố: sản phẩm – giá – đánh giá – nhà cung cấp; sự kiện – thời gian – địa điểm – người tổ chức… Từ đó, chúng có thể hiển thị kết quả phong phú hơn (rich results), như sao đánh giá trong SERP, hộp hỏi đáp, lịch trình sự kiện hoặc danh sách công thức nấu ăn.

Tại sao quan trọng trong SEO?

Structured Data không trực tiếp làm tăng thứ hạng, nhưng ảnh hưởng mạnh đến khả năng hiển thị và tương tác trên trang kết quả tìm kiếm. Theo báo cáo chính thức từ Google (cập nhật tháng 3/2024), các trang có rich results đạt tỷ lệ nhấp (CTR) trung bình cao hơn 28–42% so với kết quả thông thường — tùy ngành và loại rich result.

Ngoài ra, dữ liệu có cấu trúc giúp:

  • Giảm nhầm lẫn ngữ nghĩa (ví dụ: phân biệt 'Apple' là công ty công nghệ hay trái cây);
  • Hỗ trợ lập chỉ mục nhanh và chính xác hơn cho nội dung phức tạp (sự kiện, sản phẩm đa biến, bài viết hướng dẫn từng bước);
  • Là điều kiện tiên quyết để xuất hiện trong các tính năng đặc biệt như Google Discover, Rich Cards, hoặc Assistant Actions;
  • Tăng độ tin cậy của trang trong mắt thuật toán — vì việc triển khai đúng chứng tỏ chủ sở hữu website chú trọng trải nghiệm người dùng và tính minh bạch dữ liệu.

Cách hoạt động

Khi Googlebot thu thập một trang, nó không chỉ đọc văn bản mà còn quét toàn bộ mã HTML — bao gồm thẻ <script type="application/ld+json"> hoặc thuộc tính itemscope/itemtype. Dữ liệu được giải mã theo chuẩn Schema.org (tổ chức phi lợi nhuận do Google, Microsoft, Yahoo và Yandex cùng sáng lập), sau đó ánh xạ vào các lớp đối tượng đã định nghĩa sẵn: Person, LocalBusiness, Recipe, FAQPage

Nếu dữ liệu hợp lệ và đầy đủ, Google sẽ dùng thông tin đó để tạo rich result — nhưng không đảm bảo hiển thị. Việc xuất hiện còn phụ thuộc vào chất lượng nội dung, mức độ liên quan với truy vấn, và chính sách thuật toán hiện hành.

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

  1. Xác định loại dữ liệu cần triển khai: Dựa vào nội dung trang — ví dụ: trang sản phẩm → Product; trang blog hỏi đáp → FAQPage; trang giới thiệu công ty → Organization.
  2. Chọn định dạng phù hợp:
    • JSON-LD (khuyến nghị hàng đầu): chèn trong thẻ <head> hoặc đầu phần <body>, dễ bảo trì, ít gây lỗi khi thay đổi layout.
    • Microdata: gắn trực tiếp vào HTML hiện có (ví dụ: thêm itemprop="name" vào thẻ <h1>). Phù hợp nếu không thể chỉnh <head>, nhưng dễ sai khi markup bị cắt ngang.
    • RDFa: ít phổ biến tại Việt Nam, chủ yếu dùng trong hệ thống CMS phức tạp hoặc ứng dụng đa ngôn ngữ.
  3. Sử dụng công cụ hỗ trợ:
  4. Kiểm tra và triển khai: Chạy thử trên trang live (không phải localhost), kiểm tra bằng Search Console. Đợi từ 3–14 ngày để Google xử lý và báo lỗi (nếu có).

Lỗi thường gặp

Lỗi Dấu hiệu Cách khắc phục
Mã JSON-LD bị lỗi cú pháp Google Search Console báo “Invalid JSON” hoặc “Parse error” Dán vào JSONLint để kiểm tra dấu phẩy thừa, ngoặc thiếu, ký tự Unicode không hợp lệ.
Thiếu thuộc tính bắt buộc Ví dụ: Product thiếu name, offers hoặc image Xem lại tài liệu chính thức tại schema.org — mỗi loại đều liệt kê rõ required properties.
Đánh dấu trùng lặp hoặc mâu thuẫn Cùng một nội dung được markup cả bằng JSON-LD và Microdata Chỉ giữ một định dạng duy nhất. Nếu dùng JSON-LD, loại bỏ toàn bộ Microdata/RDFa trên cùng trang.
Markup không khớp nội dung thực tế Trang ghi “giá 599.000₫”, nhưng JSON-LD ghi “599000” (thiếu đơn vị) hoặc “$599” Đảm bảo giá trị trong markup phải giống hệt nội dung hiển thị — kể cả định dạng tiền tệ, đơn vị đo, múi giờ.

Ví dụ thực tế

Dưới đây là đoạn JSON-LD mẫu cho trang sản phẩm điện thoại tại Việt Nam — tuân thủ chuẩn ProductOffer:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "iPhone 15 Pro Max 256GB",
  "image": ["https://example.com/images/iphone15-pro-max.jpg"],
  "description": "iPhone 15 Pro Max phiên bản 256GB, màu Titan xanh dương, hỗ trợ 5G và camera chuyên nghiệp.",
  "sku": "IP15PM-256-TB",
  "brand": {
    "@type": "Brand",
    "name": "Apple"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/san-pham/iphone-15-pro-max",
    "priceCurrency": "VND",
    "price": "32990000",
    "priceValidUntil": "2025-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock"
  }
}

Lưu ý: Giá phải là số nguyên (không dấu chấm nghìn), ngày hết hạn phải ở định dạng YYYY-MM-DD, và tất cả URL phải là đường dẫn tuyệt đối, đúng chuẩn HTTPS.

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

Structured Data có làm tăng thứ hạng Google không?

Không. Google khẳng định rõ ràng rằng structured data không phải là yếu tố xếp hạng. Tuy nhiên, nó cải thiện khả năng hiển thị và CTR — từ đó gián tiếp hỗ trợ hiệu quả SEO tổng thể.

Có nên triển khai cho mọi trang trên website?

Không cần thiết. Chỉ triển khai cho trang có nội dung đủ tiêu chuẩn để xuất hiện dưới dạng rich result — ví dụ: trang sản phẩm, bài blog hỏi đáp, trang sự kiện, trang công thức, trang doanh nghiệp. Trang chủ hoặc trang danh mục chung thường không cần.

Schema.org có thay đổi thường xuyên không?

Có. Schema.org cập nhật định kỳ (trung bình 2–4 lần/năm), thêm loại mới hoặc điều chỉnh thuộc tính. Người làm SEO nên theo dõi trang schema.org/releases và kiểm tra lại markup sau mỗi đợt cập nhật lớn — đặc biệt khi Google thông báo thay đổi yêu cầu rich result.