Free online spell checker (private, runs in your browser)
Paste or type your text, press Check spelling, then click any underlined word to see suggestions. Everything happens on your device.
How to use it
- Paste your text into the box. Length is not limited, though very long documents take a moment longer to check.
- Choose a word list. American English accepts color, center and traveled; British English accepts colour, centre and travelled. Words spelled the same in both are in both lists.
- Press Check spelling (or Ctrl/⌘ + Enter in the text box). Words that are not in the list get a wavy underline.
- Click an underlined word. Pick a suggestion to replace it in your text, choose Ignore to skip it for this session, or Add to my words to remember it in this browser (useful for names, jargon and product terms).
- Copy the corrected text back into your document when you are done.
What it checks, and what it cannot
This is a dictionary-based checker. It answers one question for every word: is this string in the word list? That makes it fast and predictable, and it means it will reliably catch typing slips such as teh, recieve or seperate. It also means it has blind spots you should know about:
- Real-word errors pass. In the sample text above, Their was a note is wrong, but their is a perfectly good word, so it is not flagged. Homophones such as its/it's, affect/effect or principal/principle need a human read; our guide to homophones spell checkers miss lists the usual suspects.
- Grammar and style are out of scope. Agreement, punctuation and word choice are not checked.
- Rare and new words may be flagged. The list is deliberately mid-sized: about 72,000 entries, SCOWL's "medium" size 50. SCOWL's author recommends the slightly larger size 60 for spell checking and calls sizes 80 and above unreasonable for the job; we chose 50 to keep the download light and to keep rare words from hiding common typos. A much larger list would let typos slip through: SCOWL's bigger sizes include wich and wierd, rare or variant forms that are far more likely, in everyday text, to be slips for which and weird.
- Names. Common first names, place names and some brands are included and must be capitalized (Paris passes, paris does not). Others can be added to your own words.
Words containing digits, web addresses and e-mail addresses are skipped automatically, and so are words written entirely in capitals unless you untick that option, because acronyms are rarely in any word list.
How suggestions are chosen
For an unknown word, the checker generates every string that is one edit away from it: one letter deleted, one inserted, one replaced, or two neighbouring letters swapped. It keeps the strings that are real words. If that gives fewer than three candidates, it repeats the process from each of those strings to find words two edits away. Candidates are then ranked: fewer edits first, then more common words first (the word list is graded by frequency), then words that keep your first letter. The documentation walks through the method and its limits in detail, and how spell checkers work puts it in context with the techniques used by Hunspell and modern correctors.
Privacy
Many online checkers send your text to a server, and some browser "enhanced" spell-check features do the same. This one does not: the page downloads a static word list once (about 650 KB before compression) and then works offline. Your added words live in your browser's local storage and nowhere else. You can confirm this by opening your browser's network panel while checking a text: the only request is for the word list.
Frequently asked questions
Can I use it for languages other than English?
Not at the moment. Only American and British English lists are provided.
Why is a correctly spelled word underlined?
It is probably rarer than the words in the list, very new, a technical term or a name. Use Add to my words and it will be accepted from then on in this browser.
Can I add it to my own site?
The documentation describes the approach, the word list's licence and the few lines of HTML involved, so you can build an equivalent checker for your own pages.