OCR does not fail loudly, and that is the danger
When speech recognition gets something wrong you can usually tell. When OCR gets something wrong it hands you a real word, correctly spelled, in the middle of a correct sentence.
An invoice total that reads 1,235.00 instead of 1,236.00 looks exactly as convincing as the right answer. A postcode with an O where a zero should be looks fine. A date with a 9 read as a 4 will pass every check you make by eye, because there is nothing to notice.
Tesseract reports a confidence figure for every single word it produces. Essentially every free OCR site throws that away and gives you the text. This one keeps it, bands it, and lists the words it is least sure about so you can check twenty words rather than re-reading the whole page against the original.
What improves the result
In order, and the first three are worth more than everything else combined.
Square on. A photograph taken at an angle puts every line of text on a different slant and the recogniser is fighting the geometry before it starts. Get directly above the page.
Sharp. Motion blur destroys the letterforms, and nothing recovers them. Brace the phone, or rest the page on a table.
Evenly lit, with no shine. A bright window reflecting off glossy paper wipes out a whole region. Diffuse light beats bright light every time.
Then crop. If you only need one paragraph, crop to it. Less picture means less for the recogniser to get confused by, and reading order problems mostly disappear.
Why it enlarges small images
This looks like nonsense at first, because enlarging adds no information at all.
Tesseract was built around scanned pages at about 300 dots per inch. At that resolution a capital letter is roughly 30 pixels tall, and recognition degrades quickly once letters drop below about 20 pixels. A phone photograph of a document held at arm's length is frequently under that, even though the file itself is twelve megapixels, because most of those pixels are the desk.
Enlarging gives each letterform more pixels to be distinguished by, which measurably improves recognition on small text. It will do nothing for text that is blurred, only for text that is small and sharp. Above about a thousand pixels it stops helping, so it is not applied.
What it will not do
Handwriting. Assume no. It is trained on printed type, and while very neat block capitals sometimes come through, ordinary handwriting does not.
Layout. The words come out, the arrangement largely does not. Two columns often arrive interleaved, and tables lose their structure. If the layout matters, crop and read one region at a time.
Guess at corrections. The tidy-up here only reverses things the page layout did: rejoining a word split across two lines by a hyphen, removing trailing spaces, collapsing scanning gaps. It never changes a word. The classic OCR error is reading "rn" as "m", and a tool that silently corrects that turns a visible mistake into an invisible one.
Nothing leaves your machine, and here that is the whole point
Look at what people put through OCR: passports, driving licences, bank statements, payslips, medical letters, tenancy agreements, contracts.
Every other free OCR site takes an upload. You are handing a complete copy of one of those documents to a server you know nothing about, so that it can type it out for you.
The recogniser here is Tesseract compiled to WebAssembly and served from this site rather than from anybody else's CDN, because a tool promising nothing leaves your machine cannot then go and fetch its engine from a third party. It downloads once, about four megabytes, the first time you press the button, and after that it is on your device. Open your network tab and watch nothing happen while it reads.
Common questions
Is my image uploaded to be read?
No. The recogniser is Tesseract compiled to WebAssembly, served from this site and run on your own machine, which is why it matters here more than almost anywhere else: the things people put through OCR are passports, bank statements, payslips, medical letters and contracts, and every other free OCR site wants all of that uploaded.
Why is the result wrong in places?
Because OCR is pattern recognition, not reading. It does not fail loudly: it produces a plausible wrong word inside an otherwise correct sentence, and nothing about the output looks wrong. That is why this shows a confidence figure for the page and lists the individual words it is least sure about, which almost no other tool does even though the recogniser reports it for every word.
How do I get a better result?
Take a better picture, in that order of priority: get it square on rather than at an angle, get it sharp, and get plenty of light without a shine on the paper. Those three beat any processing. Beyond that, this enlarges small images before reading them, converts to grey and stretches the contrast, which is what the recogniser is expecting to see.
Why does enlarging a small image help when it adds no detail?
It genuinely adds nothing, and it still helps. Tesseract was built around scanned pages at roughly 300 dots per inch, which puts a capital letter around 30 pixels tall, and it degrades quickly below about 20. Enlarging gives the letterforms more pixels to be told apart by. It will not rescue text that is blurred, only text that is small and sharp.
Does it handle handwriting?
Badly, and you should assume no. Tesseract is trained on printed type. Very neat block capitals sometimes come through; ordinary handwriting does not, and the confidence figures will tell you so rather than leaving you to discover it.
What about a table or a form?
The words come out but the layout largely does not. Reading order across columns is where it struggles most, so a two-column page or a table often arrives interleaved. Check it against the original rather than assuming the order is right, and for a table it is usually quicker to read one column at a time by cropping first.
Can it read a PDF?
There is a separate tool for that on this site, because a PDF needs its pages rendering first and often already contains real text that does not need recognising at all. Use this one for photographs and screenshots.