Guides · Tracking
UTM Codes for Social Media: How to Tag Every Post
By Josh Croom · October 27, 2026 · 10 min read
UTM codes for social media are short tags you add to the end of a link, so Google Analytics can tell which post sent each visit. Put a source, a medium and a campaign on every link you post, type them the same way each time, and send each post to the one page it talks about.
Twelve posts and a report that can't tell them apart
Monday, 8:30 AM. The owner of a small landscaping company posted twelve times last month. There was a fall cleanup special, two before-and-after photos, a hiring post and a few lawn tips. On Monday she opens Google Analytics to see which posts brought people to her website, and the answer isn't there.
A big share of her visits sit under Direct, which is where Analytics puts a visit it can't trace. The visits it did trace to Facebook show up as one lump, so she can't tell the cleanup post from the hiring post. She'd like to make more posts like the ones that worked, but she can't see which ones those were. A tagged link on each post fixes that, because Analytics then files each visit under the name she gave the post.
Three numbers behind the habit
- 9tags Google's help page lists for a linka social post needs three or four of them
- 3tags Google says to use on every tagged linkutm_source, utm_medium and utm_campaign
- 35%of visits filed as Direct on the median client site we trackwith no source Analytics could name
What a UTM code is
A UTM code is a set of tags at the end of a link. The link still opens the same page, but Google Analytics reads the tags and files the visit under the names you gave it. Here's a tagged link for a fall cleanup page: yoursite.com/fall-cleanup/?utm_source=facebook&utm_medium=social&utm_campaign=fall-cleanup.
The question mark starts the tags, and each & adds another one. Google's help page lists nine tags in all, but a social post needs only three, plus a fourth when one post carries two links.
| Tag | What it tells Analytics | Example for a social post |
|---|---|---|
| utm_source | Where the link was posted | |
| utm_medium | What kind of link it is | social |
| utm_campaign | Which page or push the post is about | fall-cleanup |
| utm_content | Which link was tapped, when one post has two | photo-link |
| utm_term | The paid keyword, for search ads | Leave it off social links |
Why the page comes before the post
Tag every link the same way
Copy this table into a shared sheet or a note on your phone, and use it for every post. The campaign changes with each page, but the source and medium for each place stay the same.
Type every tag in lowercase, and spell it the same way each time. Google says the values are case sensitive, so utm_source=Facebook and utm_source=facebook show up as two separate rows, and your Facebook visits get split between them.
We use social as the medium on every unpaid post, because Google Analytics puts a visit in its Organic Social group when the medium is social or one of a few close words. It does the same when the source is a social site it knows. If you stick with social, the visit lands in that group even when Analytics doesn't know the source.
Name each campaign after the page rather than the date or the post number, because six months from now fall-cleanup will still tell you what worked and post-14 won't.
| Where the link goes | utm_source | utm_medium | utm_campaign |
|---|---|---|---|
| Facebook post | social | the page's name | |
| Instagram bio or story | social | the page's name | |
| Google Business Profile post | organic | gbp-post | |
| Your email newsletter | newsletter | the page's name |
Hand the link to whoever posts
If someone else posts for you, send them the tagged link itself, not just the page address. A short text does the job, and it saves them from typing the tags by hand.
Here's the link for Thursday's cleanup post: yoursite.com/fall-cleanup/?utm_source=facebook&utm_medium=social&utm_campaign=fall-cleanup
Got it. Same link for Instagram?
Same page, but use utm_source=instagram, and put it in the bio.
A messy setup and a clean one
Tags that hide what worked
- Facebook on Monday, facebook on Friday and FB on Sunday.
- Every post links to the home page.
- Campaigns named post-1, post-2 and post-3.
- A link pasted into an Instagram caption, where it won't open.
Tags that show what worked
- facebook, in lowercase, on every Facebook link.
- Each post links to the page it talks about.
- Campaigns named after the page, like fall-cleanup.
- The Instagram link sits in the bio or on a story link.
Where to read the results
Google Analytics shows tagged visits in the Traffic acquisition report, which you'll find under Reports, then Acquisition. The table starts by channel group, so change that first column to Session source/medium to see facebook / social and instagram / social as their own rows, or to Session campaign to see each page by name.
Read it once a month, not every day. One post sends a handful of visits, and a month of posts gives you enough to compare. Look for the campaigns that sent visits and then led to a call or a form, and write your next posts about those topics. If calls and forms aren't tracked yet, the first phase of our PPC audit checklist shows how to test that tracking.
Expect Direct to stay big, even with every link tagged. On the median client site we track, Analytics filed 35% of visits as Direct. Some of those people typed your address or used a bookmark, and some came from links with nothing to say where they started. Tags can't sort those, but they pull your own posts out of that pile.
Set it up this week
Tick each one off as you go. Your ticks stay on this device.
0 of 6 done
Mistakes that cost you the data
Each of these mistakes either loses visits or hides where they came from.
- Linking every post to the home page, so you can't tell which topic made someone tap.
- Putting three topics in one post, since the link can only serve one of them.
- Posting a link with no tags at all, which sends its visits into a lump with everything else from that site.
- Spelling a tag a new way each time, which splits one source into several rows.
- Pasting a link into an Instagram caption, where nobody can tap it.
How we help with tracking
We set up tracking for every call and form your Google Ads bring in, and your portal lists each one with the time it arrived and where it came from. The same idea works for social: a tagged link and a page built for one job show you which posts earn their keep.
If you'd like a second look at how your site tracks visits today, book a call with Miguel. He'll walk through what you post, where it links and what your reports can already tell you.
Questions people ask
What are UTM codes for social media?
They're tags you add to the end of a link you post, such as ?utm_source=facebook&utm_medium=social&utm_campaign=fall-cleanup. The link opens the same page, and Google Analytics files the visit under those names, so you can see which post sent it.
What should utm_medium be for social media posts?
Use social for unpaid posts, since Google Analytics files a visit under Organic Social when the medium is social or one of a few close words. That keeps every post's visits in one group.
Are UTM tags case sensitive?
Yes. Google says utm_source=google and utm_source=Google count as different values, so type every tag in lowercase and spell it the same way each time.
Can I put a UTM link in an Instagram caption?
You can paste it, but it won't open as a link. Put the tagged link in your bio or on a story link instead.
Where do I see UTM results in Google Analytics?
You'll find them in the Traffic acquisition report, under Reports, then Acquisition. Change the first column to Session campaign or Session source/medium to see your tagged posts by name.
See how we track the calls and forms your ads bring in
Read next
- Call Log Template: What to Write Down From Every CallA ready-to-copy call log, the one question to ask every caller, and how to sort wrong numbers.
- ChatGPT Custom Instructions Examples: Make Each Fix Only OnceEight custom instructions examples to copy, and a four-line card that carries your fixes into every chat.
- ChatGPT Prompt Templates: Write the Weekly Ask Once and Save ItCopy-ready ChatGPT prompt templates for the jobs you run every week, and how to save each one.