On-Page SEO

Video Schema Markup

Dữ liệu có cấu trúc mô tả video (duration, thumbnail, upload date…) để hỗ trợ hiển thị rich result.

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

Video Schema Markup là gì?

Video Schema Markup là đoạn mã dữ liệu có cấu trúc (structured data) được thêm vào trang web để mô tả chi tiết về video — như tiêu đề, thời lượng, ngày đăng, hình thu nhỏ, độ phân giải, người sáng tạo và mô tả ngắn. Mục đích chính là giúp công cụ tìm kiếm (đặc biệt là Google) hiểu rõ nội dung video hơn, từ đó hỗ trợ hiển thị kết quả mở rộng (rich result) trong trang kết quả tìm kiếm — ví dụ: thumbnail video nhỏ kèm thời lượng và tiêu đề hiện ngay trên SERP.

Đây là một dạng của Schema.org, tuân theo chuẩn JSON-LD (được Google ưu tiên), hoặc cũng có thể dùng Microdata hoặc RDFa — nhưng JSON-LD là lựa chọn an toàn và dễ triển khai nhất.

Tại sao quan trọng trong SEO?

Video Schema Markup không trực tiếp làm tăng thứ hạng, nhưng ảnh hưởng mạnh đến hiệu suất hiển thị và khả năng nhấp (CTR). Khi trang có rich result dạng video, tỷ lệ nhấp trung bình tăng từ 10–30% so với kết quả thông thường — theo báo cáo kiểm thử thực tế của nhiều trang tin tức và giáo dục tại Việt Nam và khu vực Đông Nam Á (Google Search Central, 2023).

Ngoài ra, việc cung cấp dữ liệu rõ ràng giúp Google:

  • Xác định đúng nội dung chính của trang (tránh nhầm lẫn khi trang có cả văn bản và video),
  • Hiển thị video trong các tính năng đặc biệt như Video Carousel hoặc Top Stories (nếu đủ điều kiện),
  • Hỗ trợ lập chỉ mục nhanh hơn cho nội dung video — đặc biệt quan trọng với video tự lưu trữ (không đăng trên YouTube),
  • Cải thiện trải nghiệm người dùng bằng cách cho phép họ xem trước nội dung trước khi bấm vào.

Lưu ý: Video Schema không thay thế thẻ <video> hay tập tin video thật — nó chỉ là mô tả, nên phải đồng bộ chính xác với nội dung thực tế trên trang.

Cách hoạt động

Khi Googlebot quét trang, nó đọc phần dữ liệu có cấu trúc (JSON-LD) và so sánh với nội dung hiển thị (title, thumbnail, thời lượng…). Nếu khớp và đáp ứng đủ yêu cầu kỹ thuật, Google sẽ kích hoạt rich result — nhưng không đảm bảo hiển thị 100%. Việc xuất hiện còn phụ thuộc vào:

  • Tính liên quan của video với từ khóa tìm kiếm,
  • Chất lượng trang (tốc độ, mobile-friendly, trải nghiệm người dùng),
  • Độ uy tín của tên miền (domain authority),
  • Chính sách cập nhật thuật toán — có thể thay đổi theo thời gian.

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

Dưới đây là 5 bước triển khai Video Schema Markup chuẩn xác:

  1. Xác định video cần đánh dấu: Chỉ áp dụng cho video chính trên trang (không dùng cho video phụ, quảng cáo hoặc iframe bên ngoài nếu không kiểm soát được nội dung).
  2. Thu thập đầy đủ thuộc tính bắt buộc: Bao gồm @context, @type, name, description, thumbnailUrl, uploadDate, duration. Các thuộc tính như embedUrl, contentUrl, height, width là tùy chọn nhưng khuyến khích điền.
  3. Định dạng thời lượng đúng chuẩn ISO 8601: Ví dụ: PT10M30S (10 phút 30 giây), PT1H20M (1 giờ 20 phút). Không dùng “10:30” hay “10 phút”.
  4. Đặt JSON-LD trong thẻ <head> hoặc cuối <body>: Không đặt trong <script type='application/ld+json'> ở giữa nội dung — dễ gây lỗi parse.
  5. Kiểm tra và xác minh: Dùng Google Search Console → Công cụ kiểm tra URL → tab “Dữ liệu có cấu trúc”. Đồng thời kiểm tra bằng Schema Markup Validator.

Lỗi thường gặp

Lỗi Nguyên nhân Cách khắc phục
Thiếu thumbnailUrl hoặc link hỏng Hình thu nhỏ không tồn tại, bị chặn bởi robots.txt, hoặc không truy cập được từ máy chủ Googlebot Đảm bảo ảnh có định dạng JPG/PNG, kích thước tối thiểu 160x90 px, không bị chặn bởi X-Robots-Tag hoặc robots.txt
uploadDate sai định dạng hoặc tương lai Dùng ngày tháng kiểu Việt Nam (dd/mm/yyyy) hoặc ngày chưa đăng Dùng chuẩn ISO 8601: 2024-04-15; ngày phải là quá khứ hoặc hiện tại
Không khớp giữa name và tiêu đề trang Tiêu đề schema khác hoàn toàn với <h1> hoặc thẻ <title> Giữ tên video trong schema giống hoặc gần giống tiêu đề hiển thị — chênh lệch tối đa 10–15 ký tự
Video không phát được khi click vào rich result Liên kết embedUrl hoặc contentUrl bị lỗi, hết hạn, hoặc yêu cầu đăng nhập Link phải mở trực tiếp video (không redirect, không yêu cầu login), hỗ trợ CORS nếu cần

Ví dụ thực tế

Dưới đây là đoạn JSON-LD mẫu cho video hướng dẫn nấu phở bò dài 12 phút 45 giây, đăng ngày 20/05/2024, có thumbnail và mô tả rõ ràng:

{ "@context": "https://schema.org", "@type": "VideoObject", "name": "Cách nấu phở bò chuẩn vị Hà Nội", "description": "Hướng dẫn chi tiết từng bước nấu phở bò truyền thống: hầm xương, chế biến nước dùng, cắt thịt và trình bày.", "thumbnailUrl": ["https://example.com/thumbs/pho-bo-160x90.jpg"], "uploadDate": "2024-05-20", "duration": "PT12M45S", "contentUrl": "https://example.com/videos/pho-bo.mp4", "embedUrl": "https://example.com/embed/pho-bo", "height": "720", "width": "1280" }

Lưu ý: Giá trị thumbnailUrl nên là mảng (array) chứa ít nhất một URL hợp lệ — Google chấp nhận nhiều ảnh để chọn phiên bản phù hợp.

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

Video Schema có hỗ trợ video YouTube không?

Có, nhưng chỉ khi bạn nhúng video YouTube chính thức bằng thẻ <iframe> và điền đúng embedUrl (link dạng https://www.youtube.com/embed/xxx). Tuy nhiên, Google thường ưu tiên hiển thị rich result cho video tự lưu trữ hơn — vì kiểm soát tốt hơn nội dung và trải nghiệm.

Có cần thêm VideoObject cho mọi video trên trang?

Không. Chỉ nên đánh dấu video chính duy nhất trên mỗi trang. Đánh dấu nhiều video cùng lúc có thể khiến Google bỏ qua toàn bộ markup do xung đột ngữ nghĩa hoặc vi phạm nguyên tắc “một chủ thể chính”.

Video Schema có ảnh hưởng đến tốc độ tải trang không?

Không đáng kể. Đoạn JSON-LD thường dưới 2 KB và không chặn render. Tuy nhiên, nếu đặt sai vị trí (ví dụ: trong <body> giữa nội dung lớn), có thể gây chậm nhẹ ở một số trình duyệt cũ — nên luôn đặt trong <head> hoặc cuối <body>.