How Do I Fix Google Analytics Not Set Keyword? Read the Field Name First

A client forwarded a screenshot in the spring. One column, hundreds of rows, every row reading (not set) where a keyword belonged. The question underneath was fair enough. Which setting turns this back on?

None of them. No switch exists anywhere in the product. Something more useful is happening in that column. It takes about a minute to see.

So start with what the words mean. (not set) is not an error message. Analytics prints it when a field arrives empty. Nothing wrote a value in. Any repair therefore happens upstream of the report you are staring at, or it does not happen at all.

Not Set and Not Provided Are Different Words

Most troubleshooting threads run these two together. They should not.

(not provided) means a value existed and Google held it back. Organic queries went that way after the move to secure search. Other pages here cover that history in detail. It has not reversed and it will not.

(not set) says something else entirely. No value ever showed up. Nobody withheld anything, because nobody had anything to withhold.

One is a policy decision. The other is a supply problem. Only the second kind responds to work.

Every Dimension Has Something That Writes It

Worth slowing down here. This one idea settles most of these tickets on its own.

Analytics does not invent dimension values. It records whatever gets handed over. Somewhere upstream a system writes each field. The tag sitting in your pages. A parameter riding along in the URL. Sometimes a link between two Google products.

So name the writer. Every time (not set) turns up, ask what was supposed to fill that particular column.

Cannot name one? Then (not set) is correct output and your reporting is working properly.

The Word Keyword Covers More Than One Field

Here is why a single fix never covers the whole screen.

GA4 carries several dimensions that a person would reasonably call the keyword. Session manual term is one. That gets fed by utm_term, in links you built yourself. Then comes Google Ads keyword text, arriving across the link between the two accounts. Last comes the organic query, fed by nothing at all on your side.

Same word. Three screens, with a different supplier behind each one. Fixing any single field leaves the other two exactly where they were.

The One You Actually Control

utm_term. That is the entire list.

You write it into a link before anybody clicks. Go and look at links whenever (not set) fills that column. Newsletter buttons. A QR code printed on a truck door. Social posts scheduled eleven months ago by somebody who has since left the company.

Any URL missing utm_term produces (not set) for those sessions. Permanently.

Which raises the part nobody enjoys hearing. Tagging a link today does nothing for last quarter’s rows. Analytics stored what arrived, and what arrived was empty. No backfill exists.

Keep your tag values lowercase by habit as well. Otherwise you get to find out how the report treats capitals, and that is a dull afternoon. Your keyword research is the natural source for those values. Terms you already track are the ones worth naming inside a tag.

The Paid Column, and Why Switches Sometimes Change Nothing

Auto-tagging comes up first in every thread about this. Fine. It genuinely matters, and the setup belongs in a conversation about Google Ads management rather than here.

Then there is the part that gets missed.

Some campaign types have no keyword to send. Performance Max never matched one. Neither did Display. Demand Gen works the same way. Shopping runs on product data instead.

Those campaigns bought clicks without a keyword ever being involved. So (not set) is the accurate answer there. Switching on every setting in the account will not move that column, because no value was ever waiting behind it.

Read the row differently, then. It is quietly telling you which campaign type spent the money.

Somebody Will Say Their Report Shows Keywords Fine

True. Worth taking seriously too.

Check which report they mean. Usually a paid one, on an account with search campaigns running and the Ads link live. Sometimes it is their own utm_term work coming back to them.

A populated column means a writer showed up. That is all it means.

Which is the argument rather than a hole in it. And the same account, one report over, still shows (not set) against organic sessions. Everybody has both kinds. Nobody has had the third kind filled since Google encrypted those queries.

How to Tell Which Field Is On Your Screen

Stop reading the word keyword. Read the dimension name instead.

Open the report and check the column header. Or open the dimension picker and look at what somebody selected. Session manual term points straight back at your own tagging. A column labelled Google Ads keyword text points at the account link and the campaign type. Anything sitting inside a Search Console collection never came from your tag at all.

Two minutes of that beats an afternoon spent toggling settings.

Then run the same check on a link before you send it. Paste the URL into a text editor and read the query string. No utm_term in that string? The column will read (not set) for every click that follows. No later configuration recovers the value.

Every client at SEO Company To-The-TOP! gets the same standing rule. Tag the link at the moment you create it, because that is the only moment the value exists to be captured.

What the Empty Column Costs a Business

Worth knowing what breaks downstream. That is the real argument for fixing any of this.

An untagged link loses more than the keyword. Campaign name goes with it. Source often follows, since Analytics falls back to whatever referrer the browser passed along. So the session lands in direct traffic. Sometimes under a referral nobody recognises. The campaign that produced it collects no credit at all.

Then somebody reviews the numbers and cuts the channel. Traffic from that email list looked like nothing. It was not nothing. The traffic arrived unlabelled.

Small business accounts across Calgary show this pattern most clearly. The paid side is tagged, because Google tagged it for them. Everything else is a coin toss. Print codes and partner listings. Or a directory profile somebody set up years ago and forgot about.

Analytics is not hiding that traffic. It is showing it, filed under the only label available at the time.

So that is the practical cost of an empty term column. Not a missing report. A misread budget.

What a Fix Looks Like When There Is One

Short version. Tag your own links properly. Keep the values consistent after that.

Then go after the ones you forgot. A website audit turns up more untagged campaign links than most owners expect, usually in email footers and old print material.

For paid, confirm the accounts are linked. Then accept the campaign types that have nothing to report.

For organic, stop waiting.

Where the Repair Stops

The organic keyword column is not coming back. That was decided elsewhere years ago, by people who were not thinking about your reporting.

What you can still do is separate the columns that are genuinely empty from the ones you emptied yourself. Most accounts we open during Calgary SEO work contain both kinds. The second kind is usually larger, and it is the only kind anybody can act on.

To-The-TOP! has been reading analytics reports for SEO clients since 2007. That screenshot arrives a few times a year with the same question attached, and the answer is almost never a setting. Worth a look around the rest of the account while you are in there. The keyword column is rarely the only field somebody assumed was being filled.

Common Questions About Google Analytics Not Set Keyword

Why does my Google Analytics keyword column say not set?

Nothing wrote a value into that field. Either the link had no utm_term on it, or the click came from a campaign type that carries no keyword. Analytics reports the gap rather than inventing something to fill it.

Can I recover keyword data that already shows not set?

No. The value was missing at collection time, so there is nothing stored to recover. Tagging fixes future sessions only.

Does not set mean my tracking is broken?

Not by itself. It is worth checking, though, since a broken tag produces the same symptom as a correctly working one with nothing to record. Name what should have written the field and you will know which situation you are in.

Will linking Google Ads fix not set keywords?

Search campaigns, often yes. Performance Max and Display will not shift, since those campaigns never matched a keyword in the first place. Same story for Demand Gen and Shopping.

Where do organic search keywords live now?

Search Console. Its queries report holds the phrases people typed before they reached your site. Link it to your SEO services reporting and those queries sit beside your engagement numbers.

Contact SEO Company To-The-TOP! in Calgary

Questions about anything in this article, or about your own rankings? Talk to a Calgary SEO specialist directly.

Phone: (403) 308-5949
Address: 1509 14 Ave SW, Calgary, AB T3C 0W4

Hours:
Monday to Friday: 10:00 am – 7:00 pm
Saturday: 12:00 pm – 4:00 pm
Sunday: closed

Greg Ichshenko

Calgary SEO expert and digital marketing specialist,
developing advertising strategies for businesses of all sizes

(403) 308-5949

greg@to-the-top.ca
1509 14 Ave SW, Calgary,
AB T3C 0W4

    Submit your request or question, and I will get back
    to you shortly

    Please prove you are human by selecting the plane.