A REPORT CARD FOR ANY URL

Everypagegetsagrade.

Rubric reads the response headers, then opens the page in a real browser at the edge. Thirteen checks, two categories, a score for each. No account, no config.

13
CHECKS, EACH INDEPENDENTLY WEIGHTED
2
PASSES · HEADERS, THEN A REAL BROWSER
0
SIGNUP, CONFIG, OR API KEY
A–F
GRADED PER CATEGORY, NOT ONE NUMBER
RUN AN AUDIT

Point it at a URL.

OR TRY

Nothing is stored and no account is involved. Each run fetches the response headers, then opens the page in a browser sandbox at the edge — about six seconds.

THE PLATFORM

Two passes over the page.

The first pass is a plain request — any serverless function could do it. The second needs a browser, which is why this runs as an agent rather than a function.

VIEW DOCS
01

Response headers

Six checks on what the server sends, before a byte of HTML is parsed. Presence alone does not pass — an HSTS header with max-age=0 fails, and X-Content-Type-Options only counts if it actually says nosniff.

HSTS · CSP · X-Frame-Options
nosniff · Referrer-Policy · Permissions-Policy
The value is reported, not just pass or fail
02

The rendered page

Seven checks a fetch cannot make, because they only exist once the browser has built the document. A real browser opens the page in the sandbox and reports what it found there.

Title · meta description · single H1
Missing alt text · lang · viewport
DOM content loaded, measured not estimated
03

Scoring

Each check carries its own weight, and each category scores on its own. A site with immaculate headers and a broken page cannot hide behind a single average.

Weighted per check, not counted
A–F per category, then overall
Every failure names what was expected

One request, no key.

The same endpoint the form above calls. The one header that is not obvious is required by the agent runtime itself — leave it out and you get a 400 before the handler ever runs.

  • GET or POST · the target goes in ?url=
  • makers-conversation-id is required by the runtime
  • JSON in, JSON out · no key, no account
  • Private and loopback addresses are refused
curl
curl -sS \
  'https://edgeone-site-auditor.edgeone.dev/audit?url=https://example.com' \
  -H 'makers-conversation-id: your-session-id'
No account, no config, no API key

Grade a page.
It takes one request.