JavaScript Rendering và GEO: AI agent có thể đọc website của bạn không?

Nếu sự thật cốt lõi chỉ xuất hiện sau JavaScript, AI agent có thể không lấy được. Hãy so sánh HTML thô và DOM đã render để nội dung GEO dễ được tìm thấy và trích dẫn hơn.

Điều kiện kỹ thuật GEO cần kiểm tra trước chiến lược trích dẫn

Nếu một thông tin quan trọng chỉ xuất hiện sau khi JavaScript chạy, AI agent có thể không bao giờ nhận được thông tin đó.

Điều này bao gồm khả năng của sản phẩm, kết luận trên trang so sánh, điều kiện giá, câu trả lời trong tài liệu, thông tin tác giả và bằng chứng mà bạn muốn hệ thống AI trích dẫn. Một người nhìn thấy trang đầy đủ trong Chrome không chứng minh crawler, trình trích xuất bài viết hay browser agent đã nhận được cùng nội dung.

Một chuyên gia SEO đã so sánh HTML thô với trang đã render trên nhiều template. Trong bài viết, hướng dẫn, cửa hàng, khóa học, landing page và trang danh mục, phần lớn nội dung hiển thị đã có sẵn trong HTML; chỉ một phần nhỏ xuất hiện sau JavaScript. Bài học không nằm ở tỷ lệ chính xác. Câu hỏi là: phản hồi HTML đầu tiên đã chứa câu trả lời mà bạn muốn agent hiểu chưa?

Trong GEO, đây là kiểm tra điều kiện trước khi trích dẫn. Hệ thống phải lấy được các sự thật cốt lõi của trang trước khi đánh giá bằng chứng hoặc chọn trang làm nguồn.

Sơ đồ so sánh HTML thô, DOM trình duyệt và các đường truy cập nội dung cho AI agent

Các đường truy cập khác nhau có khả năng dùng JavaScript khác nhau. Raw fetch và trích xuất bài viết thường chỉ dựa vào phản hồi HTML.

Google render được không phải là cam kết cho mọi agent

“Google có thể render JavaScript” là đúng. Nhưng biến điều đó thành giả định rằng mọi sản phẩm tìm kiếm AI và mọi agent sẽ thấy trang trình duyệt cuối cùng là rủi ro.

Cùng một URL có thể đến hệ thống qua nhiều đường:

Đường truy cập

Hệ thống nhận được gì

Phụ thuộc JavaScript

Raw HTTP fetch

Phản hồi HTML ban đầu

Không thực thi

Reader hoặc trình trích xuất bài viết

Văn bản được chọn từ HTML

Thường không thực thi

Browser automation

DOM đã render

Có thể thực thi, chịu giới hạn timeout và chính sách

Pipeline lập chỉ mục tìm kiếm

Fetch, hàng đợi và khả năng render

Tùy nền tảng

Agent dùng tool

Output của web-fetch tool được chọn

Thường gần với raw fetch

Khả năng rendering của Google không phải bảo đảm có thể áp dụng cho mọi hệ thống. Các answer engine khác, hệ thống retrieval nội bộ, browsing agent và công cụ trích xuất web có thể chỉ lấy HTML hoặc dừng trước khi dữ liệu client chậm tải xong. Xây kiến trúc site dựa trên khả năng của một nền tảng là một canh bạc không cần thiết.

Quy tắc an toàn rất đơn giản: các sự thật công khai quan trọng cho discovery và citation phải đọc được ngay ở phản hồi đầu tiên.

Hãy audit nơi sự thật xuất hiện, không phải framework

SSR so với CSR không phải thẻ điểm GEO. Một site React, Vue hoặc Next.js có thể thân thiện với agent; một site render phía server truyền thống cũng có thể giấu sự thật quan trọng sau client API call.

Hãy audit layer mà mỗi block quan trọng trở nên khả dụng.

Layer nội dung

Ví dụ điển hình

Rủi ro GEO

HTML ban đầu

Tiêu đề, nội dung, thông số, FAQ, tác giả, ngày

Thấp

HTML lấy dữ liệu phía server

Giá hiện tại hoặc khả dụng theo vùng

Thấp đến trung bình

Client API request

Lợi ích sản phẩm, bảng so sánh, thân tài liệu

Cao

Sau tương tác người dùng

Tab, accordion, filter, kết quả infinite scroll

Cao

Chỉ thấy sau login

Dashboard hoặc knowledge base riêng tư

Đừng kỳ vọng trích dẫn công khai

Một sự thật mà bạn muốn AI nhắc lại trong câu trả lời công khai không nên phụ thuộc vào click, client request thành công hoặc tác vụ JavaScript dài. Giữ lại tương tác khi nó có giá trị, nhưng đưa layer giải thích lên sớm hơn.

Các lỗi phổ biến gồm trang sản phẩm chỉ trả về loading shell, trang so sánh có bảng chỉ xuất hiện sau hydration, tài liệu tải nội dung qua client routing, danh mục chỉ dựa vào infinite scroll và module trực quan có kết luận chỉ tồn tại trong ảnh hoặc Canvas.

So sánh trang sản phẩm mà HTML ban đầu không có thông tin sản phẩm và FAQ, chỉ có trong DOM đã render

Trang đã render có thể trông rất tốt nhưng vẫn tiết lộ quá ít ý nghĩa trong phản hồi HTML đầu tiên.

So sánh hai trạng thái trang thay vì đoán

Đừng hỏi site có dùng React hay không. Hãy lưu hai phiên bản của cùng một URL:

  1. HTML thô lấy được khi không chạy JavaScript.
  2. Văn bản main đã render sau khi mở trang trong trình duyệt và chờ nội dung chính.

Bạn có thể bắt đầu bằng fetch đơn giản:

curl -sL "https://example.com/product" -o raw.html

Hãy so sánh các block ngữ nghĩa, không phải header, banner Cookie và footer:

  • H1 và câu trả lời ngắn
  • Đoạn giải thích đầu tiên
  • Sự thật và giới hạn của sản phẩm
  • Bảng so sánh
  • Câu trả lời FAQ
  • Tác giả và ngày cập nhật
  • Internal link và canonical URL

Đừng dùng networkidle làm điều kiện duy nhất cho browser sẵn sàng. Script phân tích, chat widget và kết nối dài có thể giữ trang ở trạng thái bận mãi. Tốt hơn là chờ selector nội dung chính xuất hiện hoặc nguồn dữ liệu cụ thể cung cấp sự thật quan trọng hoàn tất.

So sánh này có thể trở thành metric release:

mức độ lộ nội dung cốt lõi = block quan trọng có trong HTML thô / block quan trọng trang cần có

Mục tiêu không phải đưa mọi pixel vào HTML. Mục tiêu là làm cho bằng chứng cần để hiểu trang không phụ thuộc vào client runtime thành công.

Sửa đường phân phối nội dung trước khi viết lại front end

Hầu hết team không cần viết lại toàn bộ site. Hãy chuyển thông tin công khai ổn định vào phản hồi đầu tiên và tiếp tục dùng JavaScript cho filter, tùy chọn đã lưu, bản đồ, animation và personalization.

Tình huống

Mẫu phân phối phù hợp hơn

Bài viết, hướng dẫn và trang glossary ổn định

Static generation hoặc prerender khi build

Giá, tồn kho hoặc chi tiết vùng thay đổi thường xuyên

Server rendering với cache và invalidation rõ ràng

Trang tương tác nhưng giải thích ổn định

Render giải thích, sự thật và FAQ trên server; hydrate tương tác ở client

Tài liệu công khai trong ứng dụng lớn

Prerender public route và không phụ thuộc login cho câu trả lời cốt lõi

Phụ thuộc nhiều API nội bộ

Tổng hợp dữ liệu quan trọng trong server hoặc layer BFF được HTML và app dùng chung

JSON-LD hữu ích nhưng không thay thế nội dung trang có thể đọc được. Structured data nên mô tả các sự thật mà khách truy cập và extractor cũng tìm thấy trong tài liệu.

Kế hoạch hai tuần cho team GEO

Ngày 1-2: liệt kê các template ảnh hưởng đến organic discovery, AI citation, sales enablement hoặc hỗ trợ. Bài viết, trang sản phẩm, tài liệu, trang so sánh và danh mục thường là đủ.

Ngày 3-5: lấy URL mẫu từ từng template. Lưu HTML thô và nội dung đã render. Đánh dấu H1, giải thích, sự thật sản phẩm, FAQ và internal link bị thiếu.

Ngày 6-9: sửa trước các trang giá trị cao và nội dung ổn định. Đưa định nghĩa, sự thật, kết luận so sánh và FAQ sang server hoặc build output.

Ngày 10-14: lặp lại các test và thêm release gate. Không nên publish template nếu HTML ban đầu thiếu H1, câu trả lời chính, sự thật quan trọng hoặc canonical link.

Điều này không đảm bảo mọi sản phẩm AI sẽ trích dẫn bạn. Nhưng nó loại bỏ một lỗi có thể tránh: publish thông tin công khai mà agent tiềm năng không thể đọc một cách đáng tin cậy.

Góc nhìn của Auspia

Các cuộc thảo luận GEO thường bắt đầu từ brand mention, chất lượng nguồn, độ rõ ràng của entity và cấu trúc câu trả lời. Tất cả đều giả định hệ thống đã lấy được trang trước đó.

JavaScript không phải vấn đề tự thân. Vấn đề là coi giải thích công khai là tác dụng phụ của client runtime. Hãy để HTML chịu trách nhiệm về nội dung và JavaScript chịu trách nhiệm về trải nghiệm. Sự phân chia này cũng cải thiện testing, technical SEO và khả năng tiếp cận của agent.

FAQ

Nếu Google render JavaScript, tôi vẫn cần audit HTML thô không?

Có. Khả năng của Google không có nghĩa crawler, reader tool và agent khác đi cùng một đường. Kiểm tra HTML thô cũng cho thấy độ trễ render và lỗi client request.

SSR luôn tốt hơn CSR cho GEO phải không?

Không. Static generation, server rendering và prerender đều có thể hoạt động. Bạn có thể giữ client rendering cho các phần tương tác cao. Tiêu chí là sự thật cốt lõi của trang công khai có đọc được trong phản hồi HTML ban đầu hay không.

Có cần tránh JavaScript trên toàn bộ trang không?

Không. Hãy dùng nó cho filter, animation, bản đồ, tùy chọn đã lưu, personalization và trải nghiệm sau login. Ưu tiên nội dung giải thích chủ đề trang và cung cấp sự thật có thể trích dẫn.

llms.txt có giải quyết nội dung chỉ xuất hiện sau JavaScript không?

Không. Dù một hệ thống đọc llms.txt, nó cũng không tự động có toàn bộ bài viết hoặc dữ liệu client API. Chính trang công khai vẫn phải làm nội dung cốt lõi của mình có thể truy cập.

Ghi chú nguồn

Bài viết này được gợi ý từ bài đăng của Adrian Skowron so sánh nội dung hiển thị trong SSR và CSR . Biểu đồ trong bài đăng phản ánh phép đo template của chính tác giả, không phải benchmark cho toàn ngành.

Tác giả: Julian Mercer, chuyên gia technical SEO với 14 năm kinh nghiệm tại Auspia. Julian viết về crawling, rendering, structured data và nền tảng kỹ thuật giúp search và AI hiểu nội dung.

Khám phá chủ đề này

Tiếp tục theo cùng mạch tăng trưởng