How to Build an Organic Search Report in GA4 (Sessions, Key Events, Revenue)
· 11 min read
A good organic search report in GA4 answers one question: what did unpaid search do for the business over a defined period. Sessions, the conversions that matter, and revenue where it applies — for the Organic Search channel only, over a window you can actually stand behind.
GA4 makes this harder than it should be. The channel filter is easy to get subtly wrong, and several of the numbers move after you have quoted them. Here is how to build the report, and the traps that make GA4 figures unreliable if you ignore them.
Step 1: Isolate the Organic Search channel
The fastest route is Reports → Acquisition → Traffic acquisition. The default primary dimension is "Session default channel group". Click into the Organic Search row, or apply a filter where Session default channel group exactly matches Organic Search.
Two things to get right:
- Use session channel, not "first user" channel. First-user attributes the whole session to how that person originally found the site weeks ago; session channel attributes it to this visit. For "what did organic do this quarter", you want session.
- Match
Organic Searchexactly. "Organic Social" is a different channel. A "contains organic" filter pulls both.
For anything more than a single number — a breakdown, a custom comparison — use an Exploration (free-form), add Session default channel group as a filter set to Organic Search, and build from there. Explorations are more flexible but more exposed to sampling; see below.
Step 2: Choose the metrics that answer the question
Sessions
The volume metric. Optionally add Engaged sessions to show quality alongside raw count.
One key event
Do not report "key events" as a lump total — that mixes every conversion action the property has. Pick the one that maps to the client's goal (a lead form submit, a signup, a booking), and filter to it by adding Event name and matching that event, or by selecting it in the conversions view. Keep the exact event name; the readable label is for the report, not the data.
Total revenue
Only meaningful if the property sends purchase or transaction events with a value. If it does, report it in the property's own currency and do not convert. If it does not, leave revenue out — an empty revenue row is not a story.
Step 3: Set a stable comparison period
Use GA4's date comparison: a period against the one immediately before it (90 days vs the prior 90) or year on year. Then pull both ends back so you are not quoting data that is still moving.
A practical rule: end the comparison window at least 14 days before today. GA4 figures for the most recent one to two weeks are still settling as late data and modelled conversions arrive. If you report a number from last week and it drops 8% by the time the client checks, that is the number they remember.
The traps that make GA4 numbers unreliable
Data freshness
Covered above, and worth repeating because it is the most common mistake: recent GA4 data is provisional. Do not put a figure from the last two weeks into a client deliverable.
Sampling
Explorations over large date ranges or high-cardinality breakdowns get sampled — GA4 estimates from a subset. Look for the sampling indicator (a shield or percentage near the report title). If a report is sampled, the numbers are approximate; narrow the date range or simplify the breakdown until it is not.
Thresholding
When Google Signals is on and a segment is small, GA4 withholds data to protect anonymity — rows disappear or collapse into (other). A conversion count can look lower than reality purely because of thresholding. Watch for a note that data is "subject to thresholding".
Retention limits
Event-level data used by Explorations is retained for 2 to 14 months depending on the property setting. Standard reports go back further, but a custom Exploration cannot reach a year-ago period if retention is set to two months.
Key events have no history
Marking an event as a key event today does not create key-event data for the past. If you need a year-on-year conversion comparison, the event has to have existed a year ago. Check when it was configured before promising a historical trend.
Incomplete or missing rows
If one side of a comparison returns far fewer days of data than the other — a tracking gap, a tag that was down — the periods are not comparable. A 200% "increase" against a half-empty prior period is an artefact, not a result.
Turning it into a client deliverable
Once you have clean, stable numbers:
- Present GA4 and Search Console as separate blocks over the same period. Do not reconcile clicks to sessions.
- Report each metric's change on its own. Do not write that the sessions increase "produced" the conversions increase.
- Mark the comparison dates and note that they end before the data settled.
- Keep the event label ("Lead form submissions") visually separate from the verified count — it is your description, not Google's.
The full method is in connecting SEO to business outcomes.
Where Casient fits
Casient runs this report for every client property automatically, and it enforces the safeguards above so you do not have to check them each time:
- It queries only the
Organic Searchsession channel — sessions, the one key event you pick, and total revenue. - It compares 90 days against the prior 90, ending at least two weeks ago in the property's own timezone.
- If GA4 returns sampled, thresholded or incomplete data for a comparison, it is skipped — never turned into a published metric — with a plain "could not use this comparison" state rather than an error.
- Revenue is shown in the property's native currency, never converted.
- A key event with no data in one of the two periods is not used for a comparison.
See it on the GA4 for SEO agencies page, or read how it compares to Search Console in Search Console vs GA4 for SEO agencies.
Skip the manual GA4 pulls
Casient reports Organic Search sessions, key events and revenue for every client property — on stable data, with the sampling and freshness checks built in.
Related: Connecting SEO to business outcomes · SEO case study generator · Pricing