Google Search Console model
Page performance daily
The Pages tab of the Performance report, by day.
- Grain
- date_day x site x page
- Built from
- 1Raw tables
- 1Staging
- 1Core
- 1Analytics
- Reads from Google Search Console
- page_analytics_web
- Ships as
- Weld and dbt SQL, open source on GitHub
core.google_search_console.page_performance_daily
1-- core.google_search_console.page_performance_daily
2-- The Pages tab of the Performance report, by day.
3--
4-- Grain: date_day x site x page. Dates are Pacific Time.
5-- Depends on: staging.google_search_console.page_analytics
6--
7-- Aggregated by page: when two of your pages appear in one search, each gets the
8-- impression, so impressions summed over pages exceed the site total. That is
9-- how Search Console counts it too. Clicks still go to the one page clicked.
10-- Page tables include anonymized queries, unlike the query tables.
11
12SELECT
13 date_day,
14 site,
15 page,
16 SUM(clicks) AS clicks,
17 SUM(impressions) AS impressions,
18 SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr,
19 SAFE_DIVIDE(SUM(position * impressions), SUM(impressions)) AS average_position,
20 SUM(position * impressions) AS weighted_position_sum,
21 SUM(IF(device = 'mobile', clicks, 0)) AS mobile_clicks,
22 SUM(IF(device = 'mobile', impressions, 0)) AS mobile_impressions
23FROM {{staging.google_search_console.page_analytics}}
24GROUP BY 1, 2, 3This model and the 2 it depends on. Deploy them together; refs like {{staging.…}} resolve to the matching folders in Weld, and the dbt view uses source() and ref().
Notes
How it counts. And where it stops.
Aggregated by page: when two of your pages appear in one search, each gets the impression, so impressions summed over pages exceed the site total. That is how Search Console counts it too. Clicks still go to the one page clicked. Page tables include anonymized queries, unlike the query tables.
Raw tables it reads
- raw.google_search_console.page_analytics_web
More Google Search Console models
Put Google Search Console in front
of your agents.
Connect Google Search Console, deploy the models, and ask questions in Claude, Cursor or ChatGPT. Free for 14 days, no credit card.