Schema (dữ liệu có cấu trúc)
Schema JSON-LD iZiSEO tự in cho mọi trang, cách thêm Guided Schema, Custom Schema và cách kiểm tra.
Schema là đoạn dữ liệu có cấu trúc, viết theo định dạng JSON-LD và bộ từ vựng schema.org, giúp Google hiểu trang nói về gì: bài viết của ai, thuộc website nào, là sản phẩm hay sự kiện. iZiSEO tự in schema ở cuối mỗi trang, bạn không cần chèn mã.
Schema có sẵn trên mọi trang
Không cần cấu hình, mỗi trang có một khối JSON-LD gồm:
- WebSite: tên và địa chỉ website.
- Organization: đơn vị đứng sau website, gồm tên website, logo lấy từ Biểu tượng trang web (Site Icon) và các liên kết sameAs khai báo ở tab Entities (xem Entities).
- Article cho bài viết, hoặc WebPage cho trang và các loại nội dung khác: tiêu đề, mô tả, ngày đăng, ngày sửa, ảnh và tác giả.
- BreadcrumbList: đường dẫn điều hướng (Trang chủ › Chuyên mục › Bài) khi trang có từ hai cấp trở lên.
- FAQPage khi trang có dùng shortcode hỏi đáp (xem FAQ).
Ảnh trong Article lấy từ ảnh đại diện của bài, ưu tiên kích thước rộng từ 1200px nếu có. Bài không có ảnh đại diện dùng URL ảnh mạng xã hội mặc định ở SEO › Thiết lập › tab General.
Tác giả là một thực thể đầy đủ
Mặc định, tác giả bài viết chỉ có tên và liên kết trang tác giả. Mở trang hồ sơ của thành viên đó và điền ô URL sameAs (mỗi dòng một liên kết: LinkedIn, Wikidata, trang cá nhân…). Từ đó bài viết của người này có thêm một thực thể Person riêng, giúp Google nối tên tác giả với đúng người.
Xem trước schema của từng bài
Hộp iZiSEO bên dưới trình soạn thảo có mục Xem trước Schema (JSON-LD), hiển thị đúng dữ liệu sẽ in ra cho bài đó, gồm cả Custom Schema và Guided Schema đang áp dụng. Trong trình soạn thảo khối, phần xem trước tự làm mới sau mỗi lần lưu.
Guided Schema: sản phẩm, sự kiện, doanh nghiệp
Với những loại nội dung Google có cách hiển thị riêng, dùng SEO › Schema › tab Guided Schema để điền theo biểu mẫu, không cần viết JSON. Các loại có sẵn: Sản phẩm (Product), Sự kiện (Event), Công thức nấu ăn (Recipe), Đánh giá (Review), Doanh nghiệp địa phương (LocalBusiness) và Khóa học (Course).
- Vào SEO › Schema, mở tab Guided Schema, bấm Thêm mới.
- Đặt Tên cho quy tắc (chỉ để bạn nhận biết) và chọn Loại schema.
- Điền các trường. Trường có dấu
*là trường Google yêu cầu; thiếu trường bắt buộc thì plugin báo và không lưu. - Chọn Phạm vi áp dụng: Mọi bài của một post type (ví dụ mọi sản phẩm) hoặc Một bài/trang cụ thể (ví dụ trang Liên hệ cho LocalBusiness).
- Để Trạng thái là Đang bật, bấm Lưu Guided Schema.
Các trường văn bản, URL và danh sách nhận token, được thay bằng dữ liệu của từng bài, ví dụ {{title}}, {{excerpt}}, {{featured_image}}. Nhờ vậy một quy tắc áp cho cả post type vẫn ra đúng tên, ảnh của từng bài. Danh sách token đầy đủ ở phần Custom Schema bên dưới. Trường mô tả có nút Tạo bằng AI khi đã cấu hình API key Claude.
Chỉ khai báo điểm đánh giá có thật và hiển thị trên trang. Google không hiển thị sao cho đánh giá về doanh nghiệp hay tổ chức do chính doanh nghiệp đó đăng trên website của mình, và có thể xử lý thủ công khi schema đánh giá bị lạm dụng.
WooCommerce đã tự in schema Product cho trang sản phẩm. Đừng gắn thêm Guided Schema Product cho các trang đó, tránh hai khai báo trùng nhau. Từ tháng 6/2025 Google cũng ngừng hiển thị kết quả dạng thông tin khóa học (Course Info); schema Course vẫn hợp lệ nhưng không còn tạo hiển thị riêng.
Custom Schema: viết JSON-LD tùy ý
Khi cần loại schema mà Guided Schema chưa có (ví dụ SoftwareApplication, JobPosting), dùng tab Custom Schema:
- SEO › Schema › tab Custom Schema › Thêm mới.
- Dán JSON vào ô Mẫu JSON-LD. Chỉ dán phần JSON, không kèm thẻ
<script>. - Chọn Phạm vi áp dụng và Trạng thái, bấm Lưu Custom Schema. JSON sai cú pháp thì plugin báo lỗi và không lưu.
Ví dụ khai báo phần mềm cho mọi bài thuộc một post type sản phẩm:
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "{{title}}",
"description": "{{excerpt}}",
"image": "{{featured_image}}",
"url": "{{url}}",
"applicationCategory": "BusinessApplication",
"operatingSystem": "WordPress",
"offers": {
"@type": "Offer",
"price": "790000",
"priceCurrency": "VND"
}
}
Token dùng được
| Token | Được thay bằng |
|---|---|
{{title}} |
Tiêu đề bài |
{{url}} |
Đường dẫn bài |
{{excerpt}} |
Đoạn tóm tắt |
{{featured_image}} |
URL ảnh đại diện (kích thước gốc) |
{{date_published}} |
Ngày đăng, định dạng ISO 8601 |
{{date_modified}} |
Ngày sửa gần nhất, định dạng ISO 8601 |
{{author_name}} |
Tên hiển thị của tác giả |
{{site_name}} |
Tên website |
{{site_url}} |
Địa chỉ trang chủ |
{{post_id}} |
ID bài |
Ký tự đặc biệt trong giá trị (dấu ngoặc kép, xuống dòng) được tự thoát, nên luôn đặt token bên trong cặp dấu ngoặc kép như ví dụ.
Custom Schema và Guided Schema chỉ áp dụng cho trang đơn (bài, trang, sản phẩm…), không áp dụng cho trang chuyên mục hay lưu trữ. Mỗi quy tắc in trong một thẻ riêng, nên một quy tắc lỗi chỉ bị bỏ qua, không ảnh hưởng schema còn lại của trang.
Kiểm tra schema
- Rich Results Test: trang đủ điều kiện cho kiểu hiển thị đặc biệt nào trên Google.
- Schema Markup Validator: kiểm tra cú pháp mọi loại schema, kể cả loại Google không có hiển thị riêng.
- Google Search Console, nhóm báo cáo về kết quả nhiều định dạng: lỗi schema trên toàn website sau khi Google thu thập.
Tắt schema
Bỏ chọn Schema (structured data) ở SEO › Thiết lập › tab Features để ngừng in toàn bộ schema, ví dụ khi theme hoặc plugin khác đã lo phần này. Không nên để hai nguồn cùng in schema cho một trang.
Dành cho lập trình viên
Bộ lọc izi_seo_schema_graph nhận mảng @graph đã dựng xong (WebSite, Organization, trang, rồi Person, BreadcrumbList, FAQPage nếu có) để theme hoặc plugin khác thêm, sửa node. Giá trị trả về không phải mảng hợp lệ sẽ bị bỏ qua và plugin dùng lại mảng gốc, nên một hook lỗi không làm mất schema của trang.
add_filter( 'izi_seo_schema_graph', function ( $graph ) {
foreach ( $graph as &$node ) {
if ( 'Organization' === ( $node['@type'] ?? '' ) ) {
$node['email'] = 'lienhe@example.vn';
}
}
unset( $node );
return $graph;
} );
Quy ước @id: WebSite là /#website, Organization là /#organization, tác giả là <trang tác giả>#person. Node của trang dùng URL canonical kèm #article với bài viết, #webpage với mọi loại khác. Hãy tìm node theo @type và đọc @id có sẵn thay vì tự ghép chuỗi.
Chưa tìm thấy câu trả lời? Gửi câu hỏi cho VIF, đội kỹ thuật VIF sẽ hướng dẫn trực tiếp.