Kỹ thuật7 phút đọc

Tôi khai báo sitemap video sai, và Google Search Console đã báo gì

Tôi đã để URL watch page vào nhầm trường dành cho file video trong sitemap. Google đọc được sitemap, nhưng báo lỗi rất cụ thể — và cách sửa cũng cụ thể không kém.

Ảnh gameplay CongThienWorld khi người chơi đi dạo trong bản đồ 2D lấy cảm hứng từ Hội An
Ảnh gameplay CongThienWorld khi người chơi đi dạo trong bản đồ 2D lấy cảm hứng từ Hội An

Tôi vừa trải qua một lỗi SEO kỹ thuật khá nhỏ, nhưng đáng để ghi lại vì nó không nằm ở phần giao diện. Trang dự án CongThienWorld có năm video gameplay, mỗi video đã có watch page riêng, thumbnail, player và dữ liệu VideoObject. Tôi cũng đưa các video vào sitemap XML để Google dễ phát hiện hơn.

Sitemap vẫn đọc được. Google vẫn phát hiện được 31 trang. Nhưng Search Console báo một lỗi khiến phần video không được gửi đúng: giá trị của video:player_loc bị trùng với loc của trang chứa video. Nói ngắn gọn, tôi đã đưa URL của trang HTML vào trường lẽ ra phải trỏ tới trình phát hoặc file video.

Tôi đã nhầm ở đâu?

Mỗi video trong sitemap có một URL trang, gọi là loc. Đây là URL mà người dùng mở để đọc nội dung và xem video, ví dụ một watch page của CongThienWorld. Còn content_loc phải là URL tới dữ liệu video thực tế — file MP4 mà crawler có thể tải — chứ không phải URL của trang HTML.

Trong bản đầu, tôi dùng watch page URL ở cả loc và player_loc. Về mặt suy nghĩ, điều đó nghe có vẻ hợp lý: trang đó có player nên tôi coi nó là player location. Nhưng XML sitemap không diễn giải theo ý định của người viết. Mỗi trường có ý nghĩa riêng, và URL phải đúng với loại tài nguyên mà trường mô tả.

Một sitemap có thể hợp lệ về cú pháp nhưng vẫn sai về ngữ nghĩa. Google đọc được file không có nghĩa là Google hiểu đúng những gì tôi muốn khai báo.

Cách tôi sửa

Tôi bỏ player_loc vì website không có một SWF player riêng để khai báo. Sau đó, mỗi entry chỉ giữ loc của watch page và content_loc trỏ thẳng tới file MP4 ổn định trong thư mục videos. Cách này trung thực hơn với hạ tầng hiện tại: trang HTML là nơi người xem đọc và xem, còn content_loc là nơi chứa bytes của video.

Tôi cũng kiểm tra thêm những điều dễ bị bỏ qua: file video có truy cập công khai không, URL có cần đăng nhập không, thumbnail có ổn định không, robots.txt có chặn thư mục videos không, và mỗi watch page có thực sự chứa video đó trong HTML hay chỉ tải bằng một hiệu ứng phía client.

Xem cụm watch page của CongThienWorld

Đọc tài liệu chính thức về video sitemap trên Google Search Central

Sửa sitemap có đồng nghĩa video sẽ lên Google ngay không?

Không. Đây là chỗ tôi muốn nói rõ để không biến một việc kỹ thuật thành lời hứa SEO. Sitemap giúp Google phát hiện URL và hiểu thêm về tài nguyên. Nó không đảm bảo video sẽ được index, xuất hiện trong Video mode hay có rich result. Google còn phải crawl được file, đánh giá trang chứa video, thumbnail, mức độ hữu ích và nhiều tín hiệu khác.

Điều tôi có thể kiểm soát là làm cho tín hiệu đầu vào sạch: watch page có nội dung thật, video nằm gần phần đầu trang, poster crawl được, file MP4 không bị chặn, metadata nói đúng điều người dùng nhìn thấy, và sitemap không khai báo sai loại URL. Sau khi deploy, tôi submit lại sitemap và chờ Google đọc phiên bản mới.

Bài học tôi giữ lại

Lỗi này không làm hỏng toàn bộ website. Nó chỉ cho thấy SEO kỹ thuật không phải một danh sách checkbox làm một lần là xong. Khi thêm một loại nội dung mới — ở đây là video gameplay — tôi phải đọc lại ý nghĩa của từng trường, kiểm tra response thật và đối chiếu với cách Google mô tả chúng.

CongThienWorld là dự án cá nhân, nhưng cách tôi kiểm tra nó cũng là cách tôi muốn làm cho các website thương mại ở Hội An – Đà Nẵng: nếu đã khai báo thì khai báo đúng, nếu chưa đủ dữ liệu thì nói là chưa đủ, và nếu công cụ báo lỗi thì đọc nguyên nhân trước khi bấm xác nhận sửa lỗi.

Lê Công Thiên — thiết kế & xây dựng website tại Hội An, founder Công Thiên Agency.

Kể tôi nghe ý tưởng của bạn