Google Search Console and Analytics
Your Google numbers, beside ours
Connect your own Google account once and Baseline imports Search Console clicks, impressions and average position, plus GA4 sessions, and draws them on the same days as the traffic our tracker measured. Read-only, one trip to Google, and you can take it back whenever you like.
Two measurements of the same site, on one chart
Baseline measures what our tracker sees. Google measures what Google sees. Neither is the whole picture on its own, and reading them in two browser tabs is how a difference goes unnoticed for a month. Connecting puts them side by side, with the days lined up.
Clicks, impressions, click-through rate and average position for every day in the window, plus your top queries and top pages. Google keeps 16 months and we import what it will give us.
Sessions, engaged sessions and key events per day, with the sources they arrived from. We run those sources through the same classifier the rest of the product uses, so AI assistants are called out by name.
One consent screen covers Search Console and Analytics together. There is no second connection hiding behind a button you have to find later.
Both scopes we ask for end in readonly. We cannot change a property, a setting or a report in your Google account, and disconnecting revokes the grant at Google rather than just forgetting it here.
Google counts sessions in your property time zone. Our tracker counts pageviews in UTC. Seeing both is the point of this; averaging them would not be, so we never do.
Google reports no crawler traffic and delivers no schema, because no code of ours runs on your site as a result of this. That is what the plugin, the worker and the module are for.
Connect it, step by step
Five steps, about two minutes of your time and a few minutes of ours while the first import runs. The last step reads the live state back to you rather than asking you to trust the previous four.
-
Sign in to BaselineThe Google grant is stored against a Baseline account, and Google hands the connection back to whichever account started it. So this comes first, in this browser.
-
Connect GoogleThis sends you to Google to approve read-only access to Search Console and Google Analytics for the site named above. Nothing is registered on your site and nothing is installed anywhere - we are asking Google for permission to read numbers you already own.Google will say it has not verified this app
Expect a screen headed Google hasn't verified this app. It is not a virus warning and it is not a sign that anything went wrong. Click through it:
- Click Advanced at the bottom left of the warning.
- Click Go to Baseline Labs (unsafe) at the bottom of what unfolds.
- Approve both boxes on the consent screen that follows, then you are back here.
Why it appears: Google Analytics access is a sensitive scope, and any app asking for one shows this screen until Google finishes reviewing it. Our review is in the queue. The word "unsafe" is Google describing an app it has not inspected yet, not an app it has inspected and objected to - and we would rather write that down than quietly drop Analytics to avoid the screen.
Search Console access on its own is not a sensitive scope, so the Search Console only button skips this screen entirely. You can add Analytics later from your Google page.
-
Pick your propertiesGoogle sends you back to your Google page with the property picker already open. We suggest the best match for your domain; you confirm it, because only you know which property is the real one.
Search Console gives you two shapes of property and they are not the same thing. A domain property looks like
sc-domain:example.comand covers every subdomain and both protocols. A URL-prefix property looks likehttps://www.example.com/and covers only that exact prefix, so a site that also serves traffic on the bare host will look smaller than it is. Pick the domain property when you have one.Google Analytics properties are identified by number, not by name: the value you are picking looks like
properties/123456789. The picker shows the readable name beside it. If you have several, the one you want is the GA4 property whose data stream is this website.Confirming starts a 90-day backfill in the background. Changing a property later deletes what was imported from the old one rather than adding the two together.
-
Check it from our sideGoogle will tell you that you granted access. This says what actually landed here for the site named at the top of this walkthrough, which is the answer that counts.
-
Read it beside what AI doesThat is the whole point of connecting. Your Google page puts Search Console clicks beside the people AI answers sent you, over the window you choose, and marks the pages Google shows that no AI bot has read.
myaccount.google.com/connections and look for Baseline Labs. Google lists exactly what it granted us and lets you withdraw it there, without asking us first. Anything you revoke that way shows up here as a connection that needs reconnecting, not as silence.Four things this connection will not do for you
Connecting Google puts no code on your site. It reports no AI-crawler traffic, injects no schema and cannot verify a domain, because nothing of ours is running there as a result of it. If your install page says a channel is missing, connecting Google will not change that answer and should not. The plugin, the worker and the module are the three things that do.
A GA4 session holds several pageviews, so it can never equal our pageview count. Search Console lags about two days and revises the last three, so recent days fill in over time, and it hides rare queries for privacy, so the query rows add up to less than the totals. Google reports days in your property time zone while we count UTC days. All of that is normal. We show both series rather than reconcile them into one number that would be wrong in a way nobody could see.
The unverified-app interstitial belongs to Google and stays until our app clears verification. Until then there is also a hard ceiling of 100 accounts that can grant access. We could make the screen disappear today by dropping the Analytics scope and asking for Search Console alone, and we have kept Analytics instead because a second trip to Google is the step nobody ever came back for. The Search Console only button is there if you would rather not see it.
Both scopes are read-only, so nothing in this product can create a property, change a setting, submit a sitemap or edit a report in your Google account. That is a limit, not a feature we have not built yet. If you want something pushed into Google, it has to be done in Google.
What you need
| Account | A free Baseline Labs account. Sign up - no card. |
|---|---|
| Plan | None. Connecting Google is free on every plan, including the free one. |
| Search Console | A verified property for the site, and a Google account with at least restricted access to it. A property you can only see as an unverified user is skipped, because Google will not hand us its data. |
| Google Analytics | Optional, and a GA4 property rather than a Universal Analytics one. Viewer access is enough. |
| Browser | The same one throughout. Google returns you to the Baseline account that started the connection, and finishing it in a different session is refused on purpose. |
| Time | About two minutes to connect. The first import backfills 90 days and runs in the background, so the numbers arrive a few minutes after you do. |
Google reads. These three deliver
Google hands us numbers about your site. It does not put anything on it. One of these three channels is what injects your schema and counts the AI crawlers reading you, and they run happily alongside the Google connection.
Upload a zip, paste a key, done. Screenshots of every screen and a live check at the end. Open the walkthrough.
Runs at the edge, in front of every cache, on any stack. The only channel that sees every request. Open the walkthrough.
A dependency-free ES module for Node, Deno, Bun or any edge runtime. Drop it in and call it once per request. Open the walkthrough.
Your install page lists every domain on your account and what is actually live on each - measured, not declared. Open the install page.
Stop reading your own site in two tabs
One consent screen, read-only, revocable, and your Google numbers land on the same chart as ours.