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 trong SEO: Cách dùng mã phản hồi đúng

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.

Cột đèn tín hiệu giao thông đang sáng đèn vàng

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ĩaGoogle xử lý thế nào
200 OKThà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 ContentThành công, không có nội dungKhông có gì để index; Search Console có thể báo soft 404
301 / 308Chuyển vĩnh viễnTheo chuyển hướng; tín hiệu mạnh rằng URL đích là URL chuẩn
302 / 303 / 307Chuyển tạm thờiTheo 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 ModifiedKhô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 / 410Khô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 / 403Cần xác thực / bị cấmNhư nhóm 4xx: không index. Không dùng để giảm tốc độ crawl
429 Too Many RequestsGửi yêu cầu quá nhiềuXử lý như lỗi máy chủ: Googlebot tạm giảm tốc độ crawl
500 / 502 / 503Lỗ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áchLàm thế nàoCho biết gì
curl trên máy tínhLệnh curl -sI kèm URL (thêm -L để đi theo chuyển hướng). Windows 10 trở lên có sẵn curl.exeMã trạng thái và header của từng bước chuyển hướng
DevTools trình duyệtF12 › tab Network › bật Preserve log › tải lại trangMã của tài liệu chính và mọi tài nguyên (ảnh, CSS, JS)
Công cụ crawlCrawl toàn website, lọc theo cột mã trạng tháiLiên kết nội bộ nào dẫn tới 3xx, 4xx, 5xx
Kiểm tra URL trong Search ConsoleNhập URL › Kiểm tra URL đang hoạt độngGooglebot 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ốngMã nên trảGhi chú
Đổi slug bài viết, gộp hai trang301Cậ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ày302 hoặc 307Gỡ khi hết chương trình
Sản phẩm tạm hết hàng200Giữ trang, ghi rõ tình trạng
Sản phẩm ngừng bán, không có thay thế404 hoặc 410Gỡ khỏi sitemap và liên kết nội bộ
Website bảo trì vài giờ503Kèm Retry-After; không chặn robots.txt
Lỗi kết nối cơ sở dữ liệu500 hoặc 503Không được trả 200 kèm thông báo lỗi
Trang thành viên cần đăng nhập401 hoặc 403, hoặc chuyển tới trang đăng nhậpKhông cần index
Bot gửi quá nhiều yêu cầu429 hoặc 503 trong thời gian ngắnKhô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í

Bài viết liên quan