Font Doctor
Drop a font and get one number: how ready this file is to serve on a website. Format, weight, character coverage, metadata, licensing and typographic features – each scored, each explained, each with the fix.
Drop a font here for a full check-up
.ttf · .otf · .woff · .woff2 · up to 20 MB
The font is examined on your own device. Nothing is sent to this site, and nothing is stored.
How to use this tool
- Drop a font file onto the box above. TTF, OTF, WOFF and WOFF2 all work.
- Read the score – one number out of 100, with a plain-English verdict beside it.
- Start with the recommendations. They are ordered by what will make the biggest difference, and each links to the tool that does the job.
- Read the full rubric below them if you want to know why a check scored what it did. Every check shows its points and what it measures.
- Export the report to record the state of a file, or to hand a foundry something specific.
What the score actually measures
One question, and only one: is this file ready to serve on a website? It is not a judgement of the typeface. A beautiful font shipped as a one-megabyte unhinted TTF will score badly here and is still a beautiful font — the score is about the file, not the design.
The checks are weighted by how much each one costs a real visitor. Format and file size carry the most points because they are what a person on a slow connection actually pays for. Character coverage comes next, because a missing glyph is a visible defect. Metadata and licensing matter because a file nobody can identify later is a problem that surfaces long after it shipped.
The rubric
Printed in full on the page with every result, because a score whose arithmetic is hidden is not worth reading. In summary:
| Check | Points | What earns them |
|---|---|---|
| Web format | 20 | WOFF2 scores full; WOFF half; TTF or OTF none. |
| File size | 20 | Under 50 KB is full marks; over 400 KB scores nothing. |
| Size justified by content | 10 | Bytes per glyph, judged against the glyph count – a CJK font is not penalised for being large. |
| Core character coverage | 15 | Basic Latin complete. |
| Typographic punctuation | 5 | Curly quotes, dashes, ellipsis. |
| Family and version | 10 | Both recorded in the file. |
| Licence discoverable | 20 | Licence text, licence URL, copyright and designer. |
| Kerning and ligatures | 10 | Both present. |
What is deliberately not scored
The fsType embedding bits. When a font declares that it should not be subset or embedded, the page says so plainly – but it does not deduct points, because whether that restriction applies to you depends on the licence you hold, and the file cannot know that. Reporting it as a defect would be asserting something about your rights that this tool is in no position to assert.
Anything about the design. Letterform quality, spacing judgement, whether the italic is a real italic — none of that is machine-readable and none of it is here. Use the previewer and your own eyes.
Shaping correctness. The coverage checks confirm glyphs exist. Whether a font sets Arabic or Devanagari correctly needs shaping rules this does not test – the language checker explains that limit in more detail.
Where the numbers come from
Every figure is read by the same code the individual tool pages use: the parser behind the font analyzer, and the script table behind the language checker. That is deliberate – two implementations would eventually disagree about the same file, and the first symptom would be this page contradicting one of the others.
The fixes it recommends: TTF to WOFF2 and OTF to WOFF2 for format, the subsetter for weight, the character checker for coverage gaps, and the analyzer for the full licence fields.