Diff Checker — Compare Two Texts Online
Paste two versions of the same text to see exactly what changed. Added and removed lines are highlighted, rewritten lines are compared word by word, and you get a similarity score plus a copyable diff. Everything happens in your browser.
Removed lines appear in red with a "-" sign, added lines in green with a "+", and unchanged lines carry no sign. The two number columns are the line numbers in the original and in the changed text.
What this diff checker does
Paste one version of a text into the left box and another version into the right box, and this page shows what changed between them. Added lines are marked in green with a plus sign, removed lines in red with a minus sign, and rewritten lines are compared again word by word so you can see the two or three words that actually moved. It is the same idea as the diff view in a code editor or a version control system, applied to any plain text: release notes, contracts, translations, meeting minutes, CSV exports, log files, configuration files or a paragraph you have rewritten five times.
The whole comparison happens inside your browser. There is no upload, no account, no queue and no rate limit, and the text you paste is never sent anywhere, which matters when the difference you are checking is a contract clause or a customer list rather than a public file.
How to read the result
The result area has two parts: a summary line and the diff itself. The summary counts added lines, removed lines and unchanged lines, tells you how many separate change blocks were found, and reports a similarity percentage. Under it, each row of the diff shows the line number in the original text, the line number in the changed text, the sign, and the line content.
Unchanged lines appear once with both numbers. A removed line shows only the left number, an added line only the right one, which is how you can tell at a glance whether a line was replaced or just moved by an insertion above it. Inside a changed pair, the darker highlight (light red on the old line, light green on the new line) marks the words that differ, while the surrounding words are shown in normal weight because they survived the edit.
Switch on Split view to put the original and the changed text side by side instead of in one column. The two columns are aligned row by row, so a replaced line sits opposite the line that replaced it, and blank filler rows keep the alignment when one side has more lines than the other. Split view is easier for prose; the single-column view is more compact and easier to copy into an email.
Comparison options
Ignore case treats "Total" and "total" as the same line. It is what you want when a document was re-cased but not reworded, and it never changes the text shown in the result, only the decision about which lines match.
Ignore whitespace trims each line and collapses runs of spaces and tabs into a single space before comparing. Use it when a file was reformatted or re-indented, or when a copy-paste added trailing spaces, and the real change is somewhere else entirely.
Ignore blank lines removes empty lines from the comparison. The line numbers in the result stay the numbers of the text you pasted, so a difference reported at line 40 really is at line 40 of your box even though empty lines were skipped internally.
Word-level highlights can be switched off, which is useful on machine-generated text where the two passes disagree: the line-level result is always the authoritative one, and the word highlights are an extra layer drawn on top of it.
Tips and gotchas
A trailing newline at the very end of a text is ignored, so a file that ends with a newline does not appear to have one extra empty line compared to the same file without it. Blank lines elsewhere are real lines and are compared like any other line.
The diff is computed by longest-common-subsequence matching, which finds the smallest set of line removals and additions that turns one text into the other. That is why one inserted line near the top can make the line numbers on both sides drift apart while the summary still reports a single change block: the algorithm is minimising edits, not line positions.
Two texts that contain the same lines in a different order will score poorly on the similarity percentage, because similarity here counts matching lines, not matching words. The similarity figure is 2 x (matching lines) / (lines in the original + lines in the changed text): 100% for identical texts, 0% when nothing matches, and 50% when the two texts share exactly half their lines. It is floored rather than rounded up, so 100.0% appears only when the two texts really are identical — one changed line in a 2,500 line document reads as 99.9%, which is the honest answer.
The Copy diff button copies a plain diff: one line per change, prefixed with "-", "+" or a space. It is meant for pasting into a chat, a ticket or an email. It is not a patch file with @@ hunks and file headers, so it cannot be fed to the patch command, and it does not pretend to be one.
For very long line pairs, word-level highlighting is skipped and the line is simply coloured as changed. Line-by-line comparison always runs, so no difference is ever lost; only the extra word-level detail inside those specific pairs is left out, and the page tells you how many pairs were affected.
Limits, and why they exist
This tool compares up to 6,000 lines across the two boxes, and the changed middle section of the two texts must stay under roughly 2,000 lines on each side. Identical beginnings and endings are removed before the heavy work starts, so two versions of a large file usually fit comfortably even when the file itself is far longer than 2,000 lines. If a comparison is too large, the page says which limit was reached and suggests comparing the text in parts, rather than freezing the browser or silently returning a partial result.
Frequently asked questions
Is my text uploaded to a server?
No. The comparison runs in JavaScript on your own device, inside the browser tab. The tool sends no request, stores nothing and has no server side at all, so the text you paste in — including code, contracts, logs or customer data — never leaves your computer. The page loads the same small analytics snippet as every other page on this site, but that snippet never receives the text you paste.
What is the difference between a line diff and a word diff?
A line diff decides which whole lines are missing on each side: it treats every line as one indivisible unit, so a line whose content changed counts as one removed line plus one added line. A word diff then compares those paired lines word by word and marks only the words that actually differ. Line diffs keep the overview readable, word diffs show what changed inside a rewritten paragraph. This page shows both at once: line-level colouring plus word-level highlights inside paired lines.
Why does a whole line show as changed when I only edited one word?
Because line matching happens before word matching, and it compares lines exactly — unless you turn on the Ignore case or Ignore whitespace options. If a line differs by even one character, the plain line comparison cannot treat it as the same line, so the pair is reported as one removal and one addition. The word-level highlights inside that pair are what show you the single word that changed. Turn on Ignore whitespace if re-indentation or trailing spaces are causing noise.
What does the similarity percentage mean?
It is 2 x (matching lines) / (lines in the original + lines in the changed text), expressed as a percentage. Two identical texts score 100%, two texts with nothing in common score 0%, and two texts that share half their lines score 50%. It is a quick sanity check on how much of the text survived, not a measure of meaning: a text with every line reordered can score 0% while still containing exactly the same words.
How much text can I compare at once?
Up to about 6,000 lines across the two boxes, and the changed middle section must stay under roughly 2,000 lines on each side so the comparison still finishes instantly. Identical headers and footers do not count against that budget because they are skipped before the heavy work starts. Lines that are extremely long skip word-level highlighting but still compare line by line. If you hit a limit, split the text and compare it in parts — the tool tells you which limit you hit instead of guessing.