Bên trong Googlebot: làm rõ về quy trình thu thập thông tin, tìm nạp và các byte mà chúng tôi xử lý

Thứ Ba, ngày 31 tháng 3 năm 2026

Nếu đã nghe qua tập 105 của podcast Search Off the Record, thì có thể bạn từng nghe chúng tôi trình bày chuyên sâu về một chủ đề mà chúng tôi rất quan tâm (và các máy chủ của chúng tôi cũng vậy): cơ chế hoạt động bên trong của Googlebot.

Trong một thời gian dài, cái tên "Googlebot" đã gợi lên hình ảnh về một robot duy nhất, không biết mệt mỏi, đọc thông tin trên khắp Internet một cách có hệ thống. Nhưng thực tế thì phức tạp hơn một chút — và cũng thú vị hơn nhiều. Hôm nay, chúng tôi muốn bóc tách về cơ sở hạ tầng thu thập thông tin của mình, và đặc biệt tập trung vào điều khiến chúng tôi đau đầu: giới hạn kích thước dữ liệu.

Trước tiên, Googlebot không phải là một chương trình duy nhất

Hãy làm rõ về một cái tên mà trước nay vẫn thường bị hiểu nhầm. Vào đầu những năm 2000, Google chỉ có một sản phẩm nên chúng tôi chỉ có một trình thu thập thông tin. Gắn liền với cái tên "Googlebot" đó. Nhưng ngày nay, Googlebot chỉ tựa như một người dùng của một nền tảng thu thập thông tin tập trung.

Khi thấy Googlebot trong nhật ký máy chủ, bạn chỉ đang xem xét đến Google Tìm kiếm. Hàng chục ứng dụng khác (Google Mua sắm, AdSense và nhiều ứng dụng khác) đều điều hướng những yêu cầu thu thập thông tin thông qua cùng một cơ sở hạ tầng cơ bản này thông qua nhiều tên trình thu thập thông tin có tên gọi khác nhau, tài liệu về các trình thu thập thông tin lớn hơn có trên trang web về cơ sở hạ tầng Trình thu thập thông tin của Google.

Giới hạn 2 MB: điều gì sẽ xảy ra với các byte của bạn?

Mọi thứ bắt đầu trở nên khá là khó hiểu từ đây. Mọi máy khách thuộc về cơ sở hạ tầng của trình thu thập thông tin đều cần thiết lập một số chế độ cài đặt cho các hoạt động tìm nạp dữ liệu. Trong số các chế độ cài đặt này có chuỗi tác nhân người dùng, những mã thông báo tác nhân người dùng mà trình thu thập thông tin cần tìm trong tệp robots.txt, cũng như số byte mà trình thu thập thông tin sẽ tìm nạp từ một URL duy nhất.

Hiện tại thì Googlebot tìm nạp tối đa 2 MB đối với mọi URL riêng lẻ (ngoại trừ tệp PDF). Điều này có nghĩa là Googlebot chỉ thu thập thông tin 2 MB đầu tiên của một tài nguyên, tính cả tiêu đề HTTP. Đối với tệp PDF, giới hạn là 64 MB.

Trình thu thập thông tin hình ảnh và video thường có nhiều giá trị ngưỡng, và phần lớn các giá trị này sẽ phụ thuộc vào sản phẩm mà trình thu thập thông tin đó đang tìm nạp. Ví dụ: hoạt động tìm nạp biểu tượng trang web có thể có giới hạn rất thấp, không giống như Tìm kiếm hình ảnh.

Đối với mọi trình thu thập thông tin khác không chỉ định giới hạn, giới hạn mặc định sẽ là 15 MB, bất kể loại nội dung.

Điều này có ý nghĩa gì đối với các byte mà máy chủ của bạn gửi qua mạng?

  1. Tìm nạp một phần: Nếu tệp HTML của bạn lớn hơn 2 MB, thì Googlebot sẽ không từ chối trang. Thay vào đó, hoạt động tìm nạp sẽ dừng chính xác ở mức giới hạn 2 MB. Xin lưu ý rằng giới hạn này tính cả tiêu đề của yêu cầu HTTP.
  2. Xử lý phần bị cắt: Phần đã tải xuống đó (2 MB đầu tiên của các byte) sẽ được chuyển đến hệ thống lập chỉ mục và Dịch vụ kết xuất web (WRS) của chúng tôi như thể đó là tệp hoàn chỉnh.
  3. Các byte không nhìn thấy: Mọi byte tồn tại sau ngưỡng 2 MB đó đều bị bỏ qua hoàn toàn. Các byte này sẽ không được tìm nạp, không được kết xuất và không được lập chỉ mục.
  4. Đưa tài nguyên vào: Mọi tài nguyên được tham chiếu trong HTML (ngoại trừ nội dung đa phương tiện, phông chữ và một số tệp lạ) sẽ được tìm nạp bởi WRS thông qua Googlebot giống như HTML mẹ. Các tài nguyên này sẽ có bộ đếm byte riêng biệt đối với mỗi URL và sẽ không được tính vào kích thước của trang mẹ.

Đối với phần lớn trang web, 2 MB dữ liệu thực tải HTML là rất lớn và bạn sẽ không bao giờ đạt đến giới hạn này. Tuy nhiên, nếu trang của bạn có chứa hình ảnh base64 cùng dòng có kích thước lớn, các khối lớn CSS/JavaScript cùng dòng, hoặc bắt đầu bằng các trình đơn có kích thước hàng megabyte, thì có thể bạn sẽ vô tình đẩy nội dung văn bản thực tế hoặc dữ liệu có cấu trúc quan trọng của mình vượt quá mức 2 MB. Nếu những byte quan trọng đó không được tìm nạp, thì đối với Googlebot, các byte đó đơn giản là không tồn tại.

Kết xuất các byte

Sau khi truy xuất thành công các byte (đến giới hạn tối đa), trình thu thập thông tin sẽ chuyển quyền cho WRS. WRS xử lý JavaScript và thực thi mã phía máy khách tương tự như một trình duyệt hiện đại để hiểu được trạng thái trực quan và trạng thái văn bản sau cùng của trang. Hoạt động kết xuất sẽ kéo và thực thi các tệp JavaScript và CSS, đồng thời xử lý các yêu cầu XHR để hiểu rõ hơn về nội dung và cấu trúc dạng văn bản của trang (quá trình này không yêu cầu hình ảnh hoặc video). Giới hạn 2 MB cũng áp dụng đối với mỗi tài nguyên được yêu cầu.

Tuy nhiên, hãy nhớ rằng WRS chỉ có thể thực thi mã mà trình thu thập thông tin thực sự truy xuất. Hơn nữa, WRS hoạt động mà không lưu giữ trạng thái – WRS sẽ xoá bộ nhớ cục bộ và dữ liệu phiên giữa các yêu cầu. Điều này có thể gây ra nhiều tác động cụ thể đến cách thức mà hệ thống của chúng tôi diễn giải các phần tử động, phụ thuộc vào JavaScript.

Các phương pháp hay nhất đối với các byte

Để đảm bảo Googlebot có thể tìm nạp và hiểu nội dung của bạn một cách hiệu quả, hãy lưu ý những phương pháp hay nhất ở cấp độ byte sau đây:

  • Giữ cho HTML của bạn gọn gàng: Di chuyển CSS và JavaScript có dung lượng lớn sang các tệp bên ngoài. Mặc dù tài liệu HTML ban đầu bị giới hạn ở mức 2 MB, nhưng các tập lệnh và biểu định kiểu bên ngoài sẽ được tìm nạp riêng (tuỳ thuộc vào giới hạn riêng của các tập lệnh và biểu định kiểu này).
  • Vấn đề về thứ tự quan trọng: Hãy đặt các phần tử quan trọng nhất (chẳng hạn như thẻ meta, phần tử <title>, phần tử <link>, trang chính tắc và dữ liệu có cấu trúc thiết yếu) ở vị trí cao hơn trong tài liệu HTML. Điều này đảm bảo rằng những phần tử đó khó mà xuất hiện bên dưới phần bị cắt.
  • Giám sát nhật ký máy chủ: Theo dõi thời gian phản hồi của máy chủ. Nếu máy chủ của bạn gặp khó khăn trong việc phân phát các byte, thì trình thu thập thông tin của chúng tôi sẽ tự động giảm tốc độ để tránh làm quá tải cơ sở hạ tầng của bạn, điều này sẽ làm giảm tần suất thu thập thông tin.

Xin lưu ý rằng giới hạn này không cố định và có thể thay đổi theo thời gian khi web phát triển và các trang HTML tăng kích thước. (Hoặc giảm kích thước. Hy vọng là sẽ giảm.)

Thu thập thông tin không phải là phép màu, mà là quá trình trao đổi các byte ở quy mô lớn và được điều phối vô cùng linh hoạt. Nhờ nắm rõ được cách thức mà cơ sở hạ tầng tìm nạp trung tâm của chúng tôi truy xuất và giới hạn những byte đó, bạn có thể đảm bảo rằng nội dung quan trọng nhất trên trang web của mình luôn được đưa vào.

Chúc bạn tối ưu hoá thành công!

Bạn muốn biết thêm thông tin hậu trường? Hãy xem Tập 105 của podcast Search Off the Record trên YouTube hoặc bất cứ nền tảng nào bạn nghe podcast!