Get Started

URL Redirects That Won’t Tank Your Rankings

URL Redirects That Won’t Tank Your Rankings

Redirects are how you move a URL without forfeiting the rankings, links, and crawl signals that the old address earned. Get the status code right and equity flows through; get it wrong and you fragment authority across two URLs, or worse, watch it evaporate while Googlebot wanders a chain of hops. So this guide is the day-to-day playbook for moving a single URL or a small batch: which code to send, how to wire it up in nginx or Apache, and how to verify the move actually transferred what you think it did.

What URL Redirects Actually Do to Search Engine Crawlers

When Googlebot requests a URL, the server responds with an HTTP status code that signals what happened to that page. That single number, 301, 302, 307, 308, or a 200 from a client-side redirect, is what decides whether the bot updates its index, follows the new location, or treats the move as temporary.

Quick vocabulary

301
Permanent redirect. The default for SEO moves. Equity transfers, the old URL eventually drops from the index.
302
Temporary redirect. Bots keep checking the original URL; equity stays on the source.
307
Temporary redirect that preserves the HTTP method. Behaves like 302 for SEO; matters for non-GET requests.
308
Permanent redirect that preserves the HTTP method. Treated equivalently to 301 by Google for ranking purposes.
Meta refresh
Client-side redirect via a <meta http-equiv="refresh"> tag. Slower, less reliable, and equity transfer is inconsistent.
JS redirect
Client-side redirect via window.location or similar. Requires bots to render JS; not appropriate for permanent moves.

A 301 (permanent redirect) tells crawlers the original URL no longer exists and all future requests should go to the new destination. Google consolidates ranking signals from the old URL to the new one, typically within a few crawl cycles. The original URL eventually drops from the index entirely. A 302 (temporary redirect) signals the move is short-term, so bots keep checking the original URL periodically. Google may index either URL and usually won’t transfer full link equity, because the original is expected to return.

A 307 preserves the HTTP method during temporary redirects, while 308 does the same for permanent moves. Most SEO scenarios use 301s and 302s, but 307/308 matter when POST requests or API calls are involved.

90–99%
Link equity typically passed through a properly implemented 301
5
Maximum hops Google follows before abandoning a redirect chain
2–8
Weeks for Google to recrawl and consolidate equity after a 301

Search engines treat redirect chains (URL A → B → C) as wasteful because each hop requires another server round-trip. After three to five hops, some crawlers just abandon the chain entirely, leaving pages undiscovered. Chains also fragment link equity at each step and hurt crawl budget efficiency on large sites. Client-side redirects using JavaScript or meta refresh tags execute after the page loads, which makes them invisible to some bots during initial HTML parsing. Slower, less reliable for SEO, and rarely appropriate for permanent URL changes.

Multiple directional road signs pointing in different directions representing redirect paths
Every redirect is a fork in the road for Googlebot, the status code decides which path it walks and whether the equity from the old URL arrives intact.

301 vs 302 vs 307 vs 308: Which Redirect Preserves Link Equity

Four status codes cover almost every SEO scenario. The differences are smaller than the documentation suggests, but the wrong choice in the wrong context is exactly how a migration leaks rankings.

Code Meaning Equity transfer Use it for
301 Permanent move Full (90–99%) Migrations, HTTPS switches, slug consolidations, killed-but-replaced pages
302 Temporary move Stays on the source URL A/B tests, seasonal landing pages, short maintenance windows
307 Temporary, method-preserving Stays on the source URL API endpoints and form handlers that must keep POST/PUT semantics
308 Permanent, method-preserving Full (Google treats it like 301) Permanent moves on endpoints that accept POST/PUT, otherwise interchangeable with 301
Four redirect codes, two questions, is the move permanent, and does the request method matter? The answers pick the code.

301 Permanent Redirects

A 301 redirect signals search engines that a URL has moved permanently to a new location. Use 301s for site migrations, domain changes, HTTPS transitions, or consolidating duplicate content, anywhere the old URL should disappear from search results. Search engines transfer approximately 90-99% of link equity through properly implemented 301s, though this happens gradually as bots recrawl the redirect chain. The permanence matters. Once Google processes a 301, it eventually drops the old URL from its index and attributes all ranking power to the destination. So 301s are the default choice for most SEO-relevant redirects, but that also means reversing them requires patience as search engines re-index the change. Keep 301s in place indefinitely when possible. Removing them too early can orphan inbound links and lose accumulated ranking signals.

The minimal nginx rule for a single permanent redirect is short enough to memorize:

# nginx, inside the server block
location = /old-page/ {
    return 301 https://example.com/new-page/;
}

# apache, inside .htaccess or the vhost
Redirect 301 /old-page/ https://example.com/new-page/

The trailing slash matters more than people expect. `/old-page` and `/old-page/` are two different URLs as far as the server’s concerned, and a rule that handles one but not the other will quietly leave half your traffic on a 404. (I’ve watched this exact bug eat three weeks of rankings while everyone stared at the redirect map and missed the slash.) Honestly, the fix is just to write both rules, or to canonicalize trailing slashes globally before the redirect rules run.

Pick the wrong code and you fragment authority across two URLs, or worse, watch it evaporate while Googlebot wanders a chain of hops.

302 and 307 Temporary Redirects

Temporary redirects tell search engines “this is temporary, keep the original URL indexed.” 302 and 307 preserve the original URL’s place in the index and signal impermanence, so they don’t pass full link equity. Use them when testing new pages, running A/B tests, or redirecting traffic during site maintenance. Search engines continue crawling the original URL and attribute rankings there, not to the destination.

Pro tip

If a “temporary” redirect has been live for more than six weeks, in my experience, it’s a permanent redirect that nobody bothered to upgrade. Audit your 302s quarterly and promote the stale ones to 301s, otherwise you’re leaving equity stranded on a URL that will never come back.

The most common misuse is deploying temporary redirects for permanent moves. This fractures authority between URLs and delays ranking consolidation. If a redirect lasts more than a few weeks, you probably need a 301 instead. Another pattern worth flagging: chaining temporary redirects during migrations. Which compounds crawl inefficiency and can leak link value at each hop. (Watched a client’s 302 chain spend four months hemorrhaging equity because the dev team kept “fixing” it by adding another redirect at the front of the stack instead of rewriting the source.)

Why it matters, choosing the wrong redirect type confuses crawlers about which URL to index and rank, splitting authority when you need it consolidated or permanently moving equity when you meant to preserve the original.

308 Permanent Redirect

The 308 Permanent Redirect is the modern HTTP/1.1 successor to the 301, standardized to guarantee that request methods and bodies remain unchanged during the redirect, meaning POST requests stay POST requests rather than converting to GET. For typical page-to-page SEO redirects involving GET requests, 308 behaves identically to 301 in signaling that link equity should transfer permanently to the new URL. Search engines like Google treat 308 and 301 equivalently for ranking purposes.

The practical difference emerges in web applications handling form submissions or API endpoints, where preserving the HTTP method matters for functionality. For most teams, content sites can keep using 301 redirects without issue. 308 is the technically precise choice when migrating resources that accept POST, PUT, or other non-GET methods. Adoption remains gradual, so verify your server and CDN actually support 308 before implementation.



Deep dive
When the status code choice actually changes the outcome

Truth is, for 95% of content-site redirects, 301 vs 308 is a coin flip, Google treats them the same and most crawlers don’t care. But there are three scenarios where the choice actually changes behavior:

  1. POST endpoints under redirect. A 301 or 302 on a POST will, per spec, get downgraded to GET by most clients, which silently drops the request body. 307 and 308 preserve the method. If you’re migrating an API or a form handler, the SEO codes will eat your payloads.
  2. HSTS preload edge cases. Some CDNs treat 308 differently from 301 when stamping HSTS headers on the upgrade-to-HTTPS hop. Worth a curl check if your security team is enforcing strict transport.
  3. Legacy crawlers and scrapers. A handful of older bots (and a surprising number of in-house monitoring scripts) don’t recognize 308 and fall back to “treat as 200,” which means the redirect doesn’t follow at all. For most teams, this is a non-issue, but I’ve seen it bite affiliate-tracking pixels and old uptime monitors.

For everything else, pick 301 for permanent moves on GET-only resources and stop second-guessing it. The taxonomy is more interesting than the practical difference.

Redirect Chains and Loops: The Silent SEO Killers

Redirect chains occur when a URL passes through multiple intermediate redirects before reaching the final destination, for example, A redirects to B, which redirects to C, which finally lands on D. Each hop in the chain adds latency, consumes crawl budget, and dilutes the link equity passed along. Google follows up to five hops but recommends against chains, and PageRank value degrades with each additional jump.

Redirect loops happen when URLs redirect to each other in a circle, creating an endless cycle that wastes bot resources and delivers error messages to users. Both scenarios waste link equity and crawl budget while degrading user experience through slower load times.

To audit chains efficiently, crawl your site with a tool like Screaming Frog or Sitebulb, filtering for redirect status codes (301, 302, 307, 308). Export the redirect paths and flag any URL requiring more than one hop to reach its destination. Then check server logs to prioritize chains affecting high-traffic or frequently crawled pages first. Usually.

Chain links showing connection between old rusty and new chrome links representing redirect chains
Every hop in a redirect chain is another link in the equity-leaking chain, the cleanest path is the one with a single jump from old URL to final destination.

Fixing chains is straightforward, update all redirects to point directly to the final destination URL. If page A originally redirected to B, then B to C, rewrite A’s redirect to point straight to C. Update internal links, sitemaps, and canonical tags to reference final URLs directly, eliminating unnecessary hops entirely. Run a follow-up crawl to verify no new chains emerged during cleanup. For sites with hundreds of redirects, automate detection by scripting regular checks that flag any redirect requiring multiple requests before resolution, catching new chains before they accumulate technical debt.

Screaming Frog SEO Spider showing the Response Codes Redirection 3xx report with a redirect chain expanded across multiple hops
Screaming Frog’s Redirection report is the fastest way to surface chains, the “Redirect Chains” export collapses the whole path into one row per starting URL, which is what you want before you start rewriting rules.

The plan-execute-verify cycle

Every redirect, single URL or a batch of fifty, runs through the same three steps. Skip any one of them and you’re basically shipping on hope.

Redirect plan-execute-verify cycle

STEP 1
Plan
Inventory the old URLs, pick a 1:1 destination for each, decide the status code per row.
STEP 2
Execute
Add the rules at the server or CDN edge, deploy, and rewrite internal links to the new URLs.
STEP 3
Verify
Curl every old URL, confirm 301 status and Location header, then recrawl in Screaming Frog to catch chains.

The verify step is the one teams skip. Look, a “successful” deploy where the redirect rules made it into the config but matched the wrong path is indistinguishable from a working deploy. Until traffic falls off a cliff three weeks later. curl -I on each old URL, eyeball the status code and the Location header, then move on. (Had a regex once that matched everything under `/blog/` including the blog index itself, redirected the index to a single post for two days before anyone noticed traffic on `/blog/` had cratered.)

JavaScript and Meta Refresh Redirects: When They Hurt You

JavaScript and meta refresh redirects execute in the browser after HTML arrives, creating a two-step process that slows search bots and introduces indexing uncertainty. Google must first download the page, then execute JavaScript or wait for the meta refresh timer, adding latency that server-side 301s avoid entirely. Worse, these redirects don’t pass PageRank as reliably, and bots may index the origin page instead of the destination if the redirect logic fails or takes too long.

Why they hurt, search engines see the initial URL, consume crawl budget downloading it, then need additional processing cycles to discover the real destination. This delay compounds when bots encounter JavaScript rendering challenges or rate limits. For sites with thousands of URLs, this inefficiency scales badly.

Note

A meta refresh with a zero-second delay is interpreted as a permanent redirect by Google, per their own documentation, but it’s still slower to process than a server-side 301 and won’t always carry equity reliably across third-party tools. Use it as a last resort, not a default.

When they’re acceptable: use JavaScript redirects only when server configuration is locked, third-party platforms, static hosts without rewrite rules, or emergency fixes before proper implementation. Meta refresh with a zero-second delay is slightly better than JavaScript but still inferior to server-side options. For site owners stuck on restrictive platforms or diagnosing why redirects aren’t working, client-side options exist. But they’re a workaround, not a solution.

The fix, implement 301s at the server level whenever possible through .htaccess, nginx.conf, or hosting control panels. Reserve client-side redirects for temporary workarounds, not permanent solutions. If you must use JavaScript, ensure the redirect fires immediately on page load and verify Googlebot successfully follows it using Search Console’s URL Inspection tool.

Strategic Redirect Planning for Site Migrations and URL Changes

A systematic redirect plan prevents traffic loss and protects accumulated authority during structural changes. Start by exporting every indexed URL from Search Console and your sitemap, this becomes your master inventory of pages that pass link equity or receive organic visits.

Prioritize mapping based on search value, not site hierarchy. Pages with backlinks from high-authority domains, consistent organic traffic, or rankings in position 1-10 demand precise 1:1 mappings to closely related content. Use your analytics platform to identify which URLs drive conversions or engagement, these warrant redirect accuracy over convenience.

Create a three-column spreadsheet, old URL, new URL, redirect type. Map each source to the most relevant destination by topic and user intent, not just category similarity. Orphaned pages without clear equivalents should redirect to the next-most-specific parent category rather than the homepage, a product discontinuation page redirects to its category, not your root domain.

Signal Clean redirect Equity-leaking redirect
Hop count Single hop, old URL straight to final destination Three or more hops, often inherited from layered migrations
Status code 301 (or 308) for permanent, 302 (or 307) only when the source URL returns 302 used for a permanent move; 200 from a JS redirect masquerading as a real redirect
Destination relevance Same topic, same intent, comparable depth Catch-all redirect to homepage or unrelated category
Internal links Site-wide internal links updated to the new URL Internal links still point at the old URL, forcing every internal hop through the redirect
Canonical alignment Destination’s canonical tag points at itself Destination canonicals back to the old URL, creating a redirect-canonical loop
Implementation layer Server or CDN edge, sub-100ms response JavaScript or meta refresh on the rendered page
A clean redirect is invisible to users and short to Googlebot. An equity-leaking redirect is the same source URL with one or more of these signals reversed.

Before launch, validate the redirect map in a staging environment. Crawl the staging site with Screaming Frog or similar tools, filtering for redirect chains (A redirects to B, which redirects to C) and loops. Each old URL should reach its final destination in one hop using 301 status codes for permanent moves.

Post-migration, monitor Search Console for 404 spikes and unexpected traffic drops by landing page. Check that Google recrawls redirected URLs and transfers rankings within 2-8 weeks, sudden drops signal mapping errors or redirect implementation failures. Preserve the redirect map as documentation, you’ll need it to troubleshoot indexing issues and inform future structural decisions. Test a sample of high-value redirects monthly for the first quarter post-launch, confirming they still resolve correctly as your CMS receives updates or configuration changes.

Tools and Methods to Audit Your Redirect Health

Start with a crawl simulator to see exactly how bots experience your redirects. Screaming Frog SEO Spider maps redirect chains, identifies loops, and flags status code mismatches in minutes, essential for pre-migration audits and post-launch validation. For technical SEOs and site managers, the value is that it catches the three-hop chain Google warned you about but your CMS hid.

Browser extensions offer real-time verification as you browse. Redirect Path (Chrome) displays status codes and hop counts directly in your toolbar, revealing whether that “working” URL actually sends users through a 302 before landing. For content editors and QA teams, this spots temporary redirects masquerading as permanent ones without opening DevTools.

Professional working on laptop conducting website redirect audit
Redirect audits are the boring half of SEO infrastructure work, run them monthly during migrations and quarterly thereafter, that’s when you catch the configuration drift before it costs rankings.

Server log analysis uncovers patterns crawlers encounter but synthetic tests miss. Parse your access logs for Googlebot requests that hit redirect chains, then cross-reference with Search Console’s crawl stats to identify pages burning your crawl budget. For DevOps and SEO engineers, this correlates redirect waste with actual indexing delays, making the business case for cleanup concrete.

Pair these tools with crawl control strategies to ensure bots prioritize your canonical URLs over redirect endpoints, especially critical during site restructures when both old and new paths temporarily coexist.

Putting Redirect Strategy to Work

The right redirect for a given situation isn’t always a redirect. Sometimes the cleanest move is to let the page 404, especially for low-value URLs with no backlinks and no organic traffic worth preserving. (I’ve seen teams burn weeks mapping 5,000 redirects when the bottom 4,000 had zero inbound links and would have aged out of the index in two crawl cycles.) Pick your battles.


301 the URL when

  • The page has backlinks, organic traffic, or a top-20 ranking
  • You have a topically relevant destination at comparable depth
  • The move is permanent (HTTPS switch, slug rename, domain migration)
  • You’re consolidating duplicate content onto a canonical URL

~
302 the URL when

  • You’re running a true A/B test on the same audience
  • A seasonal landing page replaces the canonical for weeks, not months
  • Short maintenance window where the original URL will return
  • You need the source URL to keep its index spot


Let it 404 when

  • The URL has no inbound links worth preserving
  • Zero or negligible organic traffic in the last 12 months
  • No topically relevant destination exists
  • The page is being retired and has no equivalent successor

Redirects aren’t cleanup tasks you handle later, they’re foundational SEO infrastructure. Implementing the right status code at the right time protects link equity during migrations, prevents ranking dilution from duplicate content, and keeps search engines crawling efficiently instead of burning budget on chains or loops. When you treat redirects as architectural decisions rather than afterthoughts, you preserve years of authority signals and user trust. The mechanics matter, 301s consolidate signals permanently, 302s handle temporary moves without transferring equity, and mistakes like client-side redirects or multi-hop chains quietly erode visibility.

Try it this week

Pick ten old URLs. Run them through the plan-execute-verify cycle.

  1. 1
    Export your top 50 redirected URLs from Search Console, sorted by clicks over the last 90 days.
  2. 2
    Curl each one with curl -I -L. Flag every URL that takes more than one hop or returns a 302 for what should be a permanent move.
  3. 3
    Fix the top ten offenders by rewriting the rule to point at the final destination, then recrawl in Screaming Frog to confirm zero chains.

Most teams find at least one inherited chain in this first pass. Document what you find, the audit becomes your baseline for the next migration.

Related guides

Madison Houlding
Madison Houlding
January 9, 2026, 22:59217 views
Categories:Technical SEO
Madison Houlding
Madison Houlding Content Manager

Madison Houlding Content Manager at Hetneo's Links. Madison runs editorial across the link-building space, auditing campaigns, writing the briefs that keep guest posts from sounding like ad copy, and turning analytics into next month's roadmap. Loves a clean brief, hates a buried lede.

More about the author

Leave a Comment