All integrations

Marketing & analytics Available

Google Search Console

Search Console hangs off the same per-client link and the same Google consent as Analytics. What it adds is the search-results side: what you are found on, how often that gets clicked, and what changed since last month.

What you need

  • The Marketing module is enabled and licensed for this workspace (Instellingen → Modules)
  • A Google Cloud project with an OAuth client, configured under Instellingen → Google Workspace
  • The Google Search Console API is switched on in that same project
  • A Google account that has access to the property in Search Console, connected under Instellingen → Mijn account
  • The marketing.link.manage permission, to be allowed to link accounts
  • For the read surface of its own: the Google Search Console integration switched on under Instellingen → Integraties. It needs the Google connection, not the Marketing module

How to connect it

  1. 1 Switch on the Google Search Console API in the Google Cloud project your OAuth client belongs to.
  2. 2 Go to Instellingen → Mijn account (Settings → My account) and connect your Google account if you haven't. That single consent covers Analytics, Search Console and Ads together.
  3. 3 Open Klanten → de klant (Clients → the client) and click edit on the Marketing panel.
  4. 4 Choose Account koppelen (Link account), set the source to Search Console-site and pick this client's property. A domain property is listed without its sc-domain: prefix, so klant.nl is the domain property and https://klant.nl/ the URL prefix.
  5. 5 If the client measures several sites, link a property per site and set the matching site under Koppelen aan website (Link to website) — the panel groups on it.
  6. 6 The link backfills roughly 13 months and is then updated nightly, re-pulling the last seven days on every run.
  7. 7 Want the impressions in AI Overviews and AI Mode on the dashboard and in the report? Open the Generative AI report in Search Console (the dashboard links to it), export it by day, and upload the file with Export uploaden (Upload export) on the Zichtbaarheid in AI-overzichten en AI-modus card. Both the CSV of the dates table and Google's whole zip are read.

Four figures per day, two of them averages

Clicks, impressions, CTR and average position are stored per day. Clicks and impressions are summed over a range; CTR and average position are re-derived, because thirty days of CTR is not the sum of thirty daily percentages. On position a lower number is also better, so a rising line reads as a decline rather than as a win.

Movers, against the previous period

The movers drill-down answers the question a marketeer actually asks: which queries moved. It compares average position in the selected range with the equal-length window right before it, per query, and sorts on the size of the change, gains and losses together. Queries missing from either window are left out — with no starting point there is no change to report.

  • Top queries with clicks, impressions, CTR and position
  • Top pages, each linking out to the page itself
  • Movers, with the position change as its own number

Late data heals itself

Search Console only finalises the most recent days two to three days later. So the nightly run does not just fetch yesterday — it re-pulls the whole trailing week and overwrites the days it already had. Figures from the day before yesterday can therefore change once more, by design: the alternative would leave the first, incomplete reading standing forever.

Impressions in AI: through the export button, because not through the API

Since June 2026 Search Console shows how often a site appears in AI Overviews and AI Mode, in a Generative AI report of its own. The Search Console API does not return those figures, and deriving them from the web totals is not possible: they are folded in there with no way to separate them. So schakl. never estimates them. What Google does offer is an export button, and that file you upload on the card on the dashboard. The figure lands as Vertoningen in AI (impressions in AI) beside the other four, on the same daily rows, so the tile, the trend, the comparison, the cross-client overview and the AI Overviews report chapter read it the way they read clicks. For a client nobody has uploaded anything for there is no tile and no chapter: a zero would be a claim about their visibility that nothing on the screen could contradict.

  • Export by day: a weekly or monthly export is refused with a sentence, because storing one row as one day would show the month a seventh of its size
  • A nightly sync never overwrites an upload
  • The card says when the last upload was and which days it covered, because a figure somebody has to upload must say how far it runs
  • An assistant can send the same figures as JSON instead of as a file

A read surface of its own, for an assistant too

The dashboard asks Search Console one question: how is this client doing. For everything else (which queries land on which page, whether a URL is indexed and why not, which sitemap has errors, what happened at nine this morning) there is the Google Search Console integration: thirteen read routes in the API, which are also the MCP section /mcp/google-search-console and part of the growth bundle. They store nothing and read live, under the Google consent of whoever asks. Nothing is ever written, so everything stays readable on an expired licence too. Ask an assistant about AI visibility and the answer says honestly that the API does not have that figure, and gives the link to the report.

  • Sites and sitemaps, an overview, the split across search types, daily and hourly figures, a breakdown and the movers
  • URL inspection: what Google's index knows about one address
  • A free-form query with your own dimensions and filters, behind a permission of its own
  • An unknown dimension or filter is refused here, with the list that would have worked, before Google is asked

Permissions

Grant these to the role that manages this integration (Settings → Roles). Admin-only by default, and never to the client role.

  • marketing.metrics.read Read a client's marketing figures: the panel, the tab and the dashboard widget. Granted by default to admin, member and the client portal.
  • marketing.link.manage Link and unlink Search Console properties, open the account picker and upload the Generative AI report export. Admin only by default.
  • marketing.overview.read The cross-client grid under Overzicht → Marketing, which is where the average-position column comes from. Admin only by default.
  • google_search_console.site.read The read surface of its own: sites, sitemaps, overview, series, breakdowns, movers, URL inspection and AI visibility. Admin and member by default, never the client role.
  • google_search_console.report.run The free-form query: any combination of dimensions, filters and aggregation. Admin only by default.

What it deliberately does not do

  • Nothing is written back: no submitting sitemaps, no requesting indexing, no fixing coverage issues.
  • Only properties the connected Google account itself has access to appear in the picker.
  • Top queries and top pages show ten rows; movers are computed over each period's busiest queries.
  • CTR and average position over a range are re-derived, never summed.
  • The last few days are not final yet and can change on a later run.
  • Impressions in AI only arrive when somebody uploads the export. With no upload there is no tile, never a zero.

Where to find it Klanten → de klant → paneel Marketing (Clients → the client → Marketing panel), plus that client's Marketing tab and Overzicht → Marketing (Overview → Marketing). The read surface of its own is switched on under Instellingen → Integraties (Settings → Integrations).

Read the guide

More in this category

Other integrations