Skip to content

Product

An audit that behaves like an instrument, not an assistant

Obcend measures. It does not estimate, summarise, or guess. Each stage of the lifecycle produces an artifact the next stage depends on, which is why the output is reproducible end to end.

Lifecycle

Six stages, each one recorded

Nothing in the pipeline is inferred from a previous stage's summary. Each stage reads the stored artifact directly.

  1. Step 01

    Crawl

    A scoped, rate-respecting crawl enumerates reachable documents, assets, and responses. Scope, depth, and concurrency are declared up front and recorded with the run.

  2. Step 02

    Observe

    Each response is measured against a versioned ruleset. Observation is mechanical: a rule either matches the captured artifact or it does not.

  3. Step 03

    Evidence

    Every match stores the exact artifact that produced it — markup fragment, headers, timings, source location — hashed and immutable.

  4. Step 04

    Score

    Scores are computed from findings by a published formula. Open any score and you can trace the exact findings and weights that produced the number.

  5. Step 05

    Remediate

    Findings carry the observed value, the expected value, and the location. That is the whole ticket — an engineer can act without a discovery meeting.

  6. Step 06

    Verify

    Re-run against the same ruleset version. A finding either clears or it does not. Improvement is measured, not asserted.

Coverage

What the ruleset examines

Rule counts are per ruleset version. Rules are added and retired through a published changelog — a score change is always attributable to either your site or a named ruleset revision.

  • SurfaceSecurity headers
    Rules64
    OutputHeader presence, value strictness, per-response consistency
    Evidence capturedRaw response headers
  • SurfaceAccessibility
    Rules121
    OutputWCAG 2.2 A/AA mechanical checks with element paths
    Evidence capturedDOM fragment + computed role
  • SurfaceCrawl integrity
    Rules48
    OutputRedirect chains, status anomalies, orphaned routes
    Evidence capturedRequest/response trace
  • SurfaceIndexation
    Rules57
    OutputCanonicals, robots directives, sitemap agreement
    Evidence capturedHead markup + robots.txt
  • SurfaceDelivery performance
    Rules39
    OutputBlocking resources, payload weight, cache directives
    Evidence capturedResource timing table
  • SurfaceContent structure
    Rules44
    OutputHeading order, metadata completeness, structured data validity
    Evidence capturedParsed document tree

Output

What a finding looks like in practice

Observed value, expected value, exact location, and the run conditions under which it was reproduced.

OBC-A11Y-0208high

Form control has no programmatically associated label

Observed
<input type="email"> with no name
Expected
label, aria-label, or aria-labelledby
Source
https://example.com/signup — main > form > div:nth-child(2)
2026-07-28 09:16:41 UTCreproduced 3/3 runs · ruleset 2026.07.1
OBC-SEO-0031medium

Fourteen URLs declare the same canonical target

Observed
14 distinct URLs → /products
Expected
one canonical per distinct resource
Source
https://example.com/products?page=2 — head > link[rel=canonical]
2026-07-28 09:22:07 UTCreproduced 3/3 runs · ruleset 2026.07.1
OBC-PERF-0072medium

Render-blocking stylesheet delays first contentful paint

Observed
412 KB blocking, 840 ms to FCP
Expected
critical CSS inlined, remainder deferred
Source
https://example.com/pricing — head > link[rel=stylesheet]:nth-of-type(1)
2026-07-28 09:25:19 UTCreproduced 3/3 runs · ruleset 2026.07.1

See a deterministic audit of your own site

We run a scoped crawl, produce evidence-backed findings, and walk your team through the report. No obligation, no pipeline pressure.