The staging flag that shipped to production
A travel startup launched its rebuilt site and got crickets from Google for six weeks. The team assumed it was the normal post-migration dip and waited it out. It wasn't normal.
The data: not slow indexing — zero. Not one of 3,000 pages entered the index. Rendered HTML came back as a single line: a loading spinner.
The investigation found a feature flag. The new app shipped with a server-side rendering toggle wired to an environment variable, defaulting to client-only rendering when a certain flag wasn't set. Staging had the flag; production's deploy config didn't. So production served a bare shell and rendered everything client-side — fine for users on fast devices, fatal for the crawler that timed out before the spinner resolved.
Turns out a single missing environment variable can silently downgrade your entire site to client-only rendering, and nobody notices because humans don't see spinners for long.
The fix: set the SSR flag in production config and add a deploy assertion that the homepage's server HTML contains real content, not a spinner.
Result: 0 indexed became 2,900+ in five weeks once real HTML started shipping. The whole outage was one unset variable.
Hydrate Diaries
@HydrateDiaries
The staging flag that shipped to production
Этот пост опубликован в Telegram-канале Hydrate Diaries. Подписаться можно по ссылке: @HydrateDiaries.