Skip to main content

Typing speed test

Test your typing speed and accuracy with multiple difficulty levels and themes.

Free & unlimitedWorks offline

Standard prose, mixed vocabulary

0:00
0 WPM
100%
The restaurant on the corner serves the best pasta in the entire neighborhood. Their secret recipe has been passed down through four generations of Italian chefs who believe that cooking is an art form that requires passion and dedication.
Start typing to begin

0 / 239 characters

All processing happens in your browser. No data is sent to any server.

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

Key facts about Typing speed test
Difficulty levelsEasy short sentences, Medium standard prose, Hard punctuation-heavy, Code syntax and symbols, or your own Custom text
Time limitsno limit, 15 s, 30 s, 1 min, 2 min or 5 min
Timer starton your first keystroke, not on page load
Gross WPMwhitespace-separated words typed, divided by elapsed minutes
Net WPMgross WPM minus errors per minute divided by five, floored at zero
Accuracycharacters matching the sample at the same index, divided by characters typed
Error breakdownsorted into letters, capitalisation, punctuation and spaces
WPM curveyour live WPM sampled every two seconds for the whole run
Streaklongest unbroken run of correct characters in the attempt
Rating bands120+ Legendary, 80+ Expert, 60+ Proficient, 40+ Average, 20+ Beginner
Historylast 50 results kept in this browser's local storage, with WPM, accuracy, difficulty and date
Display optionsfour 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. 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. 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. 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. 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. 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. 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. 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.

Specs & compatibility
Browser supportany modern browser; no API beyond a text input, performance.now and local storage
Keyboard layoutslayout-independent — the test compares characters, so AZERTY, QWERTZ and Dvorak all work
Non-English textaccented and non-Latin characters work in Custom mode, though the built-in samples are English
Word definitionwhitespace-separated words, not the 5-character standard word used by some tests
Mobileworks with an on-screen keyboard, but autocorrect and predictive text will distort accuracy
Backspaceallowed; corrected characters count as correct once they match the sample
Storage usedone local-storage key, typing-history, capped at 50 entries
Account or installnone — 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.
Gross WPM is the number of whitespace-separated words you typed divided by the elapsed time in minutes, with the clock starting on your first keystroke. Net WPM then subtracts a penalty: total errors divided by the elapsed minutes, divided by five. Many typing sites instead define a word as five characters including spaces, which produces slightly different numbers on the same performance. Neither is wrong, but it means a score from this page should be compared with other scores from this page.
The test compares your input with the sample character by character at the same position. Any character that does not match counts as an error, and the breakdown then classifies it: a space where a letter belonged is a space error, a lowercase letter where an uppercase one belonged is a capitalisation error, a mismatched bracket or comma is a punctuation error, and everything else is a letter error. Because the comparison is positional, one missed character early on will mark the rest of the line wrong until you correct it.
Around 40 WPM is average for someone who types regularly. Sixty is comfortably above average and the point at which typing stops slowing your thinking down. Eighty and above is expert territory, and this tool labels 120 and above Legendary, which very few people reach with real accuracy. Accuracy matters as much as raw speed: the net WPM figure exists precisely because an uncorrected error costs more time downstream than it saved when you typed it.
Backspace is allowed and a corrected character counts as correct, so fixing an error recovers your accuracy. The trade is time: every correction costs keystrokes that do not advance you through the text, which lowers gross WPM. As a rule, fix an error that would cascade — a wrong character early in a word — and let a trailing slip go if you are chasing speed. For an honest picture, run the test both ways and compare the net WPM.
In this browser's local storage, under the key typing-history, capped at the most recent fifty runs. Each entry holds WPM, accuracy, difficulty, character count, elapsed time and the date. It is never uploaded and never synced, which also means it does not follow you to another browser, another device or a private window. Clearing site data for this domain removes it permanently, and there is no way to recover it afterwards.
Yes. Choose the Custom difficulty and paste any passage you want, including accented characters or a non-Latin script. The comparison is purely character based, so the test works with any text your keyboard can produce, and it is layout-independent — AZERTY, QWERTZ, Dvorak and Colemak all score the same way. The built-in samples are English, so pasting your own text is the right approach for practising in another language.
View all

Part of Hardware testers that run in your browser

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy