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 "Video SEO best practices" của Google Search Central. Đây là bài chuyên sâu dành cho content creator, marketer và doanh nghiệp sử dụng video.
Video — Định dạng content có engagement cao nhất 2026
Tại Việt Nam năm 2026:
86% người dùng xem video online mỗi tuần
74% mua hàng sau khi xem video về sản phẩm
Video engagement cao hơn text 1200%
YouTube là search engine #2 sau Google
Vậy tại sao 80% video Việt Nam KHÔNG được tối ưu cho Google Search?
Lý do: Nhiều người chỉ upload video lên YouTube/Facebook mà bỏ qua việc tối ưu cho Google Search — nơi video có thể xuất hiện ở:
Trang search chính
Video tab
Google Images
Google Discover
AI Overviews
Bài viết này, Tấn Phát Digital sẽ hướng dẫn toàn bộ Video SEO theo tiêu chuẩn Google.
Bài viết này dành cho:
Content creator YouTube, TikTok
Marketer dùng video
Ecommerce có product videos
Developer xây video platforms
Phần 1: Video xuất hiện ở đâu trên Google?
Google nói video có thể xuất hiện ở 4 vị trí:
┌──────────────────────────────────────────────────┐
│ 🔍 1. Main search results page │
│ Video thumbnail xen kẽ với text results │
├──────────────────────────────────────────────────┤
│ 🎬 2. Video tab │
│ Tab dedicated cho video results │
├──────────────────────────────────────────────────┤
│ 🖼️ 3. Google Images │
│ Image results với video badge │
├──────────────────────────────────────────────────┤
│ 📰 4. Google Discover │
│ Personalized feed trên mobile │
└──────────────────────────────────────────────────┘
Phần 2: 6 bước tối ưu Video SEO theo Google
Google chia thành 6 categories chính:
Bước 1: Giúp Google tìm video
Use HTML elements đúng chuẩn
Google nói:
"Google can find videos referenced by
<video>,<embed>,<iframe>, hoặc<object>element."
4 elements được support:
<!-- 1. Native <video> tag -->
<video controls width="640" height="360" poster="thumb.jpg">
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
</video>
<!-- 2. <iframe> (YouTube, Vimeo embed) -->
<iframe
src="https://youtube.com/embed/abc123"
width="640"
height="360"
allow="autoplay; fullscreen"
allowfullscreen>
</iframe>
<!-- 3. <embed> tag -->
<embed src="video.mp4"
type="video/mp4"
width="640"
height="360">
<!-- 4. <object> tag -->
<object data="video.mp4"
type="video/mp4"
width="640"
height="360">
</object>
Tránh URL fragments
❌ Sai:
<a href="/page#video">Xem video</a>
Google KHÔNG support URL fragments cho video.
JavaScript injection — cẩn thận
Nếu dùng JS inject video:
// JS inject video element
const videoContainer = document.getElementById('video-container');
videoContainer.innerHTML = `
<iframe src="https://youtube.com/embed/abc"
width="640" height="360"></iframe>
`;
⚠️ Test với URL Inspection tool để confirm Google thấy video sau render.
Don't lazy-load on user interaction
Google nói:
"Don't rely on user actions (swiping, clicking, typing) to load the video."
❌ Sai:
button.onclick = () => {
loadVideo(); // Google không click → không thấy
};
✅ Đúng:
window.addEventListener('load', () => {
loadVideo(); // Auto load
});
Bước 2: Đảm bảo video được index
Google liệt kê 5 yêu cầu để video được index:
1. Watch page phải được index
Watch page = Trang có video là content chính.
2. Watch page perform tốt trên Search
"Just because the watch page is indexed doesn't mean that the video will also be indexed."
→ Watch page cần có authority, traffic, quality content.
3. Video phải embedded trên watch page
4. Video KHÔNG bị ẩn
Nếu có paywall:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Premium Tutorial",
"isAccessibleForFree": false,
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": false,
"cssSelector": ".video-paywall"
}
}
</script>
5. Valid thumbnail tại stable URL
(Chi tiết phần dưới)
Bước 3: Use supported file types
Google support:
3GP, 3G2, ASF, AVI, DivX, M2V, M3U, M3U8, M4V, MKV,
MOV, MP4, MPEG, OGV, QVT, RAM, RM, VOB, WebM, WMV, XAP
❌ KHÔNG support: Data URLs (base64 encoded videos)
✅ Khuyến nghị: MP4 + WebM cho compatibility tốt nhất.
Bước 4: Stable URLs
⚠️ Cảnh báo CDN expiring URLs:
Google nói:
"Some CDNs use quickly EXPIRING URLs. If the video's thumbnail URL changes too often, Google may not be able to successfully index your videos."
❌ Sai:
https://cdn.example.com/video.mp4?token=abc&expires=12345
↓ (sau 1h)
https://cdn.example.com/video.mp4?token=xyz&expires=67890
✅ Đúng:
https://cdn.example.com/video.mp4
(stable URL, không thay đổi)
Bảo vệ video khỏi hackers (vẫn cho Google)
Google đề xuất:
// Server-side check
const userAgent = req.headers['user-agent'];
const isVerifiedGooglebot = verifyGooglebot(req.ip);
if (isVerifiedGooglebot) {
// Serve stable contentUrl
res.json({
contentUrl: 'https://stream.example.com/video.mp4'
});
} else {
// Serve protected/signed URL
res.json({
contentUrl: generateSignedUrl()
});
}
Bước 5: Tạo dedicated watch page
Watch page = Trang mà video là main content.
✅ Là watch page:
Video landing page
TV episode player page
News video page
Sports highlight page
Events clip page
❌ KHÔNG phải watch page:
Blog post với embedded video
Product page với 360° video
Category page với nhiều videos
Movie review với trailer
Tại sao quan trọng?
"Watch pages có cơ hội được hiển thị video features (Key Moments, Live Badge, rich formats)."
→ Non-watch pages vẫn xuất hiện trong text results + Google Images (với video badge).
Bước 6: Third-party embedded players
Nếu embed YouTube/Vimeo/Facebook:
"Google may index the video on BOTH your web page AND on the third-party platform's equivalent page."
→ Cả 2 versions có thể appear trong search.
Best practices:
Provide structured data cho watch page của bạn
Include trong video sitemap
Check với video host cho phép Google fetch
Phần 3: 3 URLs quan trọng của video
Google nhấn mạnh 3 URLs khác nhau:
┌────────────────────────────────────────────────────┐
│ 1. WATCH PAGE URL │
│ URL của trang embed video │
│ VD: https://example.com/blog/video-tutorial │
├────────────────────────────────────────────────────┤
│ 2. VIDEO PLAYER URL │
│ URL của video player (thường trong iframe src) │
│ VD: https://example.com/player.php?video=123 │
├────────────────────────────────────────────────────┤
│ 3. VIDEO FILE URL │
│ URL của file video thực tế (MP4, WebM...) │
│ VD: https://cdn.example.com/video.mp4 │
└────────────────────────────────────────────────────┘
Provide URLs in structured data
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Cách Pha Cà Phê Đúng Chuẩn",
"description": "Hướng dẫn pha cà phê arabica chuẩn barista",
"thumbnailUrl": "https://example.com/thumbs/video1.jpg",
"uploadDate": "2026-05-21T08:00:00+07:00",
"duration": "PT10M",
"contentUrl": "https://stream.example.com/video.mp4",
"embedUrl": "https://example.com/player.php?video=1"
}
Provide URLs in video sitemap
<url>
<loc>https://example.com/videos/cafe-tutorial</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbs/1.jpg</video:thumbnail_loc>
<video:title>Cách Pha Cà Phê Đúng Chuẩn</video:title>
<video:description>Hướng dẫn chi tiết</video:description>
<video:content_loc>https://cdn.example.com/video.mp4</video:content_loc>
<video:player_loc>https://example.com/player.php?video=1</video:player_loc>
<video:duration>600</video:duration>
</video:video>
</url>
Phần 4: Video Thumbnails — Chi tiết
Google quan tâm đặc biệt đến thumbnails.
4.1. Thumbnail specifications
Yếu tố | Yêu cầu |
|---|---|
Formats | BMP, GIF, JPEG, PNG, WebP, SVG, AVIF |
Min size | 60x30 pixels |
Khuyến nghị | Larger = better |
Access | Không block trong robots.txt |
URL | Stable URL |
Transparency | 80%+ pixels có alpha > 250 |
4.2. Cách specify thumbnail
Option 1: HTML <video> poster:
<video controls width="640" height="360" poster="thumbnail.jpg">
<source src="video.mp4" type="video/mp4">
</video>
Option 2: Video sitemap:
<video:thumbnail_loc>https://example.com/thumbs/123.jpg</video:thumbnail_loc>
Option 3: Structured data:
{
"@type": "VideoObject",
"thumbnailUrl": "https://example.com/thumbs/123.jpg"
}
Option 4: OGP:
<meta property="og:video:image" content="https://example.com/thumbs/123.jpg">
⚠️ Nếu dùng nhiều methods → MUST use same thumbnail URL mọi nơi.
4.3. Thumbnail best practices
✅ Eye-catching:
Bright colors
Clear focal point
Faces/emotions (nếu phù hợp)
✅ Readable text (nếu có):
Lớn, contrast cao
Tối đa 6-8 từ
Sans-serif fonts
✅ Brand consistent:
Logo nhỏ ở góc
Color scheme nhất quán
Style template
❌ Tránh:
Misleading thumbnails (clickbait)
Quá nhiều text
Low resolution
Empty/boring images
Phần 5: Video Features quan trọng
5.1. Video Previews
"Google selects a few seconds from your video to display a moving preview."
Cách enable:
✅ Allow Google fetch video files ✅ Set max preview duration:
<meta name="robots" content="max-video-preview:30">
→ Tối đa preview 30 giây.
5.2. Key Moments
Key Moments = Cho phép user navigate segments trong video như chapters trong book.
2 cách implement:
Method 1: Clip Structured Data
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Pha Cà Phê Đúng Chuẩn",
"hasPart": [
{
"@type": "Clip",
"name": "Chuẩn bị nguyên liệu",
"startOffset": 30,
"endOffset": 120,
"url": "https://example.com/video#t=30"
},
{
"@type": "Clip",
"name": "Xay cà phê",
"startOffset": 120,
"endOffset": 240,
"url": "https://example.com/video#t=120"
},
{
"@type": "Clip",
"name": "Pha với máy Espresso",
"startOffset": 240,
"endOffset": 480,
"url": "https://example.com/video#t=240"
}
]
}
→ Specify exact start/end time cho từng segment.
Method 2: SeekToAction (Auto-detect)
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Tutorial Video",
"potentialAction": {
"@type": "SeekToAction",
"target": "https://example.com/video?t={seek_to_second_number}",
"startOffset-input": "required name=seek_to_second_number"
}
}
→ Google auto-detect key moments, chỉ cần tell Google URL pattern.
Supported languages cho SeekToAction:
English, Spanish, Portuguese, Italian
Chinese, French, Japanese, German
Turkish, Korean, Dutch, Russian
⚠️ Tiếng Việt chưa support (sử dụng Clip schema thay thế).
5.3. Live Badge
Cho livestream videos:
{
"@context": "https://schema.org",
"@type": "BroadcastEvent",
"name": "Live Webinar SEO 2026",
"videoFormat": "HD",
"startDate": "2026-05-21T19:00:00+07:00",
"endDate": "2026-05-21T20:30:00+07:00",
"isLiveBroadcast": true,
"publication": {
"@type": "BroadcastEvent",
"isLiveBroadcast": true,
"startDate": "2026-05-21T19:00:00+07:00"
},
"videoObject": {
"@type": "VideoObject",
"name": "Live Webinar SEO 2026",
"thumbnailUrl": "https://example.com/thumb.jpg",
"uploadDate": "2026-05-21",
"contentUrl": "https://stream.example.com/live"
}
}
→ Hiển thị red "LIVE" badge trong search results.
Phần 6: Allow Google fetch video files
Google nhấn mạnh:
"Google needs to successfully fetch the actual bytes of a video file to enable features like video previews and key moments."
6.1. Quy tắc fetch
✅ DO:
Allow fetch streaming file URL (M3U8)
Không noindex video URLs
Không block trong robots.txt
Stable URLs
Structured data với contentURL
Server đủ resources
❌ DON'T:
Block video URLs
Require login để access
Expiring URLs quá nhanh
Unstable hosting
6.2. CDN considerations
Nếu dùng CDN cho video:
example.com (watch page)
+
streamserver.example.com (video files)
→ CẢ HAI servers phải meet technical requirements.
Setup Search Console:
Verify ownership cho both domains
Receive crawl error notifications
Phần 7: Remove hoặc Restrict Video
7.1. Remove video khẩn cấp
"File a removal request for the watch page that's embedding the video."
Search Console → Removals → Temporary Removals
⚠️ Tạm thời 6 tháng. Cần permanent fix.
7.2. Remove permanently
3 options:
Option 1: Return 404
HTTP/1.1 404 Not Found
Content-Type: text/html
Option 2: noindex meta tag
<meta name="robots" content="noindex">
Option 3: Expiration date
Structured data:
{
"@type": "VideoObject",
"expires": "2026-12-31T23:59:59+07:00"
}
Video sitemap:
<video:expiration_date>2026-12-31T23:59:59+07:00</video:expiration_date>
⚠️ Cẩn thận: Đừng accidentally set expired date cho available videos.
7.3. Restrict by location
Method 1: Structured data
{
"@type": "VideoObject",
"regionsAllowed": "VN,TH,MY,SG"
}
Hoặc opposite:
{
"@type": "VideoObject",
"ineligibleRegion": "US,CA"
}
Method 2: Video sitemap
<!-- Chỉ hiển thị ở VN và Thái -->
<video:restriction relationship="allow">VN TH</video:restriction>
<!-- Hoặc chặn ở US -->
<video:restriction relationship="deny">US</video:restriction>
Phần 8: Monitoring với Search Console
Google list 3 reports quan trọng:
Report 1: Video Indexing Report
Vị trí: Search Console → Indexing → Video pages
Hiển thị:
How many indexed watch pages có indexed video
Reasons video không index
Specific errors
Report 2: Video Rich Result Report
Vị trí: Search Console → Enhancements → Videos
Hiển thị:
VideoObject structured data status
Errors + warnings
Examples URLs
Report 3: Performance Report
Filter: Search Appearance → Videos
Hiển thị:
Video impressions/clicks
Top performing videos
Trend over time
Phần 9: Video SEO checklist toàn diện
✅ Phần 1: Technical Setup
[ ] Use supported video file formats (MP4, WebM)
[ ] HTML tags chuẩn (
<video>,<iframe>, etc.)[ ] Không dùng URL fragments
[ ] Không lazy-load on interaction
[ ] Stable URLs cho thumbnail + video
[ ] Allow Google fetch video files
✅ Phần 2: Watch Pages
[ ] Mỗi video có dedicated watch page
[ ] Unique title cho mỗi page
[ ] Unique description cho mỗi page
[ ] Video là main content
[ ] Page perform tốt (traffic, engagement)
✅ Phần 3: Thumbnails
[ ] High quality (min 60x30, prefer larger)
[ ] Stable URL
[ ] Accessible (không block)
[ ] Same URL across metadata sources
[ ] Eye-catching design
✅ Phần 4: Structured Data
[ ] VideoObject schema implemented
[ ] name, description, thumbnailUrl
[ ] uploadDate, duration
[ ] contentUrl (allow Google fetch)
[ ] embedUrl
✅ Phần 5: Sitemap
[ ] Video sitemap created
[ ] Submitted to Search Console
[ ] Includes all video metadata
[ ] Update khi có video mới
✅ Phần 6: Features
[ ] Key Moments (Clip schema)
[ ] Live Badge cho livestream
[ ] Video previews enabled
✅ Phần 7: Monitoring
[ ] Search Console verified
[ ] Video Indexing report checked
[ ] Video Rich Results checked
[ ] Performance tracked
Phần 10: YouTube SEO best practices
YouTube là search engine #2, nên cần optimize riêng.
10.1. YouTube ranking factors
🔑 Top YouTube ranking factors:
├── Watch time (most important)
├── Click-through rate (CTR)
├── Session time
├── Engagement (likes, comments)
├── Subscriber growth
├── Keyword optimization
├── Thumbnail quality
└── Description quality
10.2. YouTube title best practices
✅ DO:
- Keywords ở đầu title
- 60-70 ký tự
- Curiosity gap
- Numbers/year
- Power words
❌ DON'T:
- Clickbait misleading
- ALL CAPS
- Emojis quá nhiều
- Brand name đầu title
Examples:
❌ Sai: "VLOG MỚI!!! Hãy xem tới cuối nhé 🔥🔥🔥"
✅ Đúng: "Cách Pha Cà Phê Espresso Đúng Chuẩn Barista (2026)"
10.3. YouTube description optimization
Phần 1 (Above-the-fold, 150 chars):
- Keywords chính
- Hook attention
- CTA ngắn
Phần 2 (Middle):
- Detailed description
- Timestamps (Chapters)
- Links related
Phần 3 (Bottom):
- Social media links
- Hashtags (3-5)
- Tags-like keywords
10.4. YouTube Chapters (Key Moments)
00:00 Giới thiệu
00:45 Chuẩn bị nguyên liệu
02:30 Xay cà phê đúng cách
05:15 Cài đặt máy Espresso
08:00 Pha thử nghiệm
10:30 Kết quả cuối cùng
12:00 Tips bonus
→ Auto-detect bởi YouTube + Google.
10.5. YouTube tags
Tags vẫn matter cho YouTube (không cho Google Search):
Specific tags:
"cách pha cà phê espresso", "barista basics"
Broad tags:
"cà phê", "espresso"
Branded tags:
"[tên kênh]"
Total: 10-15 tags
Phần 11: Video Content Strategy cho VN
11.1. Format trending tại VN
Top formats 2026:
📺 Short-form (TikTok, Reels, Shorts):
- 15-60 giây
- Vertical 9:16
- Hook trong 3 giây
- Trending audio
- Captions on-screen
🎬 Mid-form (YouTube):
- 8-15 phút
- Horizontal 16:9
- Educational/Entertainment
- Strong intro/outro
📹 Long-form (Podcasts):
- 30-60+ phút
- Talking head/conversation
- Niche topics
- Loyal audience
11.2. Niches có demand cao tại VN
🔥 Top niches 2026:
├── Tài chính cá nhân (đầu tư, crypto)
├── Bất động sản
├── Khởi nghiệp/business
├── Health & wellness
├── Beauty & fashion
├── Food & cooking
├── Tech reviews
├── Education/learning
├── Travel
└── Parenting
11.3. Content pillar strategy
4 pillars cho channel sustainable:
🎯 Pillar 1: Evergreen Educational (40%)
"How to..." content
Long-tail keywords
📰 Pillar 2: Trending/News (20%)
React to industry news
Quick analysis
🎬 Pillar 3: Entertainment (25%)
Stories, vlogs
Personality showcase
🛒 Pillar 4: Promotional (15%)
Product showcases
Case studies
Phần 12: Video monetization cho creator VN
12.1. YouTube Partner Program (YPP)
Requirements (2026):
1,000 subscribers
4,000 hours watch time (12 tháng) HOẶC
10M Shorts views (90 ngày)
AdSense account active
Follow YouTube policies
12.2. Revenue streams ngoài AdSense
💰 Multiple income streams:
├── Sponsorships (brand deals)
├── Affiliate marketing
├── Course/membership
├── Merchandise
├── Patreon/Ko-fi
├── Channel memberships
├── Super Chat (livestream)
└── YouTube Premium revenue share
12.3. Income expectations VN
Rough estimates 2026:
├── 1K subscribers: $50-200/tháng
├── 10K subscribers: $500-2,000/tháng
├── 100K subscribers: $5,000-20,000/tháng
├── 1M subscribers: $50,000+/tháng
⚠️ Phụ thuộc niche, geographic audience, engagement.
Kết luận
Video SEO không phải "nice to have" — đó là must have cho 2026. Với 86% người dùng VN xem video weekly, doanh nghiệp không có video strategy = mất market share.
5 thông điệp cuối
1. Dedicated watch page cho mỗi video.
2. Stable URLs mọi nơi (thumbnail, file, player).
3. VideoObject schema + Video sitemap đầy đủ.
4. Key Moments boost engagement.
5. Monitor Search Console weekly.
Tài liệu tham khảo
Về Tấn Phát Digital
Tấn Phát Digital chuyên Video SEO:
Video SEO Audit
YouTube Channel Optimization
Video Schema Implementation
Video Content Strategy
Video Production Consulting
Liên hệ Tấn Phát Digital để tận dụng sức mạnh của video cho SEO.
Biên soạn từ Google Search Central, 18/12/2025. Phần phân tích và Việt hóa thuộc về Tấn Phát Digital.
Video đang trở thành một phần quan trọng trong chiến lược SEO và AI Search hiện đại.
Nếu bạn muốn tối ưu website, video và nội dung để tăng khả năng xuất hiện trên Google Search, hãy liên hệ Tấn Phát Digital để được tư vấn chiến lược SEO phù hợp.









