How to check a document for hidden AI watermarks
Two of the three things called a hidden watermark are yours to check, and the third nobody can read. You find invisible Unicode characters with one search and delete them. File metadata sits in your document properties, and it says more about you than any watermark does. The statistical watermark Anthropic began embedding on 2 August 2026 needs a key only Anthropic has. The check that decides anything is the reference list.
Work out which layer you mean
The word watermark is doing three jobs at once, and mixing them up is why so much advice about it is useless.
| Layer | What it is | Can you check it? |
|---|---|---|
| Invisible characters | Real characters in the text: no-break spaces, zero-width spaces, word joiners | Yes, in a minute |
| File metadata | Author, timestamps, editing time, and C2PA manifests on images | Yes, and you should |
| Statistical watermark | A bias in which words the model chose, readable only with a secret key | No. Nor can your university |
Only the third one is what Anthropic and Google actually ship, and which providers embed one and what a university can read is a different question from the one on this page. The first was never a watermark at all, which is why every "ChatGPT watermark remover" page is selling against something the current models do not put there. The second is the one nobody thinks about and the one most likely to say something about you.
Sweep for invisible characters
These are worth removing regardless of where they came from, because they break search, sort and hyphenation in ways that look like your mistake. Eight are worth knowing:
U+202Fnarrow no-break space, decimal 8239. The one that turned up in 2025 output.U+00A0no-break space, decimal 160. Extremely common in anything pasted from a web page.U+200Bzero-width space, decimal 8203.U+200CandU+200Dzero-width non-joiner and joiner, decimal 8204 and 8205.U+2060word joiner, decimal 8288.U+00ADsoft hyphen, decimal 173. Prints as a hyphen only when the line breaks there.U+FEFFbyte order mark, decimal 65279.
In Word. Open Find and Replace, and search for ^u followed by the decimal value: ^u8239, ^u160, ^u8203, ^u65279. Replace the two space-like ones with an ordinary space and the zero-width ones with nothing. Word will tell you how many it changed, which is the number you actually wanted to know.
In Google Docs. Open Find and replace, tick Match using regular expressions, and search [\x{00A0}\x{200B}-\x{200D}\x{202F}\x{2060}\x{FEFF}] to catch the set in one pass.
If you want to see exactly what is there. Paste the text into a code editor that renders control characters, or open your browser's developer console on any page and run [...text].filter(c => c.codePointAt(0) > 127) against a pasted string, adding .map(c => c.codePointAt(0).toString(16)) to read the results as codepoints.
That returns every non-ASCII character in the passage. Most of what comes back is ordinary: curly quotes at 2019, en dashes at 2013, accented letters. What you are looking for is 202f, 200b, feff and their neighbours.
Two things this sweep does not do. It does not tell you where the text came from, because a no-break space arrives just as easily from copying a journal abstract out of a browser. And it does not touch a statistical watermark, which is not made of characters at all.
Read your own file properties
This is the section people skip, and it is the one with something in it.
A .docx is a zip archive. Rename a copy to .zip, open it, and two files inside tell you what your submission is carrying. docProps/core.xml holds the document author, the name of whoever last saved it, and creation and modification timestamps. docProps/app.xml holds a revision count and TotalTime, the total minutes the file has been open for editing. In Word itself the same fields are under File, then Info, then Properties. In Pages or LibreOffice, look for document properties in the File menu.
Consider what that says. A 4000-word essay whose properties record eleven minutes of editing time, one revision, and a "last modified by" name that is not yours is a more concrete artefact than any detector score, because it is a record rather than a prediction. It is also the reason the standard advice about a shared or downloaded template is real advice: an author field left on someone else's name has started more awkward conversations than watermarks ever will.
The same fields work for you as well as against you. A document that shows steady editing across three weeks is exactly the process evidence that answers a suspicion, which is the point any guide to responding to an allegation keeps returning to. Do not sanitise this out of habit. Look at it, make sure it is true, and keep it.
PDFs carry a smaller set: title, author, and the producing application, visible in your reader's document properties dialog. Exporting to PDF drops the editing-time fields, which is worth knowing in both directions.
Inspect an image you did not make
If a figure, chart or photograph in your document came from anywhere but your own data, check what is attached to it.
The standard here is C2PA, cryptographically signed metadata recording what made the file and what edited it since. To read it, drag the file onto the Content Credentials verifier, which shows the manifest if one is present and intact.
Only one of the two answers means anything. A manifest that is there tells you what made the file and what has edited it since. A blank result tells you nothing at all, because C2PA is metadata: anything that re-encodes the file removes it, a screenshot included, so almost every image on the internet reads as blank. Which marks an AI image carries, how little of that survives a normal workflow, and what a journal actually asks for instead are the companion piece on images.
The layer nobody can check
Here is the part where the honest answer is that you cannot do this, and neither can anyone grading you.
A statistical watermark is a bias in the model's own word choices, written with a secret key, so reading it back requires that key and only the provider has one. No provider currently offers a detector a student or a marker can use, and there is no cross-provider one, because a single tool holding everyone's keys is also the thing that makes the marks forgeable if it leaks. Which providers mark their text, how the mark is written and how much of it survives an edit is the whole subject of the companion piece.
So treat any site advertising a universal AI watermark checker as what it is: an ordinary style-based detector with a new label on the button. Those tools guess from how the writing reads, which is why they misfire on genuine human writing and why a detector score is not evidence of anything.
What to do with what you found
Almost certainly nothing dramatic. Sorted by what people actually find:
- Stray Unicode. Clean it and move on. It is a formatting defect, it is not evidence, and fixing it is the same category of housekeeping as removing a double space.
- A wrong name in the file properties. Fix it if it is wrong. Do not blank out the honest history that sits beside it.
- An image with no credentials. That is the normal state of almost every image on the internet. What matters is whether you can say where the figure came from, not what the file remembers.
- Nothing at all. The usual outcome, and the correct one to expect.
What not to do is reach for a tool marketed as a watermark remover or an AI humanizer. Rewriting in your own words already degrades a statistical watermark, so the tool adds close to nothing on the technical side, while adding something real on the other side. Using a writing tool is a question about your process. Deliberately removing a provenance mark is a question about your intent, and only one of those is hard to explain.
The check that decides the outcome
Every layer above is invisible to the person marking your work. The reference list is not.
A marker who looks up one citation and finds it does not exist has a fact, not a suspicion, and no amount of file hygiene changes it. That is the failure mode that ends up in integrity findings, it survives every rewrite, and it is entirely preventable. If a chatbot drafted any part of your paper, go through the routine for checking whether each reference is real, or paste your bibliography into our free citation checker and let it resolve them against CrossRef and OpenAlex for you.
Then check the harder thing underneath it, which is whether each source actually supports the sentence citing it. A reference that exists and says something else is the more common failure and the one nobody screens for. Ten minutes there is worth more than any amount of time spent hunting for characters you cannot see.