Full Answer
URL shorteners occupy a dangerous blind spot in many WooCommerce marketing stacks because they sit between the ad click and the landing page — exactly where UTM parameters need to survive intact.
The stripping happens during the redirect. When a user clicks a shortened link, the shortener service performs a 301 or 302 redirect to your destination URL. Whether the query string survives that redirect depends entirely on how the shortener handles the original URL during link creation and the redirect configuration it uses during resolution.
Free shortener tiers are the most common culprits. Some store only the base URL during link creation, discarding the query string entirely. Others preserve parameters during creation but use redirect rules that strip them during resolution. The result is the same: your visitor lands on the correct page but without any attribution data, and GA4 records the session as Direct or Unassigned.
Premium plans from services like Bitly, Rebrandly, and Short.io generally preserve query parameters by default, but custom domain shorteners and self-hosted solutions require explicit configuration to pass query strings through the redirect chain.
The testing protocol is straightforward and should be mandatory before any campaign using shortened links. Create your full campaign URL with all UTM parameters attached. Shorten it through whatever service you plan to use. Open an incognito browser, click the shortened link, and inspect the landing page URL in the address bar. Verify that every parameter appears exactly as intended.