Discover How We Can Help Your Business Grow.

Subscribe To Our Newsletter.Digest Excellence With These Marketing Chunks!
About Company
Connect with Social

Resources

Head Office
US Office
Copyright © 2008-2026 Powered by W3era Web Technology PVT Ltd

Google Analytics 4 (GA4) measures SEO through event-based tracking. Organic visits appear in the Organic Search channel, and outcomes count only after you mark events as key events (called "conversions" before March 2024). To measure SEO in GA4, link Google Search Console, publish the Search Console report collection, mark lead and purchase events as key events with a value, and compare organic key-event value against SEO spend: SEO ROI = (organic value − SEO cost) ÷ SEO cost × 100.
Your SEO is probably generating leads. GA4 just isn't counting them as organic.
This guide is the setup we use to fix that: five configuration steps, four reports, and one ROI formula your finance team will accept.
In this guide:
Universal Analytics counted sessions. GA4 counts events: every page view, scroll, click, form submission and purchase is an event.
That one change breaks most SEO reports built in the UA era. Four things matter for SEO.
In UA, you set up goals. In GA4, you mark events as key events. Google called them "conversions" until March 2024. "Conversions" now refers only to key events imported into Google Ads.
If no lead or purchase event is marked as a key event, GA4 reports zero organic leads, even while your forms keep filling up.
Definition: An engaged session in GA4 is a session that lasts 10 seconds or longer, includes two or more page or screen views, or triggers a key event. Engagement rate = engaged sessions ÷ total sessions.
Bounce rate still exists in GA4, but it's now the inverse of engagement rate and isn't shown by default. If stakeholders still ask for it, add it through Customize report → Metrics.
GA4 shares key-event credit across the touchpoints in a conversion path instead of giving it all to the last click.
Organic content often starts the buyer's journey, so it usually earns more credit under data-driven attribution than it did under UA's last-click model.
GA4 alone never shows search queries. Linking Google Search Console brings query and landing-page data into GA4, with one important limit covered in the reports section below.
Do these five things before you trust any number below. Skip them, and every report in this guide is wrong.
What we see in audits: The most common gap: a contact or quote form fires an event (visible in DebugView), but the key event star in Admin is never turned on. The second most common: data retention left at the 2-month default, which breaks year-over-year Explorations.
Path: Admin → Product links → Search Console links → Link → choose your Search Console property and web data stream → Submit.
One Search Console property links to one web data stream. To change the link later, you delete it and create a new one.
Search Console data in GA4 can reach back up to 16 months. It starts from whichever came later: verifying the site in Search Console, or creating your GA4 data stream.
New to Search Console itself? Start with our guide on how to read Google Search Console.
Linking alone doesn't show the reports. The Search Console collection sits unpublished in your report Library.
Go to Reports → Library, find the Search Console collection, open its menu (⋮) and click Publish. Two reports then appear in your left navigation: Queries and Google organic search traffic.
GA4 tracks some events automatically, but it never decides which ones matter to your business. You do.
Path: Admin → Data display → Events, then click the star in the "Mark as key event" column. If the event hasn't fired yet, create it in Admin → Key events → New key event, using the exact event name.
Events worth marking on an SEO-driven site:
| Event | What it captures | Setup needed |
| generate_lead | Contact or quote form submissions | Google-recommended event; fire it via Google Tag Manager or your form plugin |
| purchase | E-commerce orders | Ecommerce tag implementation |
| file_download | Lead magnet or PDF downloads | Automatic with Enhanced Measurement |
| phone_call_click | Taps on tel: links | Custom event in Google Tag Manager |
| schedule_appointment | Booking tool confirmations | Custom event in Google Tag Manager |
While you're in Admin, check that Data streams → your web stream → Enhanced measurement is on. Its scroll event fires at 90% page depth, which tells you whether organic visitors actually read your content.
GA4 keeps event-level data for just 2 months by default. Standard reports aren't affected, but year-over-year Explorations break.
Path: Admin → Data collection and modification → Data retention → set event data retention to 14 months. The change isn't retroactive, so do it today.
Visits from ChatGPT, Perplexity, Gemini and Copilot land in the Referral channel by default, mixed in with every other website that links to you.
Create a custom channel group in Admin → Data display → Channel groups. Copy the default group, then add a channel called "AI Search" where Source matches regex:
chatgpt|openai|perplexity|gemini|copilot|claude
Drag "AI Search" above Referral. GA4 assigns each session to the first channel whose rules it matches, so order matters.
With setup done, these four reports cover almost every SEO question a stakeholder will ask.
Path: Reports → Acquisition → Traffic acquisition. Set the primary dimension to Session default channel group (or your custom group) and read the Organic Search row.
Track users, sessions, engaged sessions, engagement rate, average engagement time, key events and revenue.
Compare month-over-month and year-over-year. SEO gains compound slowly, so set expectations using how long SEO takes to show results.
If users fall while engagement holds steady, check rankings, AI Overview click loss and consent-banner changes before blaming the content.
Path: Reports → Search Console → Queries (visible after Step 2).
Sort it three ways:
Know the limit: this report can't show GA4 metrics. You cannot see key events per keyword anywhere in GA4.
Path: Reports → Search Console → Google organic search traffic.
This is where Search Console and GA4 data actually combine, at the landing-page level. Impressions, clicks and position sit beside engagement and key events for each page.
Read it in two directions:
Path: Reports → Engagement → Landing page. Add a filter: Session default channel group = Organic Search.
Unlike report 3, this includes Bing, DuckDuckGo and other engines. For Bing query data, use Bing Webmaster Tools alongside it.
Stick to session-scoped channel dimensions here. A user-scoped dimension like "First user default channel group" credits the visit that first brought someone in, not the visit that landed on this page.
Every SEO budget eventually meets the same question from a CFO: what did we get for it? GA4 can answer, once the setup above is done.
\text{SEO ROI} = \frac{\text{Organic value} - \text{SEO cost}}{\text{SEO cost}} \times 100
GA4 supplies organic value: key-event revenue from the Organic Search channel. You supply SEO cost: agency fees, tools, content and internal time for the same period.
With ecommerce tagging in place, the purchase event records revenue automatically. In Traffic acquisition, the Organic Search row shows total revenue for any date range.
GA4 can't know what a lead is worth. You work it out, then send it with the event.
If the average deal is $3,000 and 30% of leads close, each lead is worth $900 in revenue. Finance teams often prefer gross profit: at a 40% margin, that's $360 per lead.
Agree the basis with finance and state it on every report.
To attach the value, send value and currency parameters with your lead event through Google Tag Manager or gtag, or set a default value on the key event in Admin → Key events. Without currency, GA4 won't report the value as revenue.
| Metric | One month |
| Organic leads (key events) | 40 |
| Value per lead (revenue basis) | $900 |
| Organic lead value | $36,000 |
| SEO cost | $6,000 |
| SEO ROI | (36,000 − 6,000) ÷ 6,000 × 100 = 500% |
On a profit basis ($360 per lead), the same month returns 140%. Both are honest; just don't switch between them month to month.
Path: Advertising → Attribution → Model comparison. Compare data-driven attribution with last click.
Since late 2023, data-driven and last-click are the only models left; Google retired first-click, linear, time-decay and position-based.
If organic earns noticeably more credit under data-driven, your content is starting journeys that other channels finish. That's an argument to protect SEO budget, not cut it.
Five numbers cover it:
| # | Number | Where to find it |
| 1 | Organic users: this month vs last month vs same month last year | Traffic acquisition |
| 2 | Organic key events (leads or purchases) | Traffic acquisition |
| 3 | Organic value (leads × value, or revenue) | Traffic acquisition |
| 4 | SEO cost | Invoices and time logs |
| 5 | SEO ROI | Formula above |
Once setup is right, this takes minutes to pull. Without it, it can't be built at all. To model scenarios, use our SEO ROI calculator.
Error 1: Search Console linked, but the collection isn't published. The data exists, but nobody can see it. Or worse, Search Console was never linked, and there's no query data at all.
Error 2: Lead events aren't marked as key events. Forms submit, sales follows up, and GA4 reports zero organic leads. Check Admin → Data display → Events: no star in the key event column means it isn't counted.
Error 3: AI-assistant traffic is buried in Referral. Without a dedicated AI Search channel (Step 5), you can't report it or show its value.
Error 4: Internal traffic isn't filtered. Your team, agency and developers visit the site constantly. Define internal IPs in your web stream's tag settings, then activate the filter in Admin → Data collection and modification → Data filters.
Error 5: Ignoring consent and data thresholds. Where cookie consent is required, visitors who decline aren't fully tracked, so organic traffic is undercounted. Consent Mode lets Google model part of the gap.
Smaller properties can also hit data thresholds when Google signals is on, which hides rows. Switching Admin → Data display → Reporting identity to device-based reduces this.
Error 6: Comparing GA4 with old Universal Analytics numbers. UA and GA4 define sessions differently. A gap between the two isn't a traffic decline, it's a different ruler. Build every baseline in GA4.

Most properties we audit miss at least one setting from this guide.
We'll check yours for free:
Search Console link and report collection
Key events, values and currency
Channel grouping, including ChatGPT and AI-search referrals
Data retention, internal traffic and consent setup
You get a written report within 48 hours, with every fix ranked by its impact on your ROI reporting.
Key events are the actions you mark as important to your business, such as form submissions or purchases. Google called them conversions until March 2024. "Conversions" now means key events imported into Google Ads.
Standard reports go back to when your property started collecting data. Explorations are limited by your data retention setting: 2 or 14 months.
Search Console data in GA4 reaches back up to 16 months. Google ended access to Universal Analytics data in July 2024.
No. Search Console shows what happens in Google Search: impressions, clicks, CTR and average position. GA4 shows what visitors do after they land.
Linking the two puts both side by side at the landing-page level. You need both.
Not directly. The Queries report can't show GA4 metrics, so key events can't be matched to individual search terms.
The workaround is page-level: see which queries drive each landing page, then check that page's key events in the Google organic search traffic report.
Create a custom channel group with an "AI Search" channel that matches AI-assistant sources such as chatgpt.com and perplexity.ai, and place it above Referral.
Some AI visits arrive without referrer data and appear as Direct, so treat the count as a minimum.
They measure different things. Search Console counts clicks; GA4 counts a session only when its tag fires and consent allows tracking.
Ad blockers, declined cookies, untagged pages and time-zone differences (Search Console reports in Pacific Time) all widen the gap.
Submit a test form, then open Reports → Realtime or Admin → DebugView and confirm the event fires.
Next, check Admin → Data display → Events: the event should be listed with its key event star on. If it never appears, the tag isn't firing on your form confirmation.
More Related Blogs:
Discover How We Can Help Your Business Grow.

Subscribe To Our Newsletter.Digest Excellence With These Marketing Chunks!
About Company
Connect with Social

Resources

Head Office
US Office
Copyright © 2008-2026 Powered by W3era Web Technology PVT Ltd