Connecting Google Search Console to SiteLine is not a "sync" button that invents history. It is a read-only OAuth grant, a backfill of whatever Google still holds that day, and an ongoing import that keeps revising recent days. This page is the onboarding path: what to click, what to wait for, and how to tell a healthy connect from an empty one.
If you already connected and only care about row caps or year-over-year holes, jump to the 1,000-row limit, exporting more than 1,000 rows, the 16-month limit, or YoY when the prior year is gone.
What you get when you connect
| Piece | What SiteLine does | What it does not do |
|---|---|---|
| OAuth scope | webmasters.readonly only |
Submit sitemaps, request indexing, change users |
| Backfill | Copies the overlap Google still serves (~16 months minus 2–3 day publish lag), if the property was verified that long | Invent days Google already dropped, or days before verification |
| Breakdowns | Up to 25,000 rows per day per report (one API page) | Second page to Google's ~50k ceiling |
| Site totals | Stored separately (group by date) so headlines are not sums of query rows | Pretend named queries equal the property |
| Retention | Keeps imported days while you subscribe | Forever after you cancel; reconnect restores only what Google still holds |
| Agents | Same warehouse over MCP (read-only) | Write tools, Ads, GA4 |
Cookieless on-site analytics is a separate install on the same domain. Connect Search Console first if organic queries are why you signed up; add the tracker when you want pageviews beside clicks. The two ledgers stay separate — clicks vs sessions.
Before you start
- A Google account that can see the property in Search Console (Owner or Full user). Restricted users cannot grant what they cannot see.
- The property type you actually use —
https://example.com/(URL-prefix) vssc-domain:example.com(Domain). SiteLine lists what Google returns for that account; pick the same property you report on today. - Expectation for a young property. Verified four months ago → about four months of history. No tool backfills a year Google never stored.
- A SiteLine account. Register — 7-day trial, no card to start. Plans from $4.99/mo. If you came for agents, register with MCP intent.
Step-by-step connect
1. Create the SiteLine account
Sign up at /register. Confirm email if prompted. You land in the app with an empty site list until Search Console (and optionally analytics) is linked.
2. Start Google Search Console connect
In the app, open the Search Console / integrations connect flow (wording moves; look for Connect Google Search Console or Search Console under integrations). SiteLine sends you to Google's OAuth consent screen.
Approve webmasters.readonly. Decline anything that asks for write access to Search Console — SiteLine does not need it and does not use it.
3. Pick the property
After consent, choose the site (or sites) to import. Unlimited Search Console properties on every plan; you are not charged per domain for GSC rows. Import volume is not the analytics event quota.
If the list is empty: the Google account has no verified properties, or you picked the wrong Google user in the OAuth picker. Switch account and retry.
4. Wait for the backfill — do not chart yet
The first job copies history Google still holds. On a large property that can take a while. Until it finishes:
- Overview charts may look sparse or stuck on recent days.
- MCP
list-sitescan show the site before breakdowns are complete. - Treat import status as source of truth, not the first sparkline.
What "done" means: site totals across the available window, plus day-scoped breakdowns up to the row cap. The newest 2–3 days often arrive on later refreshes because Google has not published them yet.
5. Confirm with import status
In the UI (and via MCP get-import-status once you enable tokens), check:
data_from/data_through— the closed range you can trust for headlines.- Whether a backfill or catch-up is still running.
- That you are looking at Web (or the search type you care about). Discover and Google News have no query dimension; position is null, not zero.
A healthy connect shows a data_through a couple of days behind today, not "through today." Empty lag days are publish delay, not a traffic crash — same rule as YoY.
6. Optional: enable MCP for agents
After import looks sane:
- Open Settings → MCP access (
/settings/api-tokens). - Create a bearer token for Cursor / Claude Code, or use OAuth connectors for Claude.ai / ChatGPT.
- Point the client at both servers:
https://siteline.tools/mcp/search-consoleandhttps://siteline.tools/mcp/analytics.
Full client dialects: SiteLine MCP setup for agents. Product overview: /mcp.
7. Optional: install cookieless analytics
Search Console alone answers queries, impressions, and position. It does not answer bounce, goals, or on-site funnels. Install the script or React SDK when you want that ledger on the same property — /docs/script, /docs/react. Hostname allowlist must match the site you browse.
What the backfill actually copies
On connect day, SiteLine asks Google for the rolling Performance window:
- About 16 months, minus the 2–3 day publish lag (retention deep dive).
- Site totals by date for headlines.
- Breakdowns (query, page, and other dimensions SiteLine stores) one day at a time, capped at 25,000 rows per day per report.
After the backfill, refreshes re-import roughly the last 7 days so Google's revisions land. A Monday imported on Wednesday is rarely the final Monday.
Reconnect after cancel does not restore the archive you dropped. You get a new photograph of whatever Google still holds on the new connect day.
Sanity checks after connect
Use this checklist before you trust a deck or an agent brief:
- Property match — URL-prefix vs Domain matches the Search Console property you already use.
data_through— ends on a published day, not "today."- Headlines from site totals — never sum query rows to rebuild the site (why).
- Search type — Web vs Image vs Discover kept apart.
- Young property — short history is expected; it is not a failed import.
- Row cap on heavy days — named query lists can stop at 25k while site totals remain complete (export paths).
Common connect failures
| Symptom | Likely cause | What to do |
|---|---|---|
| OAuth succeeds, no sites listed | Wrong Google account, or none verified | Re-run OAuth; pick the account that owns the property in GSC |
| Backfill shorter than 16 months | Recent verification, or publish lag on the near edge | Expected. See 16-month limit |
| Chart cliff on the newest days | Google lag / preliminary data | Wait for data_through; do not zero-fill |
| Agent says traffic collapsed yesterday | Model ignored data_through |
Put refusal rules in project memory; MCP setup |
| Query sum ≠ overview | Anonymised queries + row caps | Quote totals from overview only |
| "Write" or indexing ask from an agent | Wrong expectation | Scope is read-only; SiteLine cannot submit sitemaps |
Connect vs BigQuery vs Sheets (one screen)
| Path | Backfill of Google's current window? | Keeps days after Google drops them? | Ops burden |
|---|---|---|---|
| Search Console UI / CSV | N/A (live window only) | No | Low, incomplete (~1,000 rows) |
| Search Analytics for Sheets | Only if you pull while Google holds the day | Only if you keep the sheet | You schedule rowLimit |
| BigQuery bulk export | No — forward from setup | Yes, in your GCP project | Warehouse + SQL |
| SiteLine connect | Yes — what Google still holds that day | Yes, while subscribed | Hosted; MCP optional |
BigQuery is the right tool for maximum forward completeness in GCP. It does not replace a connect-time backfill of the 16 months already in Search Console. Many teams run both.
After connect: first useful reads
In the SiteLine UI:
- Site overview for a closed range ending on
data_through. - Top queries / pages as a named list, not a second site total.
- A single landing URL you care about — then compare on-site analytics for the same path if the tracker is live.
Over MCP (once enabled): list-sites → get-import-status → get-site-overview → then movers or page/query tools. Never average position or CTR; never sum query rows. The loop is spelled out in how AI coding agents use SEO data.
When not to bother connecting yet
- You only need a one-off top-20 query slide — the GSC UI export is enough.
- The property was verified last week and you expected two years of history — Google does not have it.
- You need Ads attribution or GA4 BigQuery identity — keep that stack; SiteLine is Search Console plus cookieless marketing analytics, not a GA4 clone (GA4 alternatives).
If seasonal YoY or client "last year in Search Console" reports matter, connect while Google still holds the quarter you care about. Waiting until month 17 is how the prior year goes empty on Google's side.
Ready to run the flow? Create a SiteLine account — trial starts without a card. Building an agent loop next? Sign up with MCP intent.
FAQ
What Google permission does SiteLine ask for?
Only webmasters.readonly. That is enough to list properties and pull Search Analytics. It cannot change sitemaps, users, or indexing.
How long does the first import take?
Depends on property size and how many days Google still holds. Small sites finish quickly; large query volumes take longer because breakdowns are day-scoped. Use import status rather than guessing from the first chart paint.
Does connect also install analytics?
No. Search Console import and the cookieless tracker are separate. You can use either alone; both on one property is the full SiteLine wedge.
Will disconnecting and reconnecting refresh old months?
Reconnect asks Google again for the current window. It does not resurrect days already aged out, and it does not restore a SiteLine archive from a lapsed subscription.
Is MCP required to connect Search Console?
No. MCP is optional read access for agents after the warehouse has data. Connect and use the UI without enabling tokens.
What does the trial include for Search Console?
The trial can connect and import under the same product rules (25k rows/day/report, read-only scope, retention while the trial/subscription is active). Card is not required to start; add one before the trial ends if you want retention to continue. Detail: /docs/billing.