Skip to content
whovisited.

Search Console · Reporting

Why Search Console data can look stale in your analytics dashboard

Learn why WhoVisited waits for finalized Search Console data, how its snapshot cache works, and how to read the date and sync status before comparing trends.

Search data is not always final the day it happens

You open a search report in the morning and yesterday's clicks are missing. That does not automatically mean the connection is broken. Google collects and processes Search performance data over time. Its help documentation says data is usually available within two to three days, and the newest day in the Performance report can be preliminary and change as processing continues. Daily reports also use Pacific Time, which may not match your team's timezone.

WhoVisited's Search Console integration deliberately asks Google's Search Analytics API for `final` data. It therefore favors a stable comparison over the newest provisional number. The Growth page labels the date as the latest returned final-data date (Pacific Time). Use that date to understand the report's cutoff; do not assume that a chart or table refreshed today contains today's search activity.

This is separate from website collection. WhoVisited can record a browser session as soon as a page view is accepted, while Google's search report may still be processing the date on which a result was clicked. Search Console clicks and website sessions also measure different stages, so a finalized date does not make the counts equal.

What the WhoVisited snapshot contains

When the Growth page needs a fresh snapshot, the server checks a recent date range grouped by day and uses the latest date Google returned. It then requests two equal, inclusive 28-day windows: the current window ending on that final date, and the 28 days immediately before it. The page data is grouped by URL, not by search query. This is why the comparison period may end several days before today and why the table cannot tell you which query brought an individual browser to your site.

The integration stores the aggregate response as a snapshot. A successful snapshot is normally reused for up to six hours. Opening Growth after that interval can trigger another request. If a sync fails, WhoVisited keeps the previous snapshot when one exists, marks the latest sync unavailable, and waits ten minutes before retrying. In that case the displayed rows can be older than the date shown inside the saved snapshot; the amber status is an instruction to treat them as cached evidence, not as a current refresh.

The API can also return a limited set of rows. WhoVisited requests up to 25,000 page rows for each period and marks the result partial if it reaches that limit. A successful sync is not a guarantee that every low-volume page appears. Google documents that Search Analytics returns top rows rather than guaranteeing every possible row.

Read the comparison window from its end date

If the latest final date shown is 2026-10-24, the current comparison window is September 27 through October 24, inclusive. The preceding window is August 30 through September 26. Use the displayed date as the anchor when you compare a page in WhoVisited with Google Search Console.

javascript
function comparisonWindows(latestFinalDate) {
  const shift = (date, days) => {
    const value = new Date(`${date}T00:00:00Z`);
    value.setUTCDate(value.getUTCDate() + days);
    return value.toISOString().slice(0, 10);
  };

  const currentEnd = latestFinalDate;
  const currentStart = shift(currentEnd, -27);
  const previousEnd = shift(currentStart, -1);
  const previousStart = shift(previousEnd, -27);
  return { currentStart, currentEnd, previousStart, previousEnd };
}

console.log(comparisonWindows("2026-10-24"));
// { currentStart: "2026-09-27", currentEnd: "2026-10-24",
//   previousStart: "2026-08-30", previousEnd: "2026-09-26" }

This helper only performs inclusive date arithmetic. It does not query Google, decide whether a date is finalized, or convert timezones. The Google API expects date boundaries in Pacific Time; when you compare in the Search Console interface, select the same dates rather than translating them to your local calendar.

Check the cutoff, cache state and property in that order

  1. Start with the Growth page's latest returned final-data date and compare the same completed 28-day range in Search Console. Do not compare today's partial or preliminary chart point with a finalized snapshot.
  2. Look for the 'Latest sync unavailable' notice. If it appears, WhoVisited may be showing the last saved snapshot. Reopen Growth after the retry interval, then check whether the status clears and the cutoff date advances.
  3. Compare one exact page URL first. The integration matches a Search Console page to a website landing path only when the hostname and path line up. Check HTTPS, www, redirects, canonical URLs, and trailing-slash differences before concluding that the website has no corresponding sessions.
  4. If the sync keeps failing, check Settings for the connected property and account access. A property mismatch can prevent a valid comparison; use the Search Console property troubleshooting guide before disconnecting and reconnecting.
  5. If the page reports partial data, treat missing lower-ranked rows as unknown rather than zero. Open Search Console's page report for a focused page check, while remembering that the API and interface can still apply reporting limits.

A blank table can mean there are no returned final rows for the selected property and window; it is not enough by itself to diagnose OAuth, tracking, or indexing. Separate those questions: first verify the property and latest final-data date, then inspect the individual page in Search Console, and finally review WhoVisited's accepted sessions and goals for the matching period.

References and further reading

  1. Google Search Console API: Search Analytics query
  2. Google Search Console Help: Performance report data and freshness
  3. Google Search Console Help: About Search Console data
  4. WhoVisited: Search Console property and hostname troubleshooting