Website Audit Report — https://astro.build/

Prepared for: Website owner

Prepared by: KSD

Report date: 2026-10-26 15:05

Scope: 16 checks — availability, TLS, performance, security headers, SEO, accessibility, crawlability

Overall score: 70/100 (grade C) — 7 issue(s) found


1. Scorecard

#CheckWeightResult
1Site reachable and serving 2xx/3xx15PASS
2HTTPS enabled10PASS
3TLS certificate valid > 14 days8PASS
4Mobile viewport declared10PASS
5Page title length 8-60 chars8FAIL
6Meta description 40-160 chars7PASS
7Exactly one H1 heading5PASS
8Every image has alt text5FAIL
9Compression enabled (gzip/br)6PASS
10Cache-Control policy set5PASS
11Core security headers (4)5FAIL
12HSTS header present4FAIL
13JSON-LD structured data4FAIL
14robots.txt served (200)5PASS
15sitemap.xml served (200)5FAIL
16Time to first byte (informational, not scored)0INFO

Score is the weighted pass ratio: 71 of 102 points = 70/100. Informational rows (weight 0) are reported but not scored, because network latency differs run to run.

2. Executive summary

7 of 15 scored checks failed. Fixing the items below recovers the majority of the lost score:

  1. Page title length 8-60 chars (8 pts, MEDIUM)
  2. Every image has alt text (5 pts, LOW)
  3. Core security headers (4) (5 pts, LOW)
  4. sitemap.xml served (200) (5 pts, LOW)
  5. HSTS header present (4 pts, LOW)
  6. JSON-LD structured data (4 pts, LOW)
  7. Time to first byte (informational, not scored) (0 pts, LOW)

3. What is failing

Each item below is a real failure. The remediation steps for each one are in the paid report.

3.1 Page title length 8-60 chars — MEDIUM (weight 8, 8 points recoverable)

What we measured: the title check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: The title is the blue line in search results; too short wastes relevance, too long is truncated.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

3.2 Every image has alt text — LOW (weight 5, 5 points recoverable)

What we measured: the img_alt check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: Missing alt text loses image search traffic and makes the page unusable with a screen reader.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

3.3 Core security headers (4) — LOW (weight 5, 5 points recoverable)

What we measured: the headers check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: The core security headers are the cheap, one-line defences against clickjacking, MIME sniffing and referrer leaks.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

3.4 HSTS header present — LOW (weight 4, 4 points recoverable)

What we measured: the hsts check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: HSTS forces HTTPS for repeat visitors and closes the downgrade window before the first request.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

3.5 JSON-LD structured data — LOW (weight 4, 4 points recoverable)

What we measured: the jsonld check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: Structured data is what lets a result show ratings, breadcrumbs or step lists instead of a bare link.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

3.6 sitemap.xml served (200) — LOW (weight 5, 5 points recoverable)

What we measured: the sitemap check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: A sitemap is how a new page is discovered without waiting for an external link.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

3.7 Time to first byte (informational, not scored) — LOW (weight 0, 0 points recoverable)

What we measured: the ttfb check reported a failing result for astro.build on 2026-10-26 15:05.

Why it matters: Time to first byte is informational: it moves run to run and is never scored.

Evidence: the detailed evidence string for this check was not retained in the public dataset, so it is not restated here rather than guessed.

4. Method and limits

5. Next steps

  1. The HIGH and MEDIUM items above are the ones that cost score fastest.
  2. Re-run the audit after a change to confirm the score moved.
  3. Anything marked CRITICAL should ship this week.

_Report generated by KSD audit pipeline — 2026-10-26 15:05._

This is a real audit, run against a live site by the same tool every client report uses.

astro.build audit score 70/100

Embed it on your own site: [![audit score](https://ks-audit-bot.pages.dev/badge/astro.build.svg)](https://ks-audit-bot.pages.dev/astro.build/)

Fixed 15 scored checks + latency, each pass/fail with evidence recorded, so a rerun of an unchanged site returns the same number. Request your own at the audit page or email Kestrel Studio with the URL.

Every failing check links to what it measures and how to fix it · all audited sites · score badge for your README · browser tools · everything else