Redirect (301)
Phản hồi HTTP mã 301 chỉ định chuyển hướng vĩnh viễn từ một URL cũ sang URL mới, bảo toàn phần lớn quyền lực liên kết.
Redirect (301) là gì?
Redirect (301) là phản hồi HTTP mã trạng thái 301 Moved Permanently, báo hiệu rằng một trang web đã được di chuyển vĩnh viễn sang địa chỉ URL mới. Khi trình duyệt hoặc công cụ tìm kiếm như Google gửi yêu cầu đến URL cũ, máy chủ trả về mã 301 kèm theo địa chỉ URL mới — và tự động chuyển hướng người dùng hoặc bot đến địa chỉ đó.
Đây là loại chuyển hướng được Google khuyến nghị khi bạn thay đổi cấu trúc URL vĩnh viễn — ví dụ: đổi tên miền, gộp nội dung, sửa lỗi viết sai URL, hoặc chuyển từ HTTP sang HTTPS.
Tại sao quan trọng trong SEO?
Redirect 301 rất quan trọng vì nó giúp bảo toàn giá trị SEO từ URL cũ sang URL mới. Theo xác nhận chính thức từ Google (từ năm 2016 và cập nhật lại năm 2023), redirect 301 truyền lại hầu hết quyền lực liên kết (link equity) — bao gồm độ tin cậy, lịch sử backlink và tín hiệu xếp hạng — sang URL đích.
Nếu không dùng 301 mà để URL cũ trả về 404 (không tìm thấy), bạn sẽ mất lượt truy cập trực tiếp, làm giảm trải nghiệm người dùng và khiến Google dần loại bỏ trang khỏi chỉ mục. Ngược lại, dùng sai loại redirect (như 302 tạm thời) có thể khiến Google giữ nguyên URL cũ trong kết quả tìm kiếm — dẫn đến trùng lặp nội dung và phân tán tín hiệu.
Cách hoạt động
Khi người dùng hoặc bot truy cập URL cũ:
- Máy chủ nhận yêu cầu GET đến
/cu/ - Máy chủ trả về mã trạng thái HTTP 301 và header
Location: https://example.com/moi/ - Trình duyệt hoặc bot tự động gửi yêu cầu mới tới URL trong header
Location - Người dùng thấy trang mới; Googlebot cập nhật chỉ mục và chuyển tín hiệu xếp hạng sang URL mới
Lưu ý: Quá trình này xảy ra gần như tức thì, nhưng việc Google cập nhật lại chỉ mục đầy đủ có thể mất từ vài giờ đến vài tuần — tùy vào tần suất thu thập (crawl budget) và mức độ ưu tiên của trang.
Hướng dẫn thực hiện
Dưới đây là cách thiết lập redirect 301 phổ biến nhất, phù hợp với từng môi trường:
| Hệ thống | Cách thực hiện | Ghi chú |
|---|---|---|
| Apache (.htaccess) | Redirect 301 /cu/ https://example.com/moi/ |
Hoặc dùng RewriteRule cho linh hoạt hơn |
| Nginx | return 301 https://example.com/moi/; |
Đặt trong khối location hoặc server |
| WordPress (plugin) | Dùng plugin như Redirection, Rank Math hoặc Yoast SEO | Cho phép theo dõi 404 và tạo redirect hàng loạt |
| PHP (code thủ công) | header('HTTP/1.1 301 Moved Permanently'); |
Phải đặt trước bất kỳ output nào (không có khoảng trắng, echo) |
Lưu ý bắt buộc:
- Luôn kiểm tra mã trạng thái bằng công cụ như httpstatus.io hoặc trình phát triển trình duyệt (F12 → Network tab)
- Không tạo chuỗi redirect dài (ví dụ: A → B → C). Tối đa nên là 1 bước — nếu cần nhiều URL cũ trỏ về 1 URL mới, hãy cấu hình từng redirect riêng lẻ
- Với hàng trăm URL, ưu tiên dùng file cấu hình máy chủ (không dùng plugin nếu không cần giao diện)
Lỗi thường gặp
Redirect vòng (redirect loop)
Xảy ra khi URL A chuyển hướng tới B, B lại quay lại A — trình duyệt hiển thị lỗi “ERR_TOO_MANY_REDIRECTS”. Nguyên nhân thường do cấu hình sai regex hoặc plugin xung đột. Cách khắc phục: tắt plugin, kiểm tra file .htaccess/nginx config, dùng curl -I để kiểm tra chuỗi header.
Redirect 302 thay vì 301
Nhiều CMS hoặc plugin mặc định dùng 302 khi bạn chọn “chuyển hướng”, dẫn đến Google không cập nhật chỉ mục. Kiểm tra kỹ loại mã trạng thái — nếu muốn chuyển vĩnh viễn, phải đảm bảo là 301.
Chuyển hướng tới URL trả về 404 hoặc 500
URL mới không tồn tại hoặc lỗi máy chủ khiến toàn bộ chuỗi redirect thất bại. Luôn kiểm tra URL đích trước khi kích hoạt redirect — đảm bảo trang mở được, trả về mã 200 và có nội dung hợp lệ.
Ví dụ thực tế
Ví dụ 1: Một cửa hàng online đổi tên miền từ shopcu.vn sang shopmoi.com. Họ cấu hình redirect 301 toàn bộ các URL:
shopcu.vn/san-pham/a.html → shopmoi.com/san-pham/a.htmlshopcu.vn/blog → shopmoi.com/tin-tuc
Ví dụ 2: Trang blog cá nhân chuyển từ HTTP sang HTTPS. Chủ web thêm dòng sau vào file .htaccess:
Redirect 301 / https://blogtoichinhthuc.com/Kết quả: toàn bộ 127 bài viết đều được Google tái lập chỉ mục dưới phiên bản HTTPS trong vòng 5 ngày, không mất thứ hạng.
Câu hỏi thường gặp
Redirect 301 có làm mất PageRank không?
Theo tài liệu chính thức của Google, redirect 301 truyền lại hầu hết giá trị link equity — không phải 100%, nhưng tổn thất là tối thiểu và không đáng kể trong thực tế. Không có con số phần trăm cố định được công bố; mức độ truyền tải phụ thuộc vào độ tin cậy của URL nguồn và chất lượng URL đích.
Có nên dùng redirect 301 cho các trang không còn tồn tại?
Chỉ khi có trang tương đương về chủ đề và trải nghiệm. Ví dụ: trang sản phẩm ngừng kinh doanh nên redirect tới danh mục liên quan, không phải trang chủ. Nếu không có trang phù hợp, tốt hơn hết là để 404 (hoặc 410 nếu xác định vĩnh viễn không khôi phục) kèm thông báo rõ ràng cho người dùng.
Redirect 301 có ảnh hưởng tốc độ tải trang không?
Có, nhưng rất nhỏ — thường dưới 100ms trên mạng tốt. Mỗi redirect thêm 1 lần gọi HTTP round-trip. Vì vậy, tránh chuỗi redirect và ưu tiên redirect ở cấp máy chủ (không qua PHP hay JavaScript). Với người dùng di động, độ trễ này có thể gây khó chịu nếu lặp lại nhiều lần.