CiteStat/Wiki/JavaScript SEO — nội dung do JS hiển thị với Google và AI crawler

JavaScript SEO — nội dung do JS hiển thị với Google và AI crawler

SEO Kỹ thuật

Tóm tắt

Googlebot chạy JavaScript ở một bước hiển thị (rendering) riêng bằng Chromium không giao diện. Các AI crawler lớn (GPTBot, ClaudeBot, PerplexityBot, CCBot) không chạy JavaScript trong đợt đo công khai lớn nhất (Vercel + MERJ, tháng 12/2024). Nội dung chỉ hiện ra sau khi JS chạy là vô hình với chúng.

Giải thích đơn giản

Hãy hình dung một cửa hàng để kệ trống, chỉ bày hàng khi khách bấm nút. Google có bấm nút, chỉ hơi chậm. Phần lớn khách AI không bao giờ bấm: họ thấy kệ trống và đi.

Google xử lý JavaScript thế nào: Google xử lý trang JavaScript qua ba giai đoạn: thu thập (crawl), hiển thị (render) và lập chỉ mục. Googlebot đưa mọi trang trả mã 200 vào hàng đợi hiển thị; trang "có thể nằm trong hàng đợi vài giây, nhưng cũng có thể lâu hơn". Sau đó một Chromium không giao diện chạy JavaScript. AI Overviews và AI Mode dùng cùng chỉ mục đó, và Gemini dùng hạ tầng của Googlebot, nên nội dung do JS hiển thị vẫn có thể đến được các tính năng AI của Google.

AI crawler xử lý thế nào: chưa hãng AI nào công bố bot của mình có chạy JavaScript. Đợt đo công khai lớn nhất (Vercel và MERJ, tháng 12/2024) kết luận "chưa AI crawler lớn nào hiển thị JavaScript": GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Bytespider, Meta-ExternalAgent và CCBot. Bot của ChatGPT và Claude có tải file JS (11,5% và 23,8% số lượt truy cập) nhưng không thực thi. AppleBot thì có hiển thị JavaScript.

Những gì phải có ngay trong HTML đầu tiên: nội dung chính, thẻ title, meta description, canonical, H1, JSON-LD, và điều hướng bằng liên kết <a href> thật. Các phần tương tác bổ sung có thể để chạy phía trình duyệt.

Cách làm: hiển thị phía máy chủ (SSR), tạo trang tĩnh (SSG) hoặc pre-render. Các framework như Next.js, Nuxt, Astro làm việc này mặc định; một ứng dụng một trang (SPA) thuần thì không.

⚡Tại sao quan trọng

Một trang chỉ hiện chữ sau khi JavaScript chạy có thể vẫn lên hạng Google nhưng lại trống trơn với ChatGPT, Claude và Perplexity, nên không thể được trích dẫn trong câu trả lời của chúng. Chính Google khuyên dùng hiển thị phía máy chủ hoặc pre-render, "vì nó giúp website nhanh hơn cho cả người dùng và crawler, và không phải bot nào cũng chạy được JavaScript".

🔍CiteStat kiểm tra thế nào

CiteStat tải HTML gốc của trang mà không chạy JavaScript, đúng góc nhìn của AI crawler, rồi đếm số từ hiển thị trong đó. Bộ quy tắc báo lỗi khi trang có dưới 50 từ như vậy (quy tắc "Content should not require JavaScript to render") và gợi ý hiển thị phía máy chủ khi dưới 100 từ. Nó còn kiểm tra liên kết là thẻ <a href> thật, ứng dụng một trang dùng History API thay vì phân đoạn #, và trả mã trạng thái HTTP đúng nghĩa.

Điểm CiteStat

Bộ quy tắc (tên quy tắc hiển thị bằng tiếng Anh trong báo cáo): "Content should not require JavaScript to render" (warning, trọng số 6), "Consider server-side rendering for JavaScript-heavy pages" (info, trọng số 5), "Links should be crawlable HTML anchors" (info, trọng số 8), "Single-page apps should use History API, not fragments" (warning, trọng số 7), "JavaScript SPAs should use meaningful HTTP status codes" (warning, trọng số 6).

Độ khó sửa

Biên tập viên: Khó | Lập trình viên: Trung bình | AI Agent: Trung bình