Skip to content

PageSpeed Insights

With PageSpeed Insights enabled, every document’s Analytics tab gains a Page speed section on its Google Search sub-tab — beside Google’s index status for the same page — running Lighthouse for the page’s public URL, for mobile or desktop:

  • Scores — Performance, Accessibility, Best practices and SEO as Lighthouse score rings. Hover one to see how many of its audits passed and how many need work.
  • Real-user data — 75th-percentile LCP, INP, CLS, FCP and TTFB from the Chrome UX Report when Google has enough traffic for the page (or, failing that, for the whole site). This is what visitors actually experienced, rather than what one lab run measured.
  • Full analysis on PageSpeed Insights — a link to Google’s own tool for this URL and form factor, where the lab metrics, the opportunities with their estimated savings and the failing audits live. Following it starts a new run on Google’s infrastructure, so the numbers it reports will not match the ones here.

The section never starts an analysis by itself. It shows the last result kept on the server (CacheHours, a day by default) and Run analysis starts a new one. A run takes 20–60 seconds and spends PageSpeed quota, and opening this tab to read Search Console should cost neither — so it waits to be asked, the same way the index-status card beside it waits before asking Google. Two editors running the same page at the same time share one run.

{
"Flowcourier": {
"Analytics": {
"SiteUrl": "https://www.example.com",
"PageSpeed": {
"Enabled": true,
"ApiKey": "<google api key>"
}
}
}
}
Setting Default Description
PageSpeed:Enabled false Shows the Page speed section on the document’s Google Search sub-tab.
PageSpeed:ApiKey — A Google Cloud API key with the PageSpeed Insights API enabled. Strongly recommended: without a key Google applies a tiny anonymous quota shared with everyone on your outbound IP, and the section reports quota exceeded once it is used up.
PageSpeed:Referer the analysed page’s origin Sent as the HTTP referrer of every request, so a key restricted to HTTP referrers (your site’s domain) works from the server. Set it only when the key allows a different URL.
PageSpeed:DefaultStrategy mobile Which strategy the section shows first.
PageSpeed:Categories performance, accessibility, best-practices, seo Lighthouse categories to run. Fewer categories finish faster.
PageSpeed:CacheHours 24 How long a finished analysis is reused.
PageSpeed:TimeoutSeconds 120 Give up on a run after this long.
SiteUrl the traffic provider’s tracked URL The public base URL the page URL is built from. Set it explicitly when the Umbraco host differs from the public one.
  1. In Google Cloud Console, pick or create a project.
  2. APIs & Services → Library: enable PageSpeed Insights API.
  3. APIs & Services → Credentials → Create credentials → API key. Restrict the key to the PageSpeed Insights API. If you also add an application restriction, choose IP addresses (your server’s outbound address) or HTTP referrers that include your site (www.example.com/*): the package sends your site’s URL as the referrer. A key whose referrer list does not include the site fails with Requests from referer … are blocked — the error names the URL to allow.
  4. Put the key in Flowcourier:Analytics:PageSpeed:ApiKey — an environment variable (Flowcourier__Analytics__PageSpeed__ApiKey) keeps it out of source control.

The key is shown masked under Settings → Flowcourier → Analytics.

  • The Real-user data (Chrome UX Report) section shows Chrome’s field data (LCP, INP, CLS, FCP, TTFB at the 75th percentile) for the page, or for the whole site when the page alone has too little traffic. When neither is available the section says so — the scores are the guide until enough visitors have loaded the page.
  • Google analyses the public page: it must be reachable from the internet. Staging sites behind a login or an IP allow-list get a fetch error.
  • Only published pages have a URL to analyse; the section says so otherwise.
  • PageSpeed Insights runs from Google’s infrastructure, so results reflect Google’s location and network conditions, not a visitor’s.