Website Analytics

UTM Parameters for WordPress: A Practical Guide

UTM tags are five short labels you add to a link so your analytics knows where a visitor came from. Here is how to use them without wrecking your own data.

On this page
  1. What a UTM Parameter Actually Does
  2. The Five Parameters, Explained
  3. Naming Rules That Save You Later
  4. Mistakes That Break Attribution
  5. Reading Campaign Traffic
  6. UTMs and Cookieless Analytics
  7. Making Tagged Links Easy to Live With

A UTM parameter is a short label you stick on the end of a link so your analytics can tell you where the visitor came from. Add ?utm_source=newsletter&utm_medium=email&utm_campaign=august_sale to the link in your mailing list, and every click lands in your reports labeled as the August sale email instead of being lumped in with everything else. That is the whole idea: the link carries its own story, and your analytics reads it back to you.

There are five parameters, three of which you should always set. They cost nothing, they work in any analytics tool, and because the information sits in the URL itself rather than in a cookie, they keep working even on privacy-focused setups. Here is what each one does, how to name them so your reports stay readable a year from now, and the one mistake that quietly destroys the data you were trying to collect.

What a UTM Parameter Actually Does

Everything after the question mark in a URL is a query string, a set of name=value pairs the page can read. UTM parameters are five agreed-on names in that space. Nothing on your WordPress site needs to understand them, and they do not change what the page shows. Your analytics simply notices them, records them against the visit, and groups your reports accordingly.

That is why they work everywhere. Google Analytics, a WordPress analytics plugin, and most other tools all read the same five names, so one tagged link feeds whichever tool you use. You are not installing anything, only being more specific about the links you already publish.

The Five Parameters, Explained

Google’s own documentation defines them like this, and the plain-English version is straightforward:

  • utm_source is the specific place the link lives: newsletter, facebook, partner_blog. Answer “which named thing sent this person”.
  • utm_medium is the type of channel: email, social, cpc, banner, qr. Answer “what kind of marketing was it”.
  • utm_campaign is the effort it belongs to: august_sale, black_friday_2026, launch_v2. Answer “which push am I measuring”.
  • utm_term is the paid keyword, useful only for search ads where you buy specific terms.
  • utm_content distinguishes two links in the same place: header_button versus footer_link, or image versus text, so you can tell which one people actually clicked.

Set the first three on every tagged link. Add the last two only when you have a real question they answer, because unused parameters are just clutter in a report.

Naming Rules That Save You Later

UTM values are case sensitive in most tools, which means Facebook and facebook arrive as two different sources and split one campaign across two rows. Pick lowercase for everything and never deviate.

Use underscores or hyphens instead of spaces, since a space becomes %20 in the URL and looks broken when someone copies it. Keep a short written list of your approved sources and mediums, and reuse those exact strings forever: email not e-mail and not Email. Put the year in a campaign name if you will run it again (black_friday_2026), and never put anything personal or private in a UTM value, because these end up in browser history, referrer headers and other people’s logs. Finally, build the URL with a tool such as Google’s Campaign URL Builder rather than typing it, since one misspelled parameter name means the click is recorded as direct traffic.

Mistakes That Break Attribution

The big one is tagging internal links. If a visitor arrives from your newsletter and then clicks a UTM-tagged link to another page on your own site, most tools treat that click as a brand new campaign arrival. The session restarts, the original source is overwritten, and your campaign gets credit for a visit it did not send. Never put UTM tags on a link between two of your own pages.

The other frequent failures are quieter. A redirect that drops the query string strips your tags before the page loads. Sharing a tagged URL as your canonical link means visitors pass it around and every onward share inherits your campaign labels. Tagging links inside your own site search or navigation has the same effect as tagging internal links. And tagging a page you want to rank creates URL variants of one page, which is what a self-referencing canonical tag is for.

Reading Campaign Traffic

Once links are tagged, your reports gain a campaign view: sessions grouped by source, medium and campaign name. Read it top down. Medium tells you which channel type is worth more effort. Source narrows that to the specific place. Campaign lets you compare one push against another on equal terms.

Judge campaigns on outcomes, not clicks. A source sending 200 visits and 12 sign-ups beats one sending 2,000 visits and none, and the gap is often a sign that the larger number was never fully human. Automated traffic follows tagged links too, especially links posted publicly, so a campaign report built from unfiltered traffic can flatter a channel that produced nothing. On one of our own affiliate sites last month, people fired about 9,450 tracked clicks and bots fired another 4,070, meaning roughly 3 in 10 raw click events came from bots.

UTMs and Cookieless Analytics

This is where UTM tags become genuinely valuable rather than merely tidy. The parameters travel in the URL, so a tool reads them straight off the request without needing to store anything on the visitor’s device. Campaign attribution therefore survives on setups where third-party cookies do not.

DevDome Analytics is cookieless by default and first-party, so it reads your UTM tags without setting analytics cookies, which means no cookie banner is needed just for analytics. It also captures clicks through tracked links server-side, so they still register when a browser extension would have blocked a tag, a failure mode we covered in why ad blockers break click tracking. And because bot hits are classified separately using six signals, your campaign numbers reflect people rather than scrapers following your links.

Tagged URLs are long and ugly, which matters for anything a human reads out, prints, or puts on a slide. The usual answer is a short link on your own domain that redirects to the tagged URL, so you share example.com/go/august and the destination still receives every parameter.

DevDome Redirect Manager handles that pattern, with click counting per rule so you get a count at the link level as well as in your analytics, and cache purging so a stale cached page never serves a link you already changed. Keep your naming list in one place, build every link the same way, verify the parameters survive to the final URL, and leave your internal links alone. Do that, and your campaign reports will still make sense next year.

Disclosure: DevDome publishes this blog and makes the products it mentions. We describe what they do rather than promise results.

Key takeaways

  • A UTM parameter is a label added to the end of a link so your analytics can report where the visitor came from.
  • Always set utm_source, utm_medium and utm_campaign; utm_term and utm_content are optional extras.
  • Pick one casing and spelling per value, because Facebook and facebook are reported as two separate sources.
  • Never put UTM tags on links between your own pages, as it restarts the session and credits the campaign twice.
  • Because UTMs live in the URL, campaign tracking still works with cookieless analytics and needs no cookie banner of its own.

Sources

  1. Google Analytics 4 Help: URL builders and campaign data — the official definitions of utm_source, utm_medium, utm_campaign, utm_term and utm_content
  2. Google Campaign URL Builder — Google's own tool for assembling a tagged URL without typos
  3. Google Search Central: specify a canonical URL — how canonical tags consolidate URLs that differ only by tracking parameters

Links last checked August 9, 2026.

Frequently asked questions

Do UTM parameters hurt SEO?

Not if you use them the way they are intended. Tagged links are for emails, ads, social posts and newsletters, not for pages you want indexed. If a tagged URL does get crawled, a self-referencing canonical tag on the page tells Google which version to consolidate on, which WordPress SEO plugins add by default.

Do I need a cookie banner for UTM links?

A UTM tag by itself is only text in a URL, so it stores nothing on the visitor's device. Whether you need consent depends on the analytics tool reading it. A cookieless, first-party tool that sets no analytics cookies does not need a banner just for analytics, which makes UTM campaign tracking a GDPR-friendly way to measure marketing.

Why does my campaign traffic show up as direct?

Usually because the tag was lost along the way. Common causes are a redirect that strips query strings, an email client or app that opens the link without the parameters, a typo in a parameter name, or an internal redirect between your own pages. Test the exact link you are about to publish and confirm the parameters survive to the final URL.

Can I use UTM parameters on internal links?

You should not. Tagging a link between two of your own pages makes analytics treat the click as a brand new campaign visit, which restarts the session, wipes the original source, and credits your campaign with traffic it never sent. Use UTMs only on links arriving from outside your site.

DevDome Team WordPress plugin builders

The DevDome team builds lightweight, performance-first WordPress plugins and free tools for site owners, founders and marketers. We write about the exact problems our plugins solve, in plain language for people who run real sites.