Mã trạng thái HTTP thực sự có ý nghĩa gì đối với SEO
Hướng dẫn thực tế về các mã phản hồi ảnh hưởng đến thu thập dữ liệu, lập chỉ mục, chuyển hướng và gỡ khỏi chỉ mục — mà không xem mọi mã đều là khủng hoảng thứ hạng.
Mục lục
- Mã trạng thái không phải là toàn bộ câu chuyện SEO
- 200 OK: có thể lập chỉ mục, nhưng không tự động có giá trị
- 301 và 308: chuyển hướng vĩnh viễn
- 302 và 307: chuyển hướng tạm thời
- 304 Not Modified: hữu ích, nhưng không phải lối tắt xếp hạng
- 404 Not Found: bình thường khi một trang đã biến mất
- 410 Gone: mạnh hơn 404, nhưng hãy dùng cẩn thận
- 401, 403 và truy cập bị chặn
- 429 Too Many Requests: kiểm soát crawl đi kèm hệ quả
- 500, 502, 503 và 504: tín hiệu độ tin cậy
- Chuỗi và vòng lặp chuyển hướng cần được chú ý đặc biệt
- Danh sách ưu tiên thực tế
- Quy tắc đơn giản để chọn mã đúng
Mã trạng thái HTTP là một trong những chủ đề mà lời khuyên SEO đôi khi trở nên nghiêm trọng một cách kỳ lạ. Một lỗi 404 đơn lẻ bị xem là “mất thẩm quyền.” Một chuyển hướng bị xem là “rò rỉ link equity.” Một lỗi 500 trở thành tình huống khẩn cấp ngay cả khi nó chỉ kéo dài sáu phút trong lúc deploy.
Phiên bản bình tĩnh hơn là thế này: mã trạng thái HTTP là chỉ dẫn và tín hiệu. Chúng cho trình duyệt, bot, cache và các client khác biết điều gì đã xảy ra khi chúng yêu cầu một URL. Công cụ tìm kiếm dùng các phản hồi đó để quyết định có thu thập dữ liệu, lập chỉ mục, giữ lại, thay thế hay loại bỏ một trang hay không.
Nhưng không phải mã trạng thái nào cũng có cùng sức nặng SEO. Một số là bình thường. Một số chỉ trở thành vấn đề ở quy mô lớn. Một vài mã cần được chú ý ngay lập tức.
Mã trạng thái không phải là toàn bộ câu chuyện SEO
Mã trạng thái chỉ là một phần của phản hồi HTTP. Công cụ tìm kiếm cũng xem xét:
- URL cuối cùng sau các chuyển hướng
- thẻ canonical
- chỉ thị robots
- nội dung trang
- liên kết nội bộ
- tín hiệu sitemap
- hành vi thu thập dữ liệu trong quá khứ
- độ tin cậy của máy chủ theo thời gian
Điều đó có nghĩa “trang trả về 200” không đồng nghĩa với “trang có thể được lập chỉ mục.” Một URL có thể trả về 200 nhưng vẫn bị chặn bởi noindex, được canonical sang nơi khác, hoặc bị xem là soft 404 vì nội dung mỏng hoặc trống.
Tương tự, 404 không tự động là xấu. Một trang đã bị xóa thường nên trả về 404 hoặc 410. Vấn đề SEO không phải là việc có các trang bị thiếu. Vấn đề là khi các trang quan trọng trả về sai mã, hoặc khi website gửi các tín hiệu mâu thuẫn.
Nếu bạn đang debug việc này trong production, đừng chỉ dựa vào những gì trình duyệt hiển thị. Hãy kiểm tra chuỗi phản hồi thực tế. Kiểm tra header thô, yêu cầu qua dòng lệnh, hoặc trace chuyển hướng sẽ cho bạn nhiều thông tin hơn trang nhìn thấy được. Chúng tôi đã trình bày một quy trình thực tế trong một bộ công cụ nhỏ để debug chuyển hướng và HTTP headers trong production.
200 OK: có thể lập chỉ mục, nhưng không tự động có giá trị
Phản hồi 200 OK nghĩa là yêu cầu đã thành công và máy chủ đã trả về nội dung. Với SEO, đây là phản hồi bình thường cho các trang bạn muốn được thu thập dữ liệu và có khả năng được lập chỉ mục.
Nhưng 200 không đảm bảo việc lập chỉ mục. Công cụ tìm kiếm vẫn có thể chọn không lập chỉ mục trang nếu trang bị trùng lặp, chất lượng thấp, bị chặn bởi chỉ thị ở cấp trang, hoặc không được khám phá qua liên kết.
Sai lầm SEO phổ biến nhất với phản hồi 200 là trả về mã này cho những trang không thực sự là trang hợp lệ:
- trang kết quả tìm kiếm trống
- trang sản phẩm đã xóa với nội dung “xin lỗi, không còn hàng”
- trang địa điểm không có nội dung có ý nghĩa
- template bị lỗi chỉ render phần khung
- listing đã hết hạn đáng lẽ nên được xóa hoặc chuyển hướng
Những trang này có thể trở thành soft 404. Soft 404 là khi máy chủ nói “OK,” nhưng nội dung lại nói với crawler rằng “ở đây không có gì hữu ích.” Công cụ tìm kiếm có thể vẫn xem URL đó như một trang bị thiếu.
Một quy tắc tốt: nếu con người sẽ nói “trang này không còn tồn tại,” thì máy chủ có lẽ không nên nói 200.
301 và 308: chuyển hướng vĩnh viễn
301 Moved Permanently và 308 Permanent Redirect cho client biết rằng một URL đã được chuyển đi vĩnh viễn. Với SEO, đây là công cụ phù hợp khi một trang có nơi thay thế rõ ràng:
- chuyển đổi từ HTTP sang HTTPS
- slug cũ sang slug mới
- bài viết được hợp nhất sang bài viết mạnh hơn
- sản phẩm ngừng bán sang sản phẩm kế nhiệm gần tương đương
- chuẩn hóa trailing slash hoặc canonical host
Công cụ tìm kiếm thường chuyển các tín hiệu canonicalization qua chuyển hướng vĩnh viễn. Nói đơn giản: nếu bạn chuyển hướng URL cũ đến đúng URL mới, công cụ tìm kiếm có thể hợp nhất nhiều tín hiệu liên quan đến trang cũ.
Rủi ro không nằm ở việc 301 vốn có hại. Rủi ro nằm ở mapping kém.
Các mẫu chuyển hướng xấu gồm:
- chuyển hướng mọi URL cũ về trang chủ
- chuyển hướng trang đã xóa đến các trang danh mục chỉ liên quan lỏng lẻo
- tạo chuỗi như A → B → C → D
- chuyển hướng đến một URL bị chặn, bị noindex, hoặc canonical sang nơi khác
- chuyển hướng mobile và desktop không nhất quán
Một chuyển hướng vĩnh viễn nên trả lời một câu hỏi: “Đâu là tương đương hiện tại tốt nhất của URL này?” Nếu không có trang tương đương, 404 hoặc 410 có thể trung thực hơn.
302 và 307: chuyển hướng tạm thời
302 Found và 307 Temporary Redirect cho biết việc di chuyển là tạm thời. URL gốc được kỳ vọng vẫn là URL chính theo thời gian.
Hãy dùng chuyển hướng tạm thời cho các tình huống thực sự tạm thời:
- điều hướng chiến dịch ngắn hạn
- định tuyến theo vị trí địa lý hoặc A/B testing không nên thay thế URL canonical
- phương án thay thế tạm thời khi bảo trì
- luồng tồn kho hoặc khả dụng thay đổi thường xuyên
Với SEO, vấn đề chính là sự mơ hồ. Nếu một chuyển hướng “tạm thời” tồn tại trong nhiều tháng hoặc nhiều năm, công cụ tìm kiếm cuối cùng có thể vẫn xem đích đến là canonical. Nhưng bạn không nên phụ thuộc vào cách diễn giải đó.
Nếu việc di chuyển là vĩnh viễn, hãy dùng chuyển hướng vĩnh viễn. Nếu là tạm thời, hãy dùng chuyển hướng tạm thời. Câu trả lời nhàm chán là câu trả lời đúng.
304 Not Modified: hữu ích, nhưng không phải lối tắt xếp hạng
304 Not Modified là một phần của HTTP caching. Nó cho client biết rằng tài nguyên chưa thay đổi kể từ phiên bản client đã có.
Mã này tốt cho hiệu quả thu thập dữ liệu và vệ sinh hiệu năng. Nó có thể giảm truyền dữ liệu không cần thiết và làm cho các yêu cầu lặp lại ít tốn kém hơn. Nhưng nó không phải là yếu tố xếp hạng trực tiếp theo nghĩa đơn giản hóa.
Hãy xem 304 như chất lượng hạ tầng. Nó giúp client và crawler tương tác với website của bạn hiệu quả hơn. Nó không biến nội dung yếu thành nội dung mạnh.
404 Not Found: bình thường khi một trang đã biến mất
404 Not Found nghĩa là máy chủ không thể tìm thấy tài nguyên được yêu cầu. Đây không tự động là thảm họa SEO.
404 phù hợp khi:
- một trang đã bị xóa và không có trang thay thế
- một liên kết ngoài sai trỏ đến URL không tồn tại
- người dùng gõ sai URL
- các URL test hoặc staging cũ vốn không bao giờ được kỳ vọng tồn tại
Công cụ tìm kiếm cuối cùng sẽ loại các URL 404 kéo dài khỏi chỉ mục. Đó thường là điều bạn muốn.
Bạn nên sửa 404 khi chúng ảnh hưởng đến các URL quan trọng:
- trang có backlink giá trị
- URL nhận được lưu lượng đáng kể
- trang quan trọng bị xóa nhầm trong quá trình migration
- liên kết nội bộ trỏ đến trang bị thiếu
- URL trong sitemap trả về 404
Đừng chuyển hướng mọi 404 về trang chủ. Điều đó gây nhầm lẫn cho người dùng và công cụ tìm kiếm. Nếu có trang thay thế liên quan, hãy chuyển hướng. Nếu không, hãy trả về 404 và cung cấp một trang lỗi hữu ích cho con người.
410 Gone: mạnh hơn 404, nhưng hãy dùng cẩn thận
410 Gone nghĩa là tài nguyên đã được chủ ý gỡ bỏ và không được kỳ vọng quay lại.
Với SEO, 410 có thể hữu ích khi bạn muốn loại bỏ URL dứt khoát hơn:
- trang pháp lý đã hết hạn
- hồ sơ người dùng đã bị gỡ
- trang spam đã bị xóa
- landing page lỗi thời không có trang thay thế
Công cụ tìm kiếm có thể xem 410 là tín hiệu gỡ bỏ mạnh hơn 404. Khác biệt thực tế thường là tốc độ, không phải kết quả. Cả phản hồi 404 và 410 kéo dài đều có thể dẫn đến gỡ khỏi chỉ mục.
Hãy dùng 410 khi bạn chắc chắn trang đã biến mất vĩnh viễn. Nếu một trang có thể quay lại, 404 hoặc cách xử lý tạm thời có thể an toàn hơn.
401, 403 và truy cập bị chặn
401 Unauthorized nghĩa là cần xác thực. 403 Forbidden nghĩa là máy chủ đã hiểu yêu cầu nhưng từ chối truy cập.
Với SEO, các mã này thường ngăn việc thu thập dữ liệu và lập chỉ mục bình thường đối với nội dung được bảo vệ. Điều đó ổn với dashboard riêng tư, khu vực tài khoản, hệ thống staging và nội dung trả phí không nên được lập chỉ mục công khai.
Vấn đề xuất hiện khi các trang công khai vô tình trả về 401 hoặc 403 cho crawler vì:
- quy tắc bảo vệ bot
- firewall cấu hình sai
- chặn theo quốc gia
- quy tắc CDN
- giả định xác thực đã hết hạn
- hạn chế staging bị đưa vào production
Một trang hoạt động với bạn khi đã đăng nhập có thể không hoạt động với crawler. Luôn kiểm thử như một client chưa xác thực.
429 Too Many Requests: kiểm soát crawl đi kèm hệ quả
429 Too Many Requests cho client biết rằng chúng đang bị giới hạn tốc độ. Điều này có thể phù hợp khi bot thực sự đang gây quá tải cho hạ tầng của bạn.
Tuy nhiên, dùng 429 một cách tùy tiện có thể làm giảm hoạt động thu thập dữ liệu. Công cụ tìm kiếm có thể làm chậm yêu cầu nếu liên tục gặp giới hạn tốc độ. Điều đó có thể trì hoãn việc khám phá nội dung mới hoặc đã cập nhật.
Nếu bạn cần giới hạn tốc độ, hãy làm chính xác. Tránh vô tình chặn các crawler tìm kiếm lớn. Dùng server logs để phân biệt scraping hung hãn với thu thập dữ liệu hợp lệ. Nếu có thể, hãy trả về header Retry-After để các client cư xử tốt biết khi nào nên quay lại.
500, 502, 503 và 504: tín hiệu độ tin cậy
Nhóm 5xx nghĩa là máy chủ không thực hiện được một yêu cầu hợp lệ.
Ví dụ phổ biến:
500 Internal Server Error502 Bad Gateway503 Service Unavailable504 Gateway Timeout
Các phản hồi 5xx thỉnh thoảng vẫn xảy ra. Một sự cố deploy ngắn thường không phải là thảm họa. Lỗi 5xx kéo dài thì khác. Chúng cho crawler biết rằng website của bạn không đáng tin cậy, và công cụ tìm kiếm có thể giảm tốc độ thu thập dữ liệu hoặc tạm thời loại các trang bị ảnh hưởng nếu không thể fetch chúng nhiều lần.
503 Service Unavailable là mã đúng cho bảo trì theo kế hoạch, đặc biệt khi đi kèm header Retry-After. Nó nói rằng, “Việc này là tạm thời; hãy quay lại sau.” Trả về 200 cho một trang bảo trì thì tệ hơn vì crawler có thể xem nội dung bảo trì là nội dung của trang.
Nếu một sự cố ảnh hưởng đến các URL quan trọng, hãy theo dõi quá trình khôi phục. Đảm bảo các trang gốc lại trả về 200, chứ không phải trang lỗi được cache, vòng lặp chuyển hướng, hoặc template bảo trì tạm thời.
Chuỗi và vòng lặp chuyển hướng cần được chú ý đặc biệt
Chuyển hướng là bình thường. Chuỗi chuyển hướng là khoản nợ có thể tránh được.
Một chuyển hướng đơn giản từ URL cũ sang URL mới là ổn. Một chuỗi năm chuyển hướng làm tăng độ trễ, lãng phí crawl budget và tạo thêm nhiều điểm khiến yêu cầu có thể thất bại. Vòng lặp còn tệ hơn: client không bao giờ đến được trang cuối cùng.
Với các migration SEO, hãy giữ một redirect map và kiểm thử trước khi launch. Mỗi URL đã ngừng dùng lý tưởng nên phân giải đến đích cuối cùng chỉ trong một hop. Sau khi launch, hãy lấy mẫu URL cũ, URL có lưu lượng cao và URL có nhiều backlink.
Đây cũng là nơi hiệu năng và SEO giao nhau. Chuyển hướng làm chậm thời điểm bắt đầu tải trang thật. Nếu bạn đang xem xét trải nghiệm người dùng cùng với khả năng thu thập dữ liệu, đọc báo cáo Lighthouse mà không hoảng loạn có thể giúp tách các vấn đề tải trang nghiêm trọng khỏi những chẩn đoán nhiễu.
Danh sách ưu tiên thực tế
Nếu bạn đang audit mã trạng thái, đừng xem mọi cảnh báo là ngang nhau. Hãy bắt đầu ở đây:
- URL quan trọng trả về 5xx — sửa độ tin cậy máy chủ trước.
- Trang có thể lập chỉ mục trả về sai trạng thái — khôi phục phản hồi 200 như dự định.
- Chuỗi và vòng lặp chuyển hướng — đơn giản hóa thành chuyển hướng một hop.
- URL trong sitemap trả về phản hồi không phải 200 — giữ sitemap sạch.
- Liên kết nội bộ đến 404 — sửa điều hướng và liên kết nội dung.
- Mẫu soft 404 — ngừng trả về 200 cho trang trống hoặc đã xóa.
- Vô tình chặn crawler — điều tra các phản hồi 401, 403 và 429 ngoài dự kiến.
Mục tiêu không phải là một website không có 404 nào. Điều đó không thực tế và thường không cần thiết. Mục tiêu là một website nơi mỗi URL đưa ra phản hồi trung thực, nhất quán.
<!-- tool-cta:start -->
💡 Hãy thử cách này: Kiểm tra các URL của bạn thực sự trả về mã trạng thái nào bằng Redirect Checker, công cụ hiển thị toàn bộ chuỗi mà trình thu thập dữ liệu nhìn thấy.
<!-- tool-cta:end -->
Quy tắc đơn giản để chọn mã đúng
Khi không chắc, hãy chọn mã khớp với sự thật mà người dùng nhìn thấy:
- Trang tồn tại và nên khả dụng:
200 - Trang đã chuyển đi vĩnh viễn:
301hoặc308 - Trang đã chuyển đi tạm thời:
302hoặc307 - Trang không còn tồn tại và không có thay thế:
404 - Trang được chủ ý gỡ bỏ vĩnh viễn:
410 - Trang tạm thời không khả dụng:
503 - Yêu cầu bị chặn hoặc là riêng tư:
401hoặc403
Công cụ tìm kiếm xử lý khá tốt sự lộn xộn thông thường của web. Điều gây rắc rối SEO là sự thiếu nhất quán ở quy mô lớn: di chuyển vĩnh viễn nhưng đánh dấu tạm thời, trang đã xóa giả vờ vẫn hợp lệ, lỗi máy chủ không được xử lý, và logic chuyển hướng không ai kiểm thử kể từ lần migration trước.
Mã trạng thái HTTP không phải là đòn bẩy SEO ma thuật. Chúng là ngữ nghĩa web cơ bản. Hãy dùng chúng một cách trung thực, và phần lớn lợi ích SEO sẽ đi theo.