Docs · Updated 2026-09-11
Guide: reading a report
A real audit of https://example.com/, captured on 11 September 2026, walked through the way you would explain it to a client.
1. Start with the outcome
The first line says Audit completed (HTTP 200). That means we saw the real page, so every check ran. If it said Blocked by the site or Page returned an error, nothing below would describe the page itself — you would fix access first (or check a different URL) and ignore the score, which is not shown in those cases.
2. Read the counts, not just the score
This run found 0 high, 4 medium and 4 low-impact issues, and 6 checks passed. The heuristic score is 76: 100 − 12 × 0 − 5 × 4 − 1 × 4. It is useful for “did this page get better since last month?” and nothing else — it does not predict rankings and should not be compared with another site's number. How the score works.
3. Work through the failed checks in order
Findings are sorted by impact. Here are all 8 from this run, with the evidence the tool recorded and the fix it suggested:
| Impact | Finding | Evidence | Fix |
|---|---|---|---|
| Medium | No canonical link | No <link rel="canonical"> in the served HTML | Add <link rel="canonical" href="https://example.com/"> (or the preferred URL). |
| Medium | Title is only 14 characters | Example Domain | Describe the page's topic more specifically. |
| Medium | Missing meta description | No <meta name="description"> tag in the served HTML | Add a 70–160 character summary; search engines may use it as the snippet. |
| Medium | No Open Graph tags | None of og:title, og:description, og:image, og:url found | Add og:title, og:description, og:image and og:url so links render as rich cards. |
| Low | About 17 words of text in the HTML | 17 words of visible text in the served HTML (before any JavaScript runs) | If the content is rendered by JavaScript, use server-side rendering or pre-rendering so crawlers see it; otherwise add substantive text. |
| Low | No twitter:card tag | No <meta name="twitter:card"> tag | Add <meta name="twitter:card" content="summary_large_image"> for large previews on X. |
| Low | No structured data found | No JSON-LD blocks and no microdata in the served HTML | Consider JSON-LD for your organisation, products, articles or breadcrumbs where it matches visible content. |
| Low | Missing headers: HSTS, X-Content-Type-Options, Content-Security-Policy, Referrer-Policy | Not a ranking factor; listed as hygiene. |
4. How to explain it to a client
- Nothing blocks the page — it returns 200, isn't marked noindex and is served over HTTPS. That is the first thing a client wants to hear.
- The medium items are about how the page looks when found or shared: a 14-character title and no meta description give search engines little to show; no Open Graph tags means a shared link shows a plain card; no canonical leaves the preferred URL to guesswork. Each is a small change in the page template.
- The low items are hygiene: very little text in the HTML (17 words — fine for this placeholder page, a problem for a real one), no structured data, no twitter:card and missing security headers. Security headers are not a ranking factor; list them separately so they aren't oversold.
5. Say what the report does not cover
Every report lists what wasn't checked: content rendered by JavaScript, Core Web Vitals, rankings and traffic, whether Google has indexed the page, and other pages on the site. Putting that in the client email avoids promising results the audit can't support.
6. Fix, re-run, compare
After the fixes ship, re-run the same page from Audits and open the comparison: items move to Fixed, anything that broke appears under New issues. The printable report and Markdown export show the same content with the audit time and check version, ready to send.