Get site performance summary
get_site_summaryReturns clicks, impressions, CTR, and average position for a property over the last N days (default 28), with a same-length prior period for comparison. Use this for quick health checks before drilling into details. Served from the ClickHouse warehouse when available, otherwise the live Search Console API (see dataSource). For an explicit window pass startDate/endDate (YYYY-MM-DD) instead: a date you pass always wins, and days only sizes an edge you leave out. The comparison period is always the same length as the window and sits immediately before it. avgPosition is impression-weighted, as Search Console reports it. dailyRows is the window day by day and previousDailyRows the comparison period day by day, in the same shape; previousDailyRows is omitted for a window longer than 180 days.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Length of the trailing window in days (default 28, max 180). Ignored for any edge you pin with startDate/endDate; when exactly one of those is given it sizes the other edge. | |
| brand | No | Optional. Narrow to queries matching the property's branded keywords ('branded') or to all others ('non_branded'). Needs branded keywords set (update_site brandedKeywords); see get_filter_options. | |
| endDate | No | Optional. Window end as YYYY-MM-DD (e.g. 2026-05-31). You do NOT need to know today's date or the latest available date: omit this and the window ends at the latest settled Search Console date (data lags ~2-3 days). Passed alone, the window is `days` long and ends here. Never pass null or the string "null". | |
| siteUrl | Yes | ||
| startDate | No | Optional. Window start as YYYY-MM-DD (e.g. 2026-05-03). You do NOT need to know today's date: omit both startDate and endDate to use the trailing `days` window instead (Search Console data lags ~2-3 days, so the window ends at the latest settled date). Passed alone, the window runs from here to the latest settled date. Never pass null or the string "null". | |
| contentGroupId | No | Optional. Narrow to pages in this content group (id from get_filter_options or list_content_groups). Groups whose rules cannot be applied as a filter are refused; get_filter_options says which. | |
| topicClusterId | No | Optional. Narrow to queries in this topic cluster (id from get_filter_options or list_topic_clusters). Clusters whose keywords cannot be applied as a filter are refused. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Widget variant: "kpis", "table", or "sections". | |
| kpis | No | KPI cards (kind="kpis"). | |
| note | No | Caveat about the result, when the tool returned one. | |
| rows | No | Data rows (kind="table"). | |
| notes | No | Caveats about the result, when the tool returned several. | |
| title | No | ||
| blocks | No | Stacked sub-blocks (kind="sections"). | |
| source | No | ||
| columns | No | Column defs (kind="table"). | |
| timeZone | No | GA4 property's IANA reporting time zone. | |
| emptyText | No | ||
| siteScope | No | Set when GA4 numbers were narrowed to this site's hostnames because the property is shared with other sites. | |
| dataMaturity | No | ||
| settledThrough | No | Last day the data is complete through. | |
| comparisonHasData | No | false when the comparison period has no data at all, so there is no comparison. |