Almost every free PDF compressor works the same way: you upload your document to someone’s server, it is compressed there, and you download the result. For a tax return, a signed contract, or a medical record, that means an unencrypted copy of a sensitive document now sits on a machine you do not control, for an unknown period, under an unknown retention policy.
This guide explains how to compress a PDF without that upload, why the browser can do it locally, and when local compression is the wrong choice.
Why a PDF gets large in the first place
PDF file size comes from three places, and knowing which one is bloating your file tells you what to do about it:
- Embedded images. By far the most common cause. A document scanned at 600 DPI, or a report with screenshots pasted in at full resolution, is mostly image data. Images inside PDFs are frequently stored uncompressed or as lossless PNGs.
- Embedded fonts. A PDF embeds every font it uses so it renders identically everywhere. A document using eight fonts can carry several megabytes of font data, and subsetting (keeping only the glyphs actually used) often removes most of it.
- Structure and metadata. Form fields, annotations, revision history, embedded thumbnails, and leftover editing data. Usually the smallest contributor, but it is the cheapest to strip.
The three compression strategies, and what each costs you
“Compress this PDF” is ambiguous, because there is a real trade-off between size and fidelity. In practice there are three distinct operations:
| Strategy | What it does | Typical saving | Cost |
|---|---|---|---|
| Lossless optimisation | Recompresses streams, drops duplicate objects and unused metadata | 5–20% | None — output is visually identical |
| Font subsetting | Keeps only the glyphs the document actually uses | 10–40% on font-heavy files | None for viewing; text stays selectable |
| Image downsampling | Resamples images to a lower resolution and re-encodes them (often JPEG) | 50–90% | Real quality loss; scanned text can become mushy |
The mistake people make is reaching for the third strategy when the first two would do. If you are emailing a text-heavy contract, lossless optimisation plus font subsetting usually gets you under the limit with no visible change at all.
How to do it in the browser
The reason this works locally is that browsers have had the pieces for years: the File API to read a file from disk without uploading it, typed arrays to hold binary data, and WebAssembly for compression code compiled from C. A PDF compressor built this way reads the file into memory in your tab, rewrites it, and hands you a download. Nothing crosses the network.
- Open the PDF compression tool from PDFBay.
- Select your file. It is read locally — you can confirm this by disconnecting from the network before you start, and the tool will still work.
- Choose a strategy. Start with lossless; only downsample images if the file is still too large.
- Check the before/after size, then download.
How to tell whether the result is still good enough
Open the compressed file and zoom to 100% on the smallest text in the document. This is where aggressive compression shows itself first: letters lose their crisp edges and start to look slightly grey or fuzzy. If small print is still sharp, the compression was reasonable. If you are going to print the file, check a printed page rather than the screen — print resolution is less forgiving than a display.
Always keep the original. Compression is one-way, and re-compressing an already-compressed PDF degrades it further each time.
When local compression is not the right tool
- The file is huge. Browser memory is bounded by your device. Very large documents — several hundred megabytes — may exhaust the tab. A desktop tool such as Ghostscript handles those better and is worth installing if it is a recurring job.
- You need OCR. Recognising text in a scan is a distinct operation from compressing it, and needs its own pass.
- You need a specific profile. Some print and archival workflows require PDF/X-1a or PDF/A conformance. Those are standards-compliance jobs, not size-reduction jobs.
The short version
Sensitive document? Use a browser-based compressor, so no copy ever leaves your machine. Start with lossless optimisation and font subsetting, and only reach for image downsampling when those are not enough — then check small text at 100% to confirm the result is still legible.