Mobile Structured Data Testing
Kiểm tra dữ liệu có cấu trúc trên phiên bản di động bằng Rich Results Test để đảm bảo hiển thị đúng trong SERP.
Mobile Structured Data Testing là gì?
Mobile Structured Data Testing là quá trình kiểm tra dữ liệu có cấu trúc (structured data) trên phiên bản di động của trang web — thường bằng công cụ Rich Results Test của Google — nhằm xác nhận dữ liệu được triển khai đúng định dạng (JSON-LD, Microdata hoặc RDFa), đủ điều kiện xuất hiện dưới dạng kết quả giàu (rich result) trong kết quả tìm kiếm trên thiết bị di động.
Khác với kiểm tra chung chung, Mobile Structured Data Testing tập trung vào hai yếu tố: (1) tính hợp lệ kỹ thuật của markup khi trang được tải trên user agent di động, và (2) khả năng hiển thị chính xác của rich result trên màn hình nhỏ — bao gồm cả việc tránh cắt nội dung, chồng lấn hoặc lỗi render do CSS/JS ảnh hưởng đến phần tử chứa dữ liệu có cấu trúc.
Tại sao quan trọng trong SEO?
Khoảng 60–65% lượt tìm kiếm toàn cầu hiện nay đến từ thiết bị di động (theo dữ liệu Google Search Central và StatCounter, cập nhật quý II/2024). Nếu dữ liệu có cấu trúc hoạt động tốt trên máy tính nhưng thất bại trên di động, trang sẽ mất cơ hội hiển thị rich result — như đánh giá sao, thời gian đọc, giá sản phẩm, câu hỏi thường gặp — ngay cả khi trang đạt chuẩn về nội dung và tốc độ.
Cụ thể, Mobile Structured Data Testing giúp:
- Đảm bảo Googlebot cho thiết bị di động (Googlebot Smartphone) thu thập và hiểu đúng markup — vì bot này dùng user agent di động để crawl;
- Tránh tình trạng rich result bị loại khỏi SERP di động dù vẫn xuất hiện trên desktop (do khác biệt trong cách render hoặc xử lý DOM);
- Hỗ trợ tối ưu trải nghiệm người dùng trên mobile — ví dụ: FAQ schema hiển thị dạng accordion gọn, không gây cuộn thừa;
- Giảm rủi ro vi phạm nguyên tắc hiển thị (rich result guidelines), đặc biệt với các yêu cầu về vị trí hiển thị và tính dễ đọc trên màn hình nhỏ.
Cách hoạt động
Rich Results Test đọc mã nguồn HTML của trang khi được tải dưới chế độ mobile viewport (thường là width=375px hoặc 414px, user agent Chrome trên Android/iOS). Công cụ sau đó:
- Phân tích DOM đã render (không chỉ HTML tĩnh) để phát hiện markup thực tế mà trình duyệt di động thấy;
- Kiểm tra tính hợp lệ của JSON-LD, Microdata hoặc RDFa theo tiêu chuẩn Schema.org;
- So sánh với yêu cầu bắt buộc của từng loại rich result (ví dụ:
ReviewcầnreviewRating,author;FAQcầnacceptedAnswervàquestion); - Hiển thị cảnh báo nếu markup bị ẩn bởi CSS (
display:none,visibility:hidden), nằm ngoài vùng nhìn (offscreen), hoặc bị JS xóa/sửa sau khi load.
Lưu ý: Rich Results Test không mô phỏng hoàn toàn hành vi Googlebot — nó không chạy JS phức tạp như bot thật, nên kết quả chỉ mang tính tham khảo. Việc kiểm tra thêm bằng URL Inspection Tool trong Search Console là bước bắt buộc để xác nhận trạng thái thực tế.
Hướng dẫn thực hiện
Dưới đây là quy trình kiểm tra dữ liệu có cấu trúc trên di động một cách đầy đủ:
- Chuẩn bị URL: Dùng URL phiên bản di động (không phải desktop hoặc AMP riêng biệt, trừ khi trang chỉ có AMP). Kiểm tra kỹ rằng trang không chặn bot di động qua
robots.txthoặcnoindex. - Mở Rich Results Test: Truy cập https://search.google.com/search/about/rich-results/test.
- Nhập URL hoặc dán mã HTML: Nên nhập URL trực tiếp để công cụ tải trang ở chế độ mobile. Nếu dán mã, đảm bảo mã phản ánh đúng trạng thái DOM sau khi JS chạy xong (có thể dùng DevTools > Elements > Copy outerHTML).
- Chọn chế độ kiểm tra: Mặc định là “Mobile”. Không đổi sang Desktop trừ khi so sánh chủ đích.
- Xem kết quả: Tập trung vào 3 phần:
- Valid: Có dấu tích xanh → markup hợp lệ và đủ điều kiện xét duyệt;
- Warnings: Cảnh báo không làm mất rich result nhưng có thể ảnh hưởng đến trải nghiệm (ví dụ: thiếu
imagetrongRecipe); - Errors: Lỗi nghiêm trọng → rich result sẽ không xuất hiện.
- Xác minh bằng Search Console: Sau khi sửa lỗi, gửi lại URL qua URL Inspection Tool, chọn “Request indexing” và đợi 3–7 ngày để Google xác nhận trạng thái cuối cùng.
Lỗi thường gặp
Dưới đây là 5 lỗi phổ biến khi kiểm tra dữ liệu có cấu trúc trên di động và cách khắc phục:
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| “Missing field: image” (trong Recipe, Product) | Ảnh không tồn tại, đường dẫn sai, hoặc bị chặn bởi robots.txt / CORS | Dùng ảnh có định dạng JPG/PNG, kích thước tối thiểu 161x91 px, truy cập được từ mọi miền, không yêu cầu đăng nhập |
| “Element not visible on page” | Markup nằm trong thẻ ẩn (display:none), hoặc bị JS ẩn sau khi load |
Đặt markup trong phần hiển thị rõ ràng; nếu dùng accordion, đảm bảo phần tử chứa schema luôn có visibility: visible khi render ban đầu |
| “Invalid JSON-LD syntax” | Sai dấu ngoặc, thiếu dấu phẩy, ký tự Unicode không escape | Dán JSON vào JSONLint trước khi nhúng; dùng JSON.stringify() nếu sinh markup bằng JS |
| “Multiple top-level items” | Nhiều khối @context và @type độc lập trong cùng một thẻ script type="application/ld+json" |
Gộp thành một mảng JSON-LD hoặc tách thành nhiều thẻ script riêng biệt |
| “No rich results detected” | Markup tồn tại nhưng không khớp với bất kỳ loại rich result nào Google hỗ trợ | Kiểm tra lại danh sách schema được hỗ trợ; ưu tiên các loại có tỷ lệ hiển thị cao như FAQPage, HowTo, Article |
Ví dụ thực tế
Một trang blog hướng dẫn nấu ăn có phiên bản mobile tối giản: menu ẩn, nội dung chính cuộn dọc, ảnh công thức được lazy-load bằng loading="lazy". Khi kiểm tra bằng Rich Results Test:
- Kết quả ban đầu: Báo lỗi “Missing field: image” dù ảnh hiển thị trên trình duyệt — vì lazy-load khiến ảnh chưa tồn tại trong DOM lúc test.
- Khắc phục: Thêm thuộc tính
fetchpriority="high"và bỏloading="lazy"cho ảnh chính; đồng thời đặtitemprop="image"trực tiếp lên thẻ<img>(nếu dùng Microdata) hoặc đưa URL ảnh vào JSON-LD ngay từ đầu. - Kết quả sau sửa: Rich result
Recipexuất hiện đầy đủ trên SERP di động, kèm sao đánh giá và thời gian nấu — tăng CTR trung bình 28% trong 3 tuần theo dữ liệu Search Console.
Câu hỏi thường gặp
Mobile Structured Data Testing có khác gì so với kiểm tra trên desktop?
Có. Googlebot di động tải trang với viewport và user agent khác, nên có thể render khác — đặc biệt khi trang dùng CSS media query hoặc JS điều kiện theo thiết bị. Một số markup chỉ xuất hiện trên mobile (ví dụ: tab “Hỏi đáp” ẩn trên desktop) sẽ không được kiểm tra nếu dùng chế độ desktop.
Rich Results Test có phát hiện lỗi do JavaScript gây ra không?
Có, nhưng giới hạn. Công cụ chạy JS đơn giản (tương đương Chrome 80), nhưng không thực thi code phụ thuộc vào tương tác người dùng (click, scroll) hoặc API bên ngoài. Nếu markup được chèn sau sự kiện scroll, Rich Results Test sẽ không thấy — cần kiểm tra bằng View Page Source hoặc chụp DOM sau render.
Có cần kiểm tra trên mọi thiết bị di động không?
Không. Rich Results Test dùng cấu hình tiêu chuẩn (Chrome trên Android). Các thiết bị khác như iOS Safari hoặc trình duyệt thứ ba không ảnh hưởng đến khả năng hiển thị rich result — vì Google chỉ dùng một bot duy nhất (Googlebot Smartphone) để đánh giá. Tuy nhiên, trải nghiệm người dùng trên từng nền tảng nên được kiểm tra riêng bằng BrowserStack hoặc DevTools Device Mode.