Trình thu thập dữ liệu AI có đọc được nội dung do JavaScript hiển thị không?

Đăng ngày

Trả lời ngắn

Thường là không. Googlebot hiển thị JavaScript ở một bước sau, nhưng hầu hết trình thu thập dữ liệu AI không nêu rõ là có làm vậy, và chính Google lưu ý rằng không phải bot nào cũng chạy được JavaScript. Nếu văn bản của bạn chỉ xuất hiện sau khi script chạy, một trình thu thập dữ liệu AI có thể nhận về một trang trống. Hãy phục vụ nội dung chính trong HTML ban đầu bằng hiển thị phía máy chủ hoặc trang tĩnh.

Ứng dụng một trang và các framework phía client có ở khắp nơi, và trong trình duyệt chúng trông hoàn toàn ổn. Một trình thu thập dữ liệu chỉ đọc HTML mà máy chủ gửi sẽ thấy điều khác: một <div id="root"></div>, vài thẻ script và rất ít hoặc không có văn bản. Với câu trả lời AI, trang đó không có gì để trích dẫn.

Trong trang này
  1. Vì sao trình thu thập dữ liệu AI bỏ sót nội dung JavaScript?
  2. Làm sao kiểm tra trình thu thập dữ liệu nhận được gì?
  3. Những trang nào có rủi ro nhất?
  4. Làm sao sửa nội dung chỉ có trong JavaScript?
  5. Màn hình đăng nhập, đồng ý và paywall có chặn trình thu thập dữ liệu AI không?
  6. AISeeWhy phát hiện các trang chỉ có JavaScript như thế nào?

Vì sao trình thu thập dữ liệu AI bỏ sót nội dung JavaScript?

Chạy JavaScript rất tốn kém. Trình thu thập dữ liệu phải tải script, thực thi chúng trong một engine trình duyệt và chờ dữ liệu tải xong. Google làm điều này cho Search: thu thập, xếp trang vào hàng đợi hiển thị, và hiển thị bằng Chromium không giao diện khi tài nguyên cho phép. Dù vậy, Google vẫn khuyến nghị hiển thị phía máy chủ hoặc prerender vì nhanh hơn cho cả người dùng lẫn trình thu thập dữ liệu, và lưu ý rằng không phải bot nào cũng chạy được JavaScript.

OpenAI, Anthropic và Perplexity không nêu trong tài liệu về trình thu thập dữ liệu rằng các tác nhân của họ thực thi JavaScript. Apple cho biết Applebot có thể hiển thị trang trong trình duyệt. Khi không có tuyên bố rõ ràng, giả định an toàn với trình thu thập dữ liệu AI là chúng chỉ đọc HTML ban đầu.

Làm sao kiểm tra trình thu thập dữ liệu nhận được gì?

Hãy xem HTML thô, không phải trang đã hiển thị. Công cụ dành cho nhà phát triển của trình duyệt hiển thị DOM sau khi script chạy, vốn không phải thứ trình thu thập dữ liệu nhận được. Dùng xem mã nguồn, hoặc lưu HTML thô từ dòng lệnh rồi tìm trong đó:

curl -s -o page.html \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  https://example.com/page

# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html

Kết quả 0 nghĩa là câu đó không có trong HTML mà máy chủ gửi, nên các trình thu thập dữ liệu không chạy script sẽ không tìm thấy nó. Nhìn nhanh vào tệp là biết phần còn lại: một bài viết hiển thị phía máy chủ có toàn bộ văn bản ở đó; một lớp vỏ phía client có phần tử gốc trống và danh sách script.

Những trang nào có rủi ro nhất?

Làm sao sửa nội dung chỉ có trong JavaScript?

Cách sửa là gửi nội dung quan trọng ngay trong phản hồi đầu tiên. Hãy chọn phương án nhẹ nhất mà hệ thống của bạn cho phép:

Bạn không cần chuyển cả ứng dụng cùng một lúc. Hãy bắt đầu với những trang bạn muốn được trích dẫn: bài viết, tài liệu, trang sản phẩm và giá. Khu vực tài khoản và bảng điều khiển có thể giữ phía client, vì chúng vốn nằm sau đăng nhập.

Tránh phục vụ cho trình thu thập dữ liệu một trang khác với người dùng dựa trên user agent. Hiển thị cùng một HTML cho mọi người dễ bảo trì hơn và tránh mọi nghi ngờ về cloaking.

Màn hình đăng nhập, đồng ý và paywall có chặn trình thu thập dữ liệu AI không?

Có. Trình thu thập dữ liệu không đăng nhập, không bấm banner cookie và không giải thử thách. Anthropic nêu rằng bot của họ sẽ không cố vượt qua CAPTCHA. Nếu công cụ quản lý đồng ý thay trang bằng một lớp phủ toàn màn hình trong HTML, hoặc chuyển hướng khách lần đầu đến trang đồng ý, trình thu thập dữ liệu nhận cái đó thay vì nội dung của bạn.

Hãy đảm bảo các trang công khai hiển thị nội dung trong HTML bất kể trạng thái đồng ý, với banner là lớp phủ chứ không phải thứ thay thế trang. Giữ các trang bạn muốn được trích dẫn ngoài tường đăng nhập, và kiểm tra trình thu thập dữ liệu không bị chuyển hướng đến trang đăng nhập.

AISeeWhy phát hiện các trang chỉ có JavaScript như thế nào?

AISeeWhy đọc HTML ban đầu đúng như từng trình thu thập dữ liệu nhận được, không chạy script. Khi một trang gần như không có văn bản hiển thị nhưng có phần tử gốc của framework và các script, nó báo một phát hiện P1 rằng nội dung cần JavaScript. Nó cũng gắn cờ các chuyển hướng đưa trình thu thập dữ liệu đến nơi khác với trang mà trình duyệt nhận được.

Câu hỏi thường gặp

Googlebot có hiển thị JavaScript không?

Có. Google thu thập HTML, xếp trang vào hàng đợi hiển thị và hiển thị bằng Chromium không giao diện khi tài nguyên cho phép. Google vẫn khuyến nghị hiển thị phía máy chủ hoặc prerender.

Các trình thu thập dữ liệu của ChatGPT, Claude và Perplexity có chạy JavaScript không?

Tài liệu về trình thu thập dữ liệu của các nhà cung cấp đó không nói như vậy. Cho đến khi nhà cung cấp tuyên bố khác, hãy giả định trình thu thập dữ liệu đọc HTML ban đầu và đảm bảo nội dung của bạn có trong đó.

Hiển thị động (dynamic rendering) cho bot có phải ý hay không?

Nó dùng được như giải pháp tạm nhưng thêm một đường hiển thị thứ hai phải bảo trì. Hiển thị phía máy chủ hoặc HTML tĩnh phục vụ cùng nội dung cho mọi người và là cách sửa lâu dài đơn giản hơn.

JSON-LD do JavaScript thêm vào có được tính không?

Google đọc được nó sau khi hiển thị, nhưng các trình thu thập dữ liệu không chạy script sẽ không thấy. Hãy đặt JSON-LD trong HTML ban đầu.

Nguồn tham khảo

Bài viết khác