Website and SEO

Single-page SEO, accessibility and mobile scores

What the homepage scan measures, how the SEO, accessibility and mobile-readiness scores are weighted, why a score can be a dash, and manual URL scans.

Updated · 2 min read

Every domain scan reads the homepage and produces three scores: SEO, accessibility and mobile readiness. They come from the page's own HTML, not from Lighthouse, and there is no speed score.

Where

  • Web: the domain's Website module (three score rows) and the SEO section (score ring and history).
  • iOS: Website shows Content, Accessibility and Mobile; SEO & accessibility opens on the score ring, the categories, and one row per open problem. Rescan re-reads the homepage.
  • API/MCP: GET /api/seo-results/:domainId, /history; POST /api/domains/:id/seo-scan (Starter and up) for a website-only rescan; tools get_seo_results, get_seo_history, run_seo_scan, check_page_seo.

What is checked

SEO: title and its length, meta description and length, one H1 and a sane heading outline, canonical, viewport meta, Open Graph and structured data, image alt text, internal and external links, robots directives, HTTPS. Length checks count what a searcher sees, so & is one character.

Accessibility: a static pass over the same HTML for the axe rules that can be judged without a browser: image alternatives, form labels, link names, language attribute, landmark structure, heading order, colour contrast where the styles are inline. The accessibility audit runs the full axe engine in a real browser and is the audit-grade version.

Mobile readiness: five checks, viewport meta, fixed-width layout, legible text size, tap target size, and plugin content (Flash or Java applets).

How a score is built

Each check has an impact: high (weight 3), medium (2) or low (1). A pass earns the full weight, info earns 0.75 of it, a warning 0.4, a failure nothing. The score is earned over total, per category. A category with no checks scores null and is shown as a dash, never as 100: unmeasured is not perfect.

Manual URL scans (Starter and up)

POST /api/seo-results/manual-url scores any public URL and saves it on the account without a monitored domain row; GET /api/seo-results/manual-url/history lists the last 25. The MCP tools check_page_seo, assess_website, score_page_accessibility and score_page_performance do one-off reads of any public page. score_page_performance reports weight, requests and render-blocking resources; it is not a speed score.

Limits

The homepage scan is part of the website scan allowance (6 a day on Free, 25 / 50 / 200 on paid plans). Free accounts get one manual SEO scan a day over MCP; a second returns 429.

Common questions

The app shows a different score from the web. Since the scoring moved to the server there is one score, produced by the same function on every scan. If they differ, one side is showing an older scan; pull to refresh.

Why is accessibility 100 when my site is clearly not? A static pass can only see what is in the HTML. Colour contrast from a stylesheet, keyboard traps and dynamic content need the browser-based audit.

Still stuck?

Ask the people who run the scanner.

Send the domain and what you expected to see. We look at the same scan you are looking at and write back with what it means and what to change.