UTM parameters on short links
Put the UTM parameters on the destination, then shorten it. The short link answers each click with the full destination address, query string included, so Google Analytics sees every parameter. Parameters that you add to the short link itself reach the destination only if the shortener passes them through.
What each parameter means
Google Analytics reads campaign parameters from the landing page address. Its URL builder help page defines the six that most campaigns use:
| Parameter | Use it for |
|---|---|
utm_source | Where the click came from: newsletter, linkedin, billboard |
utm_medium | The channel: email, social, cpc, print |
utm_campaign | The campaign or promotion: spring-sale |
utm_term | The paid search keyword |
utm_content | Which creative or link in the same message |
utm_id | A campaign ID that matches your ad or cost data |
Values are case sensitive: newsletter and Newsletter are two sources
in your reports. Pick lowercase and keep to it. A missing parameter shows as (not set).
Tag the destination, then shorten
A short link stores one destination. When someone clicks, the short-link service replies with
a redirect whose Location header holds that destination, as the HTTP standard defines. The
query string is part of the address, so UTM parameters on the destination arrive at your site with
the visitor.
In Flared, open More options under the destination and fill in Source, Medium, Campaign, Term,
or Content. Flared writes them into the destination as utm_source and so on. From
the CLI:
flared link create https://example.com/pricing --slug spring-newsletter \
--utm-source newsletter --utm-medium email --utm-campaign spring-sale For utm_id, or any other parameter, put it in the destination address yourself.
Flared keeps the whole address.
Test it before you send
Ask for the short link without following the redirect, and read the address it returns:
curl -sI https://flared.link/spring-newsletter | grep -i '^location'
location: https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale If the parameters are in the location line, they reach your site. This request
does not count as a click in Flared’s analytics. Flared answers with a 302 and cache-control: no-store, so the test shows the destination as it is now, and a
later change to the parameters applies to the next click.
Parameters on the short link
Some shorteners copy a query string from the short link onto the destination, so flared.link/spring?utm_source=x would tag the visit. Rules for this differ
between services: Dub, for example, passes them through and lets them replace
the destination’s own values. Flared does not pass them through. Each Flared link carries its own
tags, so a copied or forwarded link cannot change your reports.
One link for each channel
To compare channels, make one short link for each, all to the same page. Each link gets its own source, and each has its own click analytics in Flared, next to the sessions in Google Analytics:
for source in newsletter linkedin x; do
flared link create https://example.com/pricing --slug "spring-$source" \
--utm-source "$source" --utm-campaign spring-sale
done An AI assistant connected to the MCP server can do the same:
ask it to create the three links with a utm object for each.
App links keep their own address
A Flared link can send iPhone and Android visitors to an app link. The UTM fields apply to the main destination. If an app link needs parameters, write them into the iPhone or Android address yourself.
Do UTM parameters hurt SEO?
UTM links belong in emails, posts, ads, and print, where you control the link. Link to your own pages without them, and give each page a canonical URL, so search engines index the address without the parameters.