SEO
HTTP Status Code trong SEO: Cách dùng mã phản hồi đúng
Website bán hàng đóng cửa bảo trì một ngày, trang “Đang nâng cấp” trả mã 200 cho mọi URL. Googlebot ghé đúng lúc đó sẽ thấy hàng trăm URL có chung một nội dung, và không có lý do gì để nghĩ đây chỉ là tạm thời.
ScalioCập nhật 9 phút đọc

HTTP status code là gì? HTTP status code (mã trạng thái HTTP) là con số ba chữ số máy chủ gửi kèm mỗi phản hồi, cho trình duyệt và bot biết yêu cầu đã thành công, bị chuyển hướng hay thất bại. Với SEO, mã trạng thái là lời khai chính thức của website về một URL: Google dựa vào nó để quyết định lập chỉ mục, cập nhật, chuyển tín hiệu sang URL khác, bỏ khỏi chỉ mục hay giảm tốc độ thu thập.

Hai nhóm đã có bài riêng: trang không tồn tại ở bài lỗi 404, chuyển URL vĩnh viễn ở bài redirect 301. Ở đây là bản đồ toàn cảnh, giúp bạn biết mỗi tình huống nên trả mã nào và kiểm tra thế nào.
Bản đồ mã trạng thái và cách Google xử lý
| Mã | Nghĩa | Google xử lý thế nào |
|---|---|---|
| 200 OK | Thành công, có nội dung | Đưa nội dung vào xem xét lập chỉ mục. Nếu nội dung là thông báo lỗi, Google có thể coi là soft 404 |
| 204 No Content | Thành công, không có nội dung | Không có gì để index; Search Console có thể báo soft 404 |
| 301 / 308 | Chuyển vĩnh viễn | Theo chuyển hướng; tín hiệu mạnh rằng URL đích là URL chuẩn |
| 302 / 303 / 307 | Chuyển tạm thời | Theo chuyển hướng; tín hiệu yếu, URL cũ có thể vẫn được giữ trên kết quả |
| 304 Not Modified | Không đổi so với bản đã có | Hiểu là nội dung giống lần crawl trước, không cần tải lại |
| 404 / 410 | Không tồn tại / đã gỡ | Không index URL mới; URL đã index dần bị loại; crawl thưa dần |
| 401 / 403 | Cần xác thực / bị cấm | Như nhóm 4xx: không index. Không dùng để giảm tốc độ crawl |
| 429 Too Many Requests | Gửi yêu cầu quá nhiều | Xử lý như lỗi máy chủ: Googlebot tạm giảm tốc độ crawl |
| 500 / 502 / 503 | Lỗi máy chủ, cổng, tạm không phục vụ | Giảm tốc độ crawl; URL đã index được giữ một thời gian, kéo dài thì bị loại |
Nguồn: tài liệu của Google Search Central về mã trạng thái HTTP và lỗi mạng. Googlebot đi theo tối đa 10 bước chuyển hướng liên tiếp; chuỗi dài hơn sẽ được báo là lỗi chuyển hướng trong Search Console. Mã 304 chỉ xuất hiện khi bot gửi yêu cầu có điều kiện (kèm ETag hoặc ngày sửa cuối) — cơ chế này nằm ở bài Cache-Control.
Ba điều dễ hiểu sai nhất
Soft 404: mã nói một đằng, nội dung nói một nẻo
Trang “Không tìm thấy sản phẩm”, kết quả tìm kiếm rỗng, trang danh mục trống — nếu trả 200, Google phải tự đoán đó là trang lỗi và báo soft 404. Cách sửa: trả 404 hoặc 410 thật, hoặc thêm nội dung thực nếu trang cần tồn tại. Chuyển hướng mọi URL lỗi về trang chủ cũng thường bị coi là soft 404.
5xx kéo dài nguy hiểm hơn 404
404 trên URL không tồn tại là bình thường. Nhưng 5xx trên trang đang bán hàng nghĩa là Google không thấy nội dung và giảm tốc độ ghé thăm cả website. Lỗi vài phút ít ảnh hưởng; lỗi kéo dài nhiều ngày có thể khiến trang rơi khỏi chỉ mục. Nếu chính tệp robots.txt trả 5xx, Google tạm coi như toàn bộ website bị chặn thu thập cho tới khi tệp đọc được trở lại.
Bảo trì phải dùng 503, không dùng 200
Trang “Đang bảo trì” trả 200 cho mọi URL khiến Google thấy hàng trăm trang có cùng một nội dung. Trả 503 Service Unavailable, có thể kèm header Retry-After để báo thời gian dự kiến, cho Google biết đây là tình trạng tạm thời. Bảo trì nên ngắn: 503 kéo dài nhiều ngày cũng dẫn tới mất index.
Kiểm tra mã trạng thái thật
Đừng tin vào những gì trình duyệt hiển thị — trang lỗi đẹp có thể đang trả 200. Bốn cách kiểm tra, từ nhanh đến kỹ:
| Cách | Làm thế nào | Cho biết gì |
|---|---|---|
| curl trên máy tính | Lệnh curl -sI kèm URL (thêm -L để đi theo chuyển hướng). Windows 10 trở lên có sẵn curl.exe | Mã trạng thái và header của từng bước chuyển hướng |
| DevTools trình duyệt | F12 › tab Network › bật Preserve log › tải lại trang | Mã của tài liệu chính và mọi tài nguyên (ảnh, CSS, JS) |
| Công cụ crawl | Crawl toàn website, lọc theo cột mã trạng thái | Liên kết nội bộ nào dẫn tới 3xx, 4xx, 5xx |
| Kiểm tra URL trong Search Console | Nhập URL › Kiểm tra URL đang hoạt động | Googlebot thực sự nhận được gì |
Lưu ý: tuỳ chọn -I của curl gửi yêu cầu HEAD; một số máy chủ trả HEAD khác GET. Khi kết quả lạ, gửi GET và chỉ in header. Một số hệ thống chống bot trả mã khác cho Googlebot so với người dùng — chỉ có công cụ Kiểm tra URL và log máy chủ cho biết chắc chắn bot nhận gì.
Tình huống nào trả mã nào
| Tình huống | Mã nên trả | Ghi chú |
|---|---|---|
| Đổi slug bài viết, gộp hai trang | 301 | Cập nhật liên kết nội bộ sang URL mới |
| Trang khuyến mãi tạm thay trang danh mục vài ngày | 302 hoặc 307 | Gỡ khi hết chương trình |
| Sản phẩm tạm hết hàng | 200 | Giữ trang, ghi rõ tình trạng |
| Sản phẩm ngừng bán, không có thay thế | 404 hoặc 410 | Gỡ khỏi sitemap và liên kết nội bộ |
| Website bảo trì vài giờ | 503 | Kèm Retry-After; không chặn robots.txt |
| Lỗi kết nối cơ sở dữ liệu | 500 hoặc 503 | Không được trả 200 kèm thông báo lỗi |
| Trang thành viên cần đăng nhập | 401 hoặc 403, hoặc chuyển tới trang đăng nhập | Không cần index |
| Bot gửi quá nhiều yêu cầu | 429 hoặc 503 trong thời gian ngắn | Không dùng lâu dài để điều tiết Googlebot |
Ví dụ thực hành: theo dõi theo mẫu URL
Ví dụ giả định: một chuỗi cà phê có website đặt hàng 1.200 URL. Sau mỗi lần phát hành, đội kỹ thuật crawl lại và nhóm kết quả theo thư mục thay vì xem từng URL. Lần gần nhất, nhóm /san-pham/ có 38 URL trả 500 — tất cả là sản phẩm có ký tự đặc biệt trong tên, lỗi do bản cập nhật xử lý đường dẫn. Nhóm /tin-tuc/ có 12 chuỗi chuyển hướng hai bước do đổi tên miền cũ. Sửa theo mẫu, mỗi lỗi chỉ cần một thay đổi.
Đội cũng ghi danh sách khoảng 30 URL “canh gác”: trang chủ, danh mục chính, vài sản phẩm bán chạy, trang liên hệ. Sau mỗi lần phát hành, chỉ cần một đoạn lệnh curl chạy qua danh sách và báo mã khác 200. Cách làm này đặc biệt quan trọng khi chuyển website.
Sai lầm thường gặp
- Trang lỗi tuỳ chỉnh trả 200 — soft 404 hàng loạt.
- Dùng 302 cho thay đổi vĩnh viễn vì nền tảng đặt mặc định như vậy.
- Trả 403 hoặc 404 để “làm chậm” Googlebot — Google sẽ bỏ URL khỏi chỉ mục thay vì crawl chậm lại.
- Bảo trì trả 200 hoặc chặn robots.txt thay vì 503.
- Chỉ kiểm tra trên trình duyệt mà không xem mã thật.
Câu hỏi thường gặp
301 và 308 khác nhau thế nào với SEO?
Với Google, cả hai đều là chuyển hướng vĩnh viễn và được xử lý như nhau. Khác biệt kỹ thuật là 308 giữ nguyên phương thức yêu cầu (ví dụ POST), chủ yếu quan trọng với API và form.
Trang bảo trì nên trả mã gì?
503 Service Unavailable, có thể kèm header Retry-After. Giữ thời gian bảo trì ngắn; 503 kéo dài nhiều ngày có thể khiến trang bị loại khỏi chỉ mục.
Làm sao biết Googlebot nhận mã gì?
Dùng công cụ Kiểm tra URL trong Search Console với chế độ kiểm tra trực tiếp, hoặc xem log máy chủ và lọc theo Googlebot đã xác minh.
Soạn sẵn thông báo bảo trì và trang lỗi đúng giọng thương hiệu cùng Pilot AI.
Điền hồ sơ thương hiệu một lần: Scalio lập chiến lược, viết bài theo đúng giọng của bạn, xếp lịch đăng và chấm điểm marketing.
Tạo tài khoản miễn phí

