Khi quản trị một trang web, việc đối mặt với tình trạng máy chủ bị quá tải do các bot tìm kiếm liên tục thu thập dữ liệu là một vấn đề khá phổ biến. Để giải quyết tình trạng này, nhiều quản trị viên web tìm đến các chỉ thị kiểm soát tốc độ cào dữ liệu trong tệp robots.txt. Một trong những giải pháp thường được nhắc đến nhất chính là thiết lập thời gian chờ giữa các lần truy cập của bot.
Khái niệm Crawl-delay là gì
Crawl-delay là một chỉ thị phi chính thức trong file robots.txt, yêu cầu các bot tìm kiếm trì hoãn một khoảng thời gian nhất định (tính bằng giây) giữa các lần gửi yêu cầu truy cập trang web nhằm giảm tải cho máy chủ. Mục đích chính của lệnh này là bảo vệ tài nguyên băng thông và ngăn chặn tình trạng sập server khi có quá nhiều bot truy cập cùng lúc.

Bằng cách ép các robot tìm kiếm phải chờ đợi trước khi tải trang tiếp theo, quản trị viên có thể kiểm soát được tần suất thu thập dữ liệu. Điều này đặc biệt hữu ích đối với các trang web sử dụng dịch vụ hosting chia sẻ (shared hosting) có tài nguyên hạn chế. Bên cạnh việc Tối ưu hóa crawl depth để cải thiện cấu trúc website, thiết lập thời gian chờ hợp lý cũng là một bước quan trọng để duy trì hiệu suất ổn định cho website.
Tuy nhiên, vì đây không phải là một tiêu chuẩn chính thức của Robots Exclusion Protocol, không phải công cụ tìm kiếm nào cũng tuân thủ chỉ thị này. Việc hiểu rõ bản chất của lệnh sẽ giúp bạn tránh được những sai lầm nghiêm trọng trong quá trình tối ưu hóa kỹ thuật.
Cách hoạt động và công thức tính toán của Crawl-delay
Việc thiết lập thời gian chờ cho bot không chỉ đơn thuần là gõ một con số vào file cấu hình. Bạn cần hiểu rõ ý nghĩa toán học đằng sau con số đó để không vô tình chặn đứng quá trình lập chỉ mục của website.
Ý nghĩa của giá trị Crawl-delay trong robots.txt
Giá trị số được đặt sau lệnh Crawl-delay đại diện cho số giây tối thiểu mà một bot phải chờ giữa hai lần gửi yêu cầu HTTP liên tiếp đến máy chủ của bạn. Ví dụ, nếu bạn đặt giá trị là 10, bot sẽ tải một trang, sau đó đợi đúng 10 giây rồi mới tiếp tục tải trang thứ hai.
Khoảng thời gian chờ này giúp máy chủ có đủ thời gian để xử lý các yêu cầu từ người dùng thực, thay vì dồn toàn bộ tài nguyên CPU và RAM để phục vụ các trình thu thập dữ liệu. Tuy nhiên, mỗi loại bot có thể diễn giải khoảng thời gian này theo những cách hơi khác nhau, có bot coi đó là thời gian chờ tuyệt đối, có bot lại coi đó là mức trung bình.
Công thức tính giới hạn số trang cào mỗi ngày
Khi bạn áp dụng một khoảng thời gian chờ cố định, bạn đang trực tiếp giới hạn số lượng trang tối đa mà một bot có thể thu thập trong vòng 24 giờ. Một ngày có 86.400 giây, do đó công thức tính toán rất đơn giản: lấy 86.400 chia cho giá trị thời gian chờ.
Ví dụ, nếu bạn thiết lập Crawl-delay: 10, bot sẽ chỉ cào được tối đa 6 trang mỗi phút. Nhân lên cho một ngày, số lượng trang tối đa được cào sẽ là 8.640 trang (86.400 / 10). Đối với một website nhỏ, con số này là quá đủ. Nhưng đối với các trang thương mại điện tử lớn có hàng trăm ngàn sản phẩm, việc cấu hình sai thông số này có thể là một Nguyên nhân gây lãng phí crawl budget phổ biến, khiến nội dung mới mất rất nhiều tháng để được lập chỉ mục.
Mức độ hỗ trợ Crawl-delay của các công cụ tìm kiếm
Không phải mọi trình thu thập dữ liệu đều xử lý lệnh chờ này giống nhau. Việc nắm rõ mức độ hỗ trợ của từng công cụ tìm kiếm là bắt buộc trước khi bạn quyết định thêm lệnh vào file robots.txt.

|
Công cụ tìm kiếm |
Hỗ trợ Crawl-delay? |
Cách xử lý / Giải pháp thay thế |
|
Google (Googlebot) |
Không |
Bỏ qua hoàn toàn. Cần dùng mã HTTP 429/503 hoặc Google Search Console. |
|
Bing (Bingbot) |
Có |
Tuân thủ tốt. Khuyến nghị giá trị từ 1 đến 30 giây. |
|
Yandex (YandexBot) |
Có |
Coi là thời gian chờ tối thiểu. Khuyên dùng Yandex.Webmaster. |
|
Baidu (Baiduspider) |
Không rõ ràng |
Thường bỏ qua. Cần kiểm soát qua Baidu Webmaster Tools. |
Tại sao Googlebot bỏ qua chỉ thị Crawl-delay
Hệ thống của Google sử dụng các thuật toán thu thập dữ liệu động, tự động đánh giá khả năng chịu tải của máy chủ và điều chỉnh tốc độ cào cho phù hợp. Do đó, Googlebot hoàn toàn bỏ qua chỉ thị Crawl-delay trong file robots.txt.
Google cho rằng việc ép bot chờ một khoảng thời gian cố định là không linh hoạt và không phản ánh đúng năng lực thực sự của hạ tầng máy chủ hiện đại. Thay vì cố gắng dùng lệnh này để chặn Google, bạn nên tìm hiểu Chặn render khi crawl là gì hoặc tối ưu hóa mã nguồn để server phản hồi nhanh hơn.
Cách Bingbot và YandexBot tuân thủ Crawl-delay
Trái ngược với Google, Bingbot và YandexBot vẫn tôn trọng chỉ thị này để giúp các quản trị viên web bảo vệ máy chủ. Bingbot khuyến nghị người dùng thiết lập giá trị từ 1 đến 30 giây tùy thuộc vào sức mạnh của server.
YandexBot cũng tuân thủ lệnh này và coi đó là khoảng thời gian chờ tối thiểu giữa các kết nối. Tuy nhiên, Yandex vẫn khuyến khích người dùng sử dụng công cụ Yandex.Webmaster để điều chỉnh tốc độ cào một cách trực quan và chính xác hơn thay vì chỉ phụ thuộc vào file cấu hình tĩnh.
Cách cấu hình Crawl-delay trong file robots.txt
Nếu bạn xác định rằng máy chủ của mình đang bị quá tải bởi Bingbot hoặc các bot tìm kiếm khác có hỗ trợ lệnh này, bạn có thể thêm cấu hình trực tiếp vào tệp robots.txt.

Cấu hình Crawl-delay cho toàn bộ các bot
Để áp dụng thời gian chờ cho tất cả các trình thu thập dữ liệu có hỗ trợ lệnh này, bạn sử dụng ký tự đại diện dấu sao (*) cho User-agent. Dưới đây là đoạn mã ví dụ:
User-agent: *
Crawl-delay: 10
Cấu hình này yêu cầu mọi bot (ngoại trừ những bot bỏ qua lệnh như Googlebot) phải đợi 10 giây giữa các lần tải trang. Đây là giải pháp nhanh chóng nhất khi bạn không thể xác định chính xác bot nào đang gây ra tình trạng quá tải.
Cấu hình Crawl-delay cho từng bot cụ thể
Thay vì giới hạn toàn bộ, một phương pháp an toàn hơn là chỉ nhắm mục tiêu vào những bot đang tiêu tốn quá nhiều tài nguyên. Bạn có thể chỉ định đích danh User-agent của bot đó.
User-agent: Bingbot
Crawl-delay: 5 User-agent: Slurp
Crawl-delay: 10
Trong ví dụ trên, Bingbot sẽ phải đợi 5 giây, trong khi Yahoo Slurp phải đợi 10 giây. Việc nhắm mục tiêu cụ thể giúp bạn bảo vệ máy chủ mà không làm ảnh hưởng đến tốc độ thu thập dữ liệu của các bot thân thiện khác.
Giải pháp thay thế Crawl-delay để kiểm soát Googlebot
Vì Googlebot bỏ qua lệnh chờ trong robots.txt, bạn cần áp dụng các biện pháp kỹ thuật cấp cao hơn ở phía máy chủ để kiểm soát tốc độ thu thập dữ liệu của công cụ tìm kiếm này.

Sử dụng mã trạng thái HTTP 429 và 503
Khi máy chủ của bạn bắt đầu có dấu hiệu quá tải, cách tốt nhất để báo hiệu cho Googlebot giảm tốc độ là trả về mã trạng thái HTTP phù hợp. Mã 429 (Too Many Requests) thông báo rằng bot đang gửi quá nhiều yêu cầu trong một thời gian ngắn.
Mã 503 (Service Unavailable) cho biết máy chủ hiện đang tạm thời không thể xử lý yêu cầu. Khi Googlebot nhận được các mã này, nó sẽ tự động chậm lại và quay lại sau. Tuy nhiên, bạn chỉ nên duy trì trạng thái này tối đa 2 ngày; nếu kéo dài hơn, Google có thể bắt đầu xóa các trang của bạn khỏi chỉ mục.
Gửi báo cáo quá tải dữ liệu trong Google Search Console
Nếu Googlebot liên tục cào dữ liệu với tần suất quá cao gây ảnh hưởng đến trải nghiệm người dùng thực, bạn có thể gửi báo cáo trực tiếp cho Google. Thông qua công cụ báo cáo sự cố thu thập dữ liệu (Report Googlebot overcrawling), bạn có thể yêu cầu Google tạm thời giảm tốc độ cào đối với website của mình.
Đây là một giải pháp an toàn và chính thống. Nếu bạn gặp khó khăn trong việc phân tích log máy chủ hoặc thiết lập các mã phản hồi HTTP, đội ngũ chuyên gia tại V4SEO luôn sẵn sàng hỗ trợ bạn kiểm toán kỹ thuật toàn diện, đảm bảo website hoạt động mượt mà mà không đánh mất thứ hạng SEO.
Câu hỏi thường gặp
Cấu hình Crawl-delay 10 trong robots.txt nghĩa là gì?
Lệnh này yêu cầu các robot tìm kiếm (những bot có hỗ trợ chỉ thị này) phải đợi ít nhất 10 giây sau khi tải xong một trang rồi mới được phép gửi yêu cầu tải trang tiếp theo. Điều này giúp giới hạn tốc độ cào ở mức tối đa 6 trang mỗi phút.
Sử dụng Crawl-delay có gây ảnh hưởng xấu đến SEO không?
Có thể gây ảnh hưởng tiêu cực nếu bạn đặt giá trị quá lớn trên một trang web có quy mô đồ sộ. Việc giới hạn tốc độ cào sẽ làm giảm số lượng trang được lập chỉ mục mỗi ngày, khiến các bài viết hoặc sản phẩm mới chậm xuất hiện trên kết quả tìm kiếm của Bing hoặc Yandex.
Tại sao Googlebot lại bỏ qua lệnh Crawl-delay?
Googlebot sử dụng các thuật toán thông minh để tự động đo lường thời gian phản hồi của máy chủ. Nếu server phản hồi nhanh, Googlebot sẽ cào nhanh hơn; nếu server chậm lại, nó sẽ tự động giảm tốc độ. Do đó, Google coi việc thiết lập một khoảng thời gian chờ cố định là không cần thiết và kém hiệu quả.
Nên thiết lập giá trị Crawl-delay bao nhiêu giây là tối ưu?
Không có một con số cố định cho mọi website. Tuy nhiên, đối với các máy chủ yếu hoặc shared hosting, mức khuyến nghị thông thường là từ 1 đến 5 giây. Bạn nên tránh đặt giá trị trên 10 giây trừ khi máy chủ đang trong tình trạng cực kỳ nguy cấp.
Cách kiểm tra cấu hình Crawl-delay hoạt động chính xác?
Bạn có thể sử dụng công cụ kiểm tra robots.txt trong Bing Webmaster Tools hoặc Yandex Webmaster để xác nhận xem file cấu hình đã hợp lệ chưa. Đồng thời, hãy theo dõi biểu đồ tần suất thu thập dữ liệu (crawl rate) trong các công cụ này để xem bot có thực sự giảm tốc độ cào sau khi áp dụng lệnh hay không.
