“Not Provided” Keywords in Google Analytics: What a Real GA4 + Search Console Join Actually Recovers

A FinTech SaaS client asked me a simple question: Which organic keywords drive our form submissions? Google Analytics can’t answer it. GA4 has no keyword dimension, and the “(not provided)” label that swallowed organic keywords years ago never came back. Every post you find on recovering “not provided” keywords promises to unlock them. So I did the actual work to see what “unlocked” looks like: I pulled about a year of Search Console query data, joined it with GA4 conversions, and allocated form submissions to individual queries. What I got back was not the win the client was expecting. Most of it was the company’s own name; the demand that actually converts is the part Google hides hardest; and a fifth of the conversions could not be traced to any query at all.

Key Takeaways

  • GA4 has no keyword dimension and never will. “(Not provided)” is permanent. You reconstruct query data; you do not recover it.
  • On a personal finance platform, about 95% of the organic clicks you would “unlock” are branded navigation: the brand name, brand plus login, brand plus patient portal.
  • Non-brand queries were roughly 5% of clicks but 17% of form submissions. They convert about 3.5 times above their traffic weight.
  • Google anonymizes about 19% of clicks outright, before any analytics tool ever sees a query.
  • Even with the full Search Console query-by-page matrix, around 22% of conversions cannot be tied to any query. That is the real “(not provided).”

What “(not provided)” actually is, and why GA4 made it worse

“(Not provided)” is what you see when Google strips the search term out of the referrer. Google moved organic search to encrypted connections between 2011 and 2013, and the keyword stopped passing through. (Search Engine Watch) You already know this part.

The part that matters for GA4: Universal Analytics at least gave you a labeled “(not provided)” bucket, so you knew what you were missing. GA4 removed the organic keyword dimension entirely. There is no bucket to label anymore. Search Console is now your only first-party source of query data, and Search Console has no idea which of those queries led to a conversion. You have queries with no outcomes in one tool, and outcomes with no queries in the other. Closing that gap is the whole job, and it is what people really mean when they ask how to get their not provided keywords back.

How I joined Search Console queries to GA4 conversions

You cannot do this from the Search Console UI. The bulk export hands you a Pages report and a Queries report as two separate tables, and it deliberately will not give you the query-by-page pairs that let you connect the two. The Search Analytics API does, and so does the free “Search Analytics for Sheets” add-on. For this sampled example, I pulled together query, page, and date for a 90-day window, resulting in roughly a million rows.

Here is the data I worked from:

SourceWhat it givesWhat it’s missing
Search Console APIQuery, page, date, clicks, impressionsConversions
GA4 (organic segment)Landing page, sessions, form submissionsQueries

The join is mechanical. Normalize both sides to a clean URL path. For each page, work out every query’s share of that page’s clicks. Then split that page’s GA4 conversions across its queries in the same proportions, and roll up the results by query. A query that earned 40% of a page’s clicks gets credited with 40% of that page’s form submissions.

Read this before you trust the numbers

This method splits a page’s conversions by click share, which assumes every query on a page converts at the same rate. It does not. Branded navigation converts worse than commercial queries, so this approach understates how much of your conversion value comes from non-brand search. The real effect is larger than what I report below, not smaller.

This is an estimate, not recovered ground truth. That matters: anyone selling you a tool that “decrypts” not provided keywords is running a version of this same allocation behind a paywall. The math is not secret. What you are paying for is someone else’s assumptions about how to split the credit.

Finding 1: Most of what you “unlock” is your own brand name

Here is the result that should change how you read every keyword report you own.

SegmentShare of organic clicksShare of form submissions
Branded (brand name, brand + login, brand + portal)~95%~83%
Non-branded (category demand)~5%~17%

About 95% of this site’s organic clicks were people typing the company name, or the company name plus “login” or “download.” For any SaaS with a product people log into every day, branded navigation dominates organic search. When a tool promises to give you back your not provided keywords, this is most of what it is promising: the name of a company you already know.

The 5% is where the work is. Non-brand category demand, queries like best budgeting software, mint alternatives, money management app, budget planning software, and expense tracking software, made up a twentieth of the clicks but nearly a fifth of the form submissions. That demand punches about 3.5 times above its click weight, and it is precisely the slice “(not provided)” that buries under a wall of brand traffic. If you report organic keywords as one number, you are mostly reporting your own brand back to yourself.

Finding 2: Google anonymizes about 19% before you ever see a query

Even Search Console, your one good source, is a partial picture. Across the top 1,000 pages on this site, about 19% of organic clicks had no query attached to them at all. Google withholds low-volume search queries to protect user privacy, so those clicks show up in the page totals but never in the query report.

That is before GA4, before any join, before any tool. It is Search Console choosing not to tell you. This site gets off lightly, because a handful of high-volume brand terms carry most of its traffic, and brand terms are rarely anonymized. The typical site loses far more: an Ahrefs analysis of 22 billion clicks across 887,534 Search Console properties found that 46.77% of all clicks went to anonymized queries, with the most common range running from 45% to 80%. (Ahrefs)

So the picture is layered. Google hides a fifth of the queries up front. Whatever survives, you then have to manually stitch to conversions yourself. “Recover 100% of your keywords” was never on the table.

Finding 3: About 22% of conversions stay dark no matter what

This is the number that ends the recovery fantasy.

MetricTied to a queryDark (unattributable)
Sessions~92%~8%
Form submissions~78%~22%

After the full query-by-page join, I could tie about 92% of organic sessions to a query but only about 78% of form submissions. Conversions go dark roughly 2.7 times more often than sessions do. The unattributable traffic, landing pages Search Console never logged a query for plus GA4’s own “(not set),” converts better than average, not worse.

That is the real “(not provided).” It’s not a keyword you can decrypt with the right tool. It’s a conversion you cannot trace to an intent, because the data needed to trace it was never collected. About one in five of the outcomes you actually care about has no recoverable query behind it, and no SaaS subscription changes that.

So what should you actually do?

Stop chasing total keyword recovery. It does not exist, and the time you spend hunting for the last 20% is time you could spend acting on the 80% you can already see.

Build the Search Console to GA4 join once, accept the dark share, and make decisions based on what survives. Before you report a single organic keyword number, split branded from non-branded. A line that is 95% brand flatters every report and hides the only demand worth optimizing for. Then point your content and technical work at the non-brand queries that convert above their weight, not at the branded navigation that was going to convert, whether you ranked it or not.

If you do buy a “(not provided)” decryption tool, fine, as long as you know you are renting this same click-share allocation with someone else’s assumptions baked in. Ask the vendor how they split credit across queries on a page. If they cannot answer, you are buying a black box.

What good looks like

Report organic conversions by query intent class, branded versus non-branded versus the dark share, with the unattributable portion stated out loud. One honest “(not provided)” number you can defend beats a single keyword blob that pretends to be complete.

Frequently Asked Questions

How do I fix “not provided” keywords in Google Analytics?

You do not fix it inside Analytics, because GA4 has no keyword dimension to fix. You reconstruct query data by pulling it from Search Console and joining it to your GA4 landing pages and conversions. That gives you an estimated keyword-to-conversion map, not the original data back.

Why doesn’t GA4 show keywords at all?

Google encrypted organic search years ago, so the search term no longer passes to your site. Universal Analytics showed a “(not provided)” bucket for these visits. GA4 dropped the organic keyword dimension entirely, so Search Console is now your only first-party source of query data.

How do I see which keywords drive conversions without keyword data?

Join Search Console to GA4. Pull query, page, and date from the Search Console API, then split each landing page’s GA4 conversions across its queries by click share. The result is an estimate of which queries drive form submissions, weighted by how much of each page’s traffic a query earns.

Can I remove “(not provided)” from Google Analytics?

No. “(Not provided)” reflects data Google never sends you, so there is nothing to remove or unlock at the source. The best you can do is reconstruct an estimate of the missing queries by joining Search Console query data to your Analytics conversions.

Are paid “(not provided)” decryption tools accurate?

They are as accurate as their assumptions. Most run the same click-share allocation you can build yourself, splitting a page’s conversions across its queries. That is a reasonable estimate, not decryption. Ask any vendor how they assign credit across queries on a page before you trust the output.

Sources

Want to know which keywords actually convert, not just which ones rank?

I build the Search Console to GA4 attribution most analytics setups are missing, so your reporting reflects real intent instead of a "(not provided)" blob. If your organic numbers are mostly your own brand name and you want to see past it, let's talk.

Let’s talk →

Find my posts faster: add this site as a preferred source on Google.

Add toddmorourke.com as a preferred source on Google