SearchAction Schema
Schema con của Action dùng trong WebSite để khai báo hộp tìm kiếm có thể sử dụng trên trang chủ.
SearchAction Schema là gì?
SearchAction Schema là một loại markup cấu trúc (structured data) thuộc chuẩn schema.org, dùng để khai báo rõ ràng rằng trang web có một hộp tìm kiếm hoạt động được — thường đặt trên trang chủ hoặc trang danh mục chính. Đây là schema con của Action, và luôn phải gắn với thuộc tính potentialAction của một đối tượng như WebSite hoặc Organization.
Khác với các schema khác, SearchAction không mô tả nội dung mà mô tả hành động người dùng có thể thực hiện: nhập từ khóa và gửi yêu cầu tìm kiếm. Google và một số công cụ tìm kiếm khác sử dụng dữ liệu này để hiển thị nút tìm kiếm trực tiếp trong kết quả tìm kiếm (search box rich result), giúp người dùng tìm nội dung bên trong trang web ngay từ SERP.
Tại sao quan trọng trong SEO?
SearchAction Schema hỗ trợ SEO theo ba cách chính:
- Tăng khả năng xuất hiện trong rich results: Khi được triển khai đúng, Google có thể hiển thị ô tìm kiếm riêng bên dưới tiêu đề trang chủ trong kết quả tìm kiếm — điều này làm tăng độ nổi bật và tỷ lệ nhấp (CTR).
- Cải thiện trải nghiệm người dùng từ SERP: Người dùng không cần vào trang rồi mới tìm — họ gõ từ khóa ngay tại kết quả tìm kiếm và được chuyển thẳng đến trang kết quả phù hợp.
- Xác định rõ intent tìm kiếm nội bộ: Giúp công cụ tìm kiếm hiểu rằng trang web có hệ thống tìm kiếm đáng tin cậy, từ đó hỗ trợ đánh giá chất lượng nội dung và khả năng phục vụ người dùng.
Lưu ý: Việc triển khai SearchAction không ảnh hưởng trực tiếp đến thứ hạng, nhưng gián tiếp cải thiện chỉ số hành vi (như thời gian ở lại, tỷ lệ thoát), vốn là tín hiệu xếp hạng phụ trợ.
Cách hoạt động
SearchAction Schema hoạt động bằng cách khai báo ba thành phần bắt buộc:
- Mục tiêu hành động (
target): URL mẫu chứa placeholder{search_term_string}, ví dụ:https://example.com/search?q={search_term_string}. - Phương thức gửi (
query-input): Xác định cách nhận dữ liệu tìm kiếm — thường làrequired name=search_term_stringcho phương thức GET. - Đối tượng sở hữu hành động: Thường là
WebSite, gắn qua thuộc tínhpotentialAction.
Khi Google thu thập và phân tích markup, nó kiểm tra tính hợp lệ của target (phải là URL có thể truy cập, có tham số tìm kiếm hợp lệ) và xác minh rằng trang đích thực sự trả về kết quả tìm kiếm liên quan. Nếu thất bại ở bước nào, rich result sẽ không xuất hiện.
Hướng dẫn thực hiện
Dưới đây là các bước triển khai SearchAction Schema chuẩn xác:
- Xác định URL tìm kiếm: Đảm bảo trang tìm kiếm tồn tại và hoạt động (ví dụ:
/searchhoặc/tim-kiem), và chấp nhận tham sốq,shoặc tương đương. - Chọn định dạng markup: Ưu tiên JSON-LD (dễ triển khai, ít lỗi hơn Microdata hoặc RDFa).
- Viết markup đầy đủ, bao gồm cả
WebSitecha vàSearchActioncon. - Test bằng Rich Results Test hoặc Google Search Console > Enhancements.
- Giám sát sau triển khai: Kiểm tra báo cáo “Rich results” trong Search Console sau 3–7 ngày.
Lỗi thường gặp
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Target URL không hợp lệ | URL trong target thiếu placeholder {search_term_string} hoặc dùng ký tự sai (ví dụ: %s hoặc {{query}}) |
Thay toàn bộ bằng đúng cú pháp: https://example.com/tim-kiem?q={search_term_string} |
| query-input sai định dạng | Thiếu từ khóa required, hoặc viết sai tên tham số (ví dụ: name=q_string thay vì name=search_term_string) |
Dùng đúng: "query-input": "required name=search_term_string" |
| Không gắn vào WebSite | Markup chỉ khai báo SearchAction riêng lẻ, không nằm trong potentialAction của WebSite |
Luôn bao bọc SearchAction bên trong WebSite — không triển khai độc lập |
| Trang tìm kiếm trả về 404 hoặc không có kết quả | URL target dẫn đến trang lỗi hoặc không xử lý tham số tìm kiếm |
Kiểm tra thủ công: mở https://example.com/tim-kiem?q=test — phải thấy kết quả tìm kiếm thực tế |
Ví dụ thực tế
Dưới đây là đoạn JSON-LD chuẩn, triển khai trên trang chủ (index.html) của một website tiếng Việt:
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://example.com/",
"name": "Ví dụ Website",
"description": "Website cung cấp thông tin hữu ích về SEO và phát triển web.",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/tim-kiem?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
Lưu ý:
- URL
targetphải khớp với thực tế — nếu trang tìm kiếm dùngsthay vìq, phải sửa thành?s={search_term_string}. - Không cần thêm
@idhaysameAs— không bắt buộc vớiSearchAction. - Nếu website dùng subdomain (ví dụ:
blog.example.com),urltrongWebSitephải là đúng subdomain đó.
Câu hỏi thường gặp
SearchAction Schema có cần thiết với mọi website?
Không bắt buộc. Chỉ nên triển khai nếu website có chức năng tìm kiếm nội bộ hoạt động tốt, có ít nhất vài trăm trang nội dung, và người dùng thường tìm kiếm theo chủ đề. Với website tĩnh (giới thiệu, landing page đơn giản), việc triển khai không mang lại lợi ích rõ rệt.
Google có hiển thị search box rich result cho tất cả website đã triển khai?
Không. Việc hiển thị phụ thuộc vào nhiều yếu tố: độ uy tín của miền (domain authority), tần suất cập nhật nội dung, chất lượng trang tìm kiếm, và lịch sử triển khai structured data. Một số website đã triển khai đúng vẫn không thấy search box sau 30 ngày — điều này là bình thường và không phản ánh lỗi kỹ thuật.
Có thể triển khai nhiều SearchAction trên cùng một website không?
Theo chuẩn schema.org, potentialAction là thuộc tính dạng mảng — nghĩa là có thể khai báo nhiều hành động. Tuy nhiên, Google hiện chỉ hỗ trợ một SearchAction duy nhất cho mỗi WebSite. Việc thêm nhiều hơn có thể gây cảnh báo trong công cụ kiểm tra, và không cải thiện khả năng hiển thị.