.hop-list { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; } .hop-row { display: grid; grid-template-columns: 40px 1fr 80px 110px; gap: 14px; padding: 14px 18px; align-items: center; border-bottom: 1px solid var(--border); } .hop-row:last-child { border-bottom: 0; } .hop-num { width: 32px; height: 32px; border-radius: 50%; background: var(--bg3); color: var(--muted); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; } .hop-row.terminal .hop-num { background: linear-gradient(135deg, var(--green), #16a34a); color: #fff; } .hop-row.redirect .hop-num { background: linear-gradient(135deg, var(--blue), var(--purple)); color: #fff; } .hop-row.error .hop-num { background: var(--red); color: #fff; } .hop-url { font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 13px; color: var(--text); word-break: break-all; } .hop-url .scheme-down { color: var(--red); font-weight: 700; } .hop-url .scheme-up { color: var(--green); font-weight: 700; } .hop-status { font-weight: 800; font-size: 14px; text-align: center; } .hop-latency { font-size: 12px; color: var(--muted); text-align: right; font-variant-numeric: tabular-nums; } .hop-loc { font-size: 11.5px; color: var(--faint); margin-top: 4px; font-family: 'SF Mono', Menlo, Consolas, monospace; word-break: break-all; } .summary-grid { display: grid; grid-template-columns: 140px 1fr; gap: 18px; align-items: center; margin-bottom: 12px; } .summary-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } .stat-card { background: var(--bg3); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; } .stat-label { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; } .stat-value { font-size: 22px; font-weight: 800; color: var(--text); letter-spacing: -0.5px; } .issue { padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; font-size: 13.5px; display: flex; gap: 10px; align-items: flex-start; } .issue.warn { background: rgba(234,179,8,0.1); border-left: 3px solid var(--yellow); color: #713f12; } .issue.note { background: rgba(63,185,80,0.08); border-left: 3px solid var(--green); color: #14532d; } .code-2xx { color: var(--green); } .code-3xx { color: var(--blue); } .code-4xx, .code-5xx { color: var(--red); } @media (max-width: 680px) { .hop-row { grid-template-columns: 32px 1fr; grid-template-rows: auto auto; } .hop-status { grid-column: 2; grid-row: 2; text-align: left; } .hop-latency { display: none; } .summary-stats { grid-template-columns: 1fr 1fr; } } Skip to content
RankCause

External URL Redirect Tester

Trace the redirect chain of any public URL — every hop, exact HTTP status, latency at each step. Catches redirect loops, 302→301 mixups, HTTPS→HTTP downgrades, and unnecessarily long chains. For monitoring your own site continuously, use Site Health → Redirects after signing in.


Enter a URL
We'll follow every redirect up to 20 hops and show you the full chain.
What counts as a "healthy" redirect chain?
• Zero or one hop. Each extra redirect adds latency and bleeds a little link equity on the way.
• Use 301 (permanent). 302/307 are for temporary moves; Google sometimes still honours the old URL's ranking.
• Never downgrade HTTPS → HTTP. It leaks the referrer and breaks mixed-content protections.
• Avoid 302 → 301. Pick one or the other; mixing them confuses search engines.
These tools are free and need no account. They check one page at a time. RankCause itself does the thing they can’t: it watches your pages over time and tests whether a change you made actually moved a ranking.
Start free All free tools