Giải pháp kết xuất động

Trên một số trang web, JavaScript tạo thêm nội dung trên một trang khi được thực thi trong trình duyệt. Quá trình này được gọi là kết xuất phía máy khách. Trong quá trình Google Tìm kiếm thực thi JavaScript, có một số tính năng JavaScript bị giới hạn trong Google Tìm kiếm và một số trang có thể gặp phải sự cố nội dung không xuất hiện trong HTML được kết xuất. Các công cụ tìm kiếm khác có thể chọn bỏ qua JavaScript và sẽ không thấy nội dung do JavaScript tạo.

Kết xuất động là một cách xử lý cho những trang web mà công cụ tìm kiếm không thấy nội dung do JavaScript tạo trên đó. Máy chủ kết xuất động phát hiện các bot có thể gặp sự cố với nội dung do JavaScript tạo rồi phân phát phiên bản do máy chủ kết xuất mà không có JavaScript cho các bot này trong khi cho người dùng thấy phiên bản nội dung do máy khách kết xuất.

Kết xuất động là một cách khắc phục chứ không phải là giải pháp được đề xuất vì cách này phức tạp hơn và đòi hỏi thêm tài nguyên.

Những trang web nên sử dụng chế độ kết xuất động

Kết xuất động là cách giải quyết cho nội dung được tạo bằng JavaScript, công khai, có thể lập chỉ mục và thay đổi nhanh chóng hoặc cho nội dung mà bạn quan tâm nhưng sử dụng các tính năng JavaScript không được các trình thu thập dữ liệu hỗ trợ. Không phải tất cả trang web đều cần sử dụng chế độ kết xuất động, đồng thời có các giải pháp tốt hơn so với chế độ kết xuất động như giải thích trong bài viết này về việc kết xuất trên web.

Hiểu cách hoạt động của tính năng kết xuất động

Tính năng kết xuất động yêu cầu máy chủ web của bạn phát hiện các trình thu thập dữ liệu (ví dụ: bằng cách kiểm tra tác nhân người dùng). Yêu cầu từ trình thu thập dữ liệu được chuyển đến trình kết xuất, còn yêu cầu từ người dùng được phân phát như bình thường. Khi cần, trình kết xuất động sẽ phân phát một phiên bản nội dung phù hợp với trình thu thập dữ liệu, ví dụ: trình kết xuất động có thể phân phát phiên bản HTML tĩnh. Bạn có thể chọn bật trình kết xuất động cho tất cả các trang hoặc trên mỗi trang.

Một sơ đồ cho thấy cách hoạt động của tính năng kết xuất động. Sơ đồ cho thấy máy chủ phân phát nội dung HTML và JavaScript ban đầu trực tiếp cho trình duyệt. Ngược lại, sơ đồ này cho thấy máy chủ phân phát HTML và JavaScript ban đầu cho trình kết xuất. Trình này sẽ chuyển đổi HTML và JavaScript ban đầu thành HTML tĩnh. Khi đã chuyển đổi xong nội dung, trình kết xuất sẽ phân phát HTML tĩnh cho trình thu thập dữ liệu.

Kết xuất động không phải là kỹ thuật che giấu

Googlebot thường không coi kết xuất động là kỹ thuật che giấu. Miễn là quy trình kết xuất động của bạn dẫn đến nội dung giống nhau, Googlebot sẽ không xem kết xuất động là kỹ thuật che giấu.

Khi bạn đang thiết lập tính năng kết xuất động, trang web của bạn có thể tạo ra các trang lỗi. Googlebot không coi các trang lỗi này là kỹ thuật che giấu và xử lý lỗi như bất kỳ trang lỗi nào khác.

Việc sử dụng kết xuất động để phân phát nội dung hoàn toàn khác nhau cho người dùng và trình thu thập dữ liệu có thể bị xem là kỹ thuật che giấu. Ví dụ: một trang web phân phát một trang về mèo cho người dùng và một trang về chó cho trình thu thập dữ liệu có thể bị xem là đang triển khai kỹ thuật che giấu.

Triển khai tính năng kết xuất động

Để thiết lập tính năng kết xuất động cho nội dung của bạn, hãy làm theo nguyên tắc chung của chúng tôi. Bạn sẽ cần tham khảo chi tiết cấu hình cụ thể của mình, vì các chi tiết này sẽ khác nhau rất nhiều giữa các lần triển khai.

  1. Cài đặt và định cấu hình một trình kết xuất động (ví dụ: Puppeteer, Rendertron hoặc prerender.io) để biến đổi nội dung của bạn thành HTML tĩnh, giúp trình thu thập thông tin xử lý dễ dàng hơn.
  2. Chọn tác nhân người dùng mà bạn muốn cung cấp HTML tĩnh và tham khảo thông tin về cấu hình cụ thể để nắm được cách cập nhật hoặc thêm tác nhân người dùng. Sau đây là ví dụ về danh sách tác nhân người dùng phổ biến trong phần mềm trung gian Rendertron:
    export const botUserAgents = [
      'googlebot',
      'bingbot',
      'linkedinbot',
      'mediapartners-google',
    ];
  3. Nếu bước kết xuất trước làm chậm máy chủ của bạn hoặc bạn thấy một số lượng lớn yêu cầu kết xuất trước, hãy cân nhắc việc triển khai bộ nhớ đệm cho nội dung kết xuất trước hoặc xác minh rằng các yêu cầu đó đến từ các trình thu thập dữ liệu hợp lệ.
  4. Xác định xem các tác nhân người dùng yêu cầu nội dung cho máy tính hay thiết bị di động. Sau đó, hãy sử dụng tính năng phân phát động để cung cấp phiên bản phù hợp cho máy tính hoặc thiết bị di động. Sau đây là ví dụ về cách một cấu hình có thể xác định xem tác nhân người dùng yêu cầu nội dung cho máy tính hay thiết bị di động:
    isPrerenderedUA = userAgent.matches(botUserAgents)
    isMobileUA = userAgent.matches(['mobile', 'android'])
    
    if (!isPrerenderedUA) { } else { servePreRendered(isMobileUA) }
  5. Định cấu hình máy chủ của bạn để phân phối HTML tĩnh đến các trình thu thập dữ liệu mà bạn đã chọn. Bạn có thể thực hiện việc này theo một số cách tùy thuộc vào công nghệ bạn sử dụng. Sau đây là một số ví dụ:
    • Yêu cầu proxy từ trình thu thập thông tin đến trình kết xuất động.
    • Kết xuất trước trong quy trình triển khai của bạn và khiến máy chủ của bạn phân phát HTML tĩnh cho trình thu thập dữ liệu.
    • Chèn tính năng kết xuất động vào mã máy chủ tùy chỉnh của bạn.
    • Phân phát nội dung tĩnh từ dịch vụ kết xuất trước đến trình thu thập dữ liệu.
    • Sử dụng một phần mềm trung gian cho máy chủ của bạn (ví dụ: phần mềm trung gian rendertron).

Xác minh cấu hình của bạn

Sau khi bạn hoàn tất việc triển khai tính năng kết xuất động, hãy xác minh rằng mọi thứ hoạt động như mong đợi bằng cách kiểm tra URL thông qua các quy trình sau:

  1. Kiểm tra nội dung của bạn cho thiết bị di động và máy tính qua Công cụ kiểm tra URL để đảm bảo rằng nội dung cho máy tính và thiết bị di động cũng hiển thị trên trang đã kết xuất (trang đã kết xuất chính là những gì Google thấy trên trang của bạn).

    Thành công: Nội dung cho máy tính và thiết bị di động khớp với nội dung bạn muốn người dùng thấy.

    Thử lại: Nếu nội dung bạn thấy không khớp với nội dung bạn mong đợi, hãy xem phần khắc phục sự cố.

  2. Nếu bạn sử dụng dữ liệu có cấu trúc, hãy dùng Công cụ kiểm tra kết quả nhiều định dạng để kiểm tra xem dữ liệu có cấu trúc của bạn đã kết xuất đúng cách hay chưa

    Thành công: Dữ liệu có cấu trúc xuất hiện như bạn mong đợi.

    Thử lại: Nếu dữ liệu có cấu trúc không xuất hiện như bạn mong đợi, hãy xem phần khắc phục sự cố.

Khắc phục sự cố

Nếu nội dung của bạn cho thấy lỗi trong Công cụ kiểm tra URL hoặc nếu nội dung đó không xuất hiện trong kết quả của Google Tìm kiếm, hãy thử giải quyết một số vấn đề thường gặp. Nếu bạn vấn đề vẫn tiếp diễn, hãy đăng một chủ đề mới trong Cộng đồng trợ giúp của Trung tâm Google Tìm kiếm.

Nội dung không đầy đủ hoặc hiển thị không thống nhất

Nguyên nhân gây ra vấn đề: Có thể trình kết xuất của bạn bị định cấu hình sai hoặc có thể ứng dụng web của bạn không tương thích với giải pháp kết xuất mà bạn sử dụng. Đôi khi, thời gian chờ cũng có thể khiến nội dung không được kết xuất chính xác.

Khắc phục vấn đề: Tham khảo tài liệu về giải pháp kết xuất cụ thể để gỡ lỗi trong quá trình bạn thiết lập chế độ kết xuất động.

Thời gian phản hồi lâu

Nguyên nhân gây ra vấn đề: Việc sử dụng trình duyệt không có giao diện người dùng để hiển thị các trang theo yêu cầu thường dẫn đến thời gian phản hồi lâu. Điều này có thể khiến trình thu thập dữ liệu huỷ yêu cầu và không lập chỉ mục nội dung của bạn. Thời gian phản hồi lâu cũng có thể dẫn đến việc trình thu thập dữ liệu giảm tốc độ thu thập dữ liệu và lập chỉ mục nội dung của bạn.

Khắc phục vấn đề

  1. Thiết lập bộ nhớ đệm cho mã HTML kết xuất trước hoặc tạo phiên bản mã HTML tĩnh cho nội dung của bạn trong quá trình xây dựng.
  2. Đảm bảo bộ nhớ đệm đã được kích hoạt trong cấu hình của bạn (ví dụ: bằng cách chuyển hướng trình thu thập dữ liệu tới bộ nhớ đệm của bạn).
  3. Kiểm tra xem trình thu thập dữ liệu có nhanh chóng truy cập được vào nội dung của bạn hay không bằng cách dùng các công cụ kiểm tra như Công cụ kiểm tra kết quả nhiều định dạng hoặc webpagetest (bằng một chuỗi tác nhân người dùng tuỳ chỉnh trong danh sách tác nhân người dùng thu thập dữ liệu của Google). Yêu cầu của bạn không được hết thời gian.

Thành phần web không hiển thị như dự kiến

Nguyên nhân gây ra vấn đề: DOM tối bị tách biệt với nội dung còn lại trên trang. Giải pháp kết xuất (như Rendertron) không thể thấy nội dung bên trong DOM tối nằm riêng. Để biết thêm thông tin, hãy xem các phương pháp hay nhất cho thành phần web.

Khắc phục vấn đề

  1. Tải các polyfill webcomponents.js cho các phần tử tùy chỉnh và DOM tối.
  2. Dùng Công cụ kiểm tra kết quả nhiều định dạng hoặc Công cụ kiểm tra URL để kiểm tra xem nội dung có hiển thị trong HTML mà giải pháp kết xuất của bạn kết xuất hay không.

Dữ liệu có cấu trúc bị thiếu

Nguyên nhân gây ra vấn đề: Việc thiếu tác nhân người dùng dữ liệu có cấu trúc hoặc không đưa các thẻ tập lệnh JSON-LD vào dữ liệu đầu ra có thể gây ra lỗi về dữ liệu có cấu trúc.

Khắc phục vấn đề

  1. Dùng công cụ Kiểm tra kết quả nhiều định dạng để đảm bảo dữ liệu có cấu trúc xuất hiện trên trang. Sau đó, hãy định cấu hình tác nhân người dùng để kiểm tra nội dung trước khi kết xuất với Googlebot cho máy tính hoặc thiết bị di động.
  2. Đảm bảo các thẻ tập lệnh JSON-LD có trong mã HTML kết xuất động cho nội dung của bạn. Hãy tham khảo tài liệu về giải pháp kết xuất của bạn để biết thêm thông tin.