Free Typing Speed Test (WPM)
Measure your typing speed (WPM) and accuracy with timed, word-count, quote, custom, and zen tests. Live WPM, raw speed, consistency, a results graph, multiple languages, and per-character feedback — all in your browser.
Just start typing to begin — the timer starts on your first keystroke.
Text to type:
Runs entirely in your browser — nothing you type is uploaded.
Optimize for your platform
Common uses
- Test WPM for Job RequirementsCheck your words-per-minute against data-entry and admin role requirements.
- Practice Typing for SchoolBuild the typing fluency that makes essays and notes faster.
- Warm Up Before WorkA quick typing burst to wake up your fingers before a focused session.
- Compare Typing Speed Across KeyboardsSee whether a new keyboard or layout actually makes you faster.
- 1-Minute Typing TestA classic 60-second typing test — measure your real words-per-minute, accuracy, and consistency.
- 5-Minute Typing TestA longer 5-minute typing test for endurance and sustained accuracy — closer to real-world work.
How It Works
The typing speed test runs entirely in the browser using React state and performance.now() for timing — no server, no upload, no external service. Keystrokes are classified and counted in real time, and WPM, accuracy, and consistency are computed using the same character-based formulas that Monkeytype documents publicly.
- 1Word list loads locallyWhen you pick a language, the word pool is fetched from a static JSON file and stored in component state. Words are then randomly sampled to build the test passage; with punctuation or numbers enabled, the generator probabilistically inserts commas, terminal marks, and numeric tokens into the sequence.
- 2Keystrokes are counted per secondA hidden input element captures every character. Each keystroke increments a per-second bucket counter, and each character is immediately compared against the target to classify it as correct, incorrect, or extra. The timer runs via setInterval at 1-second intervals using performance.now() for precision.
- 3Metrics are computed from raw keystroke dataAt the end of the test, net WPM is calculated from characters belonging to fully-correct words plus their trailing spaces, divided by elapsed seconds, and converted to the standard 5-characters-per-word unit. Raw WPM counts every keystroke including errors. Consistency uses the per-second raw samples to compute a coefficient of variation, then applies the kogasa smoothing formula (100 × (1 − tanh(cov + cov³/3 + cov⁵/5))) to produce a 0–100 score.
- 4Results chart renders to CanvasThe WPM-over-time and raw-WPM-over-time series are drawn onto an HTML Canvas element using the 2D Context API. When you export your result, the same Canvas API renders a 820×460 image — including the chart, headline stats, and the libratool.com attribution — and delivers it as a PNG via canvas.toBlob().
Guide
Worked example
Pick the 60-second test in "Time" mode and type 262 correct characters, counting the spaces after correct words. The tool divides by 5 to get 52.4 words, so it reports about 52 WPM net. If you also typed 18 wrong or extra characters, the raw WPM is about 56 while accuracy falls to roughly 94 percent. Both numbers show on the result screen with a chart of your WPM second by second.
Which settings to use, and the limits
- Choose the length to match the goal. 15 or 30 seconds suits a quick warm-up, 60 seconds is the usual benchmark, and 120 or 300 seconds shows how well you hold your speed. You can also set a custom time from 5 seconds to 1 hour (3,600). "Words" mode ends after 10, 25, 50 or 100 words.
- Read net WPM and raw WPM together. Net WPM counts only words typed completely right, plus the space after them. Raw WPM counts every key you pressed. A big gap between them means errors are costing you more than speed is gaining.
- Fix mistakes before the space bar. A word with any wrong letter is not counted in net WPM. You can correct a typo before pressing space, and Backspace on an empty word steps back into the previous word. The accuracy figure still remembers the wrong key press, so it does not climb back to 100.
- Turn on "Punctuation" and "Numbers" for real-world typing. They add commas, full stops and digits to the words, which usually lowers WPM. Switch them on once plain words feel easy. "Language" chooses the word list from 15 languages.
- Practise with "Custom" text or "Weak keys". "Custom" takes your own pasted text, up to 5,000 characters. After a few finished tests, "Weak keys" builds the words around the letters you miss or type slowest, and the key heatmap on the result shows which ones.
- Your history stays on this device. Each finished run is saved in your browser, up to the latest 200, with a best score per mode. "Export CSV" and "Clear history" are under the chart. It does not follow you to another browser or device.
Common problems and how to fix them
- The timer didn't start on my phone.
- The timer starts on your first keystroke, and the phone keyboard has to be open first. Tap the text ("Tap here to start typing"), then type the first letter.
- My WPM is lower than I expected.
- Net WPM ignores any word with a mistake, so one wrong letter in a 10-letter word loses all 11 of its characters. Compare it with Raw. If Raw is much higher, slow down a little and aim for accuracy first.
- I want to stop or restart in the middle of a test.
- Press Tab or "Restart" to start again. Esc resets the typing. In "Free typing (no timer)" mode, press "Stop" or Esc to see your result.
- There is no word list for my language.
- A language without a word list falls back to English words, and a note says so. Use "Custom" and paste your own text to practise in that language.
- My history disappeared.
- History is kept in this browser's local storage. It is lost if you clear site data, use a private window or switch browser. Use "Export CSV" to keep a copy.
How it compares
A test that counts every key press (gross speed) always shows a higher number than one that counts only finished, correct words. This tool shows both, as Raw and net WPM, so you can compare your result with tests that use either method. Treat the number as self-reported, since it runs in your browser and is not independently verified.
Related Tools
Reading Time Calculator
Estimate how long it takes to read any text. Choose a reading speed, get word count, sentence count, and speaking time estimates.
Speed Reader (RSVP)
Read faster with Rapid Serial Visual Presentation: your text flashes one word at a time at an adjustable 100–1200 WPM, with the optimal-recognition-point letter centered. Paste, set a speed, and press play. All in your browser.
Reaction Time Test
Measure your reaction time in milliseconds: wait for the box to turn green, click or tap as fast as you can, and get your average and best of 5 tries.