Nội dung được tải qua XMLHttpRequest (xhr): Làm cách nào để google biết về nó?


7

Theo chính google và một câu hỏi khác ở đây , các bot của google thực thi JavaScript trên các trang web được thu thập thông tin và lập chỉ mục nội dung được hiển thị.

Tuy nhiên,

[a] ccording tới [các] kinh nghiệm [của ít nhất một công ty này] , trong khi hầu hết các chức năng dựa trên JavaScript hiện nay được hiểu bởi Googlebot, nó liên tục thất bại trong việc thu thập nội dung lấy bằng XMLHttpRequest API từ một nguồn bên ngoài - hoặc bất cứ điều gì được xây dựng dựa trên hoặc liên quan đến API này. Hành vi này hiện diện trong JavaScript, jQuery, AngularJS thuần túy hoặc các khung JavaScript hiện đại khác. Bất cứ khi nào bạn cần lấy nội dung từ URL "bên ngoài" hoặc gọi điểm cuối API REST để tìm nạp một số dữ liệu, rất có thể nó sẽ không được thu thập và lập chỉ mục chính xác.

(nhấn mạnh của tôi) Hành vi này hiện chúng ta cũng đang phải đối mặt:

  • Chúng tôi có một ứng dụng phản ứng tích hợp vào trang web của khách hàng, trang đích của họ là danh sách các thứ có liên kết đến một trang con cho mỗi ( <a data-reactid="0.1.2.3.4" href="https://webmasters.stackexchange.com/some/site/itemid/9876">)
  • Trang đích được hiển thị chính xác trong bảng điều khiển tìm kiếm của Google ("Đây là cách Googlebot thấy trang" bằng trực quan "Đây là cách khách truy cập vào trang web của bạn sẽ nhìn thấy trang")
  • Nội dung của trang đích có thể được tìm thấy trong kết quả tìm kiếm của google.
  • Không có nội dung của bất kỳ trang con nào có thể được tìm thấy qua google trong thời gian tới (vài tuần sau, nội dung của một phần của các trang con là) .

Dưới đây là một ứng dụng phản ứng demo với các liên kết và trang con được tạo ra phản ứng / js được lập chỉ mục chính xác. Sự khác biệt chính là, như đã đề cập, chúng tôi lấy nội dung của các trang con từ một máy chủ bên ngoài. Không có cách nào khác - chúng tôi có nội dung, nhưng trang web sẽ hiển thị nó chỉ bao gồm tập lệnh js của chúng tôi và một yếu tố để kết xuất nó, chúng tôi không có quyền kiểm soát trang web nữa, ít hơn máy chủ mà nó chạy.

Là trích dẫn ở trên là chính xác hay tôi đang thiếu một cái gì đó?


có lẽ bạn có thể sử dụng proxy, vì vậy có vẻ như yêu cầu đến máy chủ của bạn? Giống như: /our/site/proxy/http%3A%2F%2Fdifferent.com%2Fcontent%2F2
Milo Tischler

@milo: Xin lỗi, tôi đã không chính xác. Trình duyệt của người dùng và googlebot thực sự truy cập our-clients-site.com/some/site, tải oursite.com/app.js, sau đó tải dữ liệu từ oursite.com/api/item...và hiển thị trang. Vì vậy, chúng tôi thực sự kiểm soát trang web API, nhưng không phải trang web thực sự đã truy cập. (Xin lỗi, đã bỏ lỡ bình luận của bạn tuần trước. Dù sao cũng cảm ơn bạn. :-))
Titanic Tub Tree Tiger

Một tháng rưỡi sau, google thực sự đã lập chỉ mục một số ít các trang con mục, do đó, nó có thể làm như vậy về nguyên tắc. Mặc dù vậy, tôi không chắc chắn điều gì đã ngăn nó lập chỉ mục cho hai chục trang khác. Giả thuyết hoạt động của chúng tôi là API không đáp ứng đủ nhanh, mặc dù mỗi trang mục chứa một số nội dung tĩnh xung quanh nội dung đi qua API, cũng không xuất hiện trong kết quả tìm kiếm (ngoại trừ số ít trang đã nói ở trên, +1 cho trang đích).
Titanic Tub Tree Tiger

Báo giá là sai, bạn đã chứng minh điều đó;) Tuy nhiên, sử dụng API Lịch sử với PushState () là một yêu cầu khó.
Jonas Eberle

Câu trả lời:


2

Như chính bạn đã chứng minh @titanic rub cọ cọ trên thực tế Google có thể phân tích nội dung từ API XHLHTTPRequest. Vấn đề ở đây không liên quan đến việc phân tích trang web mà là vấn đề mất bao lâu để nội dung được cập nhật lên chỉ mục tìm kiếm. Dựa trên nhận xét của bạn, nó sẽ xuất hiện 6 tuần sau đó, nội dung đã bắt đầu được lập chỉ mục và liệt kê trên Google, điều này không hoàn toàn vô lý.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.