# Word Compare

> Compare two Word documents: redline of added and deleted text, paragraph by paragraph and word by word, tracked changes accepted or rejected. No upload.

- URL: https://bytescope.dev/en/word-compare/
- Locale: en · Also: [ja](https://bytescope.dev/ja/word-compare.md) · [zh-Hant](https://bytescope.dev/zh-Hant/word-compare.md)
- Runs: Your files never leave your browser — all processing is local.
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

A contract that has been back and forth four times, a manuscript that came back from an editor, a policy document with a new version and no changelog — and nobody switched on tracked changes. Drop both `.docx` files here and they are opened and compared in the page: a redline view with deletions struck through and insertions underlined, each also carrying its own marker so the result reads without colour, a summary of added, deleted and changed paragraphs and the word-count difference, and an export as Markdown or JSON. Paragraphs are compared in document order — body text with tables in place (each cell is a paragraph, labelled with its table, row and cell), then headers and footers, footnotes and endnotes, and finally text boxes.

Neither document leaves your browser. The point of comparing a contract locally is that the contract stays local: both files are read from your disk, unpacked and diffed in a Web Worker on your own machine, there is no upload endpoint, and the only thing the page reports back is that a comparison ran, whether it succeeded and which revision view was used — never a file name or a line of text.

### Paragraphs first, then words

The diff runs in two layers. First the paragraphs of both documents are lined up with a Myers diff over their sequence, which finds inserted, deleted and changed paragraphs without reporting everything after an insertion as different. Then each changed paragraph is diffed again at word level. Latin text is split at spaces and punctuation; Chinese and Japanese have no spaces, so CJK text is compared character by character, and a paragraph that mixes scripts is split into runs and each run handled its own way. Whitespace, full-width versus half-width characters and letter case are each compared exactly by default, with a separate option to ignore each one.

### Tracked changes: compare accepted or rejected

If either document still contains unresolved tracked changes, the comparison has to pick a version of it. By default both files are compared as they would read with every revision accepted — insertions counted, deletions dropped — and one switch flips both to the rejected view, the text as it stood before the revisions. When either file carries revisions the result says so at the top, with the number of affected paragraphs on each side. The accepted and rejected texts are worked out from the document XML; a revision nested inside another revision follows the innermost one, which can differ from how Word resolves it, and formatting-only revisions are not counted as changes to the text.

### What it does not compare

Only the text is compared. Bold, fonts, paragraph styles, images, charts and comments are out of scope, and so is the numbering of automatic lists, because those numbers are computed by Word at display time and are not stored as text. A deleted paragraph mark in a tracked change does not merge the two paragraphs here, which can shift paragraph boundaries compared with Word. And the output is a report — redline on screen, Markdown or JSON to take away — never a `.docx` with tracked changes written into it.

## Limits

Does not compare formatting, pictures, charts, field results or list numbering, does not open legacy .doc or encrypted files, and does not produce a .docx with tracked changes — it shows the text differences as a report.

## FAQ

### Are my documents uploaded?

No. Both `.docx` files are read from your disk and unpacked, extracted and diffed in a Web Worker inside the page. No server sees them, and closing the tab leaves nothing behind. The anonymous usage event records only that a comparison ran, whether it succeeded and whether the accepted or rejected view was used.

### Can I compare two Word documents without Word or Office installed?

Yes — that is what this page is for. It reads the `.docx` package directly, so it needs nothing installed and works the same on a Mac, a Linux desktop or a Chromebook. The file has to be `.docx`; the old binary `.doc` format and encrypted documents are not supported.

### The other side sent the file with tracked changes still in it. Which version is compared?

By default the version you would get by accepting every change in both files — insertions kept, deletions removed. One switch compares the rejected view of both instead, the text before any of the revisions. The result header tells you when either file still carries revisions and how many paragraphs they touch, so you know the comparison depends on this choice.

### Does it produce a Word file with the differences as tracked changes?

No. The result is a report: the redline on screen, plus Markdown and JSON exports. Writing a new `.docx` with revision marks is deliberately out of scope, so the files you compare are never modified and nothing you download could be mistaken for one of them.

### How is Chinese or Japanese text compared?

Character by character. Word-level diff on Latin text splits at spaces and punctuation; Chinese and Japanese have no spaces, so each character is a unit, and a single changed character in a sentence shows up as exactly that character rather than the whole sentence. Mixed paragraphs are split into runs of Latin and CJK text and each run is handled its own way.

### Why does a renumbered list not show up as a change?

Because the numbers are not in the document text: Word computes them from the list definition when it lays out the page, and the `.docx` stores only the paragraph and its list reference. The comparison sees the text of each item, so adding an item appears as an inserted paragraph while the renumbering of the items after it does not appear at all.

### Where do tables, headers and footnotes appear in the result?

In a fixed order: the body with tables in their original position (each cell is one paragraph, labelled with the table, row and cell it came from), then headers and footers, then footnotes and endnotes, then text boxes. Comments are not included. The order is the same for both files, so the two sides stay in step.

### A space or a full-width character changed and it counts as a difference. Can I ignore that?

Yes. Whitespace, full-width versus half-width characters and letter case each have an ignore option, all off by default so that the first run shows exactly what the files contain. Switch on the ones that are noise for your documents and run the comparison again.

## Related tools

- [Excel Compare](https://bytescope.dev/en/excel-compare.md) — Compare two Excel workbooks cell by cell, with inserted rows lined up instead of shifting everything below.
- [Office Document Inspector](https://bytescope.dev/en/office-inspector.md) — See the authors, tracked changes and hidden data inside a Word file before you send it.
- [Binary Diff](https://bytescope.dev/en/binary-diff.md) — Compare any two files byte by byte when the format is not a document.
