Linking Google Search Console as a source
Connect a verified Google Search Console property to sync daily Search Analytics performance data (clicks, impressions, CTR, average position). Requires a Google account with read access to the property.
Adding a data source
- Go to the sources tab of the data pipeline section in PostHog.
- Click + New source and then click Link next to Google Search Console.
- Connect your
Google Search Console accountby signing in with a Google account that has read access to the property. Then enter theProperty URL— use the URL prefix format (for examplehttps://example.com/) or thesc-domain:prefix for domain properties (for examplesc-domain:example.com). PostHog automatically handles common variations like percent-encoded URLs, missing trailing slashes, and pasted Search Console UI URLs. - Back in PostHog, confirm the credentials and click Next.
- Select the tables you want to sync, set the sync method and frequency, then click Import.
Once the syncs are complete, you can start using Google Search Console data in PostHog.
Available tables
| Table | Description | Sync method |
|---|---|---|
search_analytics_by_date | Daily totals for clicks, impressions, CTR, and average position | Incremental |
search_analytics_by_query | Daily performance broken out by search query (keyword) | Incremental |
search_analytics_by_page | Daily performance broken out by landing page URL | Incremental |
search_analytics_by_country | Daily performance broken out by country (ISO 3166-1 alpha-3) | Incremental |
search_analytics_by_device | Daily performance broken out by device (DESKTOP, MOBILE, TABLET) | Incremental |
search_analytics_by_query_page | Daily performance broken out by both query and landing page | Incremental |
search_analytics_by_search_appearance | Daily performance broken out by Google search result presentation type (e.g. RICH_RESULT, REVIEW_SNIPPET, VIDEO) | Incremental |
Incremental tables sync only new or updated records on each run. Full refresh tables reload all data on each sync.
Sync limitations
Google's Search Analytics API caps results at roughly 50,000 rows per property, date, and dimension set. When the cap is hit, rows are sorted by clicks descending and the long tail is silently dropped. Tables with more dimensions (such as search_analytics_by_query_page) hit this cap fastest, so high-traffic properties may lose long-tail queries and pages. For full-fidelity data, use the per-query and per-page tables together, or rely on Google's BigQuery bulk export.
Configuration
| Option | Description |
|---|---|
Google Search Console accountType: oauth Required: True | |
Property URLType: text Required: True | The exact verified property URL as it appears in Google Search Console. Use the trailing slash for URL prefix properties or the |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
search_analytics_by_date | Daily totals for clicks, impressions, CTR, and average position. | Incremental, Full refresh | date | — |
search_analytics_by_query | Daily performance broken out by search query (keyword). Sites with >50K distinct queries/day will lose long-tail keywords to API sampling. | Incremental, Full refresh | date | — |
search_analytics_by_page | Daily performance broken out by landing page URL. Sites with >50K distinct landing pages/day will lose long-tail URLs to API sampling. | Incremental, Full refresh | date | — |
search_analytics_by_country | Daily performance broken out by country (ISO 3166-1 alpha-3). | Incremental, Full refresh | date | — |
search_analytics_by_device | Daily performance broken out by device (DESKTOP, MOBILE, TABLET). | Incremental, Full refresh | date | — |
search_analytics_by_query_page | Daily performance broken out by both query and landing page. Most detailed table, but the cartesian over (query x page) hits Google's ~50K row/day API sampling cap fastest. Above the cap, only the top rows by clicks are returned and the tail is silently dropped. For full fidelity on high-traffic properties, use the per-query and per-page tables together, or rely on Google's BigQuery bulk export. | Incremental, Full refresh | date | — |
search_analytics_by_search_appearance | Daily performance broken out by Google search result presentation type (e.g. RICH_RESULT, REVIEW_SNIPPET, FAQ_RICH_RESULT, VIDEO, AMP_BLUE_LINK). Useful for measuring the impact of structured data and rich result eligibility. | Incremental, Full refresh | date | — |