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 "Structured data markup that Google Search supports" của Google Search Central. Đây là bài reference master về Schema Markup — với code mẫu cho 15+ loại schema phổ biến nhất.
Schema — Ngôn ngữ giúp Google "hiểu" website
Schema Markup là ngôn ngữ chung giữa website và search engines. Khi implement đúng, schema mang lại:
✅ Rich Results trong SERP ✅ CTR tăng 30-300% ✅ Knowledge Panel visibility ✅ AI Overviews citation ✅ Voice Search optimization ✅ Brand authority signals
Tại VN, chỉ 25% website implement schema đúng cách. Đây là bài reference master cho bạn.
Bài viết này dành cho:
Developer implement schema
SEO specialist strategist schema
Content manager chuẩn bị data
Chủ website muốn rich results
Phần 1: Schema Markup là gì?
1.1. Định nghĩa
Schema Markup = Structured data trên page giúp search engines hiểu NỘI DUNG chính xác.
Schema.org: Standard vocabulary do Google, Microsoft, Yahoo phát triển.
1.2. 3 formats Google support
1️⃣ JSON-LD (RECOMMENDED)
- Format Google ưu tiên
- Tách biệt với HTML
- Easy implement
- Easy maintain
2️⃣ Microdata
- Inline với HTML
- Verbose hơn
- Older format
3️⃣ RDFa
- Tương tự Microdata
- Ít phổ biến
Khuyến nghị: Dùng JSON-LD cho mọi cases.
1.3. JSON-LD structure cơ bản
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "[TYPE]",
"[property1]": "[value1]",
"[property2]": "[value2]"
}
</script>
Phần 2: 15+ Schema Types phổ biến nhất
Google support 25+ structured data features. Đây là top 15 quan trọng nhất:
Schema 1: Article
Use cases: News, blog posts, sports articles.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Hướng Dẫn SEO 2026 Cho Người Mới Bắt Đầu",
"image": [
"https://example.com/photos/1x1/article.jpg",
"https://example.com/photos/4x3/article.jpg",
"https://example.com/photos/16x9/article.jpg"
],
"datePublished": "2026-05-21T08:00:00+07:00",
"dateModified": "2026-05-22T10:30:00+07:00",
"author": [{
"@type": "Person",
"name": "Nguyễn Văn A",
"url": "https://example.com/author/nguyen-van-a"
}],
"publisher": {
"@type": "Organization",
"name": "Tấn Phát Digital",
"logo": {
"@type": "ImageObject",
"url": "https://tanphatdigital.com/logo.png"
}
}
}
</script>
Schema 2: BreadcrumbList
Use cases: Navigation hierarchy.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Trang chủ",
"item": "https://example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "SEO",
"item": "https://example.com/blog/seo"
}
]
}
</script>
Schema 3: Product (Ecommerce)
Use cases: Product pages, ecommerce.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Áo Thun Nam Cotton Trắng",
"image": [
"https://shop.com/photos/ao-trang-1.jpg",
"https://shop.com/photos/ao-trang-2.jpg"
],
"description": "Áo thun nam cotton 100% chất lượng cao",
"sku": "AT-001-WHT-M",
"brand": {
"@type": "Brand",
"name": "Tấn Phát Fashion"
},
"offers": {
"@type": "Offer",
"url": "https://shop.com/ao-thun-nam-trang",
"priceCurrency": "VND",
"price": "299000",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "247"
}
}
</script>
Schema 4: LocalBusiness
Use cases: Doanh nghiệp địa phương, brick-and-mortar.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Phở Thìn Bát Đàn",
"image": "https://example.com/restaurant.jpg",
"@id": "https://phothin.vn",
"url": "https://phothin.vn",
"telephone": "+84-24-3825-6789",
"priceRange": "50.000đ - 150.000đ",
"address": {
"@type": "PostalAddress",
"streetAddress": "13 Lò Đúc",
"addressLocality": "Hà Nội",
"addressRegion": "Hà Nội",
"postalCode": "100000",
"addressCountry": "VN"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 21.0145,
"longitude": 105.8536
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
"opens": "06:00",
"closes": "14:00"
}],
"servesCuisine": "Vietnamese"
}
</script>
Schema 5: Organization
Use cases: Branding, Knowledge Panel.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Tấn Phát Digital",
"url": "https://tanphatdigital.com",
"logo": "https://tanphatdigital.com/logo.png",
"description": "Agency SEO chuyên nghiệp tại Việt Nam",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Nguyễn Văn A",
"addressLocality": "Hồ Chí Minh",
"addressCountry": "VN"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+84-28-1234-5678",
"contactType": "customer service",
"email": "info@tanphatdigital.com",
"areaServed": "VN",
"availableLanguage": ["Vietnamese", "English"]
},
"sameAs": [
"https://facebook.com/tanphatdigital",
"https://linkedin.com/company/tanphatdigital",
"https://youtube.com/@tanphatdigital"
]
}
</script>
Schema 6: FAQ
Use cases: FAQ pages, support content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "SEO mất bao lâu có kết quả?",
"acceptedAnswer": {
"@type": "Answer",
"text": "SEO thường mất 3-6 tháng để thấy kết quả rõ ràng."
}
},
{
"@type": "Question",
"name": "Chi phí SEO bao nhiêu?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Chi phí SEO tại VN dao động từ 10-100 triệu VNĐ/tháng."
}
}
]
}
</script>
⚠️ Note 2026: FAQ rich results bị Google reduce. Schema vẫn tốt cho AI.
Schema 7: HowTo
Use cases: Tutorials, step-by-step guides.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Cách Pha Cà Phê Espresso",
"description": "Hướng dẫn pha cà phê espresso chuẩn barista",
"image": "https://example.com/coffee.jpg",
"totalTime": "PT10M",
"supply": [
{"@type": "HowToSupply", "name": "Cà phê arabica 20g"},
{"@type": "HowToSupply", "name": "Nước nóng 90°C"}
],
"tool": [
{"@type": "HowToTool", "name": "Máy pha espresso"},
{"@type": "HowToTool", "name": "Máy xay cà phê"}
],
"step": [
{
"@type": "HowToStep",
"name": "Xay cà phê",
"text": "Xay 20g cà phê arabica với độ mịn vừa",
"image": "https://example.com/step1.jpg"
},
{
"@type": "HowToStep",
"name": "Ép cà phê",
"text": "Ép cà phê vào portafilter",
"image": "https://example.com/step2.jpg"
}
]
}
</script>
⚠️ Note 2026: HowTo rich results bị Google reduce. Schema vẫn tốt cho AI.
Schema 8: Recipe
Use cases: Cooking, food blogs.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Phở Bò Hà Nội",
"image": "https://example.com/pho.jpg",
"author": {
"@type": "Person",
"name": "Đầu bếp Hoàng"
},
"datePublished": "2026-05-21",
"description": "Phở bò Hà Nội truyền thống",
"recipeCuisine": "Vietnamese",
"prepTime": "PT30M",
"cookTime": "PT4H",
"totalTime": "PT4H30M",
"recipeYield": "6 servings",
"recipeCategory": "Main Course",
"nutrition": {
"@type": "NutritionInformation",
"calories": "450 calories"
},
"recipeIngredient": [
"1kg xương ống bò",
"500g thịt bò",
"500g bánh phở",
"Gia vị (gừng, hành tây, hồi, quế)"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Hầm xương trong 3 giờ"
},
{
"@type": "HowToStep",
"text": "Thêm gia vị và thịt bò"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "1247"
}
}
</script>
Schema 9: Event
Use cases: Concerts, festivals, conferences.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "SEO Conference Vietnam 2026",
"startDate": "2026-08-15T09:00:00+07:00",
"endDate": "2026-08-15T17:00:00+07:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": {
"@type": "Place",
"name": "GEM Center",
"address": {
"@type": "PostalAddress",
"streetAddress": "8 Nguyễn Bỉnh Khiêm",
"addressLocality": "Quận 1",
"addressRegion": "Hồ Chí Minh",
"postalCode": "70000",
"addressCountry": "VN"
}
},
"image": "https://example.com/event.jpg",
"description": "Hội thảo SEO lớn nhất Việt Nam",
"organizer": {
"@type": "Organization",
"name": "Tấn Phát Digital",
"url": "https://tanphatdigital.com"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/tickets",
"price": "1500000",
"priceCurrency": "VND",
"availability": "https://schema.org/InStock",
"validFrom": "2026-05-01T00:00:00+07:00"
}
}
</script>
Schema 10: VideoObject
Use cases: Videos, tutorials, vlogs.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Hướng Dẫn SEO Cho Người Mới",
"description": "Video hướng dẫn SEO từ A-Z",
"thumbnailUrl": "https://example.com/thumb.jpg",
"uploadDate": "2026-05-21T08:00:00+07:00",
"duration": "PT15M30S",
"contentUrl": "https://example.com/video.mp4",
"embedUrl": "https://example.com/embed/123",
"publisher": {
"@type": "Organization",
"name": "Tấn Phát Digital",
"logo": {
"@type": "ImageObject",
"url": "https://tanphatdigital.com/logo.png"
}
}
}
</script>
→ Xem chi tiết tại Bài 25 — Video SEO.
Schema 11: JobPosting
Use cases: Job listings, recruitment.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior SEO Specialist",
"description": "Chúng tôi tuyển Senior SEO với 3+ năm kinh nghiệm...",
"datePosted": "2026-05-21",
"validThrough": "2026-07-21T23:59",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"name": "Tấn Phát Digital",
"sameAs": "https://tanphatdigital.com",
"logo": "https://tanphatdigital.com/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Nguyễn Văn A",
"addressLocality": "Hồ Chí Minh",
"postalCode": "70000",
"addressCountry": "VN"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "VND",
"value": {
"@type": "QuantitativeValue",
"minValue": 25000000,
"maxValue": 40000000,
"unitText": "MONTH"
}
}
}
</script>
Schema 12: Course
Use cases: Educational courses, online learning.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"name": "SEO Masterclass 2026",
"description": "Khóa học SEO toàn diện từ cơ bản đến nâng cao",
"provider": {
"@type": "Organization",
"name": "Tấn Phát Digital",
"sameAs": "https://tanphatdigital.com"
},
"offers": {
"@type": "Offer",
"category": "Paid",
"priceCurrency": "VND",
"price": "5000000"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT20H"
}
}
</script>
Schema 13: Review/Rating
Use cases: Reviews of products, services, places.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Review",
"itemReviewed": {
"@type": "Restaurant",
"name": "Phở Thìn Bát Đàn"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Nguyễn Văn A"
},
"datePublished": "2026-05-21",
"reviewBody": "Phở ngon, nước dùng đậm đà, thịt bò mềm..."
}
</script>
Schema 14: Software Application
Use cases: Apps, software products.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Awesome App",
"operatingSystem": "iOS, Android",
"applicationCategory": "BusinessApplication",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "VND"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"ratingCount": "8729"
}
}
</script>
Schema 15: WebSite (với SearchAction)
Use cases: Site-wide với search functionality.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Tấn Phát Digital",
"url": "https://tanphatdigital.com",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://tanphatdigital.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
</script>
→ Enable Sitelinks search box trong SERP.
Phần 3: Schema cho Ecommerce nâng cao
3.1. Product với Variants
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Áo Thun Nam Cotton",
"productGroupID": "AT001",
"variesBy": ["color", "size"],
"hasVariant": [
{
"@type": "Product",
"name": "Áo Thun Nam Cotton Trắng - M",
"sku": "AT001-WHT-M",
"color": "Trắng",
"size": "M",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND"
}
},
{
"@type": "Product",
"name": "Áo Thun Nam Cotton Trắng - L",
"sku": "AT001-WHT-L",
"color": "Trắng",
"size": "L",
"offers": {
"@type": "Offer",
"price": "299000",
"priceCurrency": "VND"
}
}
]
}
3.2. Merchant Return Policy
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Áo Thun",
"offers": {
"@type": "Offer",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "VN",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}
3.3. Shipping Details
{
"@context": "https://schema.org",
"@type": "Product",
"offers": {
"@type": "Offer",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "30000",
"currency": "VND"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 3,
"unitCode": "DAY"
}
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "VN"
}
}
}
}
Phần 4: Best Practices
4.1. Schema phải MATCH content visible
⚠️ Cảnh báo nghiêm trọng từ Google:
"Structured data PHẢI match visible text."
❌ Sai:
Schema: priceCurrency: VND, price: 99000
Page hiển thị: 299.000đ
→ Có thể bị manual action từ Google.
4.2. Use Rich Results Test
Tool: https://search.google.com/test/rich-results
Quy trình:
1. Paste URL hoặc code
2. Click Test
3. Review warnings/errors
4. Fix và re-test
4.3. Use Schema.org validator
Tool: https://validator.schema.org
→ Validate schema syntax.
4.4. Combine multiple types
Một trang có thể có nhiều schemas:
<!-- Article schema -->
<script type="application/ld+json">
{
"@type": "Article",
...
}
</script>
<!-- BreadcrumbList schema -->
<script type="application/ld+json">
{
"@type": "BreadcrumbList",
...
}
</script>
<!-- FAQ schema -->
<script type="application/ld+json">
{
"@type": "FAQPage",
...
}
</script>
4.5. Schema cho mỗi URL
❌ Sai: Same schema cho mọi page.
✅ Đúng: Schema specific cho mỗi page.
Phần 5: Schema cho từng industry
Industry 1: Ecommerce
Product ⭐
BreadcrumbList ⭐
Organization
Review/Rating
FAQ
Industry 2: News/Blog
Article ⭐
BreadcrumbList ⭐
Organization
Person (author)
VideoObject (nếu có)
Industry 3: Local Business
LocalBusiness ⭐
Restaurant/specific type
Review/Rating
Event
FAQ
Industry 4: Education
Course ⭐
HowTo
VideoObject
FAQ
Organization
Industry 5: SaaS
SoftwareApplication ⭐
Organization
Review/Rating
FAQ
VideoObject
Phần 6: Implementation strategy
Phase 1: Foundation (Week 1)
✅ Organization schema (site-wide)
✅ WebSite với SearchAction
✅ BreadcrumbList template
Phase 2: Content types (Week 2-3)
✅ Article schema (cho blog)
✅ Product schema (cho ecommerce)
✅ LocalBusiness (nếu local)
Phase 3: Enhancement (Week 4)
✅ FAQ schema (top pages)
✅ Video schema (nếu có)
✅ Review schema
Phase 4: Advanced (Month 2)
✅ HowTo schema
✅ Event schema
✅ Course schema (nếu education)
✅ Industry-specific schemas
Phase 5: Monitor (Ongoing)
✅ Search Console enhancements
✅ Rich Results Test weekly
✅ Track impressions
✅ A/B test variations
Phần 7: Common mistakes
❌ Mistake 1: Schema không match content
Page: "Sản phẩm hết hàng"
Schema: availability: InStock
→ VIOLATION
❌ Mistake 2: Quá nhiều @type
{
"@type": ["Article", "BlogPosting", "WebPage", "NewsArticle"]
}
→ Confusing cho Google. Chọn 1.
❌ Mistake 3: Required fields missing
Mỗi type có required fields. Check Schema.org docs.
❌ Mistake 4: Spam reviews
Self-reviews cho own products
→ Bị manual action
❌ Mistake 5: Hidden schema
Schema markup KHÔNG match content visible → violation.
Phần 8: Tools và Resources
8.1. Validators
🛠️ Rich Results Test (Google official)
🛠️ Schema.org validator
🛠️ Schema Markup Generator (online tools)
🛠️ Yandex Webmaster (alternative)
8.2. Generators
✨ Merkle Schema Generator
✨ Schema App
✨ JSON-LD Generator (Hall Analysis)
8.3. WordPress plugins
📦 Yoast SEO (basic schema)
📦 Rank Math (comprehensive)
📦 Schema Pro (advanced)
📦 WP SEO Structured Data Schema
Kết luận
Schema Markup là đầu tư có ROI cao nhất trong technical SEO. Với 15+ schema types được Google support, doanh nghiệp có cơ hội lớn để stand out trong SERP.
5 thông điệp cuối
1. JSON-LD format là chuẩn modern.
2. Schema MATCH content visible mới valid.
3. Test với Rich Results Test trước deploy.
4. Combine multiple schemas trên 1 page OK.
5. Continuous monitoring cần thiết.
Tài liệu tham khảo
Về Tấn Phát Digital
Tấn Phát Digital chuyên Schema Markup:
Schema Audit & Strategy
Implementation cho mọi platforms
Rich Results Optimization
Continuous Schema Monitoring
Liên hệ Tấn Phát Digital để dominate SERP với rich results.
Biên soạn từ Google Search Central, 06/01/2026. Code samples và best practices thuộc về Tấn Phát Digital.
Schema Markup đang trở thành nền tảng quan trọng của Technical SEO, Entity SEO và AI Search.
Nếu bạn muốn triển khai Structured Data đúng chuẩn Google và tối ưu website cho AI Search, hãy liên hệ Tấn Phát Digital để được tư vấn giải pháp phù hợp.









