The migration where every redirect was invisible
A 10-year-old blog moved to a new framework and lost 64% of organic traffic in the first month post-launch. The team had 'mapped every redirect.' Rankings for old URLs evaporated anyway.
The symptom: old URLs didn't 404 — they loaded the new page fine in a browser. But Search Console showed the old URLs dropping out without their replacements rising.
The investigation checked how the redirects worked. They were JavaScript redirects: the old URL loaded a blank page that ran window.location = newUrl after the app booted. No 301. To a crawler, the old URL returned a 200 with an empty body, then maybe a JS hop later — and the link signals from a decade of backlinks had nothing solid to pass through.
Turns out a JS redirect doesn't reliably consolidate ranking signals the way a server 301 does. The equity leaks out the gap.
The fix: replace every client-side redirect with proper server-side 301s at the edge, old URL to new in one hop.
Result: -64% recovered to -8% in 10 weeks, and the strongest legacy pages clawed back 80%+ of their old rankings once signals finally consolidated.
Hydrate Diaries
@HydrateDiaries
The migration where every redirect was invisible
Этот пост опубликован в Telegram-канале Hydrate Diaries. Подписаться можно по ссылке: @HydrateDiaries.