page-deep-dive
Page Deep Dive
Explain everything the connected tools know about one URL and condense it into a page scorecard (search, indexing, on-page, speed, engagement), the queries it wins and loses, and recommendations. The user's request may contain a property, the page URL or path, a date range, and a focus hint such as a country or "mobile only"; honor all of them.
Workflow
-
Resolve the property, the URL and the window. If the user's request or the conversation names a property, use it. Site URLs use GSC formats:
sc-domain:example.comorhttps://www.example.com/. Otherwise calllist_sitesand pick the obvious match. If several plausible properties exist, ask the user which one before continuing.- The page must be a full URL. When the user gives only a path, build the URL from the property's host, and for a
sc-domain:property confirm host and protocol against the rows ofquery_top_pagesrather than guessing between www and the bare host. - Use the last 28 days compared with the previous period unless the user specifies dates. The daily tools take no comparison parameter, so compare the first and second half of the window yourself and say the delta is derived.
- GSC data lags about 2 to 3 days: never treat the most recent 2 days as complete, and if a dip appears at the very edge of the range, say it is likely reporting lag, not a real drop.
- The page must be a full URL. When the user gives only a path, build the URL from the property's host, and for a
-
Daily series. Call
get_page_performancewithsiteUrl,pageUrland the optionalstartDate/endDate.dailyholds one row per day, oldest first, with clicks, impressions,ctrand position.ctrvalues are already percentages on a 0-100 scale. Never multiply them by 100.position: lower is better, and a change toward a lower number is an improvement; never color it as a decline.- Describe the shape of the trend: flat, a step change on a named date, a gradual slide, a spike, or a weekly rhythm. Impressions rising while clicks stay flat point at the snippet or the position; impressions falling with position steady point at demand or indexing.
- The
pageUrlfilter is an exact match on the full URL. Whendailyis empty the response carriesemptyBecauseand anextStepthat callsquery_search_analyticswith a pagecontainsfilter to list the URL variants Search Console records (trailing slash, protocol, host); rerun with the variant that carries the traffic and tell the user which one it was.
-
Queries the page wins and loses. Call
query_search_analyticswithdimensions: ["query"],filters: [{ "dimension": "page", "operator": "equals", "expression": "<page URL>" }]androwLimit: 100; followpagination.nextOffsetasstartRowonly when the user wants the long tail. Rows carrykeys(the query), clicks, impressions,ctron the 0-100 scale and position.- Sort the rows into winners (page 1 with clicks), near misses (position 11 to 20 with real impressions) and snippet losers (page 1 with far fewer clicks than the impressions suggest).
- Query rows cover only the queries Google lists: quote the page total from
coverage.filteredTotals, mentioncoverage.hiddenClicksShare(0-1) when it is large, and never sum the rows into a total.