Technical SEO

Schema Markup Là Gì? Cách Chọn Và Triển Khai Đúng

Schema Markup là dữ liệu có cấu trúc giúp mô tả thực thể và nội dung. Xem cách chọn type, viết JSON-LD, nối graph và kiểm tra URL live.

Bởi ·

Schema Markup là gì?

Schema Markup là phần dữ liệu có cấu trúc được thêm vào trang để mô tả rõ nội dung và các thực thể theo từ vựng Schema.org. Ví dụ, thay vì chỉ nhìn thấy một chuỗi chữ “Nguyễn Thế Mạnh”, markup có thể khai báo đó là Person, là tác giả của Article và làm việc cho Organization Mạnh Digital.

Google dùng structured data như một tín hiệu rõ ràng hơn về ý nghĩa của trang. Một số loại đúng chính sách có thể giúp URL đủ điều kiện cho rich result. Việc markup hợp lệ không bảo đảm Google sẽ hiển thị kết quả mở rộng và cũng không tự động tăng thứ hạng.[1]

Quy trình triển khai an toàn:
  1. Xác định thực thể và loại trang thực tế.
  2. Chọn type Schema.org cụ thể nhất mà nội dung chứng minh được.
  3. Đọc yêu cầu riêng của tính năng Google nếu muốn rich result.
  4. Sinh JSON-LD từ cùng nguồn dữ liệu với phần hiển thị.
  5. Dùng @id ổn định để nối các node trong graph.
  6. Kiểm tra cú pháp, eligibility, initial HTML và URL production.

Schema.org, structured data và rich result khác nhau thế nào?

Khái niệmVai tròVí dụ
Schema.orgTừ vựng chung gồm type và property để mô tả thực thểPerson, Organization, Article, Product
Structured dataDữ liệu được biểu diễn theo cấu trúc máy có thể đọcJSON-LD dùng từ vựng Schema.org
Schema MarkupCách gọi phổ biến cho phần markup Schema.org gắn trên websiteMột graph JSON-LD trong HTML
Rich resultCách Google có thể trình bày kết quả phong phú hơnProduct, Recipe, Event, Breadcrumb

Schema.org có nhiều type và property hơn danh sách Google dùng cho rich results. Một markup có thể hợp lệ theo Schema.org nhưng không tạo tính năng riêng trên Google Search. Khi mục tiêu là Google, tài liệu Search Central là nguồn xác định property bắt buộc, property khuyến nghị và chính sách hiển thị.[2]

Schema Markup có tác dụng gì cho SEO?

  • Làm rõ ý nghĩa: khai báo đâu là tác giả, doanh nghiệp, sản phẩm, sự kiện hoặc bài viết.
  • Tăng eligibility: một số type đúng yêu cầu giúp trang đủ điều kiện cho rich results.
  • Giảm mâu thuẫn entity: graph nhất quán có thể nối Article, Person, Organization, WebSite và BreadcrumbList.
  • Hỗ trợ kiểm soát dữ liệu: với e-commerce, giá, availability, shipping và return policy có thể được mô tả bằng property cụ thể.
  • Dễ kiểm thử: dữ liệu có cấu trúc có thể được validate tự động trong build và theo dõi trên template.

Schema không sửa được nội dung mỏng, trang không index, canonical sai hay website chậm. Nó là lớp mô tả, không phải lớp thay thế nội dung và SEO Technical. Sau khi triển khai, hãy theo dõi báo cáo enhancement và URL Inspection trong Google Search Console.

Cách chọn Schema cho từng loại trang

Loại trangNode chính thường dùngNode hỗ trợLỗi hay gặp
Trang chủ doanh nghiệpOrganization hoặc subtype cụ thểWebSite, WebPageTạo nhiều Organization với tên và logo khác nhau
Bài blogArticle hoặc BlogPostingPerson, Organization, BreadcrumbList, WebPageTác giả không có profile hoặc dateModified không khớp
Trang sản phẩmProductOffer, AggregateRating khi có dữ liệu thậtGiá và tình trạng hàng trong schema khác giao diện
Doanh nghiệp địa phươngLocalBusiness hoặc subtypePostalAddress, GeoCoordinates, OpeningHoursNAP không nhất quán hoặc khai báo địa chỉ không tiếp khách
Sự kiệnEventPlace, Offer, OrganizationSự kiện đã hủy nhưng status không cập nhật
Trang có FAQ biên tậpFAQPage khi có consumer rõQuestion, AnswerKhai báo FAQ không hiển thị hoặc tiếp tục hứa rich result đã dừng

Chọn type cụ thể nhất mà bạn có thể duy trì đúng. Ví dụ, một cửa hàng online có thể dùng subtype phù hợp thay vì Organization chung chung. Google khuyên khai báo Organization trên trang chủ hoặc một trang mô tả doanh nghiệp, không bắt buộc lặp đầy đủ node này trên mọi URL.[3]

Mẫu Schema Markup JSON-LD cho bài viết

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://example.com/#organization",
      "name": "Example",
      "url": "https://example.com/"
    },
    {
      "@type": "Person",
      "@id": "https://example.com/tac-gia/an#person",
      "name": "Nguyễn An",
      "worksFor": { "@id": "https://example.com/#organization" }
    },
    {
      "@type": "BlogPosting",
      "@id": "https://example.com/blog/schema-markup#article",
      "headline": "Schema Markup là gì?",
      "mainEntityOfPage": "https://example.com/blog/schema-markup",
      "author": { "@id": "https://example.com/tac-gia/an#person" },
      "publisher": { "@id": "https://example.com/#organization" },
      "datePublished": "2026-08-24",
      "dateModified": "2026-08-24"
    }
  ]
}
</script>

Đây là mẫu cấu trúc, không phải đoạn code để sao chép nguyên xi. Website thật cần các property theo tài liệu của type và theo dữ liệu hiển thị. Nếu bài có ảnh, headline, author, publisher và ngày, markup phải lấy từ cùng bản ghi CMS thay vì nhập lại bằng tay.

Vì sao nên dùng một graph thống nhất?

Một trang có thể có nhiều node. Vấn đề không nằm ở số node, mà nằm ở việc cùng một thực thể bị khai báo thành nhiều bản mâu thuẫn. Theme có thể sinh Organization A, plugin SEO sinh Organization B, plugin review lại sinh Organization C. Mỗi node dùng logo, tên và URL khác nhau.

Dùng @id ổn định để các node trỏ về cùng thực thể. Article dùng author trỏ tới Person. Person dùng worksFor trỏ tới Organization. WebPage dùng breadcrumb trỏ tới BreadcrumbList. Cách này không bảo đảm Knowledge Panel hay trích dẫn AI, nhưng giảm mâu thuẫn trong dữ liệu mà website tự công bố.

Cách thêm Schema vào website theo 7 bước

Bước 1: lập inventory trang và entity

Liệt kê template chính, node nào xuất hiện trên từng template và dữ liệu nào là nguồn sự thật. Ví dụ, Organization lấy từ cấu hình doanh nghiệp. Product lấy giá và availability từ catalog. Article lấy tác giả và ngày từ CMS.

Bước 2: chọn type theo nội dung thật

Không chọn type vì bạn thích giao diện rich result của nó. Trang phải thực sự là sản phẩm, công việc, sự kiện hay công thức theo đúng chính sách.

Bước 3: đọc hai lớp tài liệu

Dùng Schema.org để hiểu type và property. Dùng tài liệu Google Search Central để biết Search có hỗ trợ rich result đó hay không, property nào bắt buộc và chính sách nào áp dụng.

Bước 4: sinh JSON-LD từ dữ liệu gốc

Ưu tiên JSON-LD vì dễ duy trì và không trộn property vào từng thẻ giao diện. Google hỗ trợ JSON-LD, Microdata và RDFa, trong đó JSON-LD thường là lựa chọn dễ triển khai và bảo trì nhất.[1]

Bước 5: nối entity bằng @id

Dùng URL tuyệt đối ổn định. Đừng tạo một ID Organization khác nhau trên mỗi trang. Khi có nhiều plugin, chọn một chủ sở hữu graph và tắt phần trùng.

Bước 6: validate trước và sau deploy

Dùng Schema Markup Validator để kiểm tra từ vựng chung. Dùng Rich Results Test để kiểm tra eligibility của các tính năng Google đang hỗ trợ. Sau deploy, test URL live, xem response HTML và kiểm tra lại bằng URL Inspection. Google cũng khuyên dùng hai công cụ này cho hai mục đích khác nhau.[4]

Bước 7: theo dõi thay đổi template

Schema có thể hỏng sau khi đổi theme, plugin, field CMS hoặc route. Thêm test cho sample URL của mỗi template. Theo dõi lỗi trong Search Console và tái kiểm tra khi Google thay đổi danh sách rich results.

Phân biệt ba lớp kiểm tra Schema

Lớp kiểm traCông cụCâu hỏi trả lời
Cú pháp và từ vựngSchema.org ValidatorJSON có hỏng không, type và property có được nhận diện không?
Tính năng GoogleRich Results TestTrang có loại rich result được Google hỗ trợ và thiếu property nào?
ProductionView source, crawler, URL InspectionMarkup có trong URL live, crawl được, khớp canonical và nội dung hiển thị không?

“Hợp lệ” không đồng nghĩa “sẽ hiển thị”. Google nói rõ structured data đúng không bảo đảm rich result. Thuật toán còn xét ngữ cảnh tìm kiếm, chất lượng, vị trí, thiết bị và các chính sách.[2]

10 lỗi Schema Markup thường gặp

  1. Markup nội dung không hiển thị cho người dùng.
  2. Dùng sai type chỉ vì muốn có rich result.
  3. Giá, availability, rating hoặc ngày trong schema khác giao diện.
  4. Theme và plugin cùng sinh hai graph trùng.
  5. Cùng một Organization có nhiều @id, logo và tên khác nhau.
  6. Khai báo AggregateRating do doanh nghiệp tự chấm mà không có review hiển thị.
  7. Chỉ test đoạn code mẫu, không test URL production.
  8. JSON-LD chỉ được inject sau một tương tác hoặc API bị block.
  9. Hiểu Schema.org Validator pass là Google rich result pass.
  10. Hứa schema sẽ tăng hạng, tạo Knowledge Panel hoặc bảo đảm AI citation.

Schema Markup có giúp GEO và AI Search không?

Schema có thể làm dữ liệu website nhất quán và rõ quan hệ entity hơn. Tuy nhiên, không có cơ sở để hứa một type Schema.org sẽ khiến ChatGPT, Perplexity hay Google AI trích dẫn trang. Mỗi hệ thống có pipeline và tiêu chí riêng.

Google nói structured data không bắt buộc cho các tính năng generative AI và không có schema đặc biệt dành cho AI Search. Website vẫn nên dùng schema trong chiến lược SEO tổng thể để hỗ trợ rich results, trong khi nội dung hữu ích, có giá trị riêng và crawl được mới là nền tảng.[5] Xem thêm GEO là gì để phân biệt structured data với citation readiness.

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

Schema Markup có phải yếu tố xếp hạng không?

Không nên coi schema là yếu tố tăng hạng độc lập. Structured data giúp mô tả nội dung và có thể tạo eligibility cho rich results. Trang vẫn cần nội dung phù hợp, khả năng crawl, index và chất lượng tổng thể.

Nên dùng JSON-LD, Microdata hay RDFa?

Google hỗ trợ cả ba. JSON-LD thường dễ triển khai và duy trì hơn vì tách khỏi HTML trình bày. Lựa chọn cuối cùng phụ thuộc kiến trúc và khả năng giữ dữ liệu khớp với giao diện.

Một trang có thể có nhiều loại Schema không?

Có. Một bài blog có thể có BlogPosting, WebPage, BreadcrumbList, Person và Organization. Các node phải mô tả đúng trang, không trùng mâu thuẫn và nên kết nối bằng @id ổn định.

FAQ Schema còn nên dùng không?

Chỉ nên dùng khi trang thực sự có FAQ, markup khớp nội dung và website có consumer hoặc quy trình duy trì rõ. Google đã dừng FAQ rich results, nên không triển khai với lời hứa mở rộng snippet. Xem hướng dẫn thêm FAQ Schema để biết chi tiết.

Rich Results Test pass mà Google không hiển thị thì có lỗi không?

Không nhất thiết. Pass cho biết markup đủ điều kiện kỹ thuật mà công cụ kiểm tra được. Google không bảo đảm rich result sẽ hiển thị cho mọi truy vấn, thiết bị và người dùng.

Kết luận

Schema Markup tốt không phải graph dài nhất. Đó là graph mô tả đúng trang, lấy dữ liệu từ nguồn thật, dùng @id nhất quán và vượt qua kiểm tra trên URL live. Bắt đầu với Organization, WebSite, WebPage, Breadcrumb và type chính của template. Sau đó mới thêm property mà doanh nghiệp có thể duy trì. Nếu website đang có nhiều plugin sinh graph mâu thuẫn, hãy đưa việc hợp nhất schema vào phạm vi SEO Audit.

Nguồn tham khảo

  1. Google Search Central: Introduction to structured data markup, truy cập ngày 24/08/2026.
  2. Google Search Central: General structured data guidelines, truy cập ngày 24/08/2026.
  3. Google Search Central: Organization structured data, truy cập ngày 24/08/2026.
  4. Google Search Central: Rich Results Test and Schema Markup Validator, truy cập ngày 24/08/2026.
  5. Google Search Central: Optimizing for generative AI features, truy cập ngày 24/08/2026.