How Do I See Keyword Rankings in Google Analytics? The Report Does Not Exist, and Privacy Is Not Why

Every few weeks a client asks where the rankings live. They have opened Google Analytics already. Clicked acquisition, then engagement, then every menu that sounded promising. No keyword rankings anywhere on the screen.

Nothing is buried. That report was never built.

So the usual explanation gets wheeled out. A privacy change from 2011. Popular answer, and only half right. Something more basic is going on here. See it once and your whole reporting setup starts making sense.

The Privacy Answer, and Where It Stops Short

Start with what did happen, because the history is real. Google encrypted organic search queries for signed-in users in 2011. Coverage widened over the two years after. By 2013 the keyword rows in analytics accounts had mostly collapsed into a single line reading “(not provided)”.

That was a genuine loss. Site owners could once read the exact phrase behind a visit. Then they could not.

Notice what the loss actually was, though. Queries. Phrases people typed.

Not positions.

Go back further and check for yourself. Analytics accounts in 2010 listed keywords beside visits. They never listed a rank beside those keywords. No position column existed to lose. So the privacy change took something away. What you are hunting for was never there to take.

Google Analytics Begins Recording After the Click

Here is the part that settles the question. Analytics runs on a tag sitting inside your own pages. That tag fires when one of your pages loads in somebody’s browser. It knows nothing at all until then. Nothing is available for it to know. Your website has not been involved yet.

A ranking sits somewhere else entirely. On a results page Google owns. In front of a person who has not visited you and might never bother.

Try this on your own property. Open the report for organic landing pages. Read any row. Every row on that screen is a person who already arrived. Now hunt for the row covering people who saw your listing at position eight, then clicked the result above yours.

No such row. And no mechanism by which one could exist.

Rankings are mostly a story about non-arrivals. A listing gets seen far more often than it gets clicked. Those viewers never touched your server. Analytics never met them.

But GA4 Does Show an Average Position

Fair objection, and the one worth taking seriously. A position number genuinely can appear inside the Google Analytics interface.

Setting it up takes a link. Admin, then the property column, then Search Console links. You need a verified Search Console property. Edit rights on both sides too. Pick the property, choose a web data stream, save.

One more step catches almost everybody. Those reports do not turn up in the left navigation by themselves. Open Library, find the Search Console collection, publish it. Two reports appear. Organic search queries is the one people were after.

That report carries the queries. Clicks and impressions beside them. Click-through rate. Average position too.

So the objection lands. Then read where the number came from. Search Console measured it. GA4 borrowed it across the link. The tag on your pages played no part whatsoever.

Which shows up in how those rows behave. Every query row arrives pre-aggregated by query and by day. Nothing sits underneath one. Most impressions inside that row never became a session, so there is no visitor there to attach a conversion to. The number is a guest in the interface.

Average Position Is an Average, Not Your Keyword Rankings

Worth pausing on the metric itself before anyone builds a report around it.

That number averages across impressions. Every appearance of the page for that query goes into the pot. Desktop and mobile. Every province. Searchers signed into different Google accounts, each carrying different history.

Say a keyword reads 6.4. It may never have appeared at position six for anybody. Some people saw it third. Others saw it eleventh. The mean landed in between.

Nothing is wrong with the figure. It answers a question about typical visibility across a messy population. What it never answers is your rank. There is no single place where you rank.

Rank tracking tools solve that by freezing the variables. One location. A single device. One check per day. Stable number, though it is stable because the tool narrowed the question until only one answer fit.

Two different questions, then. Neither one gets answered by the tag on your pages.

Two Instruments, Two Different Populations

This distinction is worth carrying into every report you build.

Search Console counts search events. Everybody shown your listing, clicked or not. Analytics counts sessions. Only the subset who came.

Those two populations barely overlap. A service page can carry thousands of impressions in a month and forty sessions. Same page. One month. Different measurement entirely.

So asking for keyword rankings in Google Analytics is not a missing feature request. It aims a good question at the wrong population. No menu anywhere will fix that.

Paid search has the same wall, incidentally. Impression share and ad position live inside the Ads account, never in your analytics property. Anyone running Google Ads management alongside organic work learns to read those two screens separately.

Reading Both Halves Without Getting Confused

Practical version now. Two halves matter here. The pre-click half, then the post-click half. Neither answers for the other.

Take the queries report for the pre-click half. Impressions first, since they tell you how visible a page is. Position second.

Then traffic acquisition for the post-click half. Open Reports. Follow the acquisition menu down to traffic acquisition. Read the Organic Search row there. Sessions. Engagement. Conversions. What happened once somebody was already on the page.

Disagreements between the two are the interesting cases. Impressions climbing while sessions sit flat means your listing is being seen and skipped. Usually a title and description problem rather than a ranking problem. Sessions climbing on steady impressions means the same visibility is earning more clicks than it used to. Different diagnosis. Another fix entirely. Any useful website audit starts by pulling both numbers side by side.

What Analytics Answers Better Than Any Rank Report

Worth saying plainly, because the rankings question tends to crowd this out.

A position tells you about visibility. Nothing further. It cannot tell you whether the visit was worth having.

Analytics can. Which landing pages produced form submissions. Where the phone taps came from. Which visitors left after four seconds. Rank has no access to that half of the story. It happens to be the half that pays for the work.

SEO Company To-The-TOP! has built client reporting around that split since 2007. Search Console for what the market saw. Analytics for what the visitor did next. Neither one pretends to do the other’s job.

Clients on our Calgary SEO work still ask for the rank column anyway. Fair enough. It is the number most people learned to check first. So we show it. Then we show what the arrivals did afterwards, since only that half has a dollar attached to it.

What This Looks Like on a Real Account

A client asked To-The-TOP! to put a rank column inside his monthly analytics report. We could not put one there. So we paired the queries report against landing-page conversions instead, page by page.

The interesting page ranked fine. Position five, steady impressions, a respectable click-through rate. Two months of form submissions on it came to zero.

Rank was not the problem there. The query implied someone comparing suppliers. That page read like a brochure instead. Call it a keyword research and content mismatch. No ranking report would ever have surfaced it. A rank column would have shown a green number all quarter long.

The fix took a rewrite of one page. Rankings barely moved afterwards. The form finally started collecting.

Cases like that come up more often than the reverse. Plenty of pages rank adequately and earn nothing. That is also why any SEO report worth reading pairs the two halves on one sheet. A rank list travelling alone tells you almost nothing.

Can a Custom Dimension Carry Your Rank?

Occasional workaround people propose. Send the position into GA4 as a custom dimension, then report on it in there.

The idea dies on the same boundary. A custom dimension carries a value your own site already knows and chooses to send. Your site has no idea where it ranks. No server log holds that. Neither does the tag.

You could pipe a figure in from a rank tracking tool through the measurement protocol. Some teams do exactly that. To-The-TOP! has set it up for clients who wanted one screen instead of three. What arrives is the tool’s number wearing GA4’s interface. It refreshes on the tool’s schedule. Every accuracy question you had about that tool survives the import intact.

Fine as a convenience, then. Just do not mistake it for measurement your own property performed.

Questions About Keyword Rankings in Google Analytics

Does Google Analytics show keyword rankings?

No native report exists for them. Link a verified Search Console property to your GA4 property, then publish the Search Console collection in Library. An organic search queries report appears with average position included. That figure is Search Console’s, borrowed across the link. The GA4 tag on your pages did not measure it.

Why does GA4 show organic traffic but no keywords?

Google stopped passing organic search queries through to analytics tools. That started in 2011. It was finished by 2013. Your tag still records the visit and the channel that sent it. The phrase behind the visit lives in Search Console now.

Where do I see average position for my keywords?

Search Console, under Performance, then Search Results. Add average position as a column there. The GA4 queries report shows the same figure once the link is live. Same source either way, so the two should agree.

Can I track keyword rankings in GA4 with a custom dimension?

Not in any way worth trusting. A custom dimension only carries values your own site sends up. Your site never sees the results page, so it has nothing to send. Importing numbers from a rank tracker through the measurement protocol does work mechanically. What lands is that tracker’s estimate. GA4 observed none of it.

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 truck.