Chris Morgan, a web developer, has implemented a blanket ban on query strings for his personal website chrismorgan.info, blocking any URL parameters like UTM tracking codes that visitors might append to his links. The implementation uses Caddy web server configuration to strip or reject query parameters, reflecting a stance against unauthorized tracking appended to his URLs.
Chris Morgan, a web developer and contributor to the Rust ecosystem, has taken a definitive stance against URL tracking by blocking all query strings on his personal website.
In a post on his site, Morgan explains his reasoning: he objects to visitors adding tracking parameters to his URLs, particularly UTM parameters commonly used by analytics platforms to track referral traffic. "I don't like people adding tracking stuff to URLs," he writes. "Still less do I like people adding tracking stuff to my URLs."
The implementation is straightforward but absolute. Morgan's Caddy configuration currently rejects or strips all query string parameters. While he acknowledges that he previously used query strings for cache-busting (parameters like ?t= and ?h= on stylesheet URLs), he's decided he's comfortable breaking any such legacy requests since they shouldn't represent legitimate traffic.
The broader context here is an ongoing tension in web development around tracking and URL hygiene. UTM parameters have become ubiquitous for marketing attribution, allowing site owners to understand where their traffic originates. However, they also mean that URLs become cluttered with tracking identifiers, and in some cases, these parameters persist in shared links long after they're useful.
Morgan's position is that adding tracking to someone else's URL is an abuse: "You abuse your users by adding that to the link." He notes that if he wanted to know about referrers, he'd look at the Referer header and that its absence is "probably for a good reason." (Note: the HTTP spec has since clarified this header as "Referer," though privacy-focused browsers often strip it anyway.)
The technical implementation in Caddy appears minimal. Morgan references his Caddyfile but doesn't publish the exact configuration in this post. For those curious, a similar effect could be achieved by rewriting URLs to strip query strings or simply ignoring them in application logic.
This approach isn't universal. Many site owners appreciate UTM data for understanding their traffic patterns, and some URL shortening services depend on query parameters for their functionality. But Morgan's stance represents a growing contingent of developers who prefer cleaner, tracking-free URLs even if it means losing some analytics visibility.
As Morgan puts it: "It's my website: I can do what I want with it. And you can do what you want with yours."
The post includes a direct link to test the behavior: visitors can add query strings to the URL and see what happens. For Morgan, the experiment in strict URL control is underway.
Comments
Please log in or register to join the discussion