SEO Audit

HTTP Status Code

Mã phản hồi HTTP (ví dụ: 200, 301, 404, 500) cho biết trạng thái xử lý yêu cầu truy cập URL.

2 lượt xem Cập nhật: 29/05/2026

HTTP Status Code là gì?

Mã phản hồi HTTP (HTTP Status Code) là dãy số ba chữ số do máy chủ gửi lại trình duyệt hoặc công cụ tìm kiếm khi xử lý yêu cầu truy cập một URL. Mỗi mã biểu thị một trạng thái cụ thể: thành công, chuyển hướng, lỗi phía khách hàng, lỗi phía máy chủ hoặc các tình huống đặc biệt khác. Ví dụ: 200 nghĩa là trang tải thành công; 404 nghĩa là trang không tồn tại; 301 là chuyển hướng vĩnh viễn.

Tại sao quan trọng trong SEO?

Các mã trạng thái ảnh hưởng trực tiếp đến khả năng lập chỉ mục và trải nghiệm người dùng — hai yếu tố cốt lõi của SEO. Googlebot đọc mã phản hồi để xác định:

  • Có nên lập chỉ mục trang hay không (ví dụ: 200 → có; 404/410 → không);
  • Có cần theo dõi liên kết chuyển hướng không (301/302 → có, nhưng mức độ ưu tiên khác nhau);
  • Trang có đang gặp sự cố kỹ thuật khiến người dùng rời đi nhanh (bounce rate cao) hay không.
Nếu trang trả về mã 5xx thường xuyên, Google có thể tạm ngừng thu thập dữ liệu (crawling) để tránh lãng phí tài nguyên. Ngược lại, chuyển hướng sai (ví dụ dùng 302 thay vì 301 cho nội dung đã dời vĩnh viễn) làm mất giá trị liên kết (link equity), ảnh hưởng thứ hạng.

Cách hoạt động

Khi người dùng hoặc bot gõ URL vào thanh địa chỉ, trình duyệt gửi yêu cầu HTTP đến máy chủ. Máy chủ xử lý yêu cầu và trả về hai thành phần chính: nội dung trang (HTML, JSON…) và header HTTP, trong đó có dòng Status: XXX [mô tả]. Trình duyệt và công cụ tìm kiếm chỉ đọc header trước — nếu mã không phải 200 hoặc 3xx hợp lệ, chúng có thể dừng xử lý ngay mà không tải nội dung.

Mã được chia thành 5 nhóm chính dựa trên chữ số đầu:

Nhóm Ý nghĩa Ví dụ phổ biến Tác động SEO
2xx Thành công 200 OK Tốt — trang sẵn sàng lập chỉ mục
3xx Chuyển hướng 301 Moved Permanently, 302 Found 301: truyền ~90–99% link equity; 302: không truyền hoặc truyền rất ít
4xx Lỗi phía khách hàng 404 Not Found, 410 Gone, 403 Forbidden 404: tạm thời bỏ qua; 410: loại khỏi chỉ mục nhanh hơn; 403: có thể gây hiểu nhầm nếu dùng sai
5xx Lỗi phía máy chủ 500 Internal Server Error, 503 Service Unavailable Xấu — nếu kéo dài >24h, Google có thể giảm tần suất thu thập hoặc loại trang
1xx / 6xx Thông tin / mở rộng (ít dùng) 100 Continue, 601 Unknown Không ảnh hưởng SEO — hiếm gặp trong thực tế

Hướng dẫn thực hiện

Để kiểm tra và tối ưu mã trạng thái trong SEO audit, thực hiện theo 5 bước sau:

  1. Quét toàn bộ trang web bằng công cụ như Screaming Frog, SiteBulb hoặc DeepCrawl. Đặt giới hạn crawl depth và bật tùy chọn “Check Response Codes”.
  2. Lọc các mã bất thường: tập trung vào nhóm 4xx (đặc biệt 404, 403, 451), 5xx và 3xx không mong muốn (ví dụ: chuỗi 302 dài >3 bước).
  3. Phân tích nguyên nhân: với mỗi URL lỗi, kiểm tra:
    • Liệu URL có bị xóa vô tình không?
    • Có cấu hình .htaccess / Nginx sai không?
    • Có plugin WordPress tạo chuyển hướng vòng lặp không?
  4. Áp dụng giải pháp phù hợp:
    • URL cũ vẫn có giá trị → dùng 301 tới trang tương đương;
    • URL không còn tồn tại và không có trang thay thế → trả về 410 (ưu tiên hơn 404 nếu chắc chắn);
    • Lỗi 500 tái diễn → kiểm tra log máy chủ, cập nhật PHP, hoặc liên hệ nhà cung cấp hosting.
  5. Giám sát định kỳ: thiết lập cảnh báo tự động (qua Google Search Console + Data Studio hoặc Botify Alerts) khi xuất hiện >50 URL trả mã 5xx trong 1 giờ.

Lỗi thường gặp

Chuyển hướng 302 thay vì 301 cho nội dung dời vĩnh viễn

Hệ quả: Google giữ nguyên URL gốc trong chỉ mục, không truyền link equity đầy đủ → trang mới khó lên top.
Cách khắc phục: đổi toàn bộ 302 thành 301 trong cấu hình máy chủ hoặc plugin; kiểm tra lại bằng công cụ như Redirect Checker.

404 ồ ạt từ backlink ngoài hoặc internal link hỏng

Hệ quả: người dùng và bot gặp lỗi, tăng tỷ lệ thoát, giảm độ tin cậy trang.
Cách khắc phục: dùng Google Search Console → “Coverage” → lọc “Submitted URL not found (404)” để tìm URL bị báo cáo; đồng thời chạy “Internal Links” report trong Screaming Frog để phát hiện internal link trỏ tới 404.

503 trả về mãi mãi thay vì tạm thời

Hệ quả: Google hiểu nhầm trang đang bảo trì lâu dài → có thể loại khỏi chỉ mục.
Cách khắc phục: chỉ dùng 503 khi bảo trì dưới 24–48 tiếng; thêm thẻ <meta name="robots" content="noindex, nofollow"> và header Retry-After nếu có thể. Nếu bảo trì dài hạn, nên dùng 503 kết hợp redirect 302 tới trang thông báo.

Ví dụ thực tế

Một website thương mại điện tử từng đổi cấu trúc URL sản phẩm từ /product/id.html sang /san-pham/ten-san-pham. Ban đầu họ dùng 302 cho toàn bộ 12.000 sản phẩm. Sau 3 tháng, lượng traffic hữu cơ giảm 37%, và chỉ 12% sản phẩm mới xuất hiện trong kết quả tìm kiếm. Khi chuyển sang 301 và xác minh bằng httpstatus.io, lượng truy cập phục hồi sau 6 tuần, và 89% sản phẩm mới được lập chỉ mục đầy đủ.

Câu hỏi thường gặp

Mã 451 là gì và có ảnh hưởng SEO không?

Mã 451 (Unavailable For Legal Reasons) được dùng khi trang bị chặn do yêu cầu pháp lý (ví dụ: lệnh toà, luật bản quyền). Google xử lý 451 gần giống 404 — không lập chỉ mục, nhưng hiển thị thông báo riêng trong Search Console. Ảnh hưởng SEO tương đương 404, nhưng nên dùng khi có lý do pháp lý rõ ràng — không dùng thay cho 403 hay 404.

Có nên tạo trang 404 tùy chỉnh không?

Có. Trang 404 tùy chỉnh giúp giữ chân người dùng: thêm thanh tìm kiếm, liên kết tới danh mục nổi bật, hoặc gợi ý sản phẩm tương tự. Tuy nhiên, mã trạng thái vẫn phải là 404 (không đổi thành 200), vì nếu trả 200, Google sẽ lập chỉ mục trang lỗi như một trang bình thường — gây nhiễu chỉ mục.

Mã 301 và 308 khác nhau ở điểm nào?

Cả hai đều là chuyển hướng vĩnh viễn, nhưng 308 bảo toàn phương thức HTTP (ví dụ: POST, PUT) và dữ liệu thân yêu cầu — trong khi 301 có thể chuyển POST thành GET. Với SEO thông thường (chuyển hướng URL bài viết, danh mục), 301 là lựa chọn an toàn và được hỗ trợ rộng rãi hơn. 308 chỉ cần thiết khi xử lý form hoặc API — tác động SEO không khác biệt đáng kể.