BFBambooForge Labs

Core Web Vitals Audit for Website

Measure LCP, CLS, INP and TTFB in your visitors' own browsers, score every page at the 75th percentile the way Google does, and rank the fixes.

Buy on the Odoo Apps StoreOpen the live demoWebsite€441Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_web_vitals.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0
Full walkthrough on a live Odoo 19.0 database, with subtitles. It ends with what this app deliberately does not do.

Core Web Vitals Audit for Website

An add-on for BambooForge SEO Pro. Lighthouse and PageSpeed measure a robot on a fibre line. Google ranks on what real people experience, and your Odoo has no idea what that is. This measures it.

Install

Install BambooForge Core Web Vitals Audit. Measurement is on by default for every website; switch it off, or measure a share of the traffic, under Website → Web Vitals.

A new menu appears: SEO Pro → Web Vitals.

What is measured, and what is stored

A small script on the public pages records what the browser itself measures and sends it once, with sendBeacon, as the visitor leaves:

Metric

What it is

Good / poor

LCP

Largest Contentful Paint - when the main thing on screen finished drawing

< 2500 ms / > 4000 ms

CLS

Cumulative Layout Shift - how much the page moved under the reader

< 0.10 / > 0.25

INP

Interaction to Next Paint - how long the page took to answer a tap

< 200 ms / > 500 ms

TTFB

Time to First Byte - how long the server took to start answering

< 800 ms / > 1800 ms

What is stored is a path, a device class (mobile / tablet / desktop), whether it was a first visit or a reload, four numbers and a timestamp.

No cookie. No identifier. Nothing that needs a consent banner - which is also why the report cannot tell you who had a slow page, only that a quarter of the views of that page were slow.

Scored the way Google scores it

Not an average - the 75th percentile. Three quarters of the views must be under the threshold. That is a different question from "the mean looks fine": a page with a 2.1 s mean and a 4.8 s p75 is a failing page with a comfortable average, and it is the p75 that Google uses.

A page passes when LCP, CLS and INP are all good. TTFB is reported because it explains a slow LCP, but it is not part of the verdict - the same way Google treats it.

Below ten measurements a page says not enough data rather than something confident and wrong.

The work queue

SEO Pro → Web Vitals opens on the failing pages, sorted by how many metrics are in the red. The filters group pages by symptom:

  • Slow to paint (LCP) - usually one oversized hero image, a font that blocks rendering, or a slow server (check TTFB on the same rows).

  • Jumps around (CLS) - an image or an ad without width and height, or a banner injected after the fact.

  • Slow to respond (INP) - too much JavaScript running on tap, very often a third-party script.

The list is a queue, not a diagnosis: it says which pages cost you the most, and the browser's own devtools say why.

Sampling

A busy site learns as much from 10 % of its traffic and stores a tenth of the rows. The decision is made in the browser, not on the server, so the HTML stays cacheable - every visitor gets the same page and only some of them report.

Housekeeping

  • Raw measurements are deleted after 90 days by the standard autovacuum. Change it with the system parameter bambooforge_web_vitals.retention_days.

  • The percentiles are recomputed every six hours, and on demand from the page form.

  • A page whose measurements have all aged out goes back to not enough data rather than keeping last month's verdict.

Honest limits

  • Only browsers that implement a metric report it. Safari does not report INP; from Safari you will see LCP, CLS and TTFB.

  • A measurement arrives when the visitor leaves the page. A visitor who never leaves - a kiosk, a background tab - never reports.

  • This measures your site. It does not change it: no lazy loading, no minification, no magic.

Support

support@bambooforge.dev - the people who wrote it.

Screens

Page - bambooforge_web_vitals
Page
Report - bambooforge_web_vitals
Report
Settings - bambooforge_web_vitals
Settings