Analytics

Google Search Console

Available

Connect Google Search Console via OAuth to sync clicks, impressions, CTR, and average position directly into KwikScaleAI. The same data powers automated keyword research, ranking insights, and content prioritization.

Prerequisites

  • A Google account with verified ownership of the site in GSC.
  • A site added to Search Console. Domain property (e.g. sc-domain:example.com) recommended over URL-prefix.

Setup guide

  1. In KwikScaleAI: Integrations → Google Search Console → Connect.
  2. You're redirected to Google's OAuth consent screen. Choose the Google account that owns the GSC property.
  3. Review the requested scope (read-only access to Search Console) and click Allow.
  4. KwikScaleAI is redirected back. The adapter automatically matches your KwikScaleAI site to a GSC property by domain (trying domain-based first, then URL-prefix).
  5. Done. First sync kicks off within a few minutes.

How it works

OAuth flow:

  1. KwikScaleAI redirects you to accounts.google.com/o/oauth2/v2/auth with access_type=offline and prompt=consent(ensures we get a refresh token even if you've authorized before). The state parameter is encrypted and short-lived (10 min).
  2. You consent. Google redirects back to our callback URL with an authorization code.
  3. We exchange the code at oauth2.googleapis.com/token for an access token, refresh token, and expiry.
  4. Tokens are encrypted at rest in the KwikScaleAI database. The refresh token is used automatically when the access token approaches expiry.
  5. A background worker polls the Search Analytics API every 6 hours to sync the last 90 days of query + page data.

What data we sync

From the Search Analytics endpoint:

  • Clicks — number of clicks from Google search results.
  • Impressions — how often your URLs appeared in results.
  • CTR — clicks ÷ impressions.
  • Position — average ranking position.
  • All four, broken down per query and per page (URL).

What we don't sync in v1: URL Inspection (indexability), Sitemaps, Index Coverage, Core Web Vitals, Enhancements reports, Security Issues, Manual Actions.

Permissions and scopes

KwikScaleAI requests exactly one OAuth scope:

  • https://www.googleapis.com/auth/webmasters.readonly — read-only access to Search Console data.

This scope cannot:

  • Submit or delete sitemaps.
  • Request URL indexing.
  • Modify property ownership or access.
  • Read Google Analytics, Ads, or any other Google product.

You can audit exactly what we accessed at myaccount.google.com/permissions.

Troubleshooting

OAuth redirect returns an error
Usually a state parameter mismatch — either the OAuth link expired (10 min TTL), or you opened the consent screen in one browser session and completed it in another. Try again from scratch: disconnect if partially connected, restart the Connect flow.
Connected, but no data appears
Three causes, in order: (1) brand-new GSC property with 0 clicks/impressions — GSC has 48–72 hour data delay; (2) the wrong property was auto-matched — check Integrations → GSC → Property and select the correct one; (3) Google's API itself returned an empty response for the window we're syncing. Initial sync runs every 6 hours, so check back.
Property type mismatch (URL vs Domain)
You may have multiple GSC properties for the same site — Domain-based (sc-domain:example.com) and several URL-prefix (https://example.com/, https://www.example.com/). Domain-based is canonical and includes everything. If KwikScaleAI matched a URL-prefix property with sparse data, switch it in the dashboard.
'Site not verified' error during match
The Google account you connected doesn't have verified ownership of the site. Go to Search Console → Property Settings → Users and permissions, and make sure your account is listed as Owner or Full user. Then re-run the connect flow.
Refresh token revoked
If you revoked KwikScaleAI at myaccount.google.com/permissions, or if Google rotates tokens for security, the sync will start failing with invalid_grant. Reconnect — the flow issues fresh tokens. We use access_type=offline + prompt=consent specifically so a re-consent always yields a new refresh token.

FAQ

What data does KwikScaleAI pull from GSC?
Search Analytics: clicks, impressions, CTR, and average position — broken down per page and per query. We do not touch URL inspection, sitemaps, or Index Coverage data in v1.
How often does data refresh?
Every 6 hours. Note that GSC itself has a 48–72 hour data latency — a search that happened today won't show up in GSC for 2–3 days. This isn't KwikScaleAI's delay; it's Google's.
Which property type should I connect — Domain or URL?
Domain property is strongly recommended. It includes all subdomains and protocols (www, non-www, http, https) in a single property. URL-based properties are more fragmented and you may end up connecting the wrong one.
What OAuth scope does KwikScaleAI request?
Only webmasters.readonly. This is read-only access to Search Console data. KwikScaleAI cannot submit sitemaps, request indexing, or modify your GSC configuration through this scope.
Can I disconnect later?
Yes, in two places: (1) KwikScaleAI dashboard → Integrations → Google Search Console → Disconnect, or (2) at myaccount.google.com/permissions, revoke KwikScaleAI's access. Either removes the stored tokens.

Ready to automate publishing?

Connect your site once. KwikScaleAI researches, writes, and publishes SEO content on autopilot.

Get started free