A redirect chain is largely harmless at one extra hop and becomes a real problem as it grows, so the fair answer isn’t that chains are always fatal or that they never matter, it is that harm scales with length. A single redirect from the old URL directly to the live page costs nothing worth worrying about, and Google counts a short hop as routine. The trouble starts when the hops stack up.
Each added link in the chain takes a cut three ways. It spends crawl budget, since every hop is a separate request, and on a large site that adds up to crawler time burned on transitional URLs instead of real content. It slows the user, because each hop adds latency before the page even begins loading, which shows up in Core Web Vitals and nudges mobile visitors toward bouncing. And it makes the signal less reliable, not as a fixed tax but as friction that leaves Google’s consolidation harder to apply cleanly. None of this is catastrophic at two hops; all of it gets worse with each one you add.
Harm turns acute at two red lines. A chain that loops, A sending to B and B back to A, resolves to an error that loads for nobody, and Googlebot drops the URL almost on contact, so a loop on a page that mattered can erase its rankings within days. A chain that breaks mid-way, where one hop returns a 404, takes down everything behind it, and a chain long enough to pass Googlebot’s tolerance gets the final page left out of the index entirely. So treat one hop as fine, treat three or more as something to fix, flatten every chain to a single redirect aimed straight at the final URL, and kill any loop the moment you find it.