Lỗi 401 Unauthorized
Mã 401 Unauthorized có nghĩa gì, vì sao Google không lập chỉ mục trang bị chặn, cách phân biệt 401 với 403 và sửa lỗi xác thực ngoài ý muốn.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Công cụ trực tuyến liên quanHTTP Status & Redirect Checker
401 Unauthorized cho biết yêu cầu thiếu thông tin xác thực hợp lệ hoặc thông tin đã gửi bị từ chối; phản hồi tuân thủ RFC 9110 phải có header WWW-Authenticate nêu cơ chế xác thực. Googlebot thông thường không đăng nhập, nên trang trả 401 không được lập chỉ mục và URL từng được lập chỉ mục sẽ bị loại theo thời gian. Đây là hành vi đúng với site staging, khu vực thành viên và nội dung thật sự riêng tư, nhưng là lỗi nghiêm trọng trên trang công khai. 401 khác 403 ở challenge xác thực bắt buộc, dù Google xử lý cả hai như lỗi phía client khi lập chỉ mục. Hai mã không làm chậm tốc độ crawl toàn site. Hãy kiểm thử không có cookie bằng curl hoặc URL Inspection, xác định tầng ứng dụng/CDN/WAF phát mã và chỉ allowlist crawler sau khi xác minh IP hoặc reverse DNS.
Tóm tắt — 401 Unauthorized nghĩa là máy chủ yêu cầu bạn đăng nhập trước khi cung cấp trang: thông tin xác thực đang thiếu, sai hoặc hết hạn. Công cụ tìm kiếm không đăng nhập, nên nếu trang trả 401 cho Googlebot, Google không thể xem và sẽ không đưa trang vào kết quả tìm kiếm. Đó chính là điều bạn muốn với trang riêng tư như staging hoặc khu vực thành viên; nó chỉ là vấn đề khi xảy ra với trang bạn muốn mọi người tìm thấy.
401 có nghĩa là gì
Khi trình duyệt hoặc crawler của công cụ tìm kiếm yêu cầu một trang, máy chủ trả về mã trạng thái. 401 Unauthorized là cách máy chủ nói: “Tôi sẽ không hiển thị nội dung cho đến khi bạn chứng minh mình là ai.” Thông tin xác thực bạn gửi đang thiếu, không hợp lệ hoặc hết hạn, nên bạn cần đăng nhập. Evidence for this claim A 401 response means the request lacks valid authentication credentials and the response must include a WWW-Authenticate challenge. Scope: RFC 9110 defines the status semantics and required challenge header; it does not prescribe a site's authentication product or login flow. Confidence: high · Verified: IETF: RFC 9110 §15.5.2 — 401 Unauthorized
Bạn gặp điều này mỗi khi trang bật hộp nhập tên người dùng/mật khẩu hoặc đưa bạn đến màn hình đăng nhập. Phía sau hành vi đó thường là phản hồi 401.
Vì sao 401 quan trọng với SEO
Điểm mấu chốt là Googlebot và Bingbot không đăng nhập. Chúng không có tên người dùng hay mật khẩu cho site của bạn và không nhập vào hộp đăng nhập. Vì vậy, khi crawler gặp 401, nó không thể vượt qua cổng. Với Google, nội dung trên trang đó thực tế không tồn tại.
Kết quả thực tế:
- Trang trả 401 sẽ không được lập chỉ mục, nên không thể xuất hiện trong kết quả tìm kiếm.
- Trang từng xếp hạng nhưng nay trả 401 sẽ dần bị loại khỏi chỉ mục. Evidence for this claim Google does not index 4xx URLs and removes already-indexed 4xx URLs over time. Scope: Google's crawler documentation supports the Search indexing outcome for 401 responses; it does not address access decisions for private users. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers
Khi nào 401 là đúng, khi nào là vấn đề
401 không mặc nhiên là lỗi cần sửa. Đây là phản hồi đúng cho những trang phải giữ riêng tư:
- 401 đúng: site staging, khu vực chỉ dành cho thành viên, công cụ quản trị nội bộ hoặc cổng thông tin khách hàng. Bạn muốn ẩn chúng khỏi Google và cổng đăng nhập thực hiện đúng việc đó.
- 401 sai: bài blog, trang sản phẩm hoặc landing page lẽ ra công khai nhưng bỗng yêu cầu đăng nhập, thường do firewall cấu hình sai, lớp bảo vệ bằng mật khẩu còn sót, token hết hạn hoặc xung đột plugin.
Cảnh báo nhầm phổ biến nhất là “nhưng tôi vẫn mở được!” Bạn mở được vì đã đăng nhập, còn crawler thì không. Muốn thấy điều Googlebot thấy, hãy mở trang trong cửa sổ riêng tư/ẩn danh hoặc dùng công cụ URL Inspection trong Google Search Console.
401 và 403 — phiên bản ngắn
401 thường được nhắc cùng 403 Forbidden. Hai mã nghe giống nhau nhưng mang ý nghĩa khác:
- 401 = “Bạn là ai?” Thông tin xác thực đang thiếu; hãy đăng nhập.
- 403 = “Tôi biết bạn là ai, nhưng vẫn từ chối.” Máy chủ hiểu yêu cầu nhưng vẫn không cho truy cập.
Tuy nhiên, kết quả với Google giống nhau: cả hai đều không được lập chỉ mục vì crawler không thể tiếp cận nội dung.
Muốn xem chi tiết kỹ thuật như header bắt buộc của 401, tài liệu Google nói gì và cách sửa một 401 ngoài ý muốn? Hãy chuyển sang thẻ Nâng cao.
Tóm tắt — 401 Unauthorized là lỗi phía client theo RFC 9110 §15.5.2, thay thế RFC 7235, cho biết yêu cầu thiếu thông tin xác thực hợp lệ. Điều này bao gồm cả thông tin đã gửi nhưng bị từ chối, không chỉ trường hợp chưa gửi. Phản hồi 401 tuân thủ đặc tả còn phải có header
WWW-Authenticatenêu cơ chế xác thực mong đợi. Mã này khác 403, một lời từ chối không bắt buộc có challenge và có thể hoàn toàn không liên quan đến thông tin xác thực. Dù vậy, Google xử lý mọi lỗi 4xx trừ 429 giống nhau khi lập chỉ mục: nội dung “không tồn tại”, nên không được lập chỉ mục và URL từng được lập chỉ mục sẽ bị loại dần. Googlebot thông thường không gửi thông tin xác thực, vì vậy theo chính Google, phản hồi 403 cho Googlebot thường là cấu hình máy chủ sai. 401/403 không tác động đến tốc độ crawl toàn site, dù một URL liên tục trả 4xx sẽ được crawl lại ít thường xuyên hơn theo thời gian. 401 là cách đúng và được Google ủng hộ để chặn nội dung thật sự riêng tư; nó chỉ là vấn đề khi xuất hiện trên trang bạn muốn lập chỉ mục. Nội dung có paywall có một đường triển khai được chấp nhận, không phải dùng 401 toàn diện.
Bản chất thật của 401
401 Unauthorized là phản hồi lỗi phía client. Định nghĩa kỹ thuật của MDN là rõ nhất:
Evidence for this claim A 401 response means the request lacks valid authentication credentials and the response must include a WWW-Authenticate challenge. Scope: RFC 9110 defines the status semantics and required challenge header; it does not prescribe a site's authentication product or login flow. Confidence: high · Verified: IETF: RFC 9110 §15.5.2 — 401 Unauthorized“The HTTP 401 Unauthorized client error response status code indicates that a request was not successful because it lacks valid authentication credentials for the requested resource. This status code is sent with an HTTP
WWW-Authenticateresponse header that contains information on the authentication scheme the server expects the client to include to make the request successfully.” (bản dịch) «Mã phản hồi lỗi phía client 401 Unauthorized cho biết yêu cầu không thành công vì thiếu thông tin xác thực hợp lệ cho tài nguyên được yêu cầu. Mã này được gửi cùng header phản hồi HTTPWWW-Authenticate, chứa thông tin về cơ chế xác thực mà máy chủ yêu cầu client cung cấp để yêu cầu thành công.»
Có hai điểm cần rút ra. Thứ nhất là “xác thực”: bên yêu cầu chưa chứng minh mình là ai. Thường là do thông tin xác thực thiếu, không hợp lệ hoặc hết hạn, nhưng 401 cũng có thể xuất hiện sau khi thông tin đã được gửi rồi bị từ chối; đừng kết luận “không có auth header” nếu chưa kiểm tra yêu cầu thật. Thứ hai, phản hồi 401 tuân thủ đặc tả phải mang header WWW-Authenticate. Theo RFC 9110 §15.5.2, thay thế RFC 7235 cũ, header này cho client biết cơ chế được mong đợi như HTTP Basic Auth, Bearer token hay luồng session cookie. Khi chẩn đoán 401, hãy kiểm tra trước tiên header có tồn tại không và nêu cơ chế nào. Evidence for this claim A 401 response means the request lacks valid authentication credentials and the response must include a WWW-Authenticate challenge. Scope: RFC 9110 defines the status semantics and required challenge header; it does not prescribe a site's authentication product or login flow. Confidence: high · Verified: IETF: RFC 9110 §15.5.2 — 401 Unauthorized
Trong hướng dẫn mã trạng thái của mình, tôi tóm tắt 401 là: “the client hasn’t identified or verified itself when needed.” (bản dịch) «client chưa tự nhận diện hoặc xác minh khi cần». Đó là toàn bộ ý nghĩa: chưa ai nói rõ mình là ai.
401 và 403 Forbidden — khác biệt quan trọng
Đây là chỗ nhiều người nhầm lẫn, nên hãy phân biệt bằng một dòng:
- 401 = “Bạn là ai?” Thông tin xác thực thiếu hoặc không hợp lệ; hãy xác thực rồi thử lại.
- 403 = “Tôi biết bạn là ai, nhưng vẫn từ chối.” Yêu cầu đã được hiểu nhưng quyền truy cập bị từ chối bất kể thông tin xác thực.
MDN diễn đạt cùng ý như sau:
“A 401 Unauthorized is similar to the 403 Forbidden response, except that a 403 is returned when a request contains valid credentials, but the client does not have permissions to perform a certain action.” (bản dịch) «401 Unauthorized giống phản hồi 403 Forbidden, ngoại trừ 403 được trả khi yêu cầu có thông tin xác thực hợp lệ nhưng client không có quyền thực hiện một hành động nhất định.»
Trong hướng dẫn của mình, tôi cũng đối chiếu 401 là “the client hasn’t identified or verified itself when needed” (bản dịch) «client chưa tự nhận diện hoặc xác minh khi cần», còn 403 là “the client is known but doesn’t have access rights” (bản dịch) «đã biết client là ai nhưng client không có quyền truy cập». Đó là xác thực so với phân quyền.
Cách nói ngắn trên đáng tin cậy, nhưng nếu cần chọn mã trong code hoặc quy tắc WAF thì phép thử giao thức chính xác hơn là: 401 bắt buộc có challenge WWW-Authenticate — RFC 9110 quy định MUST — còn 403 không bắt buộc, vì lời từ chối 403 có thể không liên quan đến thông tin xác thực, như chặn IP, quy tắc quyền hoặc chính sách giới hạn tốc độ. Chỉ hỏi “đã có thông tin xác thực chưa?” không đủ để phân biệt vì 401 có thể theo sau thông tin bị từ chối. Hãy hỏi: tôi đang phát challenge xác thực (401) hay từ chối thẳng (403)?
Đây là điểm SEO ít hiển nhiên và cũng là nhận định của Google về 403. Googlebot thông thường không bao giờ gửi thông tin xác thực. Vì vậy, theo chính Google, phản hồi 403 được phục vụ riêng cho Googlebot thường là máy chủ xử lý sai:
“HTTP 403 means that the user agent provided credentials, but was not granted access. However, Googlebot never provides credentials, so your server is returning this error incorrectly. The page will not be indexed.” (bản dịch) «HTTP 403 nghĩa là user agent đã cung cấp thông tin xác thực nhưng không được cấp quyền truy cập. Tuy nhiên, Googlebot không bao giờ cung cấp thông tin xác thực, nên máy chủ của bạn đang trả lỗi này không đúng. Trang sẽ không được lập chỉ mục.»
Đây là dấu hiệu chẩn đoán hữu ích. 401 với Googlebot có thể là chủ ý khi trang được bảo vệ theo thiết kế. 403 với Googlebot thường cho thấy cấu hình sai: Googlebot không gửi thông tin xác thực nên không có gì để kích hoạt phản hồi “đã xác thực nhưng bị từ chối”. Nếu thấy 403 trên trang Googlebot phải truy cập được, hãy nghi ngờ CDN, WAF hoặc cấu hình máy chủ trước. Điều này mô tả crawler phổ biến của Google; Google ghi riêng crawler trường hợp đặc biệt và công cụ fetch do người dùng kích hoạt, nên đừng suy rộng quy tắc đó cho mọi tích hợp sản phẩm Google mà không kiểm tra.
| 401 Unauthorized | 403 Forbidden | |
|---|---|---|
| Ý nghĩa | Thông tin xác thực thiếu/không hợp lệ — “bạn là ai?” | Đã hiểu nhưng từ chối truy cập — “tôi biết bạn, vẫn không” |
| Header bắt buộc | WWW-Authenticate (RFC 9110) | Không có header bắt buộc |
| Nguyên nhân thường gặp | Cổng đăng nhập, token hết hạn, Basic Auth, session timeout | Quy tắc quyền, chặn IP/địa lý, quy tắc WAF, hạn chế thư mục |
| Với Googlebot | Có thể là chủ ý (trang được bảo vệ) | Thường là cấu hình máy chủ sai (Googlebot không gửi thông tin xác thực) |
| Kết quả lập chỉ mục | Không được lập chỉ mục; bị loại dần | Không được lập chỉ mục; bị loại dần |
Dòng cuối là kết luận: về lập chỉ mục, Google xử lý hai mã giống hệt nhau.
Google xử lý trang 401 như thế nào
Tài liệu mã trạng thái HTTP của Google nói rất thẳng về nhóm 4xx:
“Google doesn’t use the content from URLs that return
4xxstatus codes. If a URL was previously used but is now returning4xxstatus code, Google systems will stop using the URL over time. In the case of Google Search, Google doesn’t index URLs that return a4xxstatus code, and URLs that are already indexed and return a4xxstatus code are removed from the index.” (bản dịch) «Google không dùng nội dung từ URL trả mã trạng thái4xx. Nếu URL từng được sử dụng nhưng nay trả4xx, hệ thống Google sẽ ngừng sử dụng URL đó theo thời gian. Với Google Search, Google không lập chỉ mục URL trả4xx; URL đã được lập chỉ mục rồi trả4xxsẽ bị xóa khỏi chỉ mục.» Evidence for this claim Google does not index 4xx URLs and removes already-indexed 4xx URLs over time. Scope: Google's crawler documentation supports the Search indexing outcome for 401 responses; it does not address access decisions for private users. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers
401 không phải ngoại lệ trong nhóm này. Trong bảng tài liệu, 401 (unauthorized) và 403 (forbidden) nằm ở hai dòng riêng nhưng dùng chung một lời giải thích:
“All
4xxerrors, except429, are treated the same: Google crawlers inform the next processing system that the content doesn’t exist.” (bản dịch) «Mọi lỗi4xx, trừ429, đều được xử lý giống nhau: crawler Google báo cho hệ thống xử lý tiếp theo rằng nội dung không tồn tại.»
Vì vậy, kết quả mang tính nhị phân chứ không phải hạ hạng. Trang trả 401 không “xếp hạng thấp hơn”; nó hoàn toàn không được lập chỉ mục hoặc bị loại nếu từng được lập chỉ mục. Điều này khớp với nhận định nền trong hướng dẫn của tôi rằng 4xx khiến trang bị loại khỏi chỉ mục. Bài này là phần đào sâu riêng về 401.
Một lưu ý về thời gian: việc xóa diễn ra “over time” (bản dịch) «dần theo thời gian», không phải ngay lần fetch lỗi đầu tiên. Tài liệu Google mô tả quá trình từ từ và hệ thống crawl trong lịch sử vẫn dung thứ lỗi ngắn hạn trước khi coi URL thật sự biến mất.
Quan niệm sai về tốc độ crawl — 401 KHÔNG làm chậm crawl
Điểm này khiến nhiều bài viết tốt cũng nhầm, nên cần nói chính xác. 401 hoặc 403 không làm chậm tốc độ crawl của Google. Google nói trực tiếp:
“Don’t use
401and403status codes for limiting the crawl rate. The4xxstatus codes, except429, have no effect on crawl rate.” (bản dịch) «Đừng dùng mã trạng thái401và403để giới hạn tốc độ crawl. Mã4xx, trừ429, không tác động đến tốc độ crawl.»
Điều này quan trọng vì bạn sẽ thấy lời khuyên rằng đặt trang sau 401 sẽ “tiết kiệm crawl budget” hoặc “lãng phí crawl budget”; cả hai cách nói đều sai. Chỉ 429 và tín hiệu kiểu 5xx như 503 mới yêu cầu Googlebot giảm nhịp. 401 không phải cơ chế điều tiết; với lập chỉ mục, nó là tín hiệu “nội dung không tồn tại”. Nếu thật sự muốn tạm làm chậm crawl, hãy dùng 429/503, không phải 401/403.
Hai tuyên bố dễ bị nhập làm một nên cần giới hạn phạm vi. “Không ảnh hưởng tốc độ crawl” nói về tốc độ crawl toàn site. Riêng một URL liên tục trả 4xx sẽ được Google crawl lại ít thường xuyên hơn theo thời gian, tức tần suất thử lại của chính URL giảm dần. Đây là hai phạm vi khác nhau: crawl budget toàn site không bị bóp, nhưng URL cứ trả 401 sẽ được kiểm tra thưa hơn khi Google hạ ưu tiên.
Còn một trường hợp đặc biệt: 401 trên trang thông thường và 401 trên chính /robots.txt không được xử lý giống nhau. Nếu robots.txt trả 4xx không phải 429, gồm 401, Google coi như không có robots.txt và giả định file đó không đặt hạn chế crawl; Google không coi toàn site là không truy cập được. Đừng đặt /robots.txt sau cùng cổng xác thực với các trang riêng tư.
401 luôn là vấn đề? Không.
401 chỉ là lỗi khi xuất hiện ngoài ý muốn trên trang phải công khai. Khi trang thật sự riêng tư, 401 là cách đúng để giữ nó khỏi tìm kiếm và cũng là cách Google khuyên dùng. John Mueller nói rõ, qua bài dẫn lại của Search Engine Journal, rằng cách lý tưởng là xác thực phía máy chủ chặn người dùng thông thường xem nội dung — “that would include GoogleBot” (bản dịch) «điều đó cũng bao gồm GoogleBot». (Được Search Engine Journal dẫn lại từ một buổi trao đổi Google năm 2019; hãy coi đây là phát biểu đại diện được diễn giải chính xác, không phải trích dẫn nguyên văn đã xác minh theo fragment.)
Xác thực phía máy chủ, cơ chế tạo ra 401, là cách ông khuyên dùng để ẩn nội dung không công khai trước cả robots.txt, vì nó thật sự chặn truy cập thay vì chỉ đề nghị bot tránh xa.
Khung quyết định rất đơn giản:
- Nên tiếp tục trả 401: môi trường staging, khu vực thành viên, công cụ nội bộ và mọi nội dung thật sự riêng tư. Hệ thống đang hoạt động đúng; đừng “sửa” nó.
- Cần sửa: trang công khai, có thể lập chỉ mục nhưng vô tình trả 401 do CDN/WAF báo nhầm, Basic Auth còn sót, token hết hạn hoặc xung đột plugin/middleware.
Tác động SEO và cái bẫy “tôi vẫn mở được”
Các kiểu lỗi thực tế:
- Trang bạn muốn lập chỉ mục vẫn vô hình cho đến khi gỡ cổng.
- Trang từng xếp hạng biến mất nếu bắt đầu trả 401.
- Bẫy “tôi vẫn mở được”: người kiểm tra đã xác thực, đăng nhập hoặc nằm trong IP allowlist, còn crawler thì không. Hướng dẫn của Google cho trường hợp 401 nói: “You can verify this error by visiting the page in incognito mode.” (bản dịch) «Bạn có thể xác minh lỗi bằng cách truy cập trang trong chế độ ẩn danh.» Tốt hơn nữa, hãy kiểm thử không xác thực bằng
curl -I https://example.com/pagehoặc dùng URL Inspection / Live Test của Search Console.
Khi thật sự cần cho crawler hợp lệ đi qua, hãy xác minh bằng IP / reverse DNS, tuyệt đối không chỉ tin chuỗi user-agent. Chuỗi user-agent rất dễ giả mạo, nên allowlist tên “Googlebot” là lỗ hổng bảo mật chứ không phải cách sửa.
Còn nội dung paywall hoặc chỉ dành cho người đăng ký?
401 toàn diện cho mọi người, kể cả Googlebot, không phải lựa chọn duy nhất nếu bạn muốn nội dung bị giới hạn vẫn xếp hạng. Google hỗ trợ lập chỉ mục nội dung paywall bằng dữ liệu có cấu trúc isAccessibleForFree, kết hợp cấp quyền cho các danh tính crawler chuyên biệt của Google dùng cho nội dung người đăng ký/người dùng đã đăng ký. Mục đích của markup là:
“This structured data helps Google differentiate paywalled content from the practice of cloaking, which violates spam policies.” (bản dịch) «Dữ liệu có cấu trúc này giúp Google phân biệt nội dung paywall với hành vi cloaking vi phạm chính sách spam.»
Cảnh báo nằm ngay trong đó: âm thầm cung cấp toàn bộ nội dung chỉ cho Googlebot mà không khai báo bằng dữ liệu có cấu trúc là cloaking, có nguy cơ vi phạm chính sách spam. Nếu muốn nội dung bị giới hạn được lập chỉ mục, hãy dùng cách được chấp nhận gồm markup và quyền crawler, không dùng lối bỏ qua kín đáo.
Cách sửa 401 ngoài ý muốn
- Xác nhận đây thật sự là lỗi. Trang có phải công khai không? Nếu là staging hoặc chỉ dành cho thành viên thì không cần sửa.
- Gỡ yêu cầu xác thực trên trang công khai: xóa Basic Auth còn sót trong
.htaccess/nginx, sửa token hết hạn và xử lý xung đột plugin/middleware. - Kiểm tra CDN/WAF và đừng giả định đã biết tầng nào phát 401. Phản hồi cùng header
WWW-Authenticatecho biết có challenge nhưng không cho biết nguồn là ứng dụng, identity/auth proxy, quy tắc bot của CDN/WAF hay origin. False positive từ quy tắc quản lý bot ở edge là nguyên nhân phổ biến; hãy xem log từng tầng và xác minh Googlebot bằng reverse DNS trước khi allowlist. - Cho crawler đã xác minh đi qua bằng IP/reverse DNS, không dùng user-agent.
- Đừng dùng 401 để deindex trang có thể công khai; hãy dùng
noindexvà vẫn cho crawl. Cổng đăng nhập chỉ dành cho nội dung thật sự riêng tư. - Xác nhận cách sửa bằng Live Test của URL Inspection, nhưng chỉ coi kết quả pass là bằng chứng cho lần fetch hiện tại. Google không cam kết thời hạn crawl lại, lập chỉ mục lại hay phục hồi xếp hạng cố định sau khi sửa 401. Hãy chờ và kiểm tra lại báo cáo Page Indexing thay vì mong đảo ngược ngay.
Để xem toàn bộ quy trình chẩn đoán–sửa–xác nhận trong Google Search Console cho trạng thái Page Indexing “Blocked due to unauthorized request (401)” (bản dịch) «Bị chặn do yêu cầu chưa được xác thực (401)», hãy đọc bài đồng hành chuyên biệt; bài này chỉ tập trung vào giao thức và khái niệm.
Bing
Bing về chức năng xử lý giống nhau: URL trả 401 hoặc 403 cho Bingbot không thể truy cập và sẽ không được lập chỉ mục. Bingbot cũng cần quyền truy cập không xác thực như Googlebot; khi tạo allowlist, hãy xác minh bằng dải IP đã công bố thay vì user-agent.
Tóm tắt cho AI
Bản cô đọng của phần Nâng cao:
- 401 = thông tin xác thực thiếu, không hợp lệ hoặc bị từ chối (“bạn là ai?”). RFC 9110 §15.5.2, thay thế RFC 7235, yêu cầu header
WWW-Authenticatenêu cơ chế client nên dùng; 401 không chứng minh chưa gửi thông tin vì nó có thể theo sau thông tin đã gửi nhưng bị từ chối. - Phép thử đáng tin cậy giữa 401 và 403: 401 bắt buộc có challenge
WWW-Authenticate; 403 không bắt buộc vì lời từ chối có thể hoàn toàn không liên quan đến thông tin xác thực như chặn IP, quy tắc quyền hay giới hạn tốc độ. Googlebot thông thường không gửi thông tin xác thực nên theo Google, 403 cho Googlebot thường là cấu hình máy chủ sai; Google ghi riêng các danh tính crawler/fetcher khác, vì vậy đừng suy rộng cho mọi client Google. - Kết quả lập chỉ mục giống nhau: Google xử lý mọi 4xx trừ 429 giống nhau; nội dung “không tồn tại”, nên không được lập chỉ mục và URL từng được lập chỉ mục sẽ bị loại theo thời gian. Đây là kết quả nhị phân, không phải hạ hạng.
- Không tác động tốc độ crawl toàn site, nhưng tần suất mỗi URL vẫn giảm: 401/403 không bóp tốc độ crawl tổng thể; chỉ 429 và tín hiệu kiểu 5xx làm vậy. Riêng URL liên tục trả 4xx sẽ được crawl lại ít thường xuyên hơn. 401 trên chính
/robots.txtđược coi như “không có robots.txt”, không phải một lệnh chặn. - 401 thường là đúng: xác thực phía máy chủ là cách Google ủng hộ để ẩn trang staging, thành viên và riêng tư. Nó chỉ là vấn đề trên trang bạn muốn lập chỉ mục; bản thân phản hồi không cho biết tầng ứng dụng, identity proxy, CDN/WAF hay origin nào phát mã.
- Bẫy “tôi vẫn mở được”: bạn đã xác thực, crawler thì chưa. Hãy thử trong ẩn danh, bằng
curl -Ihoặc URL Inspection; Live Test pass chỉ xác nhận lần fetch hiện tại, không bảo đảm thời điểm crawl lại hay phục hồi. - Paywall: dùng markup
isAccessibleForFreecùng quyền crawler, không dùng 401 toàn diện. Âm thầm cho riêng Googlebot xem toàn bộ nội dung là cloaking. - Cách sửa: gỡ yêu cầu xác thực, xác minh crawler bằng IP/reverse DNS chứ không phải user-agent, và dùng
noindexthay vì 401 để deindex trang có thể công khai.
Tài liệu chính thức
Tài liệu nguồn sơ cấp từ Google và đặc tả HTTP.
- Cách mã trạng thái HTTP, lỗi mạng và DNS ảnh hưởng đến Google Search — cách xử lý 4xx, quy tắc “xử lý giống nhau” và cảnh báo tốc độ crawl cho 401/403.
- Báo cáo Page Indexing — định nghĩa trạng thái “Blocked due to unauthorized request (401)” và “Blocked due to access forbidden (403)”.
- Dữ liệu có cấu trúc cho nội dung thuê bao và paywall —
isAccessibleForFreevà lựa chọn được chấp nhận thay cho 401 toàn diện. - Xác minh Googlebot và crawler khác của Google — xác minh bằng IP/reverse DNS, không dùng user-agent, trước khi allowlist.
Tiêu chuẩn / tham chiếu
- RFC 9110 §15.5.2 — HTTP Semantics: 401 Unauthorized — đặc tả hiện hành cho 401 và
WWW-Authenticate, thay thế RFC 7235. - MDN — 401 Unauthorized — định nghĩa kỹ thuật cho lập trình viên, là nguồn thứ cấp và không dành riêng cho SEO.
Trích dẫn từ nguồn
Các phát biểu được ghi nhận; mỗi liên kết dẫn sâu đến đoạn được trích trên trang nguồn.
Google — cách xử lý 4xx, gồm 401
- “Google doesn’t use the content from URLs that return
4xxstatus codes… Google doesn’t index URLs that return a4xxstatus code, and URLs that are already indexed and return a4xxstatus code are removed from the index.” (bản dịch) «Google không dùng nội dung từ URL trả mã4xx… Google không lập chỉ mục URL trả4xx; URL đã được lập chỉ mục rồi trả4xxsẽ bị xóa khỏi chỉ mục.» — Tài liệu Google Search Central. Đi đến trích dẫn - “All
4xxerrors, except429, are treated the same: Google crawlers inform the next processing system that the content doesn’t exist.” (bản dịch) «Mọi lỗi4xx, trừ429, đều được xử lý giống nhau: crawler Google báo cho hệ thống xử lý tiếp theo rằng nội dung không tồn tại.» Đi đến trích dẫn - “Don’t use
401and403status codes for limiting the crawl rate. The4xxstatus codes, except429, have no effect on crawl rate.” (bản dịch) «Đừng dùng mã401và403để giới hạn tốc độ crawl. Mã4xx, trừ429, không tác động đến tốc độ crawl.» Đi đến trích dẫn
Google — mục 401 và 403 trong Search Console Help
- “The page was blocked to Googlebot by a request for authorization (401 response)… You can verify this error by visiting the page in incognito mode.” (bản dịch) «Trang bị chặn với Googlebot do yêu cầu xác thực (phản hồi 401)… Bạn có thể xác minh lỗi bằng cách truy cập trang trong chế độ ẩn danh.» — Google Search Console Help, báo cáo Page Indexing. Đi đến trích dẫn
- “HTTP 403 means that the user agent provided credentials, but was not granted access. However, Googlebot never provides credentials, so your server is returning this error incorrectly. The page will not be indexed.” (bản dịch) «HTTP 403 nghĩa là user agent đã cung cấp thông tin xác thực nhưng không được cấp quyền. Tuy nhiên, Googlebot không bao giờ cung cấp thông tin xác thực, nên máy chủ đang trả lỗi không đúng. Trang sẽ không được lập chỉ mục.» Đi đến trích dẫn
Google — nội dung paywall
- “This structured data helps Google differentiate paywalled content from the practice of cloaking, which violates spam policies.” (bản dịch) «Dữ liệu có cấu trúc này giúp Google phân biệt nội dung paywall với hành vi cloaking vi phạm chính sách spam.» — Tài liệu Google Search Central. Đi đến trích dẫn
MDN — định nghĩa kỹ thuật
- “The HTTP 401 Unauthorized client error response status code indicates that a request was not successful because it lacks valid authentication credentials for the requested resource.” (bản dịch) «Mã phản hồi lỗi phía client HTTP 401 Unauthorized cho biết yêu cầu không thành công vì thiếu thông tin xác thực hợp lệ cho tài nguyên được yêu cầu.» — MDN Web Docs, tham chiếu kỹ thuật thứ cấp không dành riêng cho SEO. Đi đến trích dẫn
- “A 401 Unauthorized is similar to the 403 Forbidden response, except that a 403 is returned when a request contains valid credentials, but the client does not have permissions to perform a certain action.” (bản dịch) «401 Unauthorized giống phản hồi 403 Forbidden, ngoại trừ 403 được trả khi yêu cầu có thông tin xác thực hợp lệ nhưng client không có quyền thực hiện một hành động nhất định.» Đi đến trích dẫn
John Mueller, Google (được Search Engine Journal dẫn lại)
- Về việc ẩn nội dung không công khai: xác thực phía máy chủ chặn người dùng thông thường xem nội dung — “that would include GoogleBot” (bản dịch) «điều đó cũng bao gồm GoogleBot» — là cách lý tưởng. Nguồn Search Engine Journal thuật lại lời này từ buổi trao đổi Google năm 2019. Đây là lời đại diện được dẫn lại, không phải đoạn nguyên văn đã xác minh bằng fragment.
Tôi đang gặp 401 hay 403, và có cần sửa không?
Hai câu hỏi thực tế của người đọc là: đây là 401 hay 403? và nó có phải vấn đề không? Hãy đi theo cây quyết định.
Diagnosing a 401 / 403 on your page
Prompt: chẩn đoán 401 ngoài ý muốn
Dán header phản hồi ẩn danh của một URL bị ảnh hưởng cùng cấu hình xác thực, CDN hoặc middleware liên quan. Trước tiên hãy xóa token, cookie và bí mật.
Diagnose why this public URL returns HTTP 401 to an unauthenticated client. Check for
a valid WWW-Authenticate challenge, separate origin authentication from CDN/WAF and
application middleware, and distinguish an intentional private gate from a public-page
regression. Return: evidence, likely issuing layer, minimum safe fix, and exact
anonymous validation requests. Do not recommend user-agent-only bot allowlisting.
[PASTE SANITIZED HEADERS, LOG EVENT, AND CONFIG]Prompt: xem xét ngoại lệ xác thực
Review this proposed crawler-access rule for a gated site. Identify whether it relies
only on a spoofable user-agent, whether crawler identity is verified by published IP
ranges or reverse-and-forward DNS, and whether serving different content would create
a cloaking risk. Give a least-privilege alternative and a rollback test.
[PASTE SANITIZED RULE] Shell: kiểm tra challenge ẩn danh
Chạy lệnh này trong terminal không có cookie hay thông tin xác thực của trình duyệt.
URL='https://example.com/private'
curl -sS -D - -o /dev/null "$URL"Với 401 thật, hãy kiểm tra WWW-Authenticate. URL công khai trả 401 khi truy cập ẩn danh nhưng trả 200 trong trình duyệt đã đăng nhập chính là cái bẫy trạng thái xác thực nói trên.
PowerShell: kiểm tra cùng phản hồi ẩn danh
$response = Invoke-WebRequest -Uri 'https://example.com/private' -SkipHttpErrorCheck
$response.StatusCode
$response.Headers['WWW-Authenticate']Shell: so sánh user agent chung với user agent tự nhận là bot
URL='https://example.com/page'
curl -sS -o /dev/null -w 'generic %{http_code}\n' "$URL"
curl -sS -o /dev/null -w 'claimed-bot %{http_code}\n' -A 'Googlebot' "$URL"So sánh có thể phát hiện quy tắc dựa trên user-agent nhưng không xác minh Googlebot; client nào cũng gửi được chuỗi đó. Hãy xác nhận riêng lưu lượng crawler thật bằng IP hoặc reverse và forward DNS trước khi đổi quy tắc truy cập.
Công cụ tìm tầng phát 401
- Bulk HTTP Status Code Checker: xác nhận URL công khai nào trả 401 khi không có session trình duyệt và xuất tập URL bị ảnh hưởng.
- HTTP Header Checker: kiểm tra
WWW-Authenticate, header cache/CDN và các hop chuyển hướng để tìm dấu vết về tầng phát mã. - Googlebot Verifier: xác minh bằng chứng IP crawler trước khi tạo ngoại lệ truy cập; chỉ chuỗi user-agent không chứng minh điều gì.
- URL Inspection / Live Test của Search Console: xác nhận lần fetch trực tiếp của Google truy cập được gì sau khi sửa.
- Sự kiện bảo mật CDN/WAF và log origin: đối chiếu request ID cùng thời gian để xác định edge, ứng dụng hay origin tạo 401.
Tự kiểm tra: 401 Unauthorized
Năm câu hỏi nhanh về ý nghĩa của 401 và cách công cụ tìm kiếm xử lý. Chọn một đáp án cho từng câu rồi kiểm tra.
Nhật ký thay đổi
Đã cập nhật 22 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 9 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 17 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
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.