AEO Saigon
Hướng dẫn

VideoObject Schema: Giúp Video của Bạn Xuất Hiện trong Kết Quả AI và Rich Results

Mục lục bài viết

Video là định dạng nội dung đang được AI search ưu tiên hơn bao giờ hết. Perplexity trích dẫn video trong câu trả lời, ChatGPT với search dẫn đến YouTube, Google AI Overviews nhúng video clips. Nhưng để AI "thấy" và "hiểu" video của bạn — cần VideoObject schema.

Đây là hướng dẫn đầy đủ để khai báo VideoObject schema đúng cách, từ các trường cơ bản đến Key Moments nâng cao.

Tại sao VideoObject Schema quan trọng với AEO

Khi AI đọc trang web của bạn, nó thấy hai loại thông tin về video:

Không có SchemaCó VideoObject Schema
AI nhận biết videoPhải đoán từ HTMLRõ ràng, chính xác
Tiêu đề videoLấy từ h1 hoặc title tagTừ name — chính xác
Thời lượngKhông biếtISO 8601 duration
Ngày uploadKhông chắcuploadDate — xác định
Nội dung videoĐoán từ text xung quanhdescription — đầy đủ
Key momentsKhông cóClips có timestamp
Google rich resultsÍt khả năngĐủ điều kiện Video Carousel

VideoObject schema không chỉ tốt cho SEO — nó là ngôn ngữ để AI parse video content một cách có cấu trúc.

Tất cả trường VideoObject — mức độ ưu tiên

TrườngLoạiƯu tiênGhi chú
nameTextBắt buộcTiêu đề video
descriptionTextBắt buộc150-300 từ, mô tả nội dung
thumbnailUrlURLBắt buộc≥1280×720, JPG/PNG
uploadDateDate (ISO 8601)Bắt buộcYYYY-MM-DD
durationDuration (ISO 8601)Bắt buộcPT5M30S
contentUrlURLRất caoURL trực tiếp file video
embedUrlURLRất caoURL iframe nhúng
authorPerson/OrganizationCaoAi tạo video
publisherOrganizationCaoAi xuất bản
dateModifiedDateCaoNgày cập nhật gần nhất
inLanguageLanguageTrung bìnhvi, en, zh
regionsAllowedTextKhi cầnNếu giới hạn vùng
hasPartClip[]Nâng caoKey moments/chapters
interactionStatisticInteractionCounterThấpLượt xem
keywordsTextThấpTừ khóa liên quan

JSON-LD VideoObject đầy đủ

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "@id": "https://example.vn/blog/aeo-la-gi#video",
  "name": "AEO là gì? Tối ưu cho AI Search trong 10 phút",
  "description": "Video hướng dẫn đầy đủ về Answer Engine Optimization (AEO): định nghĩa, tại sao quan trọng với doanh nghiệp Việt Nam năm 2026, và 3 bước đầu tiên để bắt đầu tối ưu cho ChatGPT, Perplexity và Google AI Overviews.",
  "thumbnailUrl": "https://example.vn/images/aeo-la-gi-thumb.jpg",
  "uploadDate": "2026-08-10",
  "duration": "PT10M45S",
  "contentUrl": "https://example.vn/videos/aeo-la-gi.mp4",
  "embedUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
  "author": {
    "@type": "Person",
    "@id": "https://example.vn/tac-gia/tran-minh-duc",
    "name": "Trần Minh Đức"
  },
  "publisher": {
    "@type": "Organization",
    "@id": "https://example.vn",
    "name": "AEO Saigon",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.vn/icon.svg"
    }
  },
  "dateModified": "2026-08-10",
  "inLanguage": "vi",
  "hasPart": [
    {
      "@type": "Clip",
      "name": "AEO là gì?",
      "startOffset": 0,
      "endOffset": 90,
      "url": "https://www.youtube.com/embed/dQw4w9WgXcQ?start=0"
    },
    {
      "@type": "Clip",
      "name": "Tại sao AI search quan trọng năm 2026",
      "startOffset": 91,
      "endOffset": 240,
      "url": "https://www.youtube.com/embed/dQw4w9WgXcQ?start=91"
    },
    {
      "@type": "Clip",
      "name": "3 bước tối ưu AEO đầu tiên",
      "startOffset": 241,
      "endOffset": 480,
      "url": "https://www.youtube.com/embed/dQw4w9WgXcQ?start=241"
    },
    {
      "@type": "Clip",
      "name": "Công cụ đo lường AI visibility",
      "startOffset": 481,
      "endOffset": 645,
      "url": "https://www.youtube.com/embed/dQw4w9WgXcQ?start=481"
    }
  ],
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": "https://schema.org/WatchAction",
    "userInteractionCount": 1500
  }
}

Định dạng ISO 8601 cho duration

Đây là trường hay bị sai nhất:

Thời lượng thựcĐịnh dạng đúngLỗi thường gặp
30 giâyPT30SP0DT0H0M30S
5 phútPT5MPT5M0S (không sai, nhưng dư)
5 phút 30 giâyPT5M30SPT5:30
1 giờPT1HPT60M
1 giờ 15 phútPT1H15MPT75M
2 giờ 3 phút 45 giâyPT2H3M45SP2H3M45S (thiếu T)

Quy tắc: P bắt đầu, T ngăn cách ngày và giờ/phút/giây. Nếu không có ngày — PT rồi đến giờ (H), phút (M), giây (S).

Thumbnail tối ưu cho Video rich results

Google có yêu cầu nghiêm ngặt về thumbnail hơn bạn nghĩ:

Kích thước tối thiểu:

  • Khuyến nghị: 1280×720 (16:9)
  • Tối thiểu: 640×360
  • Tỷ lệ khác (4:3, 1:1) được chấp nhận nhưng sẽ bị crop

Nội dung thumbnail:

  • Phải là frame thực từ video (không phải banner quảng cáo)
  • Không được có overlay văn bản che quá 30% diện tích
  • Phải match nội dung video — Google kiểm tra điều này
  • Tránh thumbnail clickbait (mặt ngạc nhiên giả tạo, mũi tên chỉ ngẫu nhiên)

Kỹ thuật:

  • Host ảnh trên cùng domain với website (không dùng CDN bên thứ 3 nếu có thể)
  • URL ổn định — đừng thay đổi URL thumbnail sau khi index
  • Khai báo widthheight trong ImageObject nếu dùng object thay vì URL string

Triển khai trong Next.js App Router

// app/[lang]/blog/[slug]/page.tsx
import { type VideoObject, type WithContext } from "schema-dts";

function generateVideoSchema(video: VideoData): WithContext<VideoObject> {
  return {
    "@context": "https://schema.org",
    "@type": "VideoObject",
    "@id": `${siteUrl}/blog/${video.slug}#video`,
    name: video.title,
    description: video.description,
    thumbnailUrl: video.thumbnailUrl,
    uploadDate: video.uploadDate,
    duration: video.duration, // ISO 8601
    embedUrl: video.youtubeEmbedUrl,
    author: {
      "@type": "Person",
      "@id": `${siteUrl}/tac-gia/${video.authorSlug}`,
      name: video.authorName,
    },
    publisher: {
      "@type": "Organization",
      "@id": siteUrl,
      name: "AEO Saigon",
    },
    dateModified: video.dateModified,
    inLanguage: lang,
    ...(video.clips && {
      hasPart: video.clips.map((clip) => ({
        "@type": "Clip" as const,
        name: clip.name,
        startOffset: clip.start,
        endOffset: clip.end,
        url: `${video.youtubeEmbedUrl}?start=${clip.start}`,
      })),
    }),
  };
}

Kiểm tra VideoObject schema

Công cụ bắt buộc:

  1. Rich Results Test — kiểm tra video có đủ điều kiện rich results không, hiển thị lỗi/warning cụ thể

  2. Schema Markup Validator — validate syntax JSON-LD, phát hiện lỗi format

  3. Google Search Console — mục "Video" trong Enhancement reports, hiển thị video nào đã được index và có issues

Lỗi phổ biến:

LỗiNguyên nhânCách fix
"Thumbnail not accessible"URL thumbnail bị chặn bởi robots.txt hoặc yêu cầu authCho phép Googlebot crawl thumbnail
"Duration format invalid"Sai format ISO 8601Kiểm tra lại theo bảng trên
"Upload date in future"uploadDate sai múi giờDùng UTC hoặc ghi rõ timezone
"Video not prominent"Video nhúng quá nhỏ hoặc ở cuối trangĐặt video trong viewport đầu tiên
"Thumbnail doesn't match video"Thumbnail không liên quan đến nội dungDùng frame thực từ video

Video trên Landing Page vs Blog

VideoObject schema hoạt động tốt nhất khi:

Landing page (1 video chính):

  • Video giải thích sản phẩm/dịch vụ → VideoObject riêng lẻ
  • Kết hợp với Product hoặc Service schema qua subjectOf
  • Thumbnail = frame ấn tượng nhất, không phải logo

Blog post có video đính kèm:

  • Bài viết = Article schema, video = VideoObject schema
  • Kết nối qua: Article video → VideoObject
  • Video nên là bổ sung cho bài viết, không chỉ nhúng YouTube cho có

Trang FAQ có video trả lời:

  • FAQPage schema + VideoObject trong từng Answer
  • Đây là format AI search đặc biệt ưa thích — câu hỏi + video trả lời

Nội dung video càng rõ ràng về cấu trúc (chapters, timestamps, transcript), AI càng dễ trích dẫn và hiển thị. VideoObject schema là bước đầu tiên — sau đó là chất lượng nội dung thực sự trong video.

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

VideoObject schema có bắt buộc để video xuất hiện trên Google không?

Không bắt buộc — Google có thể phát hiện video mà không cần schema. Nhưng VideoObject schema tăng đáng kể cơ hội xuất hiện trong Video rich results (thumbnail + tiêu đề + thời lượng ngay trên trang kết quả), và là yêu cầu bắt buộc để đủ điều kiện Video Carousel. Với AI search: Perplexity và ChatGPT ưu tiên trích dẫn video có schema vì dễ parse hơn.

YouTube video có cần thêm VideoObject schema không?

YouTube tự động khai báo VideoObject schema cho video của bạn — bạn không cần và không thể thêm schema vào trang YouTube. Nhưng nếu bạn nhúng video YouTube trên website riêng của mình, bạn NÊN thêm VideoObject schema cho trang đó. Điều này giúp Google và AI hiểu rằng trang web của bạn là nguồn thông tin chính về video đó.

Trường nào trong VideoObject schema quan trọng nhất?

Theo thứ tự ưu tiên: (1) name — tiêu đề chính xác; (2) thumbnailUrl — ảnh thumbnail chất lượng cao (ít nhất 1280×720); (3) uploadDate — ngày upload theo ISO 8601; (4) description — mô tả 150-300 từ; (5) duration — theo định dạng ISO 8601 (PT5M30S = 5 phút 30 giây). Thiếu bất kỳ trường nào trong 5 trường này có thể khiến video không đủ điều kiện Video rich results.

Clip schema và SeekToAction là gì và có cần thiết không?

Clip schema và SeekToAction cho phép Google hiển thị 'Key moments' (các mốc thời gian quan trọng) trong video ngay trên trang kết quả — người dùng có thể nhảy thẳng đến phần họ cần. Đây là tính năng nâng cao, không bắt buộc, nhưng rất hiệu quả cho video dài trên 5 phút. Key moments tăng CTR đáng kể (đặc biệt trên mobile) và giúp AI hiểu cấu trúc nội dung video.

Một trang có nhiều video thì khai báo schema như thế nào?

Nếu trang có 1 video chính — đặt VideoObject trong ItemList hoặc độc lập. Nếu trang là gallery nhiều video — dùng ItemList chứa nhiều VideoObject. Lưu ý: Google thường chỉ index video xuất hiện nổi bật (prominent) trên trang, không phải video nhúng nhỏ ở cuối. Đảm bảo video chính hiển thị trong viewport đầu tiên.

AEO Saigon

Agency Answer Engine Optimization tại TP. Hồ Chí Minh — giúp website doanh nghiệp được AI trích dẫn. Về AEO Saigon →

Muốn website của bạn được AI trích dẫn như vậy?

Audit miễn phí