How to track signups from search, by landing page

You want to know which pages bring signups from search. You have Search Console and analytics, but they tell different stories. Here is how to join them and ship changes that move signup numbers.

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

What you must join, and why

Search Console tells you the query, the page, the impressions and the clicks. It does not know your signup.

Analytics tells you what the visitor did after the click. GA4 shows sessions and key events by landing page. Product analytics ties a person’s first touch to a later signup.

You need both. Join by the landing page path. The result shows two lists you care about: pages that win clicks and sign nobody up, and pages that convert and get no clicks.

For attribution, learn two views. First touch credits the first visit that brought the person. Last touch credits the visit before signup. For product sites, first touch answers which landing pages bring people who later sign up. Last touch shows which pages close. You will use both in judgement, not one rule to decide every change.

Set up GA4 to record signups and landings

  1. Mark your signup as a key event

    Send a signup event from your site. In GA4, Admin, Events, mark it as a key event. Conversions were renamed key events in 2024.

  2. Confirm Organic Search sessions

    Open Reports, Acquisition, Traffic acquisition. Organic Search is the default channel group for sessions where source or medium is google or bing and organic. Check this before you filter by channel later.

  3. Use the Landing page report

    Open Reports, Engagement, Landing page. This shows sessions and key events by the first page of the session. Add a filter for Default channel group equals Organic Search.

  4. Link Search Console

    Admin, Product links, Search Console. Link your property and web stream. This adds two reports to Library: Google organic search queries and Google organic search traffic. They join clicks and impressions to landing pages, with Search Console lag and anonymised queries.

A fixed page looks like this in GA4: /guides/getting-started shows Organic Search sessions, your signup key event count, and reasonable average engagement time. You can click through to see events on that landing page view and its paths to signup.

Build the GA4 report that matters

  1. Organic landings to signups

    In Engagement, Landing page, add a comparison for Default channel group equals Organic Search. Add Signup key event as a metric. Sort by Signup key event. Export CSV.

  2. Compare attribution models

    In Reports snapshots or Advertising, add a comparison for Attribution settings. Compare data-driven with first click and last click. Data-driven is the default for key events. Use first click to see who you originally attracted. Use last click to see closers.

  3. Use the Search Console reports

    Open Library, publish the Google organic search queries and Google organic search traffic reports if not already. In Google organic search traffic, sort by Landing page. Export clicks, impressions and average position for the same date range as your GA4 export.

  4. Expect mismatches

    Clicks and sessions never reconcile exactly. A click can start no session. A session can follow several clicks. Consent tools drop sessions. Work with orders of magnitude and direction, not a false precision.

If you need more detail, build an Exploration. Start with a free form. Rows: Landing page. Segments: Organic Search sessions only. Values: Sessions, Signup key event, Users. Break down by Device category. GA4 can sample large explorations and threshold small segments. Treat small numbers with care.

Use product analytics for first touch to signup

GA4 is page analytics. It shows landing pages and key events in the same session. You also need to know which first landing pages lead to signups that happen later. That is a product analytics job.

  1. Capture page views with referrers

    In PostHog, the $pageview event carries $current_url, $pathname and $referring_domain. A person stores initial referrer and initial UTM properties from their first visit. These answer where each person first came from.

  2. Define your signup

    Track a product event for signup or account created. Mark it as important in your dashboard. Keep the name stable.

  3. Build a funnel by landing page path

    Create a funnel from a page view that starts with $pathname equals / or starts with /pricing or starts with /guides/. Then add the signup event as the next step. Break down by initial referring domain to isolate google.com and bing.com as Organic Search.

  4. Answer the first touch question

    Read which landing paths act as the first touch for people who later sign up. This joins a person’s first landing page to their later signup. Page analytics do not do this, product analytics do.

A fixed view looks like this: a funnel on /guides/ to signup, broken down by initial referring domain. You see /guides/getting-started sends 120 people into the product each 28 days, and 18 later sign up, most from google.com. You then check how many clicks that page gets in Search Console.

Join Search Console with analytics by landing page

Export two tables for the same dates. From Search Console in GA4, landing pages with clicks and impressions. From GA4 Landing page, Organic Search sessions and signup key events by landing page. Or from PostHog, first-touch landings to signup by pathname.

  1. Normalise the paths

    Strip the domain and query from URLs so both exports have clean paths like /pricing and /guides/getting-started.

  2. Join in a sheet

    Use VLOOKUP or INDEX MATCH to join on the path. Keep columns for Clicks, Impressions, Sessions, Key events, and First-touch signups if you have them.

  3. Read the two lists

    Sort two ways. First by clicks descending, then by signup numbers ascending. These are pages that win clicks and sign nobody up. Second by first-touch signups descending, then by clicks ascending. These are your quiet converters that get no clicks.

Work an example. /pricing gets 2,400 clicks, 0.8 percent click through rate, and 12 signups as last touch. First touch from /guides/getting-started drives 40 signups but sees only 200 clicks. You fix /pricing for clarity and speed. You add internal links to /guides/getting-started, improve its title and meta description, and ship a short comparison block that matches the query that brings it in.

UTM parameters without breaking attribution

  • Use utm_source, utm_medium, utm_campaign, and, if you need them, utm_term and utm_content.
  • Use them only on links you place elsewhere: a newsletter, a partner site, a social post.
  • Never use UTMs on internal links. An internal UTM starts a new session and breaks attribution.
  • If a UTM URL gets linked from outside, it can be indexed. Add a canonical tag to the clean URL.
  • Use Google’s Campaign URL Builder to make clean, consistent UTMs.

Turn the join into weekly action

  • Pages that get clicks, no signups: test copy, speed, form friction, and call to action. Try a short explainer above the fold on /pricing.
  • Pages that convert, few clicks: improve the title and meta description, add internal links, and ship a small content upgrade. For /guides/getting-started add a “Try it free” block and a FAQ.
  • Queries that bring the wrong people: move that page to a better intent or noindex it if it is off strategy.
  • Queries just off page one: rework the intro and headings, add one specific example, and get a clean internal link from /guides/.
  • Break down by device. Fix mobile if mobile landings bring sessions and no signups.
  • If you sell, join payment events to first landing page. Then read what a search click earns and decide where to spend time.

Keep a sheet with four tabs: GA4 landings, SC landings, Joined, Notes. Each week, refresh exports, paste values, and keep Notes short: one change per page, one owner, one date. Review in 28 day windows so spikes smooth out.

Troubleshooting odd numbers

  • Signups missing in GA4: the event was not sent or not marked as key. Check DebugView, then Events, then Key events.
  • Organic traffic looks low: a consent tool is dropping sessions, or you tagged internal links with UTMs. Remove internal UTMs first.
  • Clicks way up, sessions flat: the page may redirect, be slow to load, or fail before analytics fires. Check Core Web Vitals and error logs.
  • One pathname shows twice: a trailing slash mismatch. Canonicalise and redirect so /pricing and /pricing/ resolve to one.
  • Cross domain or app signup: you lose the session. Use cross domain measurement or track signup server side and join by user ID in product analytics.

Questions

Sources

Check my site, free

Paste your URL to get a free 30‑second read of your site, the searches around it and the rivals on them, and see three findings whole before you connect anything.

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

Read next