Mã trạng thái HTTP cho SEO: 200, 301, 404, 410, 5xx, soft 404 và Google hiểu từng mã ra sao
Mã trạng thái là câu đầu tiên máy chủ nói với Googlebot về một địa chỉ: có nội dung, đã chuyển, không còn, hay đang lỗi. Trả sai mã, ví dụ trang lỗi mà vẫn 200, trang chuyển mà dùng 302, khiến Google lập chỉ mục rác hoặc giữ địa chỉ cũ.

Mỗi lần Googlebot hay trình duyệt hỏi một địa chỉ, máy chủ trả lời bằng một mã ba chữ số trước khi gửi nội dung. Mã đó là mã trạng thái HTTP, và với Google nó quan trọng hơn cả nội dung đi kèm: 200 nghĩa là “đây là nội dung, hãy xem xét lập chỉ mục”, 301 nghĩa là “đã chuyển hẳn, hãy dồn tín hiệu sang địa chỉ mới”, 404 nghĩa là “không có gì ở đây”, 5xx nghĩa là “máy chủ đang hỏng, quay lại sau”. Trang hiện đẹp trên trình duyệt chưa chắc trả đúng mã; nhiều lỗi SEO khó thấy nhất nằm ở đây.
Bảng mã hay gặp và Google hiểu thế nào
| Mã | Nghĩa | Google làm gì |
|---|---|---|
| 200 | Thành công | Xử lý nội dung, có thể lập chỉ mục (nếu không có noindex và không phải trang lỗi trá hình) |
| 301, 308 | Chuyển hẳn | Đi theo, dồn tín hiệu sang đích, dần dần thay địa chỉ cũ bằng đích trong kết quả |
| 302, 303, 307 | Chuyển tạm | Đi theo nhưng thường giữ địa chỉ cũ trong chỉ mục; nếu kéo dài, có thể coi như chuyển hẳn |
| 304 | Không đổi từ lần trước | Dùng bản đã lưu; tiết kiệm băng thông, tốt cho site lớn |
| 400, 401, 403 | Yêu cầu sai, cần đăng nhập, bị cấm | Không lập chỉ mục; địa chỉ đã có trong chỉ mục bị gỡ dần |
| 404 | Không tìm thấy | Gỡ khỏi chỉ mục sau vài lần thu thập; vẫn ghé lại thỉnh thoảng |
| 410 | Đã xoá vĩnh viễn | Như 404, gỡ có thể nhanh hơn một chút |
| 429 | Quá nhiều yêu cầu | Giảm tốc độ thu thập toàn site; kéo dài thì gỡ địa chỉ như lỗi máy chủ |
| 500, 502, 503, 504 | Lỗi máy chủ | Giảm tốc độ thu thập; lỗi kéo dài vài ngày thì bắt đầu gỡ địa chỉ khỏi chỉ mục |
Hai điểm hay hiểu nhầm: thứ nhất, 404 không làm hại cả site. Một site có nhiều trang 404 vì đã xoá sản phẩm cũ là chuyện bình thường; Google chỉ bỏ những địa chỉ đó. Thứ hai, 403 không phải cách “ẩn” trang an toàn: nếu trang đã được lập chỉ mục, 403 làm nó rơi khỏi chỉ mục; nếu bạn chặn nhầm Googlebot bằng 403 trên cả site, cả site rơi theo.
Soft 404: trang lỗi nhưng trả 200
Soft 404 là trang hiển thị nội dung kiểu “không tìm thấy”, “sản phẩm không tồn tại”, hoặc gần như trống, nhưng máy chủ vẫn trả mã 200. Google tự phát hiện và báo trong Search Console mục Trang với lý do Soft 404. Các dạng hay gặp:
- Trang tìm kiếm nội bộ không có kết quả nào:
/tim-kiem?q=xyz. - Trang danh mục rỗng:
/danh-muc/ao-khoackhi mùa hè đã hết hàng. - Trang sản phẩm đã xoá nhưng giao diện vẫn dựng khung, chỉ thiếu nội dung.
- Chuyển hướng mọi địa chỉ không tồn tại về trang chủ (Google coi đích trang chủ của một địa chỉ sai là soft 404).
- Trang chỉ có một dòng “Đang cập nhật”.
Cách sửa: trang thật sự không còn thì trả 404 hoặc 410. Trang còn giá trị nhưng tạm thời rỗng (danh mục hết hàng theo mùa) thì thêm nội dung giải thích và gợi ý danh mục khác, hoặc noindex tạm thời. Trang tìm kiếm nội bộ nên noindex.
Khi nào dùng 404, khi nào 410, khi nào 301
| Tình huống | Nên trả |
|---|---|
| Sản phẩm ngừng bán, có mẫu thay thế gần như tương đương | 301 sang mẫu thay thế |
| Sản phẩm ngừng bán, không có thay thế, trang không có liên kết ngoài | 404 hoặc 410 |
| Trang bị spam chèn vào (site bị hack), muốn gỡ nhanh | 410 |
| Bài viết cũ đã gộp vào bài mới | 301 sang bài mới |
| Địa chỉ gõ sai, chưa từng tồn tại | 404 |
| Trang có nhiều liên kết ngoài trỏ vào nhưng nội dung đã bỏ | 301 sang trang gần nghĩa nhất, nếu có; nếu không, 404 |
Khác biệt giữa 404 và 410 với Google là rất nhỏ. Dùng 410 khi bạn chắc chắn trang không bao giờ quay lại và muốn tín hiệu rõ nhất. Chi tiết về sản phẩm hết hàng có trong bài sản phẩm hết hàng, ngừng bán.
Lỗi 5xx và 429: chậm thu thập cả site
Khi máy chủ trả 5xx hoặc 429 nhiều, Googlebot hiểu là nó đang làm site quá tải và tự giảm tốc độ thu thập. Vài giờ lỗi không sao. Vài ngày lỗi liên tục thì trang bắt đầu bị gỡ khỏi chỉ mục. Nguyên nhân hay gặp:
- Hosting chia sẻ hết tài nguyên lúc cao điểm, PHP hết tiến trình.
- Plugin hoặc mã nguồn gặp lỗi chỉ ở một loại trang (trang sản phẩm có biến thể, trang tìm kiếm).
- Tường lửa ứng dụng hoặc dịch vụ chống bot trả 429/503 cho Googlebot vì nghĩ là tấn công.
- Bảo trì mà quên tắt chế độ bảo trì, trang trả 503 nhiều ngày.
Khi bảo trì có chủ đích, trả 503 kèm tiêu đề Retry-After là đúng cách: Google hiểu là tạm thời và quay lại sau. Trả 200 kèm trang “đang bảo trì” thì tệ hơn: Google có thể lập chỉ mục trang bảo trì thay cho nội dung thật.
Báo cáo Thống kê thu thập dữ liệu trong Search Console (mục Cài đặt) cho thấy tỉ lệ phản hồi theo mã và thời gian phản hồi trung bình. Tỉ lệ 5xx tăng đột ngột là việc cần xử lý trước mọi việc khác.

Những mã “ẩn” mà trình duyệt không cho thấy
Trình duyệt đi theo chuyển hướng tự động và hiện trang cuối cùng, nên bạn không thấy chuỗi mã ở giữa. Một số tình huống chỉ lộ ra khi kiểm bằng công cụ:
- Chuỗi chuyển hướng: http → https → www → có dấu gạch chéo cuối. Bốn bước cho một trang. Google đi theo tối đa 10 bước nhưng mỗi bước tốn thời gian và có rủi ro hỏng; gom về một bước. Xem chuyển hướng 301, gom www và HTTPS.
- Trang chủ trả 302 về
/vi/hoặc/home: trang chủ thật của bạn trong mắt Google là một chuyển hướng tạm. - Trang trả 200 nhưng là trang đỗ tên miền (parking) hoặc trang mặc định của hosting: tên miền mới trỏ DNS chưa có site, hoặc vhost cấu hình sai.
- Trang trả tệp không phải HTML (tải về tệp, JSON) ở địa chỉ đáng lẽ là trang.
Chấm điểm SEO của SEO Gốc ghi lại từng bước chuyển hướng và mã cuối, báo riêng các trường hợp không truy cập được, 5xx, mã khác 200, trang chờ (đỗ tên miền) và nội dung không phải HTML.
Một trường hợp đáng nhắc riêng là tên miền mới mua: nhiều nhà đăng ký ở Việt Nam mặc định trỏ tên miền về trang đỗ của họ, trả 200 kèm vài dòng quảng cáo. Nếu bạn gửi sitemap hoặc chia sẻ liên kết trước khi site thật lên, Google có thể ghi nhận trang đỗ đó trước. Không có hại lâu dài, nhưng nên dựng site và trỏ DNS xong rồi mới khai báo với Search Console để lần thu thập đầu tiên gặp đúng nội dung.
Kiểm mã trạng thái bằng dòng lệnh
# Mã và đích chuyển hướng của một địa chỉ
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://tenmien.vn/trang-cu
# Đi theo toàn bộ chuỗi, in từng bước
curl -sIL https://tenmien.vn/trang-cu | grep -iE "^HTTP|^location"
# Giả làm Googlebot điện thoại (để phát hiện tường lửa chặn bot)
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (Linux; Android 10) Mobile (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://tenmien.vn/
Lưu ý: tường lửa tốt sẽ xác minh Googlebot thật bằng địa chỉ IP, nên giả chuỗi nhận dạng từ máy bạn có thể nhận kết quả khác với Googlebot thật. Công cụ Kiểm tra URL trong Search Console là nguồn chắc chắn nhất cho câu hỏi “Googlebot thật nhận mã gì”.
Checklist mã trạng thái
- Trang chủ trả 200 trực tiếp, không qua 302.
- Mọi biến thể http, www về bản chính bằng 301 trong một bước.
- Trang không tồn tại trả 404 thật, không trả 200, không chuyển về trang chủ.
- Trang tìm kiếm nội bộ, danh mục rỗng không thành soft 404.
- Bảo trì dùng 503 kèm Retry-After, không dùng 200.
- Tỉ lệ 5xx trong Thống kê thu thập dữ liệu gần 0.
- Tường lửa, dịch vụ chống bot không trả 403/429 cho Googlebot.
- Liên kết nội bộ trỏ thẳng đích cuối, không trỏ vào địa chỉ chuyển hướng hay 404.
Hỏi đáp
Site có nhiều lỗi 404 có bị Google đánh giá thấp không?
Không. 404 cho trang thật sự không còn là phản hồi đúng. Google chỉ bỏ các địa chỉ đó khỏi chỉ mục, không hạ cả site. Chỉ cần sửa 404 ở liên kết nội bộ và ở trang có liên kết ngoài giá trị trỏ vào.
Soft 404 là gì?
Là trang trả mã 200 nhưng nội dung là trang lỗi, trang rỗng hoặc gần như trống. Google tự nhận ra và không lập chỉ mục. Sửa bằng cách trả 404 thật hoặc thêm nội dung có giá trị.
Có nên chuyển hướng mọi trang 404 về trang chủ?
Không. Google coi chuyển hướng về trang không liên quan là soft 404, giá trị không được chuyển, mà người dùng còn bị lạc. Chỉ chuyển hướng khi có trang thay thế tương ứng.
Site bảo trì vài giờ có ảnh hưởng thứ hạng không?
Không đáng kể nếu trả 503 kèm Retry-After. Google hiểu là tạm thời và quay lại sau. Lỗi kéo dài nhiều ngày mới bắt đầu làm rơi trang khỏi chỉ mục.
Đọc tiếp

Chuyển hướng 301, 302, gom www và HTTPS: làm một lần cho đúng
Mọi biến thể http và www phải chuyển hướng vĩnh viễn 301 về một địa chỉ chính thức trong đúng một bước. 302 là chuyển tạm, cho Google tín h…

Vì sao trang không được lập chỉ mục: đọc đúng trạng thái trong Search Console và cách kiểm từng nguyên nhân
Trang không vào chỉ mục vì Google bị chặn (noindex, robots.txt, lỗi máy chủ, 404) hoặc vì Google chọn không lưu (trùng lặp, nội dung mỏng).…

Sản phẩm hết hàng, ngừng bán: giữ trang, chuyển hướng hay xoá
Hết hàng tạm thời: giữ nguyên trang, báo rõ ngày có hàng, đổi availability, gợi ý mẫu tương tự. Ngừng bán có mẫu thay thế gần như tương đươ…

Đọc nhật ký máy chủ để biết Googlebot thật sự thu thập gì trên site
Search Console cho biết Google nghĩ gì về site; nhật ký máy chủ cho biết Googlebot đã thật sự làm gì: ghé địa chỉ nào, bao nhiêu lần, nhận…