Edge Redirects

How to implement 301/302 redirects at the CDN/edge layer — Cloudflare Bulk Redirects and Workers, Akamai, Fastly VCL, Vercel, Netlify, and Lambda@Edge — why teams do it, the chain/loop risk when edge rules stack on origin redirects, correct status codes, and how to test with curl -I and DevTools. From Patrick Stox.

First published: Jul 3, 2026 · Last updated: Jul 17, 2026 · Advanced
1 evidence signal on this page

An edge redirect is a 301/302 (or 307/308) executed at the CDN layer — Cloudflare, Akamai, Fastly, Vercel, Netlify, or Lambda@Edge — before the request reaches your origin. Teams reach for them because they ship in minutes with no code deploy, keep working when the old origin is being decommissioned mid-migration, work across multiple origins during a consolidation, and restore redirect control on locked-down platforms. For Google's redirect interpretation, an edge-generated 301 can carry the same status code and Location header as one from the origin — but that bounded equivalence doesn't extend to identical caching, security, latency, routing, propagation speed, or logs, and no evidence shows moving an otherwise-equivalent redirect to the edge automatically improves rankings or crawl budget. The status-code rules don't change either — 301/308 for permanent, 302/307 for temporary. The edge-specific trap is stacking: an edge rule redirecting A→B while a surviving origin rule redirects B→C creates an invisible two-layer chain (or loop) neither admin can see from their own dashboard, and a CDN security rule can fire before the redirect phase and eat the redirect entirely — that rule order is vendor-, product-, and configuration-specific, so verify your own deployed phase graph rather than assume it. The fix is one source of truth — replace the old layer, don't stack on it — and verifying with real GET/non-GET requests, curl -I, DevTools, and GSC URL Inspection rather than trusting the dashboard or a single HEAD probe.

TL;DR — An edge redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. is a 3xx served at the CDN layer before the request reaches the origin. For Google’s redirect interpretation, a 301 from Cloudflare can carry the same status and Location as one from your origin — that bounded equivalence doesn’t extend to identical cachingCaching stores a copy of a page or resource — in a browser, a CDN edge node, or a search crawler's own cache — so it can be served again without regenerating or re-downloading it. It isn't a direct ranking factor, but it feeds page speed and crawl efficiency., security, latency, routing, or logs, and it isn’t a ranking booster on its own. Teams move redirects to the edge for rollout speed (no deploy), migration resilience (works when the old origin is gone), multi-origin consolidations, and locked-down platforms. Status-code rules don’t change at the edge: 301/308 permanent, 302/307 temporary; 308/307 only matter for non-GET requests, and query/path/fragment preservation is a product setting you have to check, not a universal default. The edge-specific risk is stacking: an edge rule plus a surviving origin rule for the same URL builds an invisible chain — and a CDN security rule can run before the redirect phase and eat the redirect entirely (verify your own deployed phase order; it’s vendor- and product-specific, not a universal Cloudflare-wide rule). One source of truth, replace not stack, and verify with real GET/non-GET requests, curl -I, DevTools, and GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. — a HEAD request alone isn’t conclusive.

What “at the edge” actually means

CDN workers can generate redirects before a request reaches the origin, but the client receives standard HTTP semantics. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: Redirection Migration and canonical outcomes remain subject to Google’s redirect guidance. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Redirects and Search

Every redirect is the same HTTP response — a 3xx status code plus a Location header. What changes with an edge redirect is where in the request path it’s generated. It’s returned by the CDN’s point of presence nearest the visitor or crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index., before the request is proxied to your origin. Three layers, in order of who sees the request first:

  1. Edge / infrastructure layer — the CDN (Cloudflare, Akamai, Fastly, Vercel, Netlify, Lambda@Edge). Sees the request first.
  2. Origin / application layer — your server config, .htaccess, or CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms./app code. Only runs if the edge passes the request through.
  3. Client / renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. layer — a JavaScript redirectA JavaScript redirect is a client-side redirect that uses code like window.location.replace() to send a visitor (and crawler) to a different URL. Because it only fires after the page is downloaded and rendered, Google prefers server-side and meta refresh redirects above it. that fires after the browser loads and renders the page. This is the counterpart topic covered in the JavaScript redirectsA JavaScript redirect is a client-side redirect that uses code like window.location.replace() to send a visitor (and crawler) to a different URL. Because it only fires after the page is downloaded and rendered, Google prefers server-side and meta refresh redirects above it. article — I won’t re-cover window.location, meta refreshA meta refresh redirect is a client-side redirect written as an HTML <meta http-equiv=\"refresh\"> tag (or an equivalent HTTP Refresh header) — not an HTTP status code. The server returns a normal 200, then the browser navigates after the page loads. An instant (0-second) one is read by Google as permanent; a delayed one as temporary., or the render-queue timing here; the short version is that an edge redirect is seen at crawl time as a clean HTTP hop, whereas a JS redirect isn’t visible until a later, uncertain renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. pass.

To a search engine, only the response matters, not the layer that produced it. Google’s guidance is to “Set up server-side redirects whenever possible” — and an edge redirect qualifies, because GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. receives an HTTP 3xx regardless of whether it came from the origin or the CDN.

Be precise about what’s actually equivalent, though: for Google’s redirect interpretation, an edge-generated response can supply the same relevant status code and Location header as an origin-generated one. That’s a bounded equivalence — it covers what Google reads to follow the redirect, not caching, latency, security-rule behavior, routing, observability, or failure modes, which can all differ between the two layers. It’s also not a ranking mechanism: no reviewed evidence shows that moving an otherwise identical redirect from origin to edge automatically improves rankings, PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. transfer, or crawl budgetThe number of URLs an engine will crawl in a timeframe. on its own. The edge can reduce origin round-trip work, but it isn’t universally faster either — DNS, TLS negotiation, edge-function execution, cache/match behavior, and any extra hops in the chain can dominate a given request just as easily as an origin round trip would.

Why teams move redirects to the edge

Four structured reasons, not just “it’s faster”:

  • No deploy required. You ship a rule through a dashboard or a bulk CSV upload, live in minutes — no code release, no dev queue. This is the same “beat the dev-backlog” motivation that drives edge SEOEdge SEO (serverless SEO) is the practice of making technical SEO changes — redirects, meta tags, canonicals, hreflang, robots.txt, structured data — at the CDN/edge worker layer before the response reaches the user or crawler, instead of editing the origin server or CMS. generally; the edge SEO hub covers the broader governance and platform-lock context.
  • Migration resilience. Because the redirect resolves at the CDN before hitting the origin, it keeps working even after the old origin server is fully decommissioned — as long as DNS/CDN routing for the old domain still flows through the CDN. Bing makes this exact architectural argument in its migration guidance: it recommends standing up “a new separate minimal server or load balancer with the redirect rules” on something like Azure and pointing the old domain’s DNS at it, “to handle all redirects of the old domain going forward without it impacting the server of the new hostname.” That’s the edge-redirect pattern in all but name: keep the redirect-serving infrastructure separate from (and lighter than) your production origin.
  • Multi-origin consolidations. During a brand rollup or platform migration you may be redirecting across several different origins at once. The edge sits above all of them, so one rule set can span origins that individually can’t redirect to each other.
  • Locked-down platforms. On SaaS/enterprise platforms that don’t expose server-side redirect config, the CDN is often the only place you can implement a redirect at all. Cloudflare frames its own tooling exactly this way — letting teams “implement URL redirects in the cloud without the need to have administrator access to the origin.”

Fastly puts the “why edge” case bluntly: “Ensuring URLs never die is one of the most important aspects of a good SEO strategy, and the edge is the best place for redirects, so that they can be served as fast as possible.” Its own redirects tutorial adds the operational motivation — servers often handle millions of requests for old and non-canonical URLs, which degrades origin performance and clutters logging if you keep that at the origin.

None of this changes the redirect fundamentals (map 1:1, don’t bulk-redirect everything to the homepage, keep redirects live far longer than a year) — the site migrationsA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. article covers those and I’m treating them as assumed background here.

Choosing the right status code at the edge

The status-code rules are identical to redirects anywhere — the edge doesn’t invent new ones:

CodeMeaningMethod preserved?Use for
301PermanentNo (may switch to GET)The default for permanent page moves
308PermanentYesPermanent moves where POST/PUT method must survive
302TemporaryNo (may switch to GET)Genuinely temporary redirects
307TemporaryYesTemporary redirects preserving method (forms/APIs)

The 301-vs-308 and 302-vs-307 split only matters for non-GET requests — forms and API endpoints where the HTTP method and body must be preserved on the hop. For ordinary page-to-page SEO redirects (all GET), 301 remains the conventional, SEO-safe default. Google is explicit that all permanent methods land the same: all permanent redirection methods have the same effect on Google Search, though “the time it takes for us to notice the different redirect methods may differ.”

Platform defaults differ, and that trips people up. Cloudflare’s Bulk Redirects and Single Redirects lean toward 301/302; Vercel explicitly recommends 307/308 to avoid the method-switching ambiguity that 301/302 carry (its docs are built around API routes as much as pages); Fastly’s own redirect tutorial example defaults to 308. The takeaway: pick your code from permanence and method-preservation need, not from whatever the platform’s example happens to use. For a permanent content move you almost always want 301.

The chain/loop risk unique to edge + origin stacking

This is the failure mode this article exists to warn about, because it’s specific to the edge and under-explained everywhere else.

The stacking pattern

The two dangerous layers — edge and origin — are configured in different systems, by different people, with no shared visibility. That’s the whole problem. A concrete sequence:

  1. Marketing adds an edge Bulk Redirect A → B during a rebrand.
  2. Six months later, engineering ships an app-level redirect B → C during a replatform — and never touches (or never sees) the edge rule.
  3. Now a request for A hits the edge (A → B), gets proxied to the origin for B (B → C), and resolves as A → B → C: an invisible two-layer chain neither admin can fully see from their own dashboard.

Point the two rules at each other instead and you get a loop — the request bounces forever. Google can follow a chain up to a point, but the guidance is unambiguous: “Avoid chaining redirects. While GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. can follow up to 10 hops in a ‘chain’ of multiple redirects (for example, Page 1 > Page 2 > Page 3), we advise redirecting to the final destination directly.” The 10-hop ceiling is a technical limit, not a budget to spend — a fast edge redirect that’s part of a two-layer chain is still a chain.

The general mechanics of chains and loops (the 10-hop limit, the per-crawl behavior, diagnosing them) live in the redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. and redirect loopsA redirect loop is a chain of redirects that circles back on itself instead of ever reaching a live page — URL A redirects to B and B redirects back to A (or a longer cycle). No page ever returns a 200, so browsers show ERR_TOO_MANY_REDIRECTS and crawlers can't index anything. write-ups; I’m focused here on the edge-specific cause.

WAF-before-redirect: your security rules can eat the redirect

There’s a second, sneakier edge trap. In Cloudflare’s currently documented pipeline (Cloudflare Ruleset Engine phases reference, checked 2026-07-16), Bulk Redirects specifically run in the http_request_redirect phase, which executes after the WAF managed-rules phase (http_request_firewall_managed). So if a security rule — or bot-fight mode — blocks or challenges the request first, the Bulk Redirect never fires at all. Googlebot can be silently blocked before your carefully configured redirect rule ever runs. This is the redirect-specific version of the “your CDN can accidentally block Googlebot” risk the edge SEO hub documents for edge SEO broadly.

Treat that ordering as an example, not a universal law. Redirect, rewrite, WAF, origin, header-transform, and cache phases are vendor-, product-, version-, plan-, and configuration-specific — the Bulk Redirects order above doesn’t automatically apply to Cloudflare’s Single Redirects or Workers, and it says nothing about Akamai, Fastly, Vercel, Netlify, or Lambda@Edge. Check your own deployed phase graph or rule-trace tool for the platform and product you’re actually using instead of assuming this exact order carries over.

The classic edge-specific loop: SSL mode vs. origin HTTPS redirect

The single most common edge-specific loop in the wild is a TLS mismatch: a CDN’s SSL/TLS setting (Cloudflare’s “Flexible” mode is the usual culprit) conflicts with an origin-level HTTP→HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' redirect. The edge talks HTTP to the origin, the origin redirects to HTTPS, the edge re-requests, the origin redirects again — forever. The redirect loops write-up flags this HTTPS/SSL-mode mismatch as a common loop cause; it’s worth knowing it by name because it’s almost always the answer when a “working” HTTPS redirect loops behind a CDN.

The fix: one source of truth, replace don’t stack

Maintain a single source of truth for redirect rules — ideally the edge, since it’s the first layer to see the request — and actively retire the equivalent origin-level rule rather than letting both run. Don’t stack; replace. When auditing an existing site, compile every redirect from every source (CMS, CDN, .htaccess/server config, Search Console’s “Page with redirectA Google Search Console Page Indexing status for a URL that redirects elsewhere. It's not indexed by design because it's a redirect — the destination is a separate question, and Google says the target may or may not end up indexed — usually expected, not an error (unlike the separate \"Redirect error\").” report, analytics) before you add anything new — miss one source and you manufacture the exact chain you’re trying to avoid.

TIP Catch an edge-origin loop in the final response path

A dashboard rule can look valid in isolation while another layer sends the destination back to the source. Test the compiled chain from outside the stack.

Trace the live redirect with my free Redirect Checker Free

  1. Test representative sources through the public hostname after edge and origin rules are active.
  2. Find the layer that revisits a prior URL and replace stacked rules with one owner.
  3. Point each source directly to its final destination and rerun the trace.
The loop is a property of the combined request path, not necessarily either rule viewed alone.

The result labels the chain broken and fix now. It shows 301 from URL A to URL B, 302 from B back toward A, then 301 to A, with no final URL. It also warns about three redirects and a temporary redirect inside a permanent chain.

Platform-by-platform mechanics

The short version of where each platform’s redirect tooling sits. (The edge SEO hub has the broader Snippets-vs-Workers and platform-capability comparison; this is the redirect-specific slice.)

  • Cloudflare. Bulk Redirects (CSV/list-based, account-level, no regex) for large migration maps; Single Redirects / Redirect Rules (regex, wildcards, dynamic expressions) for per-rule logic; Workers for anything needing a KV-backed lookup table beyond Bulk Redirects’ scale, or custom logic. Cloudflare’s own framing for why the category exists: URL redirects ensure visitors keep reaching the right content, and without them, links in emails, blogs, and brochures fail — “potentially costing the business revenue in lost sales and brand damage.”
  • Akamai. Edge Redirector Cloudlet (a no-code UI for match/redirect rules) for straightforward cases; EdgeWorkers (JavaScript) with EdgeKV for large or logic-driven redirect tables. Enterprise-oriented — typically more provisioning than Cloudflare’s self-serve dashboard.
  • Fastly. No no-code redirect UI for most setups — redirects are implemented in VCL (a vcl_recv/vcl_error pattern using a synthetic response with obj.status and obj.http.Location) or the newer Compute platform. Developer-oriented; best fit for teams already running custom VCL.
  • Vercel. vercel.json config redirects for pattern/wildcard/geolocation rules; a dedicated Bulk Redirects feature (CSV/JSON/JSONL) for large lists; Edge Config + Middleware for redirects that need to update without a redeploy. Note the 307/308 default recommendation above.
  • Netlify. The _redirects file or netlify.toml [[redirects]] blocks; supports 301/302, 200 (rewrite), and 404; a force flag (!) overrides file-shadowing; splats and placeholders handle pattern matching; edge-level geoGenerative Engine Optimization — visibility inside AI answer engines./language redirects are built in.
  • Lambda@Edge (AWS/CloudFront). A full Node.js runtime at the edge — the most flexible option, but the highest latency and cold-start overhead here. Best when the redirect logic needs more than pattern matching (custom business logic, external lookups) and the team is already CloudFront-native.

A useful mental sort: no-code tools (Cloudflare Bulk/Redirect Rules, Netlify _redirects, Vercel vercel.json) handle simple 1:1 and wildcard redirects with no code; compute options (Workers, EdgeWorkers, Compute, Lambda@Edge) are for conditional redirects, large dynamic lookups, or geolocation branching that the no-code tools can’t express. You don’t need a Worker to do a simple redirect.

Conditional redirects: cache keys, forwarded headers, and open-redirect risk

Not every edge redirect is a static 1:1 mapping. Once a rule branches on geo, device, language, authentication state, a cookie, or a forwarded header, a few edge-specific failure modes show up that a simple redirect never hits:

  • Decision inputs need matching field availability. A rule can only branch on a signal the platform actually exposes at the phase it runs in. On CloudFront, for example, viewer-request logic runs before the cache lookup on every matching request, while origin-request logic only runs when CloudFront forwards to the origin after a cache miss — so the same conditional logic sees different fields, executes at a different frequency, and has different cost and observability depending on which phase you put it in. Confirm which phase your platform’s conditional-redirect feature actually runs in before assuming a field (geo, cookie, header) is available.
  • Cache-key alignment is not automatic. If the redirect destination depends on geo, device, language, auth state, or a cookie, the cache key has to vary by those same inputs — otherwise the edge can serve one visitor’s cohort-specific redirect to a different cohort, or the redirect function may not even see the input it needs to decide correctly. This is the single most common cause of “it works for me but not for [other users]” bug reports on conditional edge redirectsAn edge redirect is a 301/302 (or 307/308) redirect executed at the CDN layer — Cloudflare, Akamai, Fastly, Vercel, Netlify, or Lambda@Edge — before the request reaches your origin server, so it works even during a migration when the old origin is being decommissioned, across platforms that don't support server-side redirects, and without a code deploy..
  • Credential and privacy boundaries. Don’t let an authenticated or cookie-scoped redirect response get cached and served to a different, unauthenticated visitor — keep credential-dependent redirects out of the shared cache or key them explicitly by the credential/session dimension that decided the destination.
  • Bot and locale consistency. A conditional rule that redirects search crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. to a different destination than regular visitors based on geo/locale/bot detection can read as cloaking if the two paths diverge in substance, not just presentation — keep crawler and visitor behavior aligned unless you have a documented, policy-compliant reason to differ (see the edge SEO hub’s cloaking guidance).
  • Fallback behavior. Define what happens when the deciding signal is missing or ambiguous (no geo match, no cookie, unrecognized locale) — an unhandled fallback can silently 404, redirect to the wrong default, or skip the redirect entirely.
  • Open-redirect guard. Any redirect that carries a destination from user input — a login redirect with a ?return= parameter is the classic case — needs an allowlist, safe URL parsing and encoding, and loop prevention. Copying an untrusted destination parameter straight into the Location header is an open-redirect vulnerability, not just an SEO risk.
  • First-match shadowing. A terminating edge redirect can prevent later redirect, rewrite, or origin logic from ever running. If you have overlapping or duplicate conditional rules, test precedence against the exact request shape (method, headers, query) rather than assuming the dashboard’s rule order matches execution order.

Testing and verifying edge redirects

Don’t trust the dashboard UI, and don’t trust a single HEAD request either — verify the response the edge actually returns for the request types that matter.

  • A HEAD request isn’t conclusive. curl -I defaults to a lightweight probe, but method, body, headers, cookies, cache state, geo, and bot/security decisions can all make a real GET, POST, or authenticated request behave differently than a bare HEAD. Trace the request types that actually matter for the URL — typically a real GET, plus any non-GET methods (form submits, API calls) if the redirect covers those routes — without letting the client auto-follow, so you can read the first hop’s status and Location in isolation.
  • curl -I is still the fastest first check. curl -I https://example.com/old-url shows the raw status code and Location header straight from the edge, with no browser cache or JS interference. Follow the whole chain with curl -sIL to count hops, but also test the query, path-suffix, and fragment cases that matter for the URL: does an appended path suffix survive, do query strings pass through unchanged (empty, present, repeated, and conflicting query cases can all behave differently), and remember fragments (#section) are never sent to the server at all — a redirect can’t preserve or transform a fragment it never receives, so any fragment on the destination has to come from configured output or client-side behavior.
  • Browser DevTools → Network tab. Confirm the redirect fires with the expected status in the Status column and the right Location. Then check cache-related headers (cf-cache-status on Cloudflare, x-vercel-cache on Vercel, x-nf-request-id on Netlify, x-cache on Fastly/CloudFront) to see whether the redirect itself is being cached — a cached redirect can delay a fix from propagating.
  • GSC URL Inspection is the authoritative check on what Googlebot actually received, independent of what curl or DevTools show from your network location. If curl says 301 but GSC shows something else, believe GSC.
  • Test from multiple regions and cohorts, and check both edge and origin logs. Edge rules can propagate at different speeds across a CDN’s global network right after a change — a dashboard “success” state doesn’t prove every point of presence is serving the new rule yet, so don’t assume instant, universal propagation. Test from more than one geographic point and, for conditional rules, from more than one cohort (the geo/device/auth states the rule branches on). Record the response status, Location, cache/security headers, and a request ID where the platform provides one, and check edge and origin logs where available — logs are often the only place that shows whether the WAF or a security rule intercepted a request before the redirect phase.
  • Roll out with a canary and a tested rollback. For redirects that affect meaningful traffic, ship to a subset first and confirm the response matrix above before a full rollout. Test the rollback path too, and make sure rolling back doesn’t silently restore a conflicting old layer (the origin or app-level rule you were replacing) — that’s exactly the stacking failure this article’s chain/loop section warns about, just triggered by an incident response instead of a deploy.

Common myths

  • “Google handles edge and application redirects differently.” No — Google sees a status code and a Location header and has no visibility into the layer that produced them. Same PageRank/signal treatment.
  • “Moving a redirect to the edge fixes a chain.” Only if you also remove the old origin rule. Adding an edge rule on top of a surviving origin rule doesn’t replace anything — it adds a hop.
  • “Edge redirects are automatically better for SEO because they’re faster.” Partly overstated. They cut origin load and can shave latency, but avoiding chains and using the correct status code matter far more to crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. than raw speed. A fast redirect inside a two-layer chain is still a chain.
  • “CDN security features can’t interfere with redirect rules.” They can — the WAF phase runs before the redirect phase on Cloudflare, so a blocked/challenged request never reaches the redirect.
  • “You need a Worker/Compute script for any edge redirect.” No — for simple 1:1 and wildcard redirects the no-code tools are enough; compute is for custom logic.

If you’re looking for the client-side counterpart — window.location, meta refresh, and the render-queue timing that makes JS redirects riskier for SEO — that’s the JavaScript redirects topic, not this one.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.