Typing speed test
Test your typing speed and accuracy with multiple difficulty levels and themes.
Standard prose, mixed vocabulary
0 / 239 characters
This typing speed test compares what you type against the sample character by character, so accuracy is positional rather than forgiving: character 40 must match character 40. Gross WPM is the words you actually typed divided by elapsed minutes, timed with performance.now. Net WPM subtracts a penalty of one word for every five errors per minute, which is the classic correction. At the end you get an error breakdown split into wrong letters, wrong capitalisation, punctuation and spaces, a WPM curve sampled every two seconds, your longest correct streak, and a history of your last fifty runs kept in this browser.
Key facts about Typing speed test
| Difficulty levels | Easy short sentences, Medium standard prose, Hard punctuation-heavy, Code syntax and symbols, or your own Custom text |
|---|---|
| Time limits | no limit, 15 s, 30 s, 1 min, 2 min or 5 min |
| Timer start | on your first keystroke, not on page load |
| Gross WPM | whitespace-separated words typed, divided by elapsed minutes |
| Net WPM | gross WPM minus errors per minute divided by five, floored at zero |
| Accuracy | characters matching the sample at the same index, divided by characters typed |
| Error breakdown | sorted into letters, capitalisation, punctuation and spaces |
| WPM curve | your live WPM sampled every two seconds for the whole run |
| Streak | longest unbroken run of correct characters in the attempt |
| Rating bands | 120+ Legendary, 80+ Expert, 60+ Proficient, 40+ Average, 20+ Beginner |
| History | last 50 results kept in this browser's local storage, with WPM, accuracy, difficulty and date |
| Display options | four text themes, an on-screen keyboard, keypress sound, and a hide-the-text mode for blind typing |
What happens to your file
Nothing you type is uploaded. The sample text ships with the page, your input stays in React state in this tab, and every statistic is computed locally from those two strings. The only thing that persists is your results history — WPM, accuracy, difficulty, character count and date for the last fifty runs — written to local storage under the key typing-history in this browser. It never leaves the device and is not synced anywhere; clearing site data removes it. Custom text you paste in is treated the same way as the built-in samples: held in memory for the run and never transmitted.
About this tool
- 1
Pick a difficulty
Easy is common words and short sentences, Medium is standard prose, Hard is punctuation-heavy, and Code is programming syntax full of brackets and symbols. Custom lets you paste your own passage.
- 2
Choose a time limit
One minute is the convention most typing scores are quoted at. Fifteen and thirty seconds favour bursts; two and five minutes expose whether your speed holds up. No limit runs until the sample ends.
- 3
Start typing
The clock starts on your first keystroke, so there is no countdown to waste. Correct characters are marked as you go and mistakes are highlighted in place.
- 4
Decide whether to correct
Backspace is allowed and a corrected character counts as correct, but the time spent fixing it still costs you WPM. Going back for every slip usually lowers both numbers.
- 5
Watch the live counters
WPM and accuracy update as you type, and the streak counter shows how long you have gone without an error. A streak that keeps resetting points at one recurring key rather than general slowness.
- 6
Read the error breakdown
After the run, expand the breakdown. Errors split into letters, capitalisation, punctuation and spaces, which tells you whether to practise reach, Shift timing or rhythm.
- 7
Compare against your history
The last fifty runs are stored in this browser. Repeat the same difficulty and time limit each session so the comparison means something.
| Browser support | any modern browser; no API beyond a text input, performance.now and local storage |
|---|---|
| Keyboard layouts | layout-independent — the test compares characters, so AZERTY, QWERTZ and Dvorak all work |
| Non-English text | accented and non-Latin characters work in Custom mode, though the built-in samples are English |
| Word definition | whitespace-separated words, not the 5-character standard word used by some tests |
| Mobile | works with an on-screen keyboard, but autocorrect and predictive text will distort accuracy |
| Backspace | allowed; corrected characters count as correct once they match the sample |
| Storage used | one local-storage key, typing-history, capped at 50 entries |
| Account or install | none — no signup, no app |
- Accuracy first. A run at 55 WPM with 99% accuracy beats 70 WPM with 90%, because net WPM subtracts a word for every five errors per minute.
- This test counts real whitespace-separated words rather than the 5-character standard word, so scores can read a little lower than sites that use the standard — compare like with like.
- Turn on the hide-text mode once you are comfortable; it forces you to stop reading ahead character by character and builds real touch typing.
- Use Code difficulty if you program. Brackets, underscores and semicolons live on keys that prose never exercises.
- A high capitalisation error count usually means Shift is being released too early rather than pressed too late.
- Take three runs and compare the middle one. The first is a warm-up and the last is often fatigued.
- On a phone, turn off autocorrect and predictive text before testing, or the keyboard will fix your mistakes and inflate accuracy.
- Paste text you actually type at work into Custom mode — your speed on your own vocabulary is the number that matters.
- Five text sets including code and your own custom passage
- Six time limits from 15 seconds to 5 minutes
- Live WPM, accuracy and correct-character streak
- Net WPM with the standard five-errors-per-word penalty
- Error breakdown by letters, capitals, punctuation and spaces
- WPM-over-time curve sampled every two seconds
- Local history of the last 50 results
- Themes, on-screen keyboard, keypress sound and blind-typing mode
- Measuring your typing speed before a job application that specifies a WPM requirement.
- Practising code typing separately from prose, since the keys involved are different.
- Tracking progress over weeks using the stored history rather than a single result.
- Finding out whether errors come from letters, Shift timing or punctuation.
- Comparing a new keyboard against your old one on identical text.
- Training touch typing with the text hidden so you cannot fall back on reading each character.
Related tools
View allPart of Hardware testers that run in your browser
Works well with this5
More hardware testers10
More in Education7
Updated