VisualQ

Quality pillars

VisualQ's eight-pillar Quality OS — what each pillar measures, how to run it, and how scores roll up.

VisualQ organizes web quality into eight pillars. Together they form the Quality OS — a single composite score, rolling page health, and CI gates across visual, functional, accessibility, performance, SEO, security, tracking, and privacy.

For the exact trigger matrix (which button runs which pillar), see Audit trigger matrix.

The eight pillars

#PillarTechnical idWhat it measuresPrimary guide
1VisualvisualPixel-perfect regression vs baselinesVisual testing
2Functional (FRT)functionalUser journeys compiled from Gherkin / plain languageFRT
3Accessibilitya11yaxe-core violations + RGAA scoringAccessibility
4PerformanceperfWeb Vitals and Lighthouse metricsPage audits
5SEOseoOn-page SEO + Lighthouse SEOPage audits
6SecuritysecurityHTTP headers, TLS, CVE checksPage audits
7TrackingtrackingTracking-plan events on linked VRT pages and FRT journeysTracking
8PrivacyprivacyCMP consent-before-tracking (triple-run)Privacy

The Functional pillar maps to the Scenarios (FRT) tab in the dashboard. An FRT journey is never triggered from a VRT page alone — that is a product constraint, not an exclusion from the quality score.

Free public audit vs full platform

SurfacePillars included
Free public audit6 automated page audits: Visual, Accessibility, Performance, SEO, Security, Tracking
Signed-in projectAll 8 pillars — add Functional (FRT) journeys and Privacy (CMP triple-run)
Full quality auditAll unlocked pillars in one orchestrated run

The public audit is a lead magnet: it runs six page-level probes in one worker pass. Privacy requires three isolated browser contexts per page (initial, reject-all, accept-all). Functional requires FRT features — neither fits the anonymous URL-only flow.

Every plan (including Free) unlocks all eight pillars inside a project. See Plan limits.

Rolling health

VisualQ uses a rolling health model — site scores aggregate fresh per-page scores, not a single latest run. The Functional pillar uses separate frt_health storage.

See Rolling page health for coverage, freshness, and how partial runs update only affected pages.

Run everything at once

From the project overview, click Run full quality audit to fan out to every unlocked pillar. Or use MCP / CI:

POST /api/quality-score/full-audit
Content-Type: application/json

{
  "project": "<projectId>",
  "pillars": ["visual", "functional", "a11y", "perf", "seo", "security", "tracking", "privacy"]
}

Agents should call run_full_audit with pillars[] and then wait_for_run. For KPIs, use get_site_health or gate_pr_quality — never treat a single latest run as the site score.

On this page