Run a few marketing channels at once — email, social, a paid campaign, a newsletter mention — and Google Analytics quickly stops telling you where your traffic actually came from. Every click just shows up as “Direct” or gets folded into a vague “Referral” bucket, and the specific email or post that drove it disappears into the noise.
UTM parameters fix this by tagging each link with exactly where it was placed, so Google Analytics can report on individual campaigns, not just broad channels. It takes a few extra characters on the end of a URL, and it turns “some traffic came from somewhere” into “47 people clicked the link in Tuesday’s newsletter.”
In most sites I build, UTM tagging is set up before the first campaign goes out, not added after someone asks why a launch email isn’t showing up in the reports. Retrofitting attribution after the fact is guesswork; tagging links from the start is not — it is one of the steps covered in the step-by-step guide to building a WordPress website.
Why Referrer Data Alone Can’t Be Trusted
Without UTM parameters, Google Analytics has to guess where a visit came from based on referrer data alone — and referrer data is unreliable. Links clicked from within an email client, a native mobile app, or certain social platforms often strip the referrer entirely, so those visits land in “Direct” even though they came from a specific campaign.
UTM tags remove the guesswork. Because you set the source, medium, and campaign name yourself, the visit is labelled correctly no matter how the referrer header behaves. This matters most when you are running more than one campaign at a time and need to know which one is actually driving traffic and conversions, rather than which one merely gets credited by default.
It also pays off downstream. If you are pulling data into a Looker Studio dashboard, clean campaign data is what makes that report genuinely useful rather than a mix of unlabelled traffic you have to reconstruct from memory.
Setting Up Tagged Links
Step 1: Confirm GA4 Is Tracking Your Site
UTM parameters are only useful if something is reading them. Before tagging any links, confirm Google Analytics 4 is installed and collecting data — see how to set up Google Analytics 4 in WordPress without a plugin if you have not done this yet. GA4 reads UTM parameters automatically once it is running; no extra plugin or code is needed to capture them.
Step 2: Understand the Core Parameters
Three parameters cover most needs:
- utm_source — where the traffic is coming from (e.g.
newsletter,facebook,google). - utm_medium — the type of channel (e.g.
email,social,cpc,referral). - utm_campaign — the specific campaign name (e.g.
july_launch,summer_sale).
Two optional parameters are worth using when you need finer detail: utm_term for tracking paid search keywords, and utm_content for distinguishing between two versions of the same ad or link — useful for A/B testing which button or image drives more clicks.
Step 3: Build Your First Tagged Link
Take a page URL and append the parameters after a question mark, separated by ampersands:
https://example.com/product-page/?utm_source=newsletter&utm_medium=email&utm_campaign=july_launch
Spaces in parameter values should be written as underscores or hyphens, not literal spaces — july_launch, not july launch. Keep values lowercase and consistent; GA4 treats Newsletter and newsletter as two different sources, which splits your data unnecessarily.
Rather than typing parameters by hand every time, use Google’s Campaign URL Builder — enter the base URL and each parameter into the form, and it generates the full tagged link for you, reducing the chance of a typo breaking your tracking.
Step 4: Use a Consistent Naming Convention
Before your first campaign goes live, decide on a naming pattern and write it down somewhere you will actually check — a shared note or spreadsheet works fine. For example: sources are always the platform name (facebook, newsletter, instagram), mediums are always one of a fixed short list (email, social, cpc, affiliate), and campaign names always follow month_description (july_launch, august_sale).
Without this, six months of campaigns turn into a long list of near-duplicate labels in GA4 — Newsletter, newsletter, email-newsletter — that all mean the same thing but get reported separately.
Step 5: Shorten Long Tagged URLs (Optional)
A fully tagged URL can look messy in an email or social post. If you are already using a link shortener or a WordPress redirect plugin, you can shorten the tagged URL for display while keeping the full UTM string intact behind it — the parameters still reach GA4 as long as the redirect passes the destination URL through unchanged, rather than stripping the query string.
Step 6: Review Campaign Data in GA4 — and Know Which Dimension You’re Looking At
Once links are live and getting clicks, go to Reports → Acquisition → Traffic acquisition in GA4 and change the primary dimension to Session campaign. Each campaign name you have used will appear as its own row, with sessions, engagement, and conversions broken out per campaign.
GA4 actually exposes two related but different dimensions here, and mixing them up leads to confusing numbers: Session campaign attributes each individual session to whichever campaign brought that specific visit, while First user campaign permanently attributes a user to whichever campaign first brought them to your site, even on their fifth visit weeks later. For “which campaign is driving traffic right now,” Session campaign is the one you want; First user campaign is more useful for questions like “which campaigns bring in users who eventually convert.” If you are also tracking specific actions, cross-reference this with your conversion tracking setup to see which campaigns are driving results, not just clicks.
Practical Tips
- Only tag links you share externally — email, social, ads, partner sites. Never add UTM parameters to internal links between your own pages, as this resets the session’s original source in GA4 and corrupts your own attribution data.
- Keep a running spreadsheet of every tagged URL you create, with the campaign name and where it was used — it saves rebuilding the same link from memory months later.
- Test a tagged link yourself before sending a campaign — click it, then check GA4’s Realtime report to confirm the source, medium, and campaign name appear as expected.
- Use lowercase values consistently. GA4’s reporting is case-sensitive, and mixed-case tags for the same campaign will report as separate rows.
Common Mistakes
- Tagging internal navigation links, which overwrites the visitor’s original campaign attribution partway through their visit.
- Inconsistent capitalisation or spelling across campaigns, splitting what should be one campaign’s data into several fragmented rows.
- Forgetting utm_medium and only setting utm_source, which leaves GA4 without enough context to group similar campaigns together in channel reports.
- Reading Session campaign and First user campaign as if they were the same number, then being confused when they don’t match — they answer genuinely different questions, per the distinction above.
- Never reviewing the data. Tagging links is only half the process — the value comes from checking Traffic acquisition regularly and adjusting campaigns based on what the numbers show.
When to Use This vs Alternatives
UTM tagging is the right tool whenever you are sharing links outside your own site and want to know which specific placement drove the traffic — an email, a social post, a guest mention, a paid ad. For traffic already arriving through Google’s own ad platforms, campaign data often populates automatically without manual tagging. For purely internal use — tracking which button on a page gets clicked — GA4’s built-in event tracking is the more appropriate tool, since UTM parameters are designed for tracking where a visit originated, not what a visitor does once they arrive.
Conclusion
Tag every external campaign link with consistent, lowercase utm_source, utm_medium, and utm_campaign values before you send it, and check Traffic acquisition in GA4 regularly to see what the data is actually telling you. That habit alone turns vague “where is our traffic coming from” questions into answers you can act on.

Etienne Basson works with website systems, SEO-driven site architecture, and technical implementation. He writes practical guides on building, structuring, and optimizing websites for long-term growth.