429 Quá nhiều yêu cầu

Mã HTTP 429 nghĩa là gì, cách Google xử lý giới hạn tốc độ và giảm crawl, ảnh hưởng đến ngân sách crawl và cách cấu hình máy chủ trả 429 mà không gây deindex.

Xuất bản lần đầu: 27 thg 6, 2026 · Cập nhật lần cuối: 22 thg 8, 2026 · Advanced
Ngôn ngữ
2 tín hiệu bằng chứng trên trang này

429 Too Many Requests là mã 4xx duy nhất Google không xử lý như lỗi client. Khi gặp đủ nhiều phản hồi, Google coi đó là tín hiệu máy chủ quá tải giống nhóm 5xx và giảm tốc độ crawl của Googlebot trên toàn hostname thay vì loại nội dung. Đây là cách đúng được Google tán thành để làm crawler chậm lại, không phải 403 hay 404. Nhưng 429 là công cụ ngắn hạn: chỉ dùng vài giờ hoặc 1–2 ngày, gửi Retry-After như thực hành tốt nhất và giới hạn đúng lưu lượng. 429 kéo dài trên cùng URL nhiều ngày vẫn có thể khiến URL bị loại khỏi chỉ mục.

Tóm tắt — 429 là mã 4xx duy nhất Google xử lý như 5xx: khi gặp số lượng đáng kể phản hồi 500/503/429, Google coi đó là tín hiệu máy chủ quá tải và giảm tốc độ crawl của Googlebot trên toàn hostname thay vì loại nội dung. Đây là mã duy nhất Google tán thành để làm crawler chậm lại — tuyệt đối không dùng 403 hay 404. Tài liệu Google hướng dẫn dùng khẩn cấp trong “vài giờ hoặc 1–2 ngày”; đây không phải cửa sổ an toàn được bảo đảm. 429 kéo dài trên cùng URL có nguy cơ khiến URL cuối cùng bị loại khỏi chỉ mục, còn tốc độ crawl bắt đầu tăng lại — không nhất thiết tức thì hay phục hồi hoàn toàn — khi lượng lỗi giảm. RFC 6585 nói phản hồi 429 NÊN giải thích tình trạng và CÓ THỂ gồm Retry-After; gửi header là thực hành khuyến nghị, không phải yêu cầu tuân thủ. Hãy giới hạn đúng lưu lượng và xác minh danh tính crawler trước khi tạo ngoại lệ.

429 ở cấp giao thức

Theo cách MDN diễn đạt trực tiếp từ đặc tả: “The HTTP 429 Too Many Requests client error response status code indicates the client has sent too many requests in a given amount of time. This mechanism of asking the client to slow down the rate of requests is commonly called ‘rate limiting.’” (bản dịch) «Mã trạng thái phản hồi lỗi client HTTP 429 Too Many Requests cho biết client đã gửi quá nhiều yêu cầu trong một khoảng thời gian. Cơ chế yêu cầu client giảm tốc độ gửi yêu cầu thường được gọi là giới hạn tốc độ.» Evidence for this claim A 429 response means the user sent too many requests in a given time, and the response may include Retry-After. Scope: RFC 9110 defines the status and optional Retry-After field; it does not define a universal rate threshold. Confidence: high · Verified: IETF: RFC 9110 §15.5.20 — 429 Too Many Requests

RFC 6585 §4 chính xác hơn phần lớn bản tóm tắt. Nội dung phản hồi 429 NÊN giải thích tình trạng và CÓ THỂ gồm header Retry-After, cho client biết số giây cụ thể cần đợi trước khi thử lại; RFC 9110 cũng cho phép ngày HTTP. Retry-After là thực hành khuyến nghị, không phải yêu cầu tuân thủ. Đặc tả cũng không quy định cách nhận diện client hay cách đếm yêu cầu; toàn bộ do thành phần phát phản hồi quyết định, như theo IP, phiên, khóa API hay tài nguyên. Một quy tắc dễ bỏ sót: RFC 6585 nói phản hồi 429 không được lưu trong cache. Nếu thấy 429 có vẻ được cache hoặc phát lại khi origin khỏe, đó là lỗi của thành phần trung gian như CDN hay proxy, không phải origin vừa quyết định giới hạn lại.

Tôi luôn diễn đạt đơn giản trong hướng dẫn Mã trạng thái HTTP và tác động SEO: 429 là “a form of rate-limiting to protect the server because the client sent too many requests to the server too fast.” (bản dịch) «một hình thức giới hạn tốc độ để bảo vệ máy chủ vì client gửi quá nhiều yêu cầu quá nhanh.» Theo danh nghĩa, đây là lỗi client vì client đã yêu cầu quá nhiều. Nhưng chính cách nhìn đó là nơi câu chuyện SEO tách khỏi đặc tả.

Ngoại lệ duy nhất trong nhóm 4xx

Sự thật quan trọng nhất của bài này: Google không xử lý 429 như phần còn lại của nhóm 4xx. Gary Illyes viết cả một bài Google Search Central về chủ đề này vào tháng 2 năm 2023 vì nhiều site và CDN dùng sai 404 để làm Googlebot chậm lại đến mức Google phải yêu cầu họ dừng.

Quy tắc của ông: 429 là ngoại lệ “too many requests” (bản dịch) «quá nhiều yêu cầu», tín hiệu rõ ràng để robot tuân thủ như Googlebot chậm lại khi làm máy chủ quá tải. Mặt ngược lại trong tài liệu mã trạng thái của Google: “Don’t use 401 and 403 status codes for limiting the crawl rate. The 4xx status codes, except 429, have no effect on crawl rate.” (bản dịch) «Đừng dùng mã 401 và 403 để giới hạn tốc độ crawl. Mã 4xx, trừ 429, không ảnh hưởng tốc độ crawl.»

Vì vậy, trong khi 403 và 404 khiến nội dung bị loại khỏi Search, 429 tạo ra tình trạng giảm tốc tạm thời. Google thực sự gom mã này với lỗi máy chủ: “Google’s crawlers treat the 429 status code as a signal that the server is overloaded, and it’s considered a server error.” (bản dịch) «Crawler Google coi 429 là tín hiệu máy chủ quá tải và xem đó là lỗi máy chủ.» Evidence for this claim Google treats 429 as a server-overload signal that reduces crawl rate and recommends 429, 500, or 503 for temporary crawl reduction instead of other 4xx codes. Scope: Google's guidance covers Google crawler behavior and short-term overload; it does not promise indexing preservation during prolonged unavailability. Confidence: high · Verified: Google: Reduce Google crawl rate

Điều này khiến 429 trở thành họ hàng hữu ích của 503 Service Unavailable, tín hiệu bảo trì hoặc tạm không khả dụng truyền thống, và đối lập hoàn toàn với 403 Forbidden, công cụ sai cho giới hạn tốc độ dù nhiều tường lửa dùng mặc định.

Tác động tốc độ crawl ở toàn hostname — khi vượt ngưỡng

Hai phạm vi khác nhau thường bị đánh đồng. Cách bạn đếm và đặt khóa giới hạn — theo IP, phiên, khóa API, tài nguyên hay máy chủ — là chính sách riêng; đặc tả HTTP không quy định. Cách Google xử lý lỗi mà họ quan sát là hành vi riêng đã được ghi nhận và phụ thuộc vào lượng lỗi, không phải một phản hồi: “Google’s crawling infrastructure reduces your site’s crawling rate when it encounters a significant number of URLs with 500, 503, or 429 HTTP response status codes.” (bản dịch) «Hạ tầng crawl của Google giảm tốc độ crawl site khi gặp số lượng đáng kể URL trả 500, 503 hoặc 429.» Khi vượt ngưỡng, “the reduced crawl rate affects the whole hostname of your site (for example, subdomain.example.com), both the crawling of the URLs that return errors, as well as the URLs that return content.” (bản dịch) «Tốc độ giảm ảnh hưởng toàn hostname, cả URL trả lỗi lẫn URL trả nội dung.»

Nói cách khác, nếu bạn trả 429 cho một nhóm trang, chẳng hạn đường dẫn API nặng, với lượng đủ lớn, Googlebot giảm crawl trên toàn bộ hostname, gồm cả trang vẫn trả 200. Đây thường là hiệu ứng mong muốn khi mục tiêu là giảm tổng tải. Nhưng riêng một 429 cô lập trên một đường dẫn không chứng minh hiệu ứng toàn hostname; câu chữ của Google giới hạn vào “số lượng đáng kể” phản hồi lỗi, không phải bất kỳ phản hồi đơn lẻ nào.

Evidence for this claim When Google encounters a significant number of 500, 503, or 429 responses, its documented crawl-rate reduction affects the whole hostname, including error URLs and URLs still returning content; one isolated 429 does not establish that site-wide effect. Scope: hostname crawl-load incidents Confidence: high · Verified: Reduce Google crawl rate

Hướng dẫn 1–2 ngày — lúc 429 trở nên rủi ro

429 là tín hiệu ngắn hạn, và Google đưa ra hướng dẫn dùng khẩn cấp cụ thể chứ không phải cửa sổ an toàn hay ngưỡng cứng: “If you need to urgently reduce the crawl rate for short period of time (for example, a couple of hours, or 1-2 days), then return 500, 503, or 429 HTTP response status code instead of 200 to the crawl requests.” (bản dịch) «Nếu cần khẩn cấp giảm tốc độ crawl trong thời gian ngắn, như vài giờ hoặc 1–2 ngày, hãy trả 500, 503 hoặc 429 thay vì 200 cho yêu cầu crawl.»

Kéo dài hơn sẽ vào vùng rủi ro, dù Google mô tả là khả năng chứ không phải lời hứa: “We don’t recommend that you do this for a long period of time (meaning, longer than 1-2 days) as it may have a negative effect on how your site appears in Google products… if Googlebot observes these status codes on the same URL for multiple days, the URL may be dropped from Google’s index.” (bản dịch) «Chúng tôi không khuyến nghị làm việc này lâu hơn 1–2 ngày vì có thể ảnh hưởng tiêu cực đến cách site xuất hiện trong sản phẩm Google; nếu Googlebot thấy các mã này trên cùng URL nhiều ngày, URL có thể bị loại khỏi chỉ mục.» Tài liệu mã trạng thái nói tương tự cho 5xx và 429: “already indexed URLs are preserved in the index, but eventually dropped.” (bản dịch) «URL đã lập chỉ mục được giữ lại, nhưng cuối cùng sẽ bị loại.»

Mô hình rủi ro trung thực là: 429 ngắn hạn phù hợp cửa sổ Google khuyến nghị cho dùng khẩn cấp; 429 kéo dài trên cùng URL nhiều ngày là lúc ngôn ngữ của Google chuyển sang “có thể” và “cuối cùng bị loại” — rủi ro có tài liệu, không phải kết quả được bảo đảm theo hướng nào. Cơ chế giống 503 kéo dài.

Tốc độ crawl tự phục hồi

Mặt tích cực là không có cờ phạt nào bám theo site. Khi lỗi giảm, Google nói “the crawl rate will automatically start increasing again.” (bản dịch) «tốc độ crawl sẽ tự động bắt đầu tăng lại.» Bạn không cần nộp hay yêu cầu lại gì. Nhưng lưu ý câu chữ chính xác: Google nói “bắt đầu tăng”, không nói “instantly returns to your prior rate.” (bản dịch) «lập tức trở lại tốc độ trước». Hãy coi đây là hướng phục hồi được ghi nhận, không có lịch cố định hay đích được bảo đảm, chứ không phải SLA.

Evidence for this claim Google says crawl rate automatically starts increasing after the number of overload responses falls; this describes direction, not an immediate return, fixed recovery time, or guaranteed prior crawl rate. Scope: hostname crawl-load incidents Confidence: high · Verified: Reduce Google crawl rate

Đối chiếu với vấn đề ngược lại — muốn Google vĩnh viễn crawl ít hơn. Nếu không thể phục vụ lỗi, Google nói hãy “file a special request to report a problem with unusually high crawl rate” (bản dịch) «gửi yêu cầu đặc biệt để báo vấn đề tốc độ crawl cao bất thường»; đây là quy trình thủ công có thể mất nhiều ngày và không được bảo đảm. Phục hồi không có trở ngại đó.

Bing xử lý 429 thế nào

Nhiều nguồn trong ngành báo cáo Bingbot hành xử tương tự, lùi lại khi thấy 429/500/503 báo quá tải, nhưng trong lượt nghiên cứu này tôi không thể xác nhận độc lập câu chữ hiện hành trên trang trợ giúp Bing vì đó là SPA render bằng JavaScript không cung cấp văn bản tĩnh có thể fetch. Hãy coi nhận định tương đồng là thông tin ngành, không phải điều tôi đã xác minh với tài liệu Bing hiện hành. Điều Bing xác nhận trong hướng dẫn lịch sử là hai cơ chế chủ động mà Google không cung cấp cùng hình thức:

  • Crawl Control trong Bing Webmaster Tools, lưới số yêu cầu mỗi giây cho phép đặt tốc độ Bingbot theo giờ trong ngày.
  • Chỉ thị crawl-delay trong robots.txt. Hướng dẫn Bing Webmaster hiện hành ghi nhận giá trị 1–20 giây. Đây là tính năng riêng của Bing; nó không làm Googlebot chậm lại.

Vì vậy với Bing, bạn có thể chủ động điều tiết bằng crawl-delay hoặc Crawl Control thay vì phản ứng bằng mã trạng thái. Google đã ngừng thanh trượt tốc độ crawl thủ công năm 2024 và hiện dựa hoàn toàn vào phản hồi máy chủ.

Lưu ý: trang Crawl Control và lỗi crawl hiện hành của Bing được render bằng JavaScript; câu chữ crawl-delay ở trên đến từ bài blog Bing năm 2009, là hướng dẫn lịch sử vẫn được tuân thủ chứ không phải ảnh chụp UI hiện hành. Cả nhận định Bing xử lý 429 tương tự và trạng thái hiện tại của crawl-delay/Crawl Control đều cần rà soát với tài liệu Bing sơ cấp hiện hành; hãy xác nhận câu chữ chính xác trong Bing Webmaster Tools trước khi trích dẫn như thông tin hiện tại.

Khi nào nên chủ ý gửi 429

Các lý do hợp lệ để chủ ý trả 429:

  • Tải máy chủ khẩn cấp — lưu lượng tăng đột biến, di chuyển lỗi hoặc sự cố khiến bạn cần Googlebot giảm tải ngay trong vài giờ.
  • Bảo vệ API và endpoint không phải HTML khỏi lạm dụng crawler/bot — crawler công cụ tìm kiếm, crawler SEO bên thứ ba như Ahrefs hay Screaming Frog và scraper đều có thể chạm giới hạn chống lạm dụng.

429 không dùng để chặn vĩnh viễn bot bạn không muốn. Nếu không bao giờ muốn nội dung được crawl, hãy dùng disallow trong robots.txt, không phải 429. Nếu muốn giữ trang nhưng loại khỏi chỉ mục, dùng noindex. 429 chỉ nghĩa là “sau”, không phải “không bao giờ”.

429 ngoài ý muốn — thủ phạm thường gặp

Khi 429 xuất hiện trong báo cáo Page Indexing hay Crawl Stats của GSC mà bạn không đặt, nguồn thường là một trong các thành phần sau. Tôi không biết bằng chứng tốt cho thứ hạng phổ biến toàn cầu, nên hãy coi đây là danh sách ứng viên cần xác nhận hoặc loại trừ, không phải chẩn đoán:

  • Rule WAF / tường lửa kích hoạt nhầm trên dải IP crawler hợp lệ.
  • Giới hạn tốc độ mặc định của hosting dùng chung hoặc CDN quá chặt cho một lần crawl thật.
  • Công cụ quản lý bot phân loại nhầm Googlebot hoặc Bingbot là lưu lượng lạm dụng.
  • Middleware giới hạn tốc độ quá gắt dành cho chống lạm dụng API nhưng bắt cả crawler của chính bạn.

Trước khi đổi ngưỡng hoặc viết rule miễn trừ bot tìm kiếm thật, hãy xác lập nguồn gốc; đừng đoán tầng nào sở hữu phản hồi. Lấy header phản hồi thô, dòng log yêu cầu chính xác chứ không phải tóm tắt dashboard, mã rule hoặc vùng giới hạn đã kích hoạt, khóa client được đếm theo IP/phiên/khóa API, route, POP CDN hoặc vị trí edge và cửa sổ thời gian. Tổ hợp đó cho biết tầng nào thực sự phát 429 và đang đếm gì; chỉ lúc đó mới hợp lý để nới giới hạn hoặc thêm ngoại lệ. Xác minh danh tính crawler bằng DNS ngược rồi DNS xuôi theo phương pháp chính thức của Google, không chỉ dựa vào chuỗi user-agent vì “Googlebot” giả rất phổ biến. Thẻ Scripts có lệnh chính xác.

Phiên bản ngắn của playbook

  1. Dùng 429 hoặc 503 kèm Retry-After để làm crawler chậm lại — không bao giờ dùng 403 hay 404.
  2. Giới hạn trong vài giờ hoặc 1–2 ngày; kéo dài hơn có thể khiến URL bị loại.
  3. Nhớ rằng điều tiết áp dụng trên toàn hostnametự phục hồi khi lỗi dừng.
  4. Giới hạn phạm vi đúng lưu lượng và xác minh danh tính crawler trước khi miễn trừ bot.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.