What a search click earns: revenue attribution for a product site

You want to know what a search click earns. For a product site, credit search on first touch unless you have proof it misleads. This page shows how to join payment, person and first landing page, read the report, and decide what to write next.

By , founder of Porteur · Updated 14 September 2026 · Markdown

Start with first touch and the join you need

Credit the visit that first brought the person. For search on a product site, this is the clean default.

Revenue attribution to search needs three fields joined: the payment event, the person, and the person’s first landing page on your site.

That join answers one question: which landing pages bring people who later pay. Page analytics do not hold person history. Product analytics do.

What Search Console and analytics say together

Search Console gives queries, pages, impressions and clicks. Analytics shows what visitors did after the click. Joined by landing page, you see where search works or fails.

  • Pages that win clicks and sign nobody up: fix intent or the page.
  • Pages that convert most visitors and get no clicks: earn links, improve titles, add internal links.
  • Queries that suit bottom of funnel: write a buying page, not a guide.

Sessions and clicks never reconcile exactly. A click can start no session, a session can follow several clicks, and consent tools drop sessions as of 2026. Use trends and joins by landing page, not exact totals.

Build the report in PostHog

PostHog tracks events and persons. It captures $pageview with $current_url, $pathname and $referring_domain. A person carries initial referrer and initial UTM properties from their first visit.

  1. Define your payment event

    Send an event on charge, with amount and currency properties. Mark it as your revenue source in your own reporting.

  2. Record signup and key product events

    Send a signup event. Keep a stable person id tied to your account or user.

  3. Build a funnel for organic search

    From a pageview on a landing page path, to signup, to payment. Break down by the person’s initial referring domain, and include only Organic Search.

  4. Join first landing page to revenue

    Use the person’s first pageview $pathname as the landing page. Attribute each person’s payments to that first page.

-- HogQL sketch: revenue by first-touch landing page for organic
SELECT
  person.properties["$initial_current_url"] AS first_url,
  toString(replaceRegexpAll(first_url, '^https?://[^/]+', '')) AS landing_path,
  sumIf(toFloat(event.properties["amount"]), event.event = 'payment' AND person.properties["$initial_referring_domain"] IN ('google.com','bing.com','duckduckgo.com')) AS revenue
FROM events
WHERE timestamp >= today() - INTERVAL 28 DAY
GROUP BY landing_path
ORDER BY revenue DESC

This gives first touch by design. If you need last touch for a cross check, pivot by the last pageview before signup. Keep both views in your notes.

Read the landing page table

Put one simple table in your doc. Each row is a landing page path. It shows Search Console clicks, signups, paying users and revenue credited on first touch.

Landing pageClicksSignupsPayingRevenueNotes
/highsomesomesomeHome ranks for brand, decent intent
/pricinglowhighhighhighStrong closer, little search demand
/guides/getting-startedsomefewnonenoneInformational, weak CTAs
/compare/you-vs-altfewsomesomesomeBottom of funnel, expand this pattern

You will not balance every column. Use direction. If clicks are high and revenue is none, change the offer or the page. If revenue is high and clicks are few, create more pages of that type and link to them from the pages that already get clicks.

Do the GA4 side cleanly

GA4 shows Organic Search sessions in the default channel group. The Landing page dimension and the Landing page report show sessions and key events by the first page of the session.

  1. Mark your key events

    Conversions were renamed key events in 2024. Mark signup and payment events as key events so they appear in reports.

  2. Open Engagement, Landing page

    See sessions, engaged sessions and key events per landing page. Filter for Default channel group equals Organic Search.

  3. Link Search Console

    In Admin, Product links, Search Console. This adds two Library reports: Google organic search queries and Google organic search traffic. They join clicks and impressions to landing pages, with Search Console lag and query anonymisation.

  4. Compare attribution models when needed

    GA4 attribution defaults to data-driven for key events. Add a comparison for first click and last click to understand model effects.

Use GA4 to spot landing pages that get Organic Search sessions and key events. Use Search Console for queries per landing page. Expect sessions and clicks to differ. GA4 samples large explorations and thresholds small segments. Use unsampled standard reports when you can as of 2026.

UTMs without breaking search attribution

UTM parameters label traffic you cause elsewhere. GA4 and most analytics read utm_source, utm_medium, utm_campaign, utm_term and utm_content for the session’s source, medium and campaign.

  • Tag newsletters, social posts, partners and ads.
  • Never tag internal links. An internal UTM starts a new session and breaks attribution.
  • If a UTM URL is linked by others, it can be indexed. Add a canonical tag to the clean URL.

Use Google’s Campaign URL Builder to keep names consistent. For search attribution, you do not add UTMs to ranking pages. Search clicks will be Organic Search by referrer and medium, not by UTM.

Decide what to write next from the table

  • High clicks, low signups: align the page to the query. If the query is "how to export csv" and your page sells, split them. Keep help content helpful, then place a soft CTA.
  • High revenue, few clicks: make parallel pages. If /pricing converts, write /pricing/enterprise and /pricing/startups if they match real offers. Link them sitewide.
  • Queries with buying intent but no page: create one. If Search Console shows "yourproduct alternatives" under /blog/what-is-yourproduct, build /alternatives/yourproduct and link from the blog post.
  • Pages with strong post-click metrics from other channels: add internal links from high click pages. Move the visitor towards the closer.
  • Guides that convert but lack search demand: add comparison tables, FAQs and schema. Improve titles to about 60 characters and meta descriptions to fit 155 characters to lift CTR.

Write fewer, more specific pages. Name paths that match the query class. For example, "/compare/you-vs-alt" for branded comparison, not a long general blog post. Measure again after 28 days.

When first touch misleads

  • Long sales cycles: the content that closes may be last touch, not first. Keep a last click view for edits on closer pages.
  • Several people per account: crediting the buyer’s first visit may hide the researcher’s role. Hold account-level notes outside analytics.
  • Offline steps: demos, calls and invoices break web paths. Keep CRM notes tied to the account id, and annotate spikes in your report.
  • Branded search: brand clicks follow other work. Keep brand and non brand separate when you plan content.

Use first touch as your default plan for search content. Sanity check with last click before signup when you change a closer like "/pricing". Keep both views simple and written down.

A worked path to your first answer

  1. Get Search Console clicks by landing page

    Open the Search Console Performance report. Filter to Pages. Export clicks and impressions for the last 28 days.

  2. Get Organic Search sessions and key events by landing page

    In GA4, open Engagement, Landing page. Add a filter for Default channel group equals Organic Search. Export sessions and key events for the same period.

  3. Join them on the landing page path

    In a sheet, trim hostnames so paths match. You now have clicks next to sessions and signups. You will see where clicks do not lead to action.

  4. Add first touch revenue if you use product analytics

    From PostHog or your own tables, add revenue per first landing page for Organic Search. If you cannot, add paying users per landing page as a proxy.

  5. Pick one page to fix and one pattern to extend

    Rewrite or split the weak page. Plan two new pages that copy the strong closer pattern. Set owners and a date. Review in 28 days.

Questions

Sources

Check my site, free

Paste your URL to get a free check that reads your site, the searches around it and rivals on them, then shows three findings you can act on in about thirty seconds.

  • Free check, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next