HTTP 301 vs 302: SEO Impact and When to Use
A concise guide to the SEO differences between 301 and 302 redirects, when to use each, and best practices to avoid crawl and indexing issues.

Vincent JOSSE
Vincent is an SEO Expert who graduated from Polytechnique where he studied graph theory and machine learning applied to search engines.
LinkedIn Profile
Picking the wrong redirect can quietly drain rankings and crawl budget. Here is how HTTP 301 and 302 differ for SEO, when to use each, and how to implement them cleanly.
Quick answer
Use 301 for permanent changes, like migrations, URL renames, and canonical consolidation. Search engines treat the target as the new canonical and fold signals there.
Use 302 for temporary detours, like short promos, A/B tests, or brief maintenance. Search engines can keep the original URL as canonical.
Modern Google guidance indicates 3xx redirects, including 301 and 302, can pass PageRank similarly. Choose the code that reflects intent, since canonicalization and indexing behavior still differ.
Core differences
Code | Purpose | Canonicalization | Method behavior | Cache default | Typical use |
301 Moved Permanently | Permanent move | Target usually becomes canonical | Some UAs may change POST to GET | Cacheable | HTTPS, domain changes, slug changes, merging pages |
302 Found | Temporary move | Source can remain canonical | Some UAs may change POST to GET | Not cacheable unless told | Short-term tests, seasonal pages |
308 Permanent Redirect | Permanent move | Target becomes canonical | Preserves method | Cacheable | API-safe permanent moves, modern alternative to 301 |
307 Temporary Redirect | Temporary move | Source can remain canonical | Preserves method | Not cacheable unless told | API-safe temporary moves |
Sources: MDN on 301, 302, 308, 307.
SEO impact
Consolidation, 301 and 308 push signals and canonical preference to the target. 302 and 307 often keep the source indexed, which can prolong duplication.
Equity flow, Google has stated 3xx redirects do not inherently dilute PageRank, so 301, 302, 307, and 308 can all pass link equity. Choose the code for intent, not to game equity. See coverage by Search Engine Journal.
Indexing speed, permanent redirects help Google switch URLs faster in a site move. Temporary codes can delay replacement.
Crawl efficiency, single-hop redirects conserve crawl budget. Chains and loops waste it and slow rendering.
When to use 301
Protocol or host changes, HTTP to HTTPS, www to non-www, or domain migration.
URL renames, slug changes, taxonomy refactors, removing date folders.
Canonical consolidation, merging near-duplicates and pruning thin pages.
Permanent product or article retirement, to the most relevant successor.
Trailing slash, uppercase or parameter normalization.
Google’s site move documentation recommends permanent redirects for structural changes and keeping them in place for a long time, ideally at least one year, while you update internal links and sitemaps. See Google Search Central, Site moves.
When to use 302
Short promotions, temporary detours during a campaign.
A/B tests or feature flags, when destinations might change or revert.
Brief maintenance, like moving a resource during a fix window.
Inventory flux, temporarily redirect an out-of-stock product to a category, only if you plan to restore the original URL.
If a 302 accidentally stays in place for weeks, search engines may begin treating it like a 301. Review temporary rules on a schedule.
307 and 308
308 is the permanent, method-preserving counterpart to 301. Prefer it for APIs and form posts when you want a permanent move.
307 is the temporary, method-preserving counterpart to 302. Prefer it when you need a temporary redirect that must not change POST to GET.
For classic web content, 301 and 302 remain common and broadly compatible. For modern stacks and APIs, 308 and 307 are safer.
Common scenarios
Scenario | Recommended | Why |
HTTP to HTTPS for all URLs | 301 or 308 | Permanent protocol change and HSTS alignment |
Domain migration, A.com to B.com | 301 or 308 | Permanent site move, consolidate signals |
Slug change, /old-post to /new-post | 301 or 308 | Permanent rename, avoid duplicates |
Merge two articles into one | 301 or 308 | Consolidate relevance and links |
Limited-time sale landing page | 302 or 307 | Temporary detour, do not replace canonical |
Geo or device routing | 302 or 307 | Temporary, but avoid forced geo redirects for Googlebot |
Out-of-stock item back next week | 302 or 307 | Short absence, preserve original URL |
Discontinued item forever | 301 or 308 to successor, or 410 | Permanent removal or replacement |
For duplicate consolidation beyond redirects, see Google’s guidance on consolidating duplicate URLs.
Implement right
Nginx
Apache (.htaccess)
Test quickly
Avoid pitfalls
Chains and hops, collapse to a single hop. Update internal links and sitemaps so crawlers do not need to follow redirects from your own pages. Our guide on URL redirection tricks shows safe bulk patterns.
Mixed signals, do not pair a 302 with a canonical tag pointing elsewhere. Redirect intent and canonicals should align.
Parameter loss, preserve query strings unless intentionally dropping them. In Nginx, $request_uri retains them.
Infinite loops, test rules in staging with a crawler before deploying.
Short-lived 302s that linger, add tickets or expirations so temporary rules get removed.
Crawl and index tips
Keep 301s long, for site moves maintain them at least a year. Many teams keep them indefinitely for stable link equity.
Refresh sitemaps, publish new canonical URLs and ping indexing protocols to speed discovery.
Monitor coverage, use Search Console to confirm Google is indexing the target URL, not the source.
Check speed, redirect responses should be fast, keep TTFB low and avoid redirecting to a slow page.
If you publish at velocity, watch crawl efficiency. Our guide on crawl budget for auto-blogs explains how chains and orphaning hurt discovery.
Content moves and internal links
Redirects save equity, but updating links is what finishes the job. After a migration or slug change, repoint internal links so they reference the final target URL directly. This reduces redirect hops, improves crawl paths, and protects PageRank flow.
If you manage a large catalog, BlogSEO’s internal linking automation can help you regenerate links toward the canonical target after URL changes, then auto-publish those updates across your CMS. That keeps your architecture clean without weeks of manual edits.
Decision guide

QA checklist
The right code matches business intent, permanent or temporary.
One hop only, no chains or loops.
Location header uses absolute URLs for cross-domain moves.
Canonical tags align with the redirect destination.
Sitemaps and internal links point to the target URLs.
Log and validate via curl, DevTools, and a site crawler.
For a deeper audit workflow, use our walkthrough to catch redirect issues.
Notes on equity
Google has clarified that 3xx status codes do not arbitrarily lose PageRank. In practice, that means you can use 301 or 302 without equity anxiety. Still, search engines treat 301 and 308 as stronger signals to replace the old URL, which speeds canonical consolidation in real migrations.
Extra tips
HSTS, after migrating to HTTPS with 301s, enable HSTS so browsers auto-upgrade to HTTPS.
410 vs 404, use 410 Gone for content removed permanently with no successor, it can expedite deindexing.
Images and files, apply redirects for media and downloadable assets too, not just HTML pages.
International sites, avoid auto-redirecting users based on IP. Use hreflang and let users choose locale. If you must redirect, keep it temporary.
Wrap up
301 or 308 for permanent changes. 302 or 307 for temporary situations.
Keep redirects in place for a long time, collapse chains, and update all internal links.
Verify in logs and Search Console that Google indexes the target URL.
If you are planning a content refresh, migration, or a steady cadence of new posts, BlogSEO can generate, internally interlink, and auto-publish SEO articles while keeping your architecture tidy.
Start a 3‑day free trial: blogseo.io
Or book a 1:1 walkthrough: Schedule a demo

