IndexLaunch

Hướng dẫn

SEO JavaScript: Giúp trang JS được index

Google render JavaScript ở lượt xử lý thứ hai bị trì hoãn; tìm hiểu điều đó ảnh hưởng thế nào đến việc index và những lỗi thường gặp nhất.

Việc lập chỉ mục diễn ra qua hai đợt

Googlebot tải HTML thô của bạn trước và có thể lập chỉ mục bất kỳ nội dung nào đã có sẵn trong phản hồi ban đầu đó gần như ngay lập tức. Bất cứ thứ gì chỉ xuất hiện sau khi JavaScript chạy sẽ được đưa vào hàng đợi cho một lượt xử lý thứ hai — render — sử dụng tài nguyên riêng biệt và có thể chậm hơn lượt crawl ban đầu từ vài giây đến, trên một trang web bị hạn chế crawl, lâu hơn nhiều. Nếu nội dung hoặc liên kết nội bộ của bạn chỉ tồn tại sau lượt xử lý thứ hai đó, bạn đang phụ thuộc vào một con đường chậm hơn, kém chắc chắn hơn để được lập chỉ mục.

Điều gì thực sự phá vỡ việc lập chỉ mục

  • Nội dung chính hoặc liên kết nội bộ chỉ render sau một lượt tải phía client, không có gì đáng kể trong HTML ban đầu.
  • Nội dung bị khóa sau một hành động của người dùng — một cú nhấp, cuộn trang, di chuột — mà Googlebot không có lý do gì để thực hiện.
  • Các tệp JS hoặc CSS bị chặn trong robots.txt mà trang cần để render đúng cách; xem robots.txt so với noindex để biết việc chặn có thể phản tác dụng như thế nào.
  • Định tuyến phía client không bao giờ thay đổi mã trạng thái HTTP thực tế — một tuyến bị lỗi có thể render trống hoặc hiển thị thông báo không tìm thấy trong khi vẫn trả về 200, điều này xuất hiện dưới dạng soft 404.
  • Lỗi hydration hoặc render chỉ xảy ra trong môi trường trình duyệt headless và không bị phát hiện trong thử nghiệm thủ công thông thường.

Cách kiểm tra những gì Google thực sự thấy

Công cụ Kiểm tra URL của Search Console có chế độ xem "Trang đã kiểm tra" hiển thị HTML đã render và ảnh chụp màn hình sau khi bộ render của Google đã chạy — không chỉ phản hồi thô. So sánh điều đó với HTML nguồn của bạn: nếu nội dung hoặc liên kết quan trọng bị thiếu trong phản hồi thô nhưng có mặt sau khi render, bạn đang hoàn toàn phụ thuộc vào hàng đợi render thay vì lượt crawl ban đầu nhanh.

Điều gì thực sự hữu ích

  • Render phía máy chủ (hoặc tạo tĩnh) nội dung và liên kết điều hướng quan trọng đối với SEO, thay vì tải chúng phía client sau khi tải trang.
  • Sử dụng các phần tử <a href> thực sự cho liên kết nội bộ, không phải trình xử lý click trên các phần tử không phải thẻ neo — Googlebot theo dõi href, không phải các liên kết sự kiện JavaScript tùy ý.
  • Đừng chặn các gói JS/CSS mà trang phụ thuộc vào để render — Google cần tải chúng để có thể render trang.
  • Khi một trang đã được khắc phục, đừng chỉ chờ lượt render tiếp theo — yêu cầu lập chỉ mục lại trực tiếp, hoặc đẩy URL qua IndexNow, để phiên bản đã sửa được ghi nhận theo lịch của bạn thay vì hàng đợi của bộ render.

Lưu ý theo từng framework

  • Ứng dụng React phía client: một ứng dụng trang đơn thông thường gửi đi một khung HTML gần như trống rỗng. Với những trang cần xếp hạng, hãy dùng framework có render phía máy chủ hoặc tạo tĩnh.
  • Next.js và Nuxt: render phía máy chủ và tạo tĩnh mặc định đưa nội dung vào HTML ban đầu. Hãy lưu ý những nội dung quan trọng chỉ được tải trong các effect phía client.
  • Angular và Vue: dùng tính năng render phía máy chủ của Angular, hoặc Nuxt cho Vue, để các trang được gửi đến với nội dung đã có sẵn trong HTML.
  • Cuộn vô hạn: hãy kết hợp với các URL phân trang có thể tải độc lập, để crawler có thể truy cập các mục nằm ngoài màn hình đầu tiên.

Một bài kiểm tra nhanh bạn có thể làm ngay hôm nay

Mở trang, chọn Xem nguồn trang (không phải Kiểm tra), rồi tìm một câu trong nội dung chính và vài URL liên kết nội bộ. Nếu chúng không có trong mã nguồn, chúng phụ thuộc vào JavaScript. Sau đó, chạy một lượt kiểm tra khả năng lập chỉ mục miễn phí để xác nhận trang trả về 200, không bị đặt noindex và có canonical đúng.

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

Google có thể lập chỉ mục nội dung JavaScript không?

Có. Google render JavaScript bằng một phiên bản Chrome gần đây. Vấn đề nằm ở thời điểm và độ tin cậy: việc render diễn ra sau lượt crawl ban đầu, và lỗi trong quá trình render có thể khiến một phần nội dung bị bỏ sót.

Bing và các crawler khác có render JavaScript không?

Bing cũng render JavaScript, nhưng nhiều crawler khác, bao gồm hầu hết crawler của mạng xã hội và AI, chỉ đọc HTML ban đầu. Render phía máy chủ giúp nội dung của bạn hiển thị với tất cả chúng.

Render động có còn được khuyến nghị không?

Không. Google mô tả render động (phục vụ bot một phiên bản đã được render trước) là giải pháp tạm thời chứ không phải giải pháp lâu dài. Render phía máy chủ hoặc tạo tĩnh là cách tiếp cận được khuyến nghị.

Tôi có cần render phía máy chủ cho mọi trang không?

Không. Các trang yêu cầu đăng nhập, bảng điều khiển và bất cứ thứ gì bạn không muốn xuất hiện trên kết quả tìm kiếm đều có thể giữ render phía client. Hãy ưu tiên những trang cần xếp hạng: trang đích, bài viết, trang sản phẩm và trang danh mục.

Làm sao biết JavaScript có phải là nguyên nhân gây ra vấn đề lập chỉ mục không?

So sánh HTML thô với HTML đã render trong bài kiểm tra trực tiếp của công cụ Kiểm tra URL. Nếu nội dung hoặc liên kết quan trọng chỉ xuất hiện sau khi render, hoặc ảnh chụp màn hình đã render trông bị lỗi, nhiều khả năng JavaScript là nguyên nhân.

Muốn trang tiếp theo của bạn được tìm thấy nhanh hơn so với việc chỉ chờ crawl tự nhiên?

IndexLaunch gửi mọi URL bạn nộp tới nhiều công cụ tìm kiếm ngay khi bạn đưa vào hàng đợi.

Không cần thẻ · credit không bao giờ hết hạn

Hoặc kiểm tra khả năng index miễn phí cho bất kỳ trang nào →