TraceLinker
Docs
Google Search Console

Google Search Console

Connect your Google Search Console account so you can pull backlinks directly into audits without exporting CSVs.

GSC integration lets you skip the manual CSV export step. Connect once, then any audit can pull backlinks directly from your verified properties.

GSC import is a Pro+ feature. Free plan is CSV-only.

What gets imported

When you trigger a GSC import, we call the Search Console API to fetch:

  • External links report - URLs from other sites that link to pages on the property.
  • For each external link: the source URL and the target URL on your site.
  • Anchor text where available (GSC sometimes omits it).

Per Google's API limits we can pull up to 1,000 links per request, paginated. A typical small site (under 5,000 backlinks) imports in 30-60 seconds.

What we do NOT import

  • Internal links (we only care about backlinks from other sites).
  • Top linking sites aggregate (we use the per-link data, not the rollup).
  • Anchor text statistics (we use per-link anchors when present).
  • Search performance data (impressions, clicks, position) - that's not backlink data.

Connecting GSC

Open the integration settings

Click your account avatar → Settings → Integrations.

📸 Integrations settings page with Google Search Console card

Click Connect Google Search Console

A Google OAuth popup opens.

📸 Google OAuth consent screen for Search Console

Pick the Google account

Use the Google account that has access to the Search Console properties you want to use. This doesn't have to match your TraceLinker login email - many users sign in to TraceLinker with one email and use a separate Google account for SEO work.

Approve the requested scope

We request a single scope: https://www.googleapis.com/auth/webmasters.readonly. This is read-only access to Search Console data. We cannot:

  • Modify any Search Console settings.
  • Submit URLs for indexing.
  • Read other Google services (Gmail, Drive, Calendar, etc.).
  • Take any write action.

The scope is read-only, full stop. If you ever revoke permission, our access is severed instantly via Google's revoke endpoint.

Land back in Settings

You return to the Integrations page with a green "Connected" badge. The dropdown of properties is populated.

📸 Integrations page after connecting GSC

Once connected:

Open New Audit

Click Audits → + New Audit, then switch to the Google Search Console tab.

Pick a property

The dropdown lists every property your connected Google account has access to. URL-prefix and domain properties both work.

Choose date range

GSC stores 16 months of link data. Pick:

  • Last 90 days (default) - what's active and changing recently.
  • Last 6 months - typical periodic refresh.
  • Last 16 months - full historical pull on first import.

Click Pull from GSC

We page through the GSC API and accumulate backlinks. The request count and progress show in real-time.

📸 GSC import in progress with row counter

After the pull completes, the rest of the audit flow is identical to a CSV-uploaded audit.

How often to pull

Best practice: monthly. GSC's link data lags Google's index by 2-3 days but otherwise is your most authoritative source.

A common rhythm:

  • 1st of every month: GSC pull on every client property.
  • Audit results compared against the previous month to spot transitions in links GSC saw but you weren't actively monitoring.
  • High-value rows promoted to monitoring.

What if I have multiple Search Console accounts?

You can only connect one Google account at a time. To switch:

  1. Settings → Integrations → Disconnect.
  2. Reconnect with the other Google account.

If you regularly need both accounts, run them on two separate TraceLinker accounts (free or upgrade as needed). We don't support multi-account GSC merging in a single workspace - it would muddy the audit/monitoring lifecycle.

Self-hosting GSC integration

If you self-host TraceLinker (open-source build), you need to register your own Google OAuth client:

  1. Google Cloud Console → APIs & Services → Credentials.
  2. Create OAuth client ID, type "Web application".
  3. Authorized redirect URI: https://yourdomain.com/api/auth/gsc/callback.
  4. Authorized JavaScript origins: https://yourdomain.com.
  5. Enable the Search Console API: APIs & Services → Library → "Search Console API" → Enable.

Set in your .env:

GOOGLE_GSC_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_GSC_CLIENT_SECRET=your-client-secret
GOOGLE_GSC_REDIRECT_URI=https://yourdomain.com/api/auth/gsc/callback

Verification: run an OAuth flow with your test account, confirm the callback succeeds, confirm a property dropdown populates.

Disconnecting GSC

Settings → Integrations → Disconnect. We:

  1. Call Google's token revoke endpoint - access token destroyed Google-side.
  2. Delete the stored refresh token from our database.
  3. Mark the integration as disconnected in your account.

After disconnect, GSC import is no longer available until you reconnect. Existing audits and monitored links are unaffected - they live independently of the GSC connection.

Troubleshooting

"This Google account does not have access to any Search Console properties." You're connected to a Google account that isn't a verified owner or user on any Search Console property. Add your account in Search Console → Settings → Users and permissions, then come back and pick the property.

"Quota exceeded for project." Google enforces per-project quotas on the Search Console API. We've never hit them in production but if you do, wait an hour and retry. If it's a recurring problem, contact support.

"Authentication expired." Refresh tokens occasionally expire (usually after 6 months of inactivity). Reconnect via Settings → Integrations.

The import returns 0 links. Either the property genuinely has no external links (very new site), or the date range is too narrow. Try expanding to "Last 16 months" and retry.

A backlink shows in Search Console but not in our import. GSC's UI sometimes shows links from the most recent crawl that haven't propagated to the API yet. The API typically lags the UI by 24-48 hours. Retry the import in a day.

Privacy

  • OAuth tokens are encrypted at rest (AES-256) in our database.
  • We do not log GSC API responses - we process the data and store only what's needed for the audit (source URL, target URL, anchor).
  • Disconnect immediately revokes access with no orphaned tokens left.
  • We never request, see, or store your Google account password.

Next