---
title: "Sites and GSC sync"
description: "How Pro pulls your Google Search Console data, what freshness to expect, and how sites are scoped."
canonical_url: "https://nuxtseo.com/pro/docs/concepts/sites-and-gsc-sync"
last_updated: "2026-05-06T18:46:38.814Z"
---

Pro is organised around **sites**. A site is usually a GSC property you own. Each has its own data, competitors, keywords, and briefs.

## How sync works

On connect, Pro syncs your full GSC history via [gscdump](https://gscdump.com). No row cap (GSC's own UI caps at 1000 per query; we pull everything).

<table>
<thead>
  <tr>
    <th>
      Stage
    </th>
    
    <th>
      Timing
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Initial backfill
    </td>
    
    <td>
      5-60 minutes, scales with site size
    </td>
  </tr>
  
  <tr>
    <td>
      Daily incremental sync
    </td>
    
    <td>
      Runs automatically
    </td>
  </tr>
  
  <tr>
    <td>
      GSC data delay
    </td>
    
    <td>
      2-3 days from Google's side (not us)
    </td>
  </tr>
  
  <tr>
    <td>
      Maximum history
    </td>
    
    <td>
      16 months (Google's limit)
    </td>
  </tr>
</tbody>
</table>

Check sync status in the site overview, or via MCP:

```ts
gsc_status()
```

## Adding sites

From `/pro/dashboard`, click **Add Site**. Pro:

- Verifies the URL resolves and returns 200
- Detects Nuxt, meta tags, canonical, OG image, sitemap, robots.txt
- Matches to a GSC property automatically when possible

If GSC is connected, unmatched properties surface as one-click suggestions.

## Multi-site

No limit on sites per account. Each site:

- Has independent tracked keywords and competitors
- Can have its own `brandTerms` for brand/non-brand analysis
- Is scoped separately in MCP via `siteUrl`

Auto-detect kicks in when you only have one GSC-connected site; otherwise pass `siteUrl` explicitly:

```ts
gsc_query({ type: 'pages', siteUrl: 'https://mysite.com', period: '28d' })
```

## Data freshness

<table>
<thead>
  <tr>
    <th>
      Source
    </th>
    
    <th>
      Cache
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      GSC queries
    </td>
    
    <td>
      1 hour
    </td>
  </tr>
  
  <tr>
    <td>
      Sync status
    </td>
    
    <td>
      5 minutes
    </td>
  </tr>
  
  <tr>
    <td>
      Sitemap status
    </td>
    
    <td>
      1 hour
    </td>
  </tr>
  
  <tr>
    <td>
      Sitemap actions (submit/delete)
    </td>
    
    <td>
      Immediate
    </td>
  </tr>
</tbody>
</table>

The `newest` date in `gsc_status` tells you how recent the data is. If Google's 2-3 day delay has you looking at yesterday's data wondering why nothing moved, check that date first.

## Triggering a resync

From site settings. Useful after fixing something significant (e.g. lifting a wrongly-applied noindex) when you don't want to wait for the daily sync.

## Related

- [Installation](/pro/docs/getting-started/installation) walks the connect flow.
- [GSC MCP reference](/pro/docs/reference/mcp/gsc-tools) for every query.
