Mục lục bài viết
Khi người dùng hỏi Google Assistant "Hôm nay thị trường chứng khoán thế nào?" hay "Lãi suất ngân hàng hiện tại là bao nhiêu?", Assistant cần quyết định đoạn nào trong hàng trăm trang web phù hợp để đọc to. Speakable schema là tín hiệu để bạn nói với AI: "Đây — đọc đoạn này."
Speakable hoạt động trong hệ sinh thái AI
Người dùng hỏi bằng giọng nói
↓
Google Assistant / Siri / Alexa tìm kiếm
↓
Ưu tiên trang có Speakable schema hợp lệ
↓
Đọc đoạn được đánh dấu speakable (20-70 từ)
↓
Trả lời người dùng bằng giọng nói + hiển thị trang nguồn
Không có Speakable — AI vẫn có thể tìm thấy trang của bạn, nhưng phải tự phân tích văn bản và thường chọn đoạn kém chính xác hơn.
JSON-LD Speakable trong NewsArticle
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"@id": "https://example.vn/vi/tin-tuc/lai-suat-ngan-hang-thang-8-2026",
"headline": "Lãi suất ngân hàng tháng 8/2026: Vietcombank và BIDV điều chỉnh xuống 4.5%",
"description": "Từ ngày 10/8/2026, Vietcombank và BIDV đồng loạt giảm lãi suất tiết kiệm kỳ hạn 12 tháng xuống 4.5%/năm, mức thấp nhất trong 3 năm qua.",
"datePublished": "2026-08-11T08:00:00+07:00",
"dateModified": "2026-08-11T10:30:00+07:00",
"author": {
"@type": "Person",
"name": "Nguyễn Minh Tuấn"
},
"publisher": {
"@type": "Organization",
"name": "Tin Tức Tài Chính VN",
"url": "https://example.vn",
"logo": {
"@type": "ImageObject",
"url": "https://example.vn/images/logo.png",
"width": 600,
"height": 60
}
},
"image": "https://example.vn/images/lai-suat-8-2026.jpg",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-lead", ".article-summary", ".article-conclusion"]
},
"articleBody": "..."
}
Speakable với cssSelector trong React/Next.js
// components/news/ArticleContent.tsx
interface ArticleContentProps {
lead: string;
body: string;
conclusion: string;
}
export function ArticleContent({ lead, body, conclusion }: ArticleContentProps) {
return (
<article>
{/* Đoạn này được đánh dấu speakable — phù hợp để đọc to */}
<p className="article-lead text-lg font-medium leading-relaxed">
{lead}
</p>
{/* Nội dung chính — không speakable */}
<div className="article-body prose">
{body}
</div>
{/* Kết luận — phù hợp đọc to */}
<p className="article-conclusion text-base border-l-4 border-orange-500 pl-4">
{conclusion}
</p>
</article>
);
}
// app/[lang]/tin-tuc/[slug]/page.tsx
export default async function NewsPage({ params }) {
const article = await getArticle(params.slug);
const jsonLd = {
"@context": "https://schema.org",
"@type": "NewsArticle",
headline: article.title,
datePublished: article.publishedAt,
author: { "@type": "Person", name: article.author },
publisher: {
"@type": "Organization",
name: "Tin Tức VN",
url: "https://example.vn",
logo: { "@type": "ImageObject", url: "https://example.vn/logo.png" },
},
speakable: {
"@type": "SpeakableSpecification",
cssSelector: [".article-lead", ".article-conclusion"],
},
};
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLd).replace(/</g, "\\u003c"),
}}
/>
<ArticleContent
lead={article.lead}
body={article.body}
conclusion={article.conclusion}
/>
</>
);
}
Speakable với fragment URL (không dùng React)
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Lãi suất ngân hàng 2026",
"speakable": {
"@type": "SpeakableSpecification",
"url": [
"https://example.vn/vi/tin-tuc/lai-suat#tom-tat",
"https://example.vn/vi/tin-tuc/lai-suat#ket-luan"
]
}
}
Tương ứng với HTML:
<p id="tom-tat">
Từ ngày 10/8/2026, Vietcombank và BIDV giảm lãi suất tiết kiệm 12 tháng
xuống 4.5%/năm — mức thấp nhất kể từ 2023.
</p>
<!-- ... nội dung bài ... -->
<p id="ket-luan">
Với xu hướng giảm lãi suất hiện tại, người gửi tiền nên cân nhắc kỳ hạn
dài hơn (24-36 tháng) để khóa lãi suất trước khi thị trường điều chỉnh tiếp.
</p>
Các loại nội dung và cách đánh dấu Speakable
| Loại nội dung | Đoạn nên đánh dấu Speakable | Ghi chú |
|---|---|---|
| Tin tức | Lead (50 từ đầu) + kết luận | Use case chính thức của Google |
| Bài định nghĩa | Đoạn đầu tiên (định nghĩa) | Khi AI trả lời "X là gì?" |
| Hướng dẫn | Phần tóm tắt + từng bước ngắn | Mỗi bước dưới 30 từ |
| FAQ | Câu trả lời cho mỗi câu hỏi | Đã có FAQPage schema — Speakable bổ sung |
| Báo giá/Pricing | Câu tóm tắt giá + điều kiện | Không đánh dấu bảng giá |
| Trang sản phẩm | Câu mô tả core benefit | Không phải toàn bộ description |
Checklist Speakable schema
- Chọn 2-4 đoạn văn phù hợp: 20-70 từ, tự đứng vững, không có bảng/URL
- Thêm CSS class (
.speakable,.article-lead) cho đoạn được chọn - Viết SpeakableSpecification với cssSelector trong NewsArticle hoặc WebPage
- Test bằng Google Rich Results Test — kiểm tra "Speakable" xuất hiện
- Không thay đổi CSS class sau khi Google đã index
- Cập nhật speakable đoạn khi bài viết được cập nhật nội dung
Speakable schema hiện là tín hiệu ít dùng nhất trong structured data — ít nhà phát triển triển khai — nên implementing ngay bây giờ tạo ra lợi thế cạnh tranh rõ ràng trong voice search và AI assistant queries.
Câu hỏi thường gặp
Speakable schema hoạt động như thế nào?
Speakable schema đánh dấu một hoặc vài đoạn văn bản trong trang (thường 20-50 từ mỗi đoạn) là 'phù hợp để đọc to'. Khi người dùng hỏi Google Assistant bằng giọng nói ('Hey Google, tin tức mới nhất về chứng khoán'), Assistant tìm đến các trang có Speakable schema để lấy đoạn text được đánh dấu và đọc ra. Không có schema — AI phải tự quyết định đoạn nào đọc, thường kém chính xác hơn. Speakable hiện được Google hỗ trợ chính thức cho trang tin tức (NewsArticle), nhưng đang mở rộng cho các loại nội dung khác.
Trang nào phù hợp để dùng Speakable schema?
Hiện tại Google ưu tiên: (1) Trang tin tức và báo điện tử (NewsArticle schema) — đây là use case chính thức của Speakable, (2) Trang định nghĩa/giải thích khái niệm — AI hay đọc phần mở đầu khi trả lời câu hỏi 'X là gì?', (3) FAQ — câu trả lời ngắn phù hợp để đọc to, (4) Bài hướng dẫn từng bước — AI đọc từng bước cho người dùng thực hiện. Tránh dùng Speakable cho nội dung dài, bảng số liệu, hoặc đoạn có nhiều URL và ký tự đặc biệt.
Đoạn văn bản nào nên đánh dấu Speakable?
Chọn đoạn đáp ứng tiêu chí: (1) Độ dài 20-70 từ — đủ ngắn để AI đọc mà không mất ngữ cảnh, (2) Tự đứng vững được — người nghe hiểu được mà không cần đọc phần trước, (3) Không chứa bảng, danh sách có số thứ tự, URL, ký hiệu đặc biệt — những thứ này nghe kỳ khi đọc to, (4) Là thông tin key của bài — định nghĩa, kết luận, hoặc câu trả lời trực tiếp, (5) Câu văn hoàn chỉnh — không cắt ngang câu. Thường là đoạn đầu tiên của bài (lead) và đoạn kết luận.
Có thể dùng CSS selector thay vì đặt @id cho từng đoạn không?
Có — Speakable schema hỗ trợ 2 cách đánh dấu: (1) cssSelector: chỉ định CSS class hoặc ID của phần tử HTML chứa text (ví dụ: '.article-summary', '#main-definition'), (2) url: đặt fragment URL trỏ đến phần tử HTML cụ thể có id (ví dụ: 'https://example.vn/bai-viet#dinh-nghia'). Với trang Next.js/React: CSS selector đơn giản hơn vì chỉ cần đặt className cho component. Với static HTML: fragment URL cũng hoạt động tốt. Không cần phải chọn — dùng cả hai cho độ phủ cao hơn.
Speakable schema có giúp xếp hạng SEO thông thường không?
Speakable không trực tiếp ảnh hưởng đến ranking Google Search truyền thống — nó không phải ranking signal. Tuy nhiên, tối ưu cho voice search gián tiếp cải thiện AEO (Answer Engine Optimization): khi AI chọn nội dung của bạn để đọc to, tăng brand awareness, tăng traffic từ voice-driven queries, và xây dựng authority là nguồn AI tin cậy. Với xu hướng AI search ngày càng tích hợp voice (iOS Siri + ChatGPT, Google Assistant + Gemini), Speakable schema là đầu tư dài hạ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í