Search Console and GA4 are both free Google tools, but they measure different places. Search Console tells you whether you were seen and chosen in search results; GA4 tells you what people did after arriving, and whether they got in touch. Neither knows anything about deals or orders.
This article is for small-business staff deciding where to start with measurement. It covers, in order: how the two tools divide the work, an event design that counts enquiries, how to tag email links with UTMs, reconciling with a deal ledger, and consent and personal data. The focus is less on which buttons to press than on deciding what to count, and what not to.
What the owner decides, and what the provider can take on
Measurement setup can be outsourced, but what counts as a result can only be decided inside your company.
| What the owner decides | What a provider can take on |
|---|---|
| What counts as "one enquiry" (form, phone, brochure request) | Implementing tags and events, checking them in DebugView |
| Making your company account the owner of Search Console and GA4 | Walking you through setup, granting access |
| Adopting UTM rules for emails and keeping to them | Drafting the rules, preparing a sheet for building links |
| Who does the monthly reconciliation | Designing the ledger template |
| Final check of what the privacy policy says | Listing the data being sent to GA4 |
If you outsource, the cost depends mainly on:
- How many forms are measured, and what they are built with (a CMS plug-in, an external form service, or your own code)
- Whether Google Tag Manager (a free tool for managing tags in one place) is installed
- Whether the form can be made to send an event after a successful submission (external form services may limit what is possible)
- How much existing setup and duplicate tagging needs cleaning up
Ready to start measuring?
Set up Search Console and GA4 so enquiry counts are visible
Dividing the work: Search Console before the visit, GA4 after
| What you want to know | Search Console | GA4 |
|---|---|---|
| How often you appeared in search results | Impressions | Not available |
| How often people clicked through from search | Clicks | "Organic Search" sessions, as an approximation |
| Which words you appeared for | Queries (some hidden) | Generally not available |
| Whether key pages are in Google's index | Page indexing, URL Inspection | Not available |
| Which page people landed on and where they went next | Not available | Landing pages, page paths |
| How many enquiries arrived | Not available | Events you set up yourself |
| Visits from emails and ads | Not available | Available if links carry UTMs |
| Deals, orders, gross profit | Not available | Not available (needs a ledger) |
The two sets of numbers won't match. Google's explanation gives these main reasons (Using Search Console and Google Analytics data for SEO):
- Search Console reports only the URL Google treats as canonical; GA4 reports every URL that carries the tag
- Search Console's dates are fixed to Pacific Time; GA4 uses the time zone set on the property
- A "click" in Search Console and a "session" in GA4 are defined differently
- GA4 automatically excludes known bots; Search Console doesn't necessarily
- GA4 doesn't count pages without the tag, or visitors who declined tracking
So there is no need to track "the gap between Search Console clicks and GA4 organic sessions" every month. What you watch is each number against your own past.
Caveats when reading Search Console
To protect privacy, Search Console leaves queries searched by only a few people out of its query list. Google's blog explains that anonymized queries are those not issued by more than a few dozen users over a two-to-three-month period. They are still included in chart totals unless you filter by query (performance data deep dive).
Niche B2B terms are exactly the kind that hide here. It is normal for the query list to add up to far fewer clicks than the page total, and a term that doesn't show is not proof of no demand.
Connecting the two
Linking Search Console from GA4's admin screen adds two reports inside GA4: "Google Organic Search Queries" and "Google Organic Search Traffic." The link requires both the Editor role on the GA4 property and verified ownership of the Search Console property (Connect Search Console to Analytics). Search Console data becomes available 48 hours after collection, and up to 16 months of it is shown.
If your web agency created the accounts, ownership may not sit with you. Make your own company account the owner, so the data stays visible when staff change.
The first five settings
| Order | Setting | Why |
|---|---|---|
| 1 | Register the site in Search Console and make your company the owner | Shows search visibility and indexing status |
| 2 | Set GA4 data retention to 14 months | Left at the default, explorations and funnels can't compare with last year |
| 3 | Exclude your own office's visits as internal traffic | Stops staff browsing from inflating the numbers |
| 4 | Create an enquiry-completed event and mark it as a key event | Decide how success is counted from day one |
| 5 | Link GA4 and Search Console | Landing pages and search terms on one screen |
The retention setting does not affect standard aggregated reports; it affects only explorations and funnel reports. Standard properties can choose 2 or 14 months. To exclude internal traffic, define a rule by IP address, check the data filter in its "Testing" state, then set it to "Active." Once active, excluded data cannot be recovered.
Event design: counting enquiries correctly
GA4 records page views and actions as "events." The first thing to decide for enquiry tracking is which event counts as one enquiry.
Event design table for B2B
| What to measure | Event name | When to send it | Key event? | Parameters to attach |
|---|---|---|---|---|
| Enquiry completed | generate_lead (recommended event) | Once, after the server accepts the submission | Yes | form_id (which form), type of enquiry |
| Brochure request completed | generate_lead or a name of your own | Once, after acceptance | Depends on your goal | Type of brochure |
| Contact form started | A name of your own (e.g. contact_form_start) | First interaction with the contact form | No | form_id |
| Submission failed | A name of your own (e.g. contact_form_error) | When the server returns an error | No | Type of error (never the input) |
| Phone number tapped | A name of your own (e.g. phone_tap) | When a tel: link is pressed | Depends on your goal | Where it was pressed |
generate_lead is one of GA4's recommended events, described as for when someone submits a form online or submits information offline (Recommended events). Using a recommended event name makes it easier to combine with GA4 features. If you attach value (an amount), currency is required as well. In B2B, where the deal value is unknown at enquiry time, there is no need to force a value.
A phone tap is not the number of calls made. It also counts people who pressed and didn't call. Record phone enquiries on the receiving side.
You mark a key event by clicking the star in the events list. Standard properties allow up to 30, and the setting applies only to data from the moment you set it — it is not retroactive (Mark events as key events). So the earlier you set it up, the longer the period you can compare.
What an engineer checks
Whether you commission the form work or set it up yourself, confirm these points:
- Send after success: counting clicks on the submit button includes validation errors and server failures as "enquiries." Send
generate_leadafter the response confirming the server accepted it. - Send once: counting views of a thank-you page can double-count on reload or when the browser's back button is used.
- Keep personal data out of URLs: some implementations append
?email=or?name=to the thank-you page URL. The URL goes to GA4 as is. - Keep tests out of production numbers: verify with DebugView (the screen that shows events in real time), and exclude your office as internal traffic.
The pitfall: the automatic form_start isn't necessarily your contact form
GA4's enhanced measurement has a "Form interactions" option. When on, form_start and form_submit are recorded automatically. form_start fires the first time a user interacts with a form in a session (Enhanced measurement events).
"Form" here does not mean only the contact form. A site search box, a newsletter sign-up field and a brochure-download field are all forms in HTML. On a site with a search box in the blog sidebar, a reader who merely clicks into that box can register a form_start. The result: more people appear to have "reached the contact form" than really did, which can lead to the wrong conclusion that visitors are dropping out at the form.
How to check:
- The automatic
form_startcarries parameters such asform_id, the form's HTML id, andform_destination, the URL it submits to. They can't be used in reports until registered as custom dimensions. - Register
form_idas an event-scoped custom dimension and split the counts by which form fired. A registered dimension becomes usable in reports 24 to 48 hours after registration. - If you don't know your contact form's id, or some forms have no id, ask your web agency.
- If you want to count enquiry starts accurately, don't rely on the automatic tracking; create your own event that fires only on the contact form.
The automatic form_submit likewise records "the submit button was pressed," not whether the server accepted the submission. For your enquiry count, use the generate_lead you send after success. How to see where people drop out within the form is covered in How to improve your website's contact form.
Setting UTM rules: telling visits from email and ads apart
UTMs are tags appended to a link that tell GA4 where a visit came from. Google says to use utm_source, utm_medium and utm_campaign in every case (Campaign URL builder).
When a link without UTMs is clicked in the body of an email, the referrer is often not recorded, and GA4 classifies the visit as "Direct." If you want to know whether your announcements and sales emails work, UTMs are essential.
Internal UTM rules (example)
| Parameter | Rule | Example |
|---|---|---|
utm_source | The kind of sender, in lower-case letters | newsletter, outreach, seminar_invite |
utm_medium | For email, always email | email |
utm_campaign | Year-month and purpose | 2026-11_case_study |
utm_content | Distinguishes links within the same email | header_link, footer_link |
| Values never to use | Anything that identifies the recipient | Recipient address, company name, personal name, customer number, an ID unique to each recipient |
Fix utm_medium=email to a single spelling. GA4's default channel grouping classifies traffic as "Email" when the source or medium is any of email, e-mail, e_mail or e mail, and channel definitions are not case-sensitive (Default channel group). The parameter values themselves, however, are case-sensitive. If Email, email and e-mail get mixed, the channel is the same but they show up as separate rows in a report by medium, and totalling them becomes extra work.
Understand, too, why values that identify the recipient are off limits. Google asks that UTM parameters contain no personal information (Best practices to avoid sending PII). Wanting to know "which company clicked," it is tempting to put a company name or customer number in a UTM, but that sends recipient information to GA4. See who responded outside GA4, for example in your email tool's click records.
One more rule: put UTMs only on links that come from outside your site. Tagging links within your own site replaces the record of where the visit came from with your own campaign, and the real source is lost.
Reconciling with the deal ledger: GA4 doesn't know about orders
What GA4 can see stops at "a form was submitted." Whether the enquiry was a sales pitch, a promising request, or a won job, it cannot tell. The later stages carry more weight as results, so count in this order:
Enquiries (GA4 and the inbox)
→ Valid enquiries (excluding sales pitches and spam)
→ Sales conversations
→ Quotes
→ Orders won
→ Gross profit
The monthly reconciliation table
Fill in this table once a month. The figures are a hypothetical example.
| Month | GA4 generate_lead | Form enquiries in the inbox | Direct phone/email enquiries | Valid enquiries | Conversations | Quotes | Orders | Note on the gap |
|---|---|---|---|---|---|---|---|---|
| Sep | 7 | 8 | 3 | 6 | 3 | 2 | 1 | 1 likely a visitor who declined tracking |
| Oct | 11 | 8 | 2 | 5 | 2 | 1 | 0 | GA4 higher: 3 test submissions on the day the form was changed |
The aim is not to make the numbers match but to confirm the gap can be explained. When it suddenly widens, suspect a change: a tag that came off, a form rebuild, a rise in spam.
Before linking at the individual level
To learn "which article did the customer who bought read?", you may be tempted to tie each enquiry to the visitor's GA4 data. GA4 even has recommended events for recording qualified leads and won deals, such as qualify_lead and close_convert_lead.
Care is needed here. Google's "Japan user consent policy" prohibits combining "non-personally-identifiable user information" about users in Japan, received from Google in connection with Google Analytics, with personally identifiable information — unless you have obtained all legally required consent before processing and provided accurate and complete information about it to Google (Advertising features policy requirements). And under Japan's Act on the Protection of Personal Information, browsing history collected with cookies and the like can count as "personally referable information" (Personal Information Protection Commission).
For a small company, reconciling monthly counts, plus asking "How did you hear about us?" on the enquiry form, is often enough. If you do need individual-level linking, check with a professional, including how consent will be obtained, before designing it.
Consent and personal data: what not to send, what to disclose
Don't send form input to GA4
GA4's terms prohibit passing Google any information it could use or recognise as personally identifiable, whether hashed or not (Google Analytics Terms of Service, section 7). In practice, check:
- Form input (name, company, email address, phone number, the enquiry text) is not placed in event parameters
- Input does not end up in the URL or page title of the thank-you page or search results page
- No value identifying a recipient or customer goes into UTMs or custom dimensions
What consent mode is
Consent mode is a mechanism that tells Google's tags what consent a visitor has given. It is not a consent banner; the banner or consent-management tool is provided separately. The help page describes two implementations (Consent mode):
| Implementation | Behaviour | When consent is not given |
|---|---|---|
| Basic | Google tags are not loaded until consent is given | No data reaches GA4, and GA4 modelling does not fill the gap |
| Advanced | Tags load before the consent dialog | No cookies are stored; cookieless pings are sent instead |
According to the help page, even with the basic implementation, Google Ads conversion modelling estimates using a general model. The missing gap-filling is on the GA4 side.
Cookieless pings can include information such as the user agent, screen resolution and IP address (Google states that GA4 does not log or store IP addresses). If many visitors come from abroad, or you combine Analytics with advertising, check the laws that apply, including which implementation to choose.
Do Japan's external-transmission rules apply?
The external-transmission rules in Japan's amended Telecommunications Business Act, in force since 16 June 2023, require — among other things — notifying or publishing what user information is sent, to whom, and for what purpose, when tags or similar make visitors' devices send information to third parties. They cover telecommunications businesses offering services such as social networks, search and news distribution. The Ministry of Internal Affairs and Communications (MIC) explains that online sales of your own products and running a corporate website are not covered (MIC external transmission rules). A page on the same site that distributes news can be in scope, however (External transmission rules FAQ, Q2-12).
Even out of scope, GA4's terms require your privacy policy to disclose the cookies and similar technologies used to collect data, your use of Google Analytics, and how that data is collected and processed. Check with a professional whether your company is covered, and how the Act on the Protection of Personal Information applies to you.
Six things to do on the day you start measuring
- Register Search Console and make your company account the owner
- Set GA4 retention to 14 months and exclude your office's visits
- Send
generate_leadafter a successful enquiry and mark it as a key event - If enhanced measurement's
form_startis showing up, registerform_idand check which form it fires on - Agree UTM rules for links in emails and share them internally
- Create the monthly reconciliation table and fill it in from month one
Once measurement is in place, you can read the numbers with Why your website gets no enquiries: 7 causes and decide where to spend with Small-business SEO: where to start. If you want help with settings and access rights, event implementation, and ledger design, the scope and how the cost is set are described on the website growth and measurement page.