fix(seo): I2 — remove VSI, an SEO-blog fiction, from CWV thresholds

seo-analyzer.md:278 listed "VSI (Visual Stability Index) — new 2026 signal,
Google Core Web Vitals 2.0" as a threshold, stated as fact, no hedge, in
client-facing audits. It does not exist.

Verified against two primary sources:
- developer.chrome.com/docs/crux/api — complete metric list carries no
  visual_stability_index. Blogs claimed "Google is actively collecting VSI
  through CrUX": flatly false.
- web.dev/articles/vitals — three stable CWV (LCP, INP, CLS). No VSI, no
  "Core Web Vitals 2.0". Thresholds change with prior notice on an annual
  cadence.

Ten SEO blogs cross-cited each other into an apparent consensus. WebSearch
returns that consensus, which is why the resources README rule "agents MUST
cross-check via WebSearch on FULL" did not catch it — that mitigation
launders blog misinformation into apparent verification.

Fix removes the metric and states the sourcing rule where a future rumour
would land: primary sources only (web.dev / Chromium blog / CrUX API list,
the last being decisive — a metric CrUX cannot return is one we cannot
score). Incident documented inline so it is not re-added.

Verified: make test 35 GREEN / 0 RED.
This commit is contained in:
Bastien Chanot
2026-07-16 16:46:52 +02:00
parent 9cd7b51bb8
commit 4ea2fb8c37
+15 -2
View File
@@ -275,8 +275,21 @@ Evaluate each present/missing:
- **LCP** (Largest Contentful Paint) — < 2.5s - **LCP** (Largest Contentful Paint) — < 2.5s
- **INP** (Interaction to Next Paint) — < 200ms (replaced FID in Mar 2024) - **INP** (Interaction to Next Paint) — < 200ms (replaced FID in Mar 2024)
- **CLS** (Cumulative Layout Shift) — < 0.1 - **CLS** (Cumulative Layout Shift) — < 0.1
- **VSI** (Visual Stability Index) — new 2026 signal, Google Core Web
Vitals 2.0 **Core Web Vitals are exactly these three** (web.dev/articles/vitals,
verified 2026-07-16). Google ships threshold changes with prior notice on a
predictable annual cadence — a "new CWV" that only SEO blogs know about does
not exist. Before adding a metric here, confirm it against a PRIMARY source:
web.dev, the Chromium blog, or `developer.chrome.com/docs/crux/api` — that
API metric list is decisive, because a metric CrUX cannot return is a metric
we cannot score.
**WebSearch is not confirmation.** SEO blogs cross-cite each other into fake
consensus. A "VSI (Visual Stability Index) — new 2026 signal, Core Web
Vitals 2.0" line lived here until 2026-07-16 on exactly that basis: ten
blogs asserted it, several claimed CrUX was already collecting it, and it is
absent from both the CrUX API metric list and web.dev. Stated as fact, in a
threshold list, in client-facing audits.
When a GSC account+property were passed in context, fetch CrUX field When a GSC account+property were passed in context, fetch CrUX field
data first (**tilde path mandatory** — this agent runs from the data first (**tilde path mandatory** — this agent runs from the