Brandfine Docs
Concepts

Search Console

Pull Google Search Console clicks, impressions, CTR, and position data into Brandfine — synced nightly, surfaced per workspace, per post, per query, and cross-referenced with your SEO audit.

Brandfine's Search Console integration pulls your Google Search Console data into the CMS so the same place you manage your content also shows you how that content actually performs in Google's search results. One workspace ↔ one Google Search Console property.

Where it lives: Growth → SEO & Analytics → any workspace → Search Console tab.

What you see in the CMS

Workspace summary

The top of the tab shows your performance at a glance:

  • Four metric cards — Clicks, Impressions, CTR, Average position. Each card is clickable: it toggles that metric on or off in the chart below. Defaults to Clicks + Impressions enabled (same default as GSC's own dashboard); CTR and Position toggle on when you want to see those trends.
  • Multi-series chart — one line per enabled metric. Position uses an inverted axis so "up on the chart" still means "better rank" — matches how the delta arrows on the cards work.
  • Top page (by clicks) and top query (by impressions) for the selected window.
  • Position uses the standard rule: lower is better. A drop from 4.2 to 3.1 renders green; a rise from 4.2 to 6.5 renders rose.

Date filter + comparison

Two segmented pill toggles sit above the summary:

  • Date range: 7d / 28d / 90d / 6mo / 12mo / 16mo. 16 months matches Google's hard data-retention ceiling — anything longer would return empty rows because GSC doesn't have it. Selection persists in the URL via ?range=, so back/forward and deep-links preserve it.
  • Comparison: vs prior (immediately preceding window of the same length) or vs year ago (same-length window shifted 365 days back). Year-ago comparison is useful for seasonal sites; persisted via ?compare=year-ago.

Queries / Pages / Opportunities tabs

Below the summary, a tabbed table lets you drill into individual queries, pages, or opportunities:

  • Queries — top 25 search queries that drove impressions, with per-query clicks / impressions / CTR / position. Sortable.
  • Pages — top 25 pages, same columns. Page rows that match a Brandfine post deep-link directly into the editor.
  • Opportunities — page-query pairs where you rank at positions 8-20 (page 1 bottom + page 2) with ≥ 50 impressions, sorted by impression-weighted upside. The "what to fix first" view: a query with 1,000 impressions at position 11 ranks higher than 50 impressions at position 9 — bigger overall lift if you can move it to the first page.

Index coverage panel

A rolling sample of URL inspections, populated by a nightly job. We inspect up to 20 URLs per workspace per day (1% of Google's 2,000/site/day quota), prioritizing top-clicked URLs and pages we haven't checked in the last week. Over the first couple of weeks after connecting, the panel grows as more URLs are inspected; after that it rotates.

The panel shows:

  • Headline: "X of Y sampled URLs indexed (N.N%)" with a progress bar.
  • Per-state breakdown: emerald Indexed, rose Not indexed, amber Partial, and Unknown badges with counts.
  • Per-URL details in a table: URL, coverage state, Google's human-readable reason (e.g. "Crawled — currently not indexed", "Excluded by 'noindex' tag"), last crawled time, when we inspected it.

Per-post metrics on the posts list

Once a workspace is connected and synced, your posts list picks up three new sortable columns: Clicks (28d), Impressions (28d), Avg. position. Position cells are colored by SERP band:

  • 1-3 — emerald (top of page 1)
  • 4-10 — sky (bottom of page 1)
  • 11-20 — amber (page 2)
  • 20+ — rose (deep results)

Sort the list by any column to find your best performers, your opportunities (high impressions, low CTR), or your underperforming top-ranking pages.

Posts without data — newly published, or URLs Search Console doesn't have records for — render —. They sort to the bottom under ascending order, so the list naturally surfaces real data first.

Per-post "Search performance" card

Open any post → the right sidebar shows a Search performance card with that specific post's last-28-day stats: clicks, impressions, CTR, average position (color-coded), plus the top 5 queries that drove impressions for this post. The card auto-hides on workspaces without GSC connected, so non-GSC workspaces don't see stub cards.

SEO Audit cross-reference

When you run an SEO audit on a workspace with GSC connected, every audit finding that lives on a specific post picks up a small search-traffic chip next to its "Edit" button: <clicks> · <impressions>. The same metric numbers from your posts list, attached to your audit findings.

This is how you decide what to fix first: a meta:description:missing warning on a post with 1,500 impressions over 28 days is high-priority; the same warning on a post with 3 impressions can wait.

Actions you can take

Request indexing

When you publish a new post or make a meaningful update, you can ask Google to re-crawl it from Search Console's URL Inspection, the tool Google provides for this.

Open any post → in the Search performance card on the right sidebar, click Inspect in Search Console. Brandfine opens your site's property in Search Console and copies the post's address. Paste it into the inspection bar at the top, then click Request indexing there.

  • The button only appears when the post has a public URL (i.e. your workspace has a domain configured).
  • Re-crawl typically takes hours to days; this is a request, not an instant re-index.
  • Brandfine doesn't call Google's Indexing API for this: Google allows that API only for job posting and livestream pages.

Sync now

If you want fresh data without waiting for the nightly cron, click Sync now in the connection header. It bypasses the cron's interval + any backoff state and runs the sync immediately.

Change property

Click Change property in the connection header to switch which Search Console property maps to this workspace. Useful if you set up a new domain property and want to migrate from a URL-prefix one, or if you accidentally picked the wrong property the first time.

Connecting

Before you start: the site must already be in Google Search Console, verified with the Google account you'll connect, or shared with that account by the site's owner (Settings → Users and permissions). Brandfine reads only properties that account can see; it can't add or verify them. A Domain property verified with a DNS TXT record is the easiest, and covers every version of the site (www, http and https).

  1. Go to Growth → SEO & Analytics → workspace → Search Console.
  2. Click Connect Google Search Console.
  3. You're redirected to Google to authorize Brandfine. We request read-only access (webmasters.readonly scope) and email-address access (userinfo.email — used only to show you which Google account the connection belongs to). Nothing else.
  4. After consent, you return to the CMS. The property picker dialog opens automatically.
  5. Pick which Search Console property maps to this workspace. Most Google accounts have multiple properties — your personal blog, your employer's site, etc. The list shows everything you have access to; pick the one for this workspace.
  6. Brandfine kicks off the first sync immediately. The first sync pulls 90 days of history and usually completes within 1–2 minutes. Subsequent syncs run nightly and pull a 5-day rolling window to handle Google's 24–72 hour data latency.

Why "Pick a property" isn't auto-selected

Picking is explicit on purpose. We never auto-map even when the account has only one property — that explicit choice is the audit trail for "this is the property that owns this workspace's data." You can change it later from the same dialog.

Domain properties vs URL-prefix properties

Both are supported. Domain properties (sc-domain:example.com) cover every subdomain and both http/https; URL-prefix properties are scoped to one exact URL prefix. Domain is preferred where possible, but URL-prefix is sometimes the only thing Google has on file.

What data we pull

Two layers of search performance metrics, both fetched nightly:

LayerDimensionsUsed by
Page × Daydate + pageWorkspace summary, per-post overlay, top pages tab
Page × Query × Daydate + page + queryPer-post top queries, top queries tab, opportunity report

Plus a separate sampled stream:

StreamSourceUsed by
URL inspectionurlInspection.index.inspect (Google API)Index coverage panel

All metric data is stored in Brandfine for up to 16 months — matching Google Search Console's own retention. Older rows are auto-pruned by the nightly cron. URL inspection results are kept indefinitely per URL, refreshed on a ~7-day rotation.

We don't pull country or device breakdowns yet. The schema supports them but the UI doesn't surface them. Tell us if you'd like them sooner.

Data freshness

Google Search Console publishes data with a 24–72 hour delay. We sync nightly, and each sync re-fetches the last 5 days so partial days self-heal as Google finalizes them. Practical implication: yesterday's clicks usually appear within ~24 hours of midnight Pacific Time, but expect 1–2 days of lag on average.

All dates in the Brandfine UI use Search Console's reporting timezone, Pacific Time (PT). This matches the GSC dashboard exactly so you don't see off-by-one rows when comparing the two.

Reconnecting

If we lose access to your Google account — typically because you revoked Brandfine in Google Account → Connected apps, or a password change invalidated the refresh token — Brandfine shows an amber "Reconnect required" banner on the Search Console tab. Click Reconnect to run the OAuth flow again. The new connection replaces the broken one; you don't lose any synced data.

What this integration doesn't do

  • No keyword research. Search Console tells you what queries you already rank for — not which queries you should target. Use Ahrefs / SEMrush for that.
  • No competitor data. Search Console is your own data only.
  • No domain verification helpers. Verifying a property in Search Console is a one-time Google flow we don't replace. If Search Console doesn't show your site yet, verify it in Search Console first.

Permissions + privacy

  • Baseline OAuth scopes: webmasters.readonly (read-only access to your Search Console data) and userinfo.email (your Google account email, for display only). We never modify properties, submit sitemaps, or change your search settings.
  • Refresh token storage: encrypted at rest with AES-256-GCM (per-row IV, app-level key). Same encryption used for every third-party credential Brandfine stores.
  • Limited use compliance: Brandfine's use of Google API data adheres to the Google API Services User Data Policy, including the Limited Use requirements. Full disclosure is in our Privacy Policy.
  • Disconnecting: visit Google Account → Connected apps → Brandfine to revoke Brandfine's access at the Google end. We stop calling Google APIs immediately when revoked + the stored OAuth tokens are deleted on the next sync attempt's invalid_grant response.

On this page