PDFAirlock

← Blog · 2026-09-15

We tested 14 online PDF tools. Which ones actually upload your file?

Every online PDF tool tells you your files are safe. Read closely and the claims split into two kinds. One kind is a promise: we encrypt the upload, we delete it after an hour. The other kind is a physical statement: the file never leaves your computer, so there is nothing to promise. Both are easy to write on a landing page. Only one is easy to check, and we checked it.

We took the same two synthetic PDFs, merged them on 14 popular online tools plus our own as a control, and logged every request the browser sent, with its size. Then we did the whole thing again with the network cut. The numbers are below, per site, with the date each row was measured.

The results

7 of the 14 tools sent our files to their servers. 5 besides our own completed the merge without sending them anywhere, and 1 of those still worked with the wifi off. 2 could not be completed by our automation and are marked as such rather than guessed at; the notes say why. Every tool that claims local processing was found to do it.

ToolWhat its page saysSent during the mergeWorks with wifi offVerdict
Adobe Acrobat online
2026-09-15
Handled by Adobe servers and deleted unless you sign in to save.
Note: the site refused the automated browser's connection.
Not testable by our harness
BentoPDF
2026-09-15
Files never leave your device.0 KBNoNever uploads
CleanPDF
2026-09-15
Documents never leave your device; no upload to any server.0 KBNoNever uploads
CombinePDF
2026-09-15
Files automatically deleted after one hour.268 KB to combinepdf.comNoUploads the file
ihatepdf
2026-09-15
Files never leave your device; works with the connection cut.0 KBYesNever uploads
iLovePDF
2026-09-15
Files handled safely and automatically deleted after 2 hours.270 KB to api88.ilovepdf.comNoUploads the file
LocalPDF
2026-09-15
Merged locally; nothing is sent to a server.0 KBNoNever uploads
PDF Candy
2026-09-15
All uploads automatically deleted within 2 hours.268 KB to s33.api.pdfcandy.comNoUploads the file
PDF24 Tools
2026-09-15
Merged in the cloud on our servers; deleted after one hour.268 KB to filetools28.pdf24.orgNoUploads the file
PDF2Go
2026-09-15
Files kept safe on our servers, not shared with third parties.268 KB to www28.pdf2go.comNoUploads the file
PDFAirlock (control)
2026-09-15
Files never leave your device; works with wifi off.0 KBYesNever uploads
PDFgear online
2026-09-15
Processed locally in your browser; no file data is uploaded.0 KBNoNever uploads
Sejda
2026-09-15
Files stay private, automatically deleted after 2 hours.269 KB to www.sejda.comNoUploads the file
Smallpdf
2026-09-15
Encrypted with TLS, deleted from our servers after one hour.268 KB to smallpdf-production-files.0eb7351a55248d53ef0d306ef341ddfd.r2.cloudflarestorage.comNoUploads the file
Xodo
2026-09-15
Encrypted at rest and in transit; no statement about where merging happens.
Note: the page redirected to /pricing.
0 KBInconclusive: no upload seen, but the merge never completed under automation

The two test files total 268 KB. A tool that shows roughly that many kilobytes sent the whole documents; a few extra kilobytes is multipart overhead. Sites that could not be driven by the harness are listed as not testable, not as a pass.

What the numbers mean

When a row says a file was sent, the entire document left the machine and arrived at the host named. From that moment its safety rests on the promise next to it: TLS on the way in, deletion after an hour or two, staff who don't look. Those promises may well be kept; the point is that you cannot verify any of them, and the deletion clock starts after your contract, statement or medical letter is already on someone else's disk.

When a row says 0 KB and the wifi-off column says yes, nothing was promised, because nothing was sent. The merging ran inside the browser tab, and cutting the network made no difference. That is a different category of safe, and it is the reason this site exists.

How we tested

  1. 1Two synthetic PDFs (268 KB together, a test pattern image and a line of text, no real data) were generated fresh for the run.
  2. 2For each site, a fresh Chromium profile driven by Playwright opened the merge page, dismissed cookie banners, put both files into the file input and clicked the merge control. Every non-GET request the page made was recorded with its host and the size of its body, taken from the browser's own network layer.
  3. 3A tool counts as uploading when the bodies it sent add up to at least half of the test files. In practice the uploaders sent all of it.
  4. 4The offline pass loaded the page again, waited up to 30 seconds for any service worker to take control, cut the network, and repeated the job. A result counted only if a real download started or a download control appeared that wasn't there before.
  5. 5Everything was run on 2026-09-15. Screenshots and the raw request logs were kept for every row.

The recording is the whole trick, and it is short:

page.on("requestfinished", async (req) => {
  if (req.method() === "GET") return;
  const headers = await req.allHeaders();
  log.push({
    host: new URL(req.url()).host,
    bytes: Number(headers["content-length"] ?? 0),
  });
});

Do it yourself in a minute

  1. 1Open the tool's page and your browser's developer tools (F12, or Cmd-Option-I on a Mac). Choose the Network tab.
  2. 2Add a PDF and, if needed, click the tool's go button. Look for a request whose size is about the size of your file. Click it: the host it went to is right there.
  3. 3Now load the page fresh, turn off your wifi, and try again. A tool that never uploads finishes the job anyway; an upload tool stops at the first step.

Limitations

  • One tool per site, on one day. Sites change; the dates are in the table and the harness is easy to re-run.
  • The automation is generic. Where it could not find a file input or a go button, the site is marked not testable, which says nothing about its privacy either way.
  • We measured what left the browser, not what happened afterwards. Whether an uploading site keeps its deletion promise is exactly the thing this test cannot see, which is rather the point.
  • We make one of the tools in the table. It was run under the same script as the others, and the method above is the argument, not our word.

Frequently asked questions

Is it wrong for a PDF site to upload my file?

Not in itself: that is how most of them work, and many say so. It means the copy of your document on their server is protected by their policy, their staff and their security, and their promise to delete it. Whether that is acceptable depends on what is in the document.

How can a merge happen without an upload?

A PDF is a file format a browser can parse. With WebAssembly and a library such as pdf-lib or qpdf, the combining runs on your own machine inside the page; the site only serves the code. The proof is that the job still completes with the network cut.

Who ran this test, and are you neutral?

We build PDFAirlock, one of the tools in the table, so no. That is why the method is published in full: the same files went to every site, the numbers are byte counts from the browser's own network layer, and anyone can repeat the check in a minute with developer tools.

Can I check a tool myself?

Yes. Open the site, open your browser's developer tools on the Network tab, then add a file and watch for a request whose size matches it. Then load the page, turn off your wifi, and try the job again. The section above walks through it.

Will you re-run it?

Sites change. The dates in the table are when each row was measured; the harness is a short Playwright script and we intend to re-run it when a tool changes how it works.

This post is from building PDFAirlock — PDF tools that run entirely in your browser and keep working with your wifi off. Free, no account, and every privacy claim is verifiable.