Chuyển hướng 302
Chuyển hướng tạm thời 302 là gì, cách Google tách tín hiệu crawl khỏi ưu tiên canonical, trường hợp sử dụng đúng, rủi ro khi dùng cho lần chuyển vĩnh viễn và cách xác minh.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Công cụ trực tuyến liên quanHTTP Status & Redirect Checker
Chuyển hướng 302 (HTTP 302 “Found”) là chuyển hướng tạm thời: nó đưa người dùng đến URL mới nhưng báo URL gốc nên tiếp tục xuất hiện trong kết quả. Google gọi 302 là tín hiệu yếu rằng đích nên được xử lý ở tầng crawl, trong khi quy trình lập chỉ mục không dùng chuyển hướng tạm thời làm tín hiệu chọn đích làm canonical; hai phạm vi này không được trộn lẫn. Google đã nói tín hiệu liên kết trên 302 không bằng 0, nhưng 302 tồn tại lâu có thể dần bị xử lý như 301 mà không có lịch trình công bố. Đây là lựa chọn đúng cho thử nghiệm A/B, định tuyến theo địa lý hoặc thiết bị, trang bảo trì và khuyến mãi tạm thời. Sai lầm thật là dùng 302 cho lần chuyển vĩnh viễn, khiến URL cũ có thể tiếp tục xếp hạng thay URL mới trong thời gian khó đoán.
Tóm tắt — Chuyển hướng 302 tạm thời đưa khách truy cập từ URL này sang URL khác. Nó báo cho công cụ tìm kiếm: “lần chuyển này không vĩnh viễn — hãy giữ URL gốc trong kết quả.” Dùng khi tình trạng thực sự tạm thời, như thử nghiệm A/B, trang giảm giá hoặc thông báo bảo trì. Nếu di chuyển trang vĩnh viễn, hãy dùng 301.
Chuyển hướng 302 là gì
Chuyển hướng là chỉ thị đưa mọi người yêu cầu một URL đến URL khác. Khi máy chủ phản hồi, nó kèm mã trạng thái HTTP gồm ba chữ số cho biết điều đã xảy ra. 302 là một mã chuyển hướng. Tên chính thức là “302 Found” và đặc tính cốt lõi chỉ có một từ: tạm thời. Evidence for this claim RFC 9110 defines 302 Found as a temporary move to another URI and notes that user agents may change POST to GET when following it. Scope: HTTP semantics for 302 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.3 — 302 Found
Tính tạm thời chính là điểm quan trọng. 302 nói: trang này tạm thời di chuyển nhưng URL gốc sẽ quay lại. Vì vậy, công cụ tìm kiếm được yêu cầu giữ URL gốc trong kết quả và coi đích là nội dung thay thế tạm thời, không phải nội dung thay thế vĩnh viễn. Evidence for this claim Google follows a 302 temporary redirect but does not use it as a signal that the destination should become canonical; Google recommends 302 rather than 301 for temporary site tests. Scope: Google Search handling of temporary redirects and A/B tests. Confidence: high · Verified: Google: Redirects and Google Search Google: Website testing
So sánh với chuyển hướng 301 vĩnh viễn, nghĩa là “lần chuyển này kéo dài mãi; hãy lập chỉ mục URL mới”. Trải nghiệm khách truy cập giống nhau vì cả hai đều đưa đến trang mới, nhưng thông điệp cho công cụ tìm kiếm thì trái ngược.
Khi nào thực sự nên dùng 302
302 là công cụ đúng khi lần chuyển thực sự chỉ tồn tại ngắn hạn:
- Bạn đang chạy thử nghiệm A/B và đưa một số khách truy cập đến biến thể của trang.
- Bạn có trang giảm giá hoặc khuyến mãi tạm thời rồi sẽ chuyển lại.
- Trang tạm ngừng để bảo trì và bạn muốn hiển thị thông báo “sắp quay lại” mà không mất vị trí của URL thật trong kết quả.
- Bạn định tuyến theo vị trí hoặc thiết bị, chẳng hạn đưa người dùng đến phiên bản theo quốc gia hoặc ngôn ngữ, và đích “đúng” thay đổi theo từng khách.
Trong mọi trường hợp trên, bạn muốn URL gốc giữ nguyên trong kết quả Google — đúng điều 302 yêu cầu.
Điều phần lớn mọi người hiểu sai
Trong nhiều năm, người làm SEO coi 302 là thứ độc hại — “không truyền giá trị liên kết, đừng bao giờ dùng”. Đó là quan niệm sai. 302 vẫn truyền tín hiệu liên kết; khác biệt với 301 chỉ là URL nào công cụ tìm kiếm ưu tiên hiển thị. John Mueller của Google nói 302 “have a bad reputation among SEOs, which I think is incorrect.” (bản dịch) «có tiếng xấu trong giới SEO, nhưng tôi cho rằng điều đó không đúng».
Sai lầm thật không phải dùng 302, mà là dùng 302 cho lần chuyển vĩnh viễn. Nếu ngừng một trang vĩnh viễn nhưng chuyển bằng 302, bạn đang bảo Google “giữ URL cũ trong chỉ mục”, nên trang mới mà bạn thực sự muốn xếp hạng có thể chưa thay thế nó trong một khoảng thời gian dài và khó đoán. Với lần chuyển vĩnh viễn, dùng 301.
Muốn hiểu cơ chế chính xác, cách Google nói “tín hiệu yếu và tín hiệu mạnh”, vì sao 302 tồn tại lâu có thể chuyển sang cách xử lý như 301 và Bing xử lý ra sao? Hãy chuyển sang thẻ Nâng cao.
Tóm tắt — 302 (“Found”) là chuyển hướng tạm thời. Cách diễn đạt chính xác của Google có hai giai đoạn: hạ tầng crawl coi đây là tín hiệu yếu rằng đích nên được xử lý, so với tín hiệu mạnh của 301; riêng quy trình lập chỉ mục Search nói chuyển hướng tạm thời không phải tín hiệu rằng đích nên là canonical, dù đích vẫn có thể được lập chỉ mục nhờ tín hiệu khác. Hai cơ chế thường bị trộn lẫn: truyền tín hiệu liên kết/PageRank — Mueller và Illyes nói mức này không bằng 0 với 302, nhưng đó là phát biểu công khai chứ không phải quy tắc phổ quát được xuất bản chính thức — và ưu tiên canonical hóa/lập chỉ mục, nơi 302 bảo Google giữ URL nguồn trong chỉ mục. Nếu tồn tại đủ lâu, 302 có thể chuyển sang cách xử lý như 301; đây là mẫu được người làm nghề quan sát, không phải cơ chế có tài liệu, và không có lịch trình công bố. Google khuyên dùng 302 thay 301 cho thử nghiệm A/B. Sai lầm thật là dùng 302 cho lần chuyển vĩnh viễn; cũng không bao giờ được tạo đích chuyển hướng từ dữ liệu người dùng chưa kiểm tra.
Từ “Moved Temporarily” đến “Found” — lịch sử ngắn
302 ra đời với sự mơ hồ. Trong HTTP/1.0, nó có tên “Moved Temporarily” và đặc tả nói client nên tái sử dụng phương thức yêu cầu gốc khi theo chuyển hướng. Trong thực tế, trình duyệt không làm vậy; nhiều trình duyệt âm thầm đổi POST thành GET, trái đặc tả. HTTP/1.1 thừa nhận thực tế bằng cách đổi tên 302 thành “Found” và thêm hai lựa chọn rõ ràng: 303 (See Other) luôn đổi sang GET, còn 307 (Temporary Redirect) không bao giờ đổi phương thức. Đặc tả hiện tại RFC 9110 năm 2022 vẫn ghi client có thể đổi POST thành GET khi theo 302; đó chính là lý do 307 tồn tại cho trường hợp không được đổi. Với chuyển hướng trang dùng GET thông thường, 302 và 307 được công cụ tìm kiếm xử lý giống nhau; khác biệt giữ phương thức chỉ quan trọng với biểu mẫu và API. Evidence for this claim RFC 9110 defines 302 Found as a temporary move to another URI and notes that user agents may change POST to GET when following it. Scope: HTTP semantics for 302 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.3 — 302 Found
Đối với tìm kiếm, Google gom 302 (found), 303 (see other) và 307 (temporary redirect) vào nhóm “Tạm thời”, đối lập với 301 và 308 ở nhóm “Vĩnh viễn”.
Quyết định ngắn gọn khi chọn giữa các mã:
- 302 — client theo chuyển hướng có thể đổi
POSTthànhGETtheo RFC 9110. Phù hợp với chuyển hướng trang dùngGET; tránh nếu không thể chấp nhận đổi phương thức. - 307 — không đổi phương thức hay gửi lại một yêu cầu khác. Dùng khi biểu mẫu hoặc lệnh gọi API phải được phát lại đúng như ban đầu.
- 303 — cố ý trỏ đến một tài nguyên khác, không tương đương, thường được lấy bằng
GET/HEAD. Đây là mẫu “sau POST chuyển đến trang xác nhận”, không phải nội dung thay thế tương đương. - Bộ nhớ đệm — riêng mã 302 không cho phép cache theo suy đoán theo RFC 9111; nó chỉ được lưu/tái sử dụng khi có chỉ thị cache hoặc độ mới rõ ràng. Đừng giả định CDN hay trình duyệt sẽ cache 302 trần theo mặc định.
Tín hiệu yếu và tín hiệu mạnh — nguyên văn chính xác của Google
Bỏ qua lời truyền miệng và đọc cách Google thật sự diễn đạt. Trong tài liệu hạ tầng crawl, Google nói 302 là tín hiệu yếu:
Evidence for this claim Google's crawling-infrastructure documentation says crawlers follow a 302/303 and Google systems use it as a weak signal that the target should be processed; it also warns that product behavior can differ. Scope: product-specific crawl and processing handoff Confidence: high · Verified: How HTTP Status Codes Affect Google's Crawlers“By default, Google’s crawlers follow the redirect, and Google systems use the redirect as a weak signal that the redirect target should be processed.” (bản dịch) «Theo mặc định, crawler Google đi theo chuyển hướng và hệ thống Google dùng chuyển hướng làm tín hiệu yếu rằng đích nên được xử lý.»
Dòng 301 trong cùng bảng giống hệt, chỉ thay một từ thành mạnh:
Evidence for this claim Google's crawling-infrastructure documentation says crawlers follow a 302/303 and Google systems use it as a weak signal that the target should be processed; it also warns that product behavior can differ. Scope: product-specific crawl and processing handoff Confidence: high · Verified: How HTTP Status Codes Affect Google's Crawlers“Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.” (bản dịch) «Google đi theo chuyển hướng và hệ thống Google dùng chuyển hướng làm tín hiệu mạnh rằng đích nên được xử lý.»
“Yếu” không có nghĩa “bằng 0”, nhưng cần nói chính xác thứ gì yếu. Đây là hai hệ thống Google nói về hai giai đoạn khác nhau, không phải một thang liên tục:
- Hạ tầng crawl — trích dẫn “tín hiệu yếu” ở trên — nói về việc đích chuyển hướng có được xử lý hay không, tức crawler Google có lấy và xem nội dung đích không.
- Quy trình lập chỉ mục của Search là giai đoạn riêng sau đó và nêu quy tắc trực tiếp: “Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical. The target page might still be indexed if other canonicalization signals are present.” (bản dịch) «Googlebot đi theo chuyển hướng nhưng quy trình lập chỉ mục không dùng nó làm tín hiệu rằng đích nên là canonical. Trang đích vẫn có thể được lập chỉ mục nếu có tín hiệu canonical hóa khác.» Evidence for this claim Google follows a 302 temporary redirect but does not use it as a signal that the destination should become canonical; Google recommends 302 rather than 301 for temporary site tests. Scope: Google Search handling of temporary redirects and A/B tests. Confidence: high · Verified: Google: Redirects and Google Search Google: Website testing
Đọc cùng nhau: 302 chỉ thúc nhẹ Google xem đích ở giai đoạn crawl, còn quy trình lập chỉ mục Search không coi chuyển hướng đó là lá phiếu chọn đích làm canonical. Đích vẫn có thể được lập chỉ mục và chọn canonical nhờ các tín hiệu khác, không phải nhờ 302. Đừng rút gọn thành “302 là lá phiếu yếu để đích thành canonical”; không tài liệu nào nói vậy vì chúng mô tả phạm vi khác nhau.
Hai cơ chế, không phải một
Đây là nơi phần lớn nội dung cạnh tranh trộn lẫn khái niệm, nên hãy tách riêng:
- Tín hiệu liên kết / PageRank không bằng 0 trên 302. Năm 2016, Gary Illyes nói Google không còn pha loãng PageRank qua 301, 302 hay chuyển hướng 30x khác, loại bỏ quan niệm “mất khoảng 15% mỗi hop”. Mueller nói riêng về 302: “do work the same as normal redirects… It’s not that they don’t pass any PageRank or anything like that.” (bản dịch) «hoạt động giống chuyển hướng thông thường; không phải chúng không truyền PageRank». Hãy coi đây là phát biểu công khai của Google, không phải bảo đảm phổ quát được xuất bản chính thức; tài liệu nguồn sơ cấp hiện tại không nêu quy tắc truyền tín hiệu chính xác cho mọi loại chuyển hướng trong mọi tình huống.
- Ưu tiên canonical hóa / lập chỉ mục mới là cơ chế thật sự khác. 301 là tín hiệu mạnh để lập chỉ mục đích; 302 là tín hiệu yếu, nên mặc định Google tiếp tục lập chỉ mục nguồn.
“302 có truyền PageRank không?” và “302 có đổi URL xếp hạng không?” là hai câu hỏi khác nhau. Câu đầu là có; câu sau là “không theo mặc định”. Trộn chúng là nguồn gốc của quan niệm “302 = không có equity”.
Liên quan đến điều này, khi chuyển hướng URL, Google theo dõi cả hai đầu: “Google keeps track of both the redirect source (the old URL) and the redirect target (the new URL). One of the URLs will be the canonical; which one, depends on signals such as whether the redirect was temporary or permanent. The other URL becomes an alternate name of the canonical URL.” (bản dịch) «Google theo dõi cả nguồn và đích chuyển hướng. Một URL sẽ là canonical tùy vào tín hiệu như chuyển hướng tạm thời hay vĩnh viễn; URL kia trở thành tên thay thế của canonical.» Với 302, nguồn vẫn là canonical — ít nhất vào lúc này. Evidence for this claim A 302 expresses temporary intent, but it does not guarantee that the source URL will always remain Google's selected canonical or that the target cannot index through other signals. Scope: redirect crawling, indexing, and canonicalization Confidence: high · Verified: Redirects and Google Search
Điều xảy ra khi 302 tồn tại quá lâu — “lật”
Điều khiến nhiều người bất ngờ là chuyển hướng tạm thời không được gỡ có thể ngừng bị xử lý như tạm thời. Mueller nói: “if you have 302 redirects for the long run, we treat them exactly the same as 301 redirects anyway.” (bản dịch) «nếu duy trì 302 lâu dài, cuối cùng chúng tôi xử lý chúng giống hệt 301».
Vì sao? Đây là cách giải thích làm việc của tôi từ hướng dẫn canonical hóa trên Ahrefs — mô hình tinh thần của người làm nghề dựa trên hành vi quan sát, không phải cơ chế Google công bố. Hãy hình dung một chiếc cân: chuyển hướng vĩnh viễn gửi tín hiệu về phía trước đến URL mới, còn chuyển hướng tạm thời gửi tín hiệu về phía sau đến URL gốc. Nhưng:
“If a temporary redirect is left in place long enough or the URL it’s redirected to already exists, it may be treated as a permanent redirect and send signals forward instead. It requires enough signals to flip the scale we saw earlier for canonicalization signals. As links build up, internal links are changed, sitemap URLs are updated, etc., more signals point to the new URL than the old URL, and the flip occurs.” (bản dịch) «Nếu chuyển hướng tạm thời tồn tại đủ lâu hoặc URL đích đã tồn tại, nó có thể bị xử lý như vĩnh viễn và gửi tín hiệu về phía trước. Khi liên kết tích lũy, liên kết nội bộ thay đổi, URL sitemap được cập nhật và nhiều tín hiệu trỏ đến URL mới hơn URL cũ, chiếc cân sẽ lật.»
Điểm khó là không ai biết mất bao lâu. Trong hướng dẫn chuyển hướng, tôi viết: “Nobody knows how long a 302 redirect has to exist before Google starts treating it as a 301 redirect. Usually, it’s a few weeks to a few months, but it can be days, weeks, or months.” (bản dịch) «Không ai biết 302 phải tồn tại bao lâu trước khi Google xử lý như 301. Thường là vài tuần đến vài tháng, nhưng có thể là vài ngày, vài tuần hoặc vài tháng.» Google có thể hành động sớm hơn nếu cho rằng bạn dùng nhầm: “Only if Google thinks you used a 302 redirect by mistake for a permanent move does this not happen. In that case, it treats the redirect as a 301… In some circumstances, Google even appears to treat 302s as 301s from the get-go.” (bản dịch) «Nếu Google cho rằng bạn nhầm dùng 302 cho lần chuyển vĩnh viễn, nó sẽ xử lý như 301; trong vài trường hợp, Google dường như coi 302 là 301 ngay từ đầu.» Đừng nêu số ngày cụ thể vì không có mốc được công bố; con số “hai ngày” trong lời truyền miệng về Bing cũng không được Google xác nhận.
Bing xử lý 302 thế nào — theo dõi hành vi, không chỉ header
Bing đi đến kết quả tương tự bằng con đường hơi khác. Trong bài giải thích lâu năm, Bing nói theo dõi mẫu hành vi quan sát được qua nhiều lần crawl thay vì chỉ tin mã trạng thái: chuyển hướng liên tục đổi đích bị xử lý giống 302 hơn dù gắn nhãn 301; chuyển hướng luôn đến cùng nơi bị xử lý giống 301 hơn dù gắn nhãn 302. Hệ thống Bing bắt đầu “think about them more like 301s as we continue to crawl them again and again” (bản dịch) «nghĩ về chúng giống 301 hơn khi tiếp tục crawl lặp lại». Đây là cùng sự hội tụ Google mô tả: qua đủ thời gian nhất quán, cả hai công cụ tin hành vi chuyển hướng hơn nhãn header.
Hướng dẫn cũ của Bing cũng nhấn mạnh “chỉ dùng 302 có chừng mực” hơn Google hiện nay, cảnh báo dùng sai 302 có thể để giá trị mắc lại ở URL gốc. Kết luận thực tế vẫn giống Google: hãy khớp loại chuyển hướng với ý định thật.
Khi 302 là lựa chọn đúng
Google không chỉ chấp nhận 302; với một trường hợp, Google còn khuyến nghị mã này. Từ hướng dẫn thử nghiệm A/B:
“If you’re running a test that redirects users from the original URL to a variation URL, use a 302 (temporary) redirect, not a 301 (permanent) redirect. This tells search engines that this redirect is temporary—it will only be in place as long as you’re running the experiment—and that they should keep the original URL in their index rather than replacing it with the target of the redirect (the test page). JavaScript-based redirects are also fine.” (bản dịch) «Nếu thử nghiệm chuyển người dùng từ URL gốc sang URL biến thể, hãy dùng 302 tạm thời, không dùng 301 vĩnh viễn. Điều này báo chuyển hướng chỉ tồn tại trong thời gian thử nghiệm và công cụ tìm kiếm nên giữ URL gốc trong chỉ mục thay vì thay bằng trang thử nghiệm. Chuyển hướng JavaScript cũng được chấp nhận.»
Các tình huống phù hợp đều thực sự tạm thời:
- Thử nghiệm A/B — khuyến nghị rõ của Google ở trên. Nhưng đừng kéo dài không cần thiết; Google cảnh báo “if we discover a site running an experiment for an unnecessarily long time, we may interpret this as an attempt to deceive search engines and take action accordingly.” (bản dịch) «nếu phát hiện site chạy thử nghiệm lâu không cần thiết, chúng tôi có thể coi đó là ý định đánh lừa công cụ tìm kiếm và có hành động». Chạy đủ lâu để đạt ý nghĩa thống kê rồi gỡ.
- Định tuyến theo địa lý, thiết bị và ngôn ngữ — nơi đích “đúng” phụ thuộc khách truy cập và không URL nào nên thay nguồn vĩnh viễn. Nhưng chọn mã chưa đủ: xác nhận Googlebot được đưa đến đâu, quy tắc có dựa vào cookie/header crawler không gửi không, khóa cache và header
Varycó tách đúng biến thể không, người dùng screen reader hoặc không JavaScript có truy cập được không, và khách có thể ghi đè định tuyến để tránh vòng lặp không. Kết hợphreflangđúng trên các bản địa hóa; chuyển hướng và hreflang phải đồng thuận. - Trang bảo trì hoặc dịch vụ tạm ngừng — Google nêu: “if a service your site offers is temporarily unavailable, you can set up a temporary redirect to send users to a page that explains what’s happening, without compromising the original URL in search results.” (bản dịch) «nếu dịch vụ tạm thời không khả dụng, có thể đặt chuyển hướng tạm thời đến trang giải thích mà không ảnh hưởng URL gốc trong kết quả». Nếu chính URL tạm không phục vụ được do backend lỗi hoặc đang triển khai,
503 Service UnavailablekèmRetry-Aftertrên cùng URL thường chính xác hơn. Dùng 302 khi cố ý đưa khách đến một URL giải thích khác thực sự hữu ích. - Khuyến mãi giới hạn thời gian — đưa khách đến trang chiến dịch trong thời gian chạy rồi hoàn tác.
- Cân bằng tải hoặc failover — tạm định tuyến lưu lượng sang nơi khác khi origin hay data center không khả dụng.
Xem thẻ Ví dụ để đối chiếu các trường hợp có chú thích và thẻ Danh sách kiểm tra để rà soát trước phát hành.
Sai lầm thực sự
Dùng 302 khi bạn định chuyển vĩnh viễn. Bạn đang bảo Google giữ URL cũ trong chỉ mục, nên trang mới mà bạn muốn xếp hạng có thể chưa thay thế nó trong một khoảng thời gian dài, không thể dự đoán — tổn thất hiển thị thật chứ không phải lý thuyết. Nếu trang biến mất vĩnh viễn, dùng 301 hoặc 308. Các lỗi liên quan là trộn 301 và 302 thiếu nhất quán trong chuỗi, hoặc trỏ hai URL vào nhau tạo vòng lặp.
Triển khai 302
Header mới là phần quan trọng: dòng trạng thái 302 Found cùng Location. Ví dụ PHP của Google:
header('HTTP/1.1 302 Found');
header('Location: https://www.example.com/newurl');
exit();Apache (.htaccess) — cờ R=302 làm chuyển hướng tạm thời; R=301 hoặc R trần mặc định là vĩnh viễn:
Redirect 302 /old-path https://www.example.com/newurl
# or with mod_rewrite:
RewriteRule ^old-path/?$ https://www.example.com/newurl [R=302,L]nginx — redirect phát 302, còn permanent phát 301:
location = /old-path {
return 302 https://www.example.com/newurl;
}Bất kể stack là plugin WordPress, quy tắc CDN/edge hay handler ứng dụng, quy tắc giống nhau: ưu tiên chuyển hướng phía máy chủ và phải chủ động chọn mã tạm thời. Phần lớn công cụ mặc định 301, nên 302 thường là thiết lập rõ ràng.
Một lưu ý bảo mật áp dụng cho mọi chuyển hướng: nếu đích trong header Location được tạo từ dữ liệu người dùng như tham số ?next= hay ?returnUrl=, bạn có đủ thành phần cho open redirect. Kẻ tấn công tạo liên kết trên miền của bạn nhưng đẩy khách đến nơi độc hại. Đừng chuyển đến bất kỳ URL nào xuất hiện trong tham số; hãy allowlist tập đường dẫn hoặc origin an toàn cố định. Kiểm thử dữ liệu mã hóa và dạng tương đối theo scheme như //evil.example, %2F%2Fevil.example trước khi phát hành. Đối chiếu cú pháp ví dụ với phiên bản nền tảng hiện tại; các đoạn trên chỉ minh họa và không thay thế kiểm thử trên máy chủ/CDN thật.
Để xem trường hợp chuyển vĩnh viễn và so sánh đầy đủ, hãy đọc các bài liên quan về chuyển hướng 301, 301 với 302 và 302 với 307 trong cụm này.
Tóm tắt bằng AI
Phiên bản cô đọng của phần Nâng cao:
- 302 (“Found”) là chuyển hướng tạm thời. Nó đưa người dùng đến URL mới nhưng báo URL gốc nên tiếp tục xuất hiện trong kết quả.
- Cách diễn đạt chính xác của Google gồm hai giai đoạn. Hạ tầng crawl gọi 302 là tín hiệu yếu rằng đích nên được xử lý, so với tín hiệu mạnh của 301. Riêng quy trình lập chỉ mục Search không dùng chuyển hướng tạm thời làm tín hiệu rằng đích nên là canonical, dù đích vẫn có thể được lập chỉ mục nhờ tín hiệu khác. Yếu không bằng 0 và “được xử lý” không đồng nghĩa “được chọn canonical”.
- So sánh ngắn 302, 303 và 307: client có thể đổi phương thức 302 từ
POST→GET; 307 không đổi phương thức; 303 cố ý trỏ đến tài nguyên khác, không tương đương. Không mã nào mặc định có thể cache theo suy đoán; cần chỉ thị rõ. - Tín hiệu liên kết trên 302 không bằng 0, theo Mueller và Illyes, nhưng đó là phát biểu công khai chứ không phải quy tắc truyền phổ quát được xuất bản. Cơ chế thật sự khác là ưu tiên canonical hóa/lập chỉ mục: 301 đẩy đích, 302 mặc định giữ nguồn.
- 302 tồn tại lâu có thể “lật”. Đây là mẫu người làm nghề quan sát, không phải cơ chế có tài liệu hay lịch trình công bố; có thể là vài ngày, vài tuần hoặc vài tháng.
- Bing theo dõi hành vi, không chỉ header: chuyển hướng nhất quán qua nhiều lần crawl có thể bị phân loại lại bất kể mã, cùng kiểu hội tụ Google mô tả.
- Google khuyên dùng 302, không dùng 301, cho thử nghiệm A/B. Tình huống phù hợp khác gồm định tuyến địa lý/thiết bị/ngôn ngữ, trang bảo trì tạm thời, khuyến mãi giới hạn và failover. Với định tuyến locale, kiểm tra Googlebot, cookie,
Vary/cache, khả năng truy cập vàhreflang. Khi cùng URL tạm không phục vụ được, cân nhắc503+Retry-After. Đừng chạy thử nghiệm “lâu không cần thiết”. - Bảo mật: không bao giờ tạo đích
Locationtrực tiếp từ dữ liệu người dùng; hãy allowlist để tránh open redirect. - Sai lầm thật: dùng 302 cho lần chuyển vĩnh viễn, khiến URL cũ có thể xếp hạng thay URL mới vô thời hạn. Dùng 301 cho lần chuyển lâu dài.
Tài liệu chính thức
Tài liệu nguồn sơ cấp từ công cụ tìm kiếm và đặc tả HTTP.
- Chuyển hướng và Google Tìm kiếm — bảng loại chuyển hướng, khuyến nghị giữ URL cũ trong kết quả, theo dõi URL thay thế và ví dụ PHP.
- Mã trạng thái HTTP ảnh hưởng crawler Google thế nào — bảng 3xx với nguyên văn “tín hiệu yếu” cho 302 và “tín hiệu mạnh” cho 301.
- Thực hành tốt nhất cho thử nghiệm A/B trong Search — khuyến nghị rõ “dùng 302, không dùng 301” cùng cảnh báo về thử nghiệm chạy “lâu không cần thiết”.
Bing / Microsoft
- Quản lý chuyển hướng — 301, 302 và canonical — bài giải thích của Bing về 301/302 và lập trường “theo dõi hành vi, không chỉ header”. Bài trực tiếp kết xuất bằng JavaScript; nguyên văn được giữ trong bản lưu Wayback Machine.
Đặc tả HTTP / tài liệu tham chiếu
- MDN — 302 Found và 307 Temporary Redirect — sắc thái giữ phương thức và lý do 303/307 tồn tại.
- RFC 9110 §15.4.3 (302 Found) — đặc tả HTTP Semantics hiện tại; ghi client vẫn có thể đổi POST→GET khi theo 302.
Trích dẫn từ nguồn
Các phát biểu chính thức của Google và Bing. Mỗi liên kết tài liệu Search đưa thẳng đến đoạn được trích.
Google — khác biệt tín hiệu yếu và mạnh
- “By default, Google’s crawlers follow the redirect, and Google systems use the redirect as a weak signal that the redirect target should be processed.” (bản dịch) «Theo mặc định, crawler Google đi theo chuyển hướng và hệ thống Google dùng nó làm tín hiệu yếu rằng đích nên được xử lý.» — về 302. Đi đến trích dẫn
- “Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.” (bản dịch) «Google đi theo chuyển hướng và hệ thống Google dùng nó làm tín hiệu mạnh rằng đích nên được xử lý.» — dòng 301 đối chiếu trong cùng bảng. Đi đến trích dẫn
- “Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical. The target page might still be indexed if other canonicalization signals are present.” (bản dịch) «Googlebot vẫn theo chuyển hướng, nhưng hệ thống lập chỉ mục không xem đó là lá phiếu chọn đích làm canonical; những tín hiệu canonical hóa khác vẫn có thể khiến trang đích được lập chỉ mục.» Đi đến trích dẫn
Google — khi nào dùng chuyển hướng tạm thời
- “If you just want to send users to a different page temporarily, use a temporary redirect. This will also ensure that Google isn’t influenced by the redirect which may help keep the old URL in its Search results.” (bản dịch) «Nếu chỉ muốn tạm thời đưa người dùng đến trang khác, hãy dùng chuyển hướng tạm thời; điều này giúp giữ URL cũ trong kết quả Search.» Đi đến trích dẫn
- “When you redirect a URL, Google keeps track of both the redirect source (the old URL) and the redirect target (the new URL). One of the URLs will be the canonical; which one, depends on signals such as whether the redirect was temporary or permanent.” (bản dịch) «Khi chuyển hướng URL, Google theo dõi cả nguồn và đích. URL nào là canonical phụ thuộc vào tín hiệu như chuyển hướng tạm thời hay vĩnh viễn.» Đi đến trích dẫn
Google — thử nghiệm A/B (khuyên dùng 302 nhưng không kéo dài)
- “If you’re running a test that redirects users from the original URL to a variation URL, use a 302 (temporary) redirect, not a 301 (permanent) redirect.” (bản dịch) «Nếu thử nghiệm chuyển người dùng từ URL gốc sang biến thể, dùng chuyển hướng 302 tạm thời, không dùng 301 vĩnh viễn.» Đi đến trích dẫn
- “If we discover a site running an experiment for an unnecessarily long time, we may interpret this as an attempt to deceive search engines and take action accordingly.” (bản dịch) «Nếu phát hiện site chạy thử nghiệm lâu không cần thiết, chúng tôi có thể coi đây là ý định đánh lừa công cụ tìm kiếm và hành động.» Đi đến trích dẫn
John Mueller, Google — bác bỏ quan niệm “302 là xấu”
- “302 redirects have a bad reputation among SEOs, which I think is incorrect. Because they do work the same as normal redirects as well. It’s not that they don’t pass any PageRank or anything like that. And if you have 302 redirects for the long run, we treat them exactly the same as 301 redirects anyway.” (bản dịch) «302 có tiếng xấu trong giới SEO nhưng tôi cho rằng không đúng. Chúng hoạt động như chuyển hướng thường và vẫn truyền PageRank; nếu duy trì lâu, cuối cùng chúng tôi xử lý giống 301.» Đọc bản chép lời
Bing / Microsoft — theo dõi hành vi, không chỉ header
- Bing nói họ phân loại lại chuyển hướng theo mẫu quan sát qua nhiều lần crawl: 301 liên tục đổi đích bị nhìn giống 302 hơn, còn 302 luôn trỏ cùng nơi bị xử lý giống 301 hơn “as we continue to crawl them again and again” (bản dịch) «khi chúng tôi tiếp tục crawl chúng lặp lại». Nguồn lưu trữ
#:~:text= vẫn hoạt động trong trình duyệt trước khi coi là kết luận cuối cùng; tài liệu Google được duy trì liên tục và có thể đổi cách diễn đạt. 301 hay 302? — danh sách kiểm tra trước phát hành
Chạy danh sách này trước khi phát hành bất kỳ chuyển hướng nào để bảo đảm mã khớp ý định:
- Lần chuyển có vĩnh viễn không? Nếu URL cũ không bao giờ quay lại → 301 hoặc 308, không dùng 302.
- Có thực sự tạm thời không? Thử nghiệm A/B, khuyến mãi, bảo trì, định tuyến địa lý/thiết bị hoặc failover → 302 là đúng.
- Bạn đã đặt mã rõ ràng chưa? Phần lớn công cụ mặc định 301; xác nhận 302 là chủ ý, không phải nhầm lẫn và ngược lại.
- Thử nghiệm A/B? Dùng 302 theo Google và lên kế hoạch gỡ khi đủ ý nghĩa thống kê; đừng để chạy “lâu không cần thiết”.
- Cùng URL tạm ngừng? Cân nhắc 503; dùng 302 khi định tuyến đến một trang giải thích khác.
- Không có chuỗi trộn 301 và 302 thiếu nhất quán; chuyển thẳng đến đích cuối.
- Không có vòng lặp; kiểm tra hai URL không chuyển vào nhau.
- Nếu 302 “tạm thời” âm thầm thành vĩnh viễn, đổi sang 301 để tín hiệu khớp thực tế; đừng dựa vào việc “lật” không có lịch trình của Google.
- Xác minh mã trạng thái thật bằng curl
-I, DevTools hoặc công cụ kiểm tra chuyển hướng; nhãn plugin không chứng minh header được gửi.
Các trường hợp dùng 302 hợp lệ có chú thích
Năm tình huống 302 là lựa chọn đúng và lý do tín hiệu “tạm thời” quan trọng trong từng trường hợp.
1. Thử nghiệm A/B
GET /pricing/ → 302 → /pricing/variant-b/Bạn đưa một phần lưu lượng đến biến thể để đo lường. URL gốc /pricing/ phải tiếp tục được lập chỉ mục và xếp hạng; biến thể có thể bỏ. Đây là trường hợp Google khuyên rõ dùng 302. Gỡ ngay khi thử nghiệm kết thúc; thử nghiệm kéo dài vô hạn có thể bị coi là đánh lừa.
2. Giảm giá / khuyến mãi tạm thời
GET /shoes/ → 302 → /promo/summer-sale-shoes/Trong chiến dịch, khách đến trang giảm giá nhưng /shoes/ là URL evergreen và phải lấy lại vị trí khi khuyến mãi kết thúc. Dùng 301 sẽ trao thứ hạng của /shoes/ cho trang sắp xóa.
3. Bảo trì / tạm thời không khả dụng
GET /booking/ → 302 → /status/booking-back-soon/Dịch vụ tạm ngừng và người dùng được đưa đến trang giải thích. Đây là ví dụ của Google. URL gốc giữ vị trí trong kết quả trong khi bạn sửa. Nếu cùng URL chỉ đang ngoại tuyến thay vì định tuyến sang nơi khác, 503 Service Unavailable thường là tín hiệu sạch hơn.
4. Định tuyến địa lý / thiết bị / ngôn ngữ
GET / → 302 → /us/ (visitor in the US)
GET / → 302 → /de/ (visitor in Germany)Đích phụ thuộc vào người yêu cầu, nên không đích nào nên thay nguồn vĩnh viễn. Chuyển hướng tạm thời phù hợp vì câu trả lời “đúng” thay đổi theo yêu cầu. Kết hợp hreflang đúng cho các bản địa hóa.
5. Cân bằng tải / failover
GET /app/ → 302 → /app-eu-west/ (primary origin down)Khi origin hoặc data center tạm không khả dụng, lưu lượng chuyển sang nơi khác nhưng phải quay lại khi hệ thống chính phục hồi. Theo định nghĩa, đây là tình trạng tạm thời.
Đối chiếu với anti-pattern:
GET /old-product/ → 302 → /new-product/ ❌ (permanent move!)Đây là lần ngừng vĩnh viễn được ngụy trang thành tạm thời. Google có thể giữ /old-product/ trong chỉ mục và xếp hạng thay vì hợp nhất vào /new-product/ trong khoảng thời gian khó đoán. Trường hợp này phải dùng 301.
Hai cơ chế, không phải một
Dùng khung này để tránh trộn các câu hỏi khác nhau thành quan niệm sai về chuyển hướng.
| Cơ chế | Câu hỏi được trả lời | 302 làm gì |
|---|---|---|
| Truyền tín hiệu liên kết | Tín hiệu có biến mất tại chuyển hướng không? | Google nói mức này “không bằng 0” riêng với 302; không có quy tắc truyền phổ quát chính thức cho mọi trường hợp 30x |
| Ưu tiên canonical hóa | URL nào đại diện nội dung? | Tín hiệu đích yếu; nguồn mặc định vẫn được ưu tiên |
Áp dụng trong ba bước:
- Nêu ý định. 302 nói lần chuyển tạm thời và URL gốc nên là địa chỉ ổn định.
- Kiểm tra tín hiệu canonical. Liên kết nội bộ, sitemap, canonical, liên kết ngoài và thời gian chuyển hướng có thể củng cố nguồn hoặc khiến đích thắng.
- Hiểu đúng 302 tồn tại lâu. Nếu Google bắt đầu xử lý như vĩnh viễn, chuyển hướng không đột nhiên “truyền giá trị”; cán cân tín hiệu canonical đã đổi URL sở hữu nhóm.
Câu hỏi chẩn đoán không phải “302 có truyền PageRank không?” mà là “URL nào nên là canonical và chuyển hướng cùng các tín hiệu khác có nói cùng một điều không?”
Công cụ kiểm tra chuyển hướng tạm thời
Công cụ miễn phí của Patrick
- Redirect Checker — xác minh hop đầu thật sự là
302, kiểm traLocationvà phát hiện chuỗi trộn mã tạm thời/vĩnh viễn. - Bulk HTTP Status Code Checker — kiểm tra tối đa 500 URL thử nghiệm, khuyến mãi, định tuyến hoặc bảo trì và xuất phản hồi lệch kế hoạch.
Kiểm tra hành vi canonical và thời gian
- URL Inspection trong Google Search Console — so sánh URL nguồn với biến thể và xem Google chọn canonical nào.
- Log máy chủ/CDN — chứng minh chuyển hướng chỉ áp dụng cho đúng đối tượng và thời gian, và Googlebot không vô tình nhận đường dẫn khác.
- Log/cấu hình nền tảng thử nghiệm — ghi thời điểm bắt đầu/kết thúc, phân bổ và quy tắc để phản hồi tạm thời không bị quên trong hạ tầng.
Chứng minh chuyển hướng tạm thời vẫn tạm thời
Kiểm thử 1 — thử nghiệm phát 302 thật
- Phép kiểm tra — Kiểm tra URL gốc bằng Redirect Checker khi thuộc biến thể được chuyển hướng; nếu phân bổ dựa trên cookie, lặp lại trong phiên sạch. Gửi
GETthật, không chỉHEAD, vì máy chủ, CDN hoặc ứng dụng có thể xử lý khác nhau. Ghi dòng trạng thái thô, giá trịLocationchính xác và header cache-control, không chỉ ghi “đã chuyển hướng”. - Kết quả mong đợi — Nguồn trả
302với biến thể dự định trongLocation; biến thể đến đích không vòng lặp hay hop thừa không liên quan. - Diễn giải thất bại —
301/308gửi tín hiệu vĩnh viễn;200rồi điều hướng là chuyển hướng phía client;HEADvàGETkhác mã nghĩa máy chủ/CDN xử lý phương thức thiếu nhất quán. - Cửa sổ giám sát — Ngay sau khi bật thử nghiệm, rồi sau mỗi lần triển khai hoặc đổi định tuyến.
- Điều kiện hoàn tác — Nguồn trả mã vĩnh viễn, đích sai hoặc nhóm nào rơi vào vòng lặp.
Kiểm thử 2 — URL gốc vẫn là canonical
- Phép kiểm tra — Kiểm tra URL gốc và biến thể trong Google Search Console; xác minh liên kết nội bộ, sitemap và thẻ canonical tiếp tục ưu tiên bản gốc.
- Kết quả mong đợi — Bản gốc vẫn là canonical dự định; biến thể không thay nó như trang thử nghiệm được lập chỉ mục riêng.
- Diễn giải thất bại — Tín hiệu canonical hóa mâu thuẫn hoặc chuyển hướng chạy lâu không cần thiết đang đẩy Google về biến thể.
- Cửa sổ giám sát — Kiểm tra sau khi Google crawl lại và thêm lần nữa trong thử nghiệm dài; không có ngày cố định 302 sẽ lật.
- Điều kiện hoàn tác — Biến thể trở thành canonical Google chọn hoặc bắt đầu xuất hiện độc lập cho truy vấn của trang gốc.
Kiểm thử 3 — quy tắc tạm thời được gỡ khi thử nghiệm kết thúc
- Phép kiểm tra — Sau khi dừng, yêu cầu URL gốc trong phiên sạch và chạy qua Redirect Checker.
- Kết quả mong đợi — URL gốc lại trả nội dung
200bình thường và không phân bổ nào còn chuyển đến biến thể. - Diễn giải thất bại — Quy tắc cũ còn tồn tại ở CDN, edge, ứng dụng hoặc nền tảng thử nghiệm.
- Cửa sổ giám sát — Ngay sau khi dừng và kiểm tra lại sau khi cache hết hạn.
- Điều kiện hoàn tác — Nhóm sản xuất nào còn đến biến thể đã nghỉ; vô hiệu quy tắc cũ và purge cache liên quan.
Kiểm thử 4 — bao phủ toàn bộ chuỗi, phương thức và trường hợp biên
- Phép kiểm tra — Theo dõi toàn bộ chuỗi đến đích cuối khỏe mạnh; lặp lại với query parameter để xác nhận được giữ hoặc chủ động bỏ; thử body
POSTnếu route có thể nhận để xem phương thức có đổi; nếu đích đến từ dữ liệu người dùng, xác nhận nó được kiểm tra bằng allowlist. - Kết quả mong đợi — Chuỗi có ít hop, dự đoán được và đến trang hoạt động; tham số cùng phương thức đúng ý định; đích ngoài allowlist bị từ chối.
- Diễn giải thất bại — Chuỗi dài/vòng lặp, tham số bị bỏ làm hỏng đích, phương thức âm thầm đổi hoặc tham số
?next=tùy ý tạo open redirect đều là lỗi chặn phát hành. - Cửa sổ giám sát — Trước phát hành và sau mọi thay đổi quy tắc/CDN/framework.
- Điều kiện hoàn tác — Bất kỳ lỗi nào ở trên xuất hiện trong lưu lượng sản xuất.
- Lưu ý công cụ — URL Inspection phản ánh lần crawl của Google và có thể không hiển thị header trực tiếp; coi đây là tín hiệu về thứ Google thấy, không thay thế kiểm tra phản hồi HTTP thật.
Tự kiểm tra: chuyển hướng 302
Năm câu hỏi nhanh về 302 và thời điểm sử dụng. Chọn đáp án cho từng câu rồi kiểm tra kết quả.
Nhật ký thay đổi
Đã cập nhật 22 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 9 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 17 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Try it live
This is a real endpoint on this site — not a simulation.
Hit it from the button, open it in a new tab, or
curl -i it from your terminal, and the server answers with the actual status code this article is about.