Skip to main content
image&pdf.com

Compress PDF

Reduce file size while optimizing for maximal PDF quality.

Secure processingNo signup required100% freeDeleted in 1h

Drop your PDF here

or click to browse

PDFMax 200 MB

What is Compress PDF?

PDFs grow because most authoring tools leave a lot of slack in the file: duplicated fonts across re-saved revisions, uncompressed object streams from scanners that wrote /FlateDecode in pass-through mode, embedded JPEG previews of every page, an optional content group nobody enabled, and the cross-reference table written out the long way. The compressor here uses pikepdf — the Python bindings for qpdf, the same engine industrial PDF pipelines use — to re-emit the file with modern object-stream packing, recompressed flate streams, and (on the "low" preset) the metadata block stripped. Pages render pixel-identical to the source because the engine never touches the content streams that draw glyphs and images; only the container around them. The quality knob isn't about visual quality (you keep that regardless) — it's about how aggressively to rewrite the container. "High" preserves streams as-is and just repacks objects, useful when you need bitwise compatibility with downstream consumers. "Medium" recompresses every flate stream at maximum effort, which is the right default for almost everything. "Low" adds the metadata strip on top, which shaves a few extra KB when you're fighting a tight email or portal cap.

Why use this tool?

pikepdf preserves every page, every glyph, every embedded image, every form field, every hyperlink, and every signature. That last one matters: many web compressors break detached digital signatures because they re-encode the cross-reference table without preserving the byte ranges the signature commits to. This tool does not. The file uploads over HTTPS to our private compression worker and is deleted from disk immediately after the response is sent. We do not log filenames, we do not retain copies for "service improvement", and we do not send any telemetry that includes file content. The /security page describes the exact retention behaviour.

Common use cases

The single most common trigger is an attachment cap. Outlook/Exchange caps at 25 MB and bounces silently if you exceed it; many Gmail filters reject above 25 MB after MIME encoding even if Google says the limit is 25; iCloud Mail caps at 20 MB after attachment encoding. A 30-page scanned contract from a Brother MFC scanner is routinely 40–80 MB before compression. Run it through "medium" once and most fit under the cap; run "low" if you're still 1–2 MB over. The second-most-common case is government and education portals — passport renewals, visa applications, tender submissions, university coursework — which often cap per-file uploads at 2 MB or 5 MB. For these, pair this tool with /pdf/compress-to-100kb (which uses ghostscript-style image downsampling) when even "low" can't hit the cap. A third case is page-by-page WhatsApp/Telegram forwarding: the 100 MB media cap is generous, but compressing first means a faster send on a flaky cell connection.

How to use Compress PDF

  1. 1Pick a preset on the right: "Recommended" (medium) is right for 90% of cases; switch to "Lossless" if you need byte-stable output for legal/signed PDFs
  2. 2Drop your PDF onto the upload area — multi-hundred-MB files are accepted
  3. 3Wait 1–5 seconds (text PDFs) or 5–30 seconds (image-heavy PDFs) for the worker to finish
  4. 4Check the savings percentage shown next to the download button
  5. 5Download — the original filename is preserved with "_compressed" appended

Frequently asked questions

My PDF only shrunk 4%. Why?
Either your source was already saved by a modern PDF library (most exports from current LibreOffice, Word, Pages, or InDesign land within 5% of the qpdf-optimised size), or it's mostly photos that are already compressed at the JPEG codec layer — re-packaging the PDF container doesn't recompress already-compressed images. For photo-heavy PDFs that need more shrinkage, the right tool is /pdf/compress-to-100kb (or "Compress to Target Size"), which downsamples the embedded JPEGs at controlled DPI steps. The standard compress tool here is for container-level optimisation.
Is signed/certified PDF integrity preserved?
Yes for detached signatures using the standard ByteRange convention, because pikepdf preserves the signed byte ranges intact. No for any compressor that recompresses content streams (which is most consumer-grade tools) — they invalidate the signature because the bytes the signer committed to no longer hash to the same value. If you're unsure, run the "high" preset, which is the safest mode for downstream verification.
Does the worker keep my file?
No. The pikepdf worker writes the upload to a temp directory, runs the save() call, streams the output back, and unlinks both the input and output the moment the response closes. No filename, no hash, no excerpt is persisted. The only thing logged is the duration of the call and the before/after byte size, which is anonymous.
What about encrypted PDFs?
The compressor opens encrypted PDFs with ignoreEncryption=True if the document was opened with owner-only restrictions, but it cannot bypass user-password protection. For password-protected files, you'll need to unlock them first (use /pdf/unlock-pdf with the password) and then run compression. The output is not re-encrypted — apply protection again with /pdf/protect-pdf if you need it.
I see Adobe says my "compressed" PDF is bigger after I edited it elsewhere. Why?
PDF growth on edit is common with tools that append rather than rewrite — every save appends an incremental update section instead of compacting the file. After several edits, the file can balloon 3–5× even though the visible content barely changed. Running it through this compressor once collapses the incremental updates into a single optimised representation, which is usually the size you actually expected.
Why not run compression in-browser like remove-background does?
qpdf doesn't have a stable WebAssembly build that handles the full range of PDF features we need (object streams, encryption, signatures), and the streaming JS PDF libraries either drop pages or corrupt object streams on real-world inputs — which we caught in production and migrated away from in June 2026. Server-side pikepdf is currently the right trade-off: predictable behaviour at the cost of a few hundred KB of HTTPS upload.
Can I compress in batch (multiple files at once)?
Single file per request, on purpose — that's how we keep the worker queue predictable and the rate limit fair. For batches, the right pattern is to upload each file once, then run them through in sequence. If you're doing this regularly (50+ files/week), email us — we have a tiny CLI wrapper around the same endpoint that we can share for that use case.
Does it strip metadata or only with the "low" preset?
Only on "low". The default keeps Title, Author, Subject, Keywords, CreationDate, ModDate, Producer, and any XMP metadata block. If your PDF was generated by a tool that embeds your real name + computer name in Author/Producer (Word and Pages both do this), use "low" or run a separate pass through /pdf/remove-metadata if you only want metadata stripped without further compression.

Pro tips

  1. 1If you're compressing a scanned PDF and the "medium" output is still huge, the bottleneck is JPEG quality inside the document — use /pdf/compress-to-100kb instead, which downsamples those embedded JPEGs at controlled DPI steps. Standard compress keeps the JPEGs untouched on principle (because changing them is irreversible).
  2. 2When you stitch multiple PDFs together with /pdf/merge-pdf, the merged result usually carries duplicated font tables and ICC color profiles from each source file. Run compress once on the merged output — savings of 15–30% are typical and the visual result is identical.
  3. 3For PDFs you're submitting to a portal with a tight cap (passport renewal, university submission), don't guess: open the upload form first, note the actual KB limit they show, then choose this tool or compress-to-100kb. A portal that says "max 500 KB" means exactly 500 × 1024 bytes — there's no rounding.

How does it compare?

Adobe Acrobat's "Reduce File Size" subscription is $14.99/month minimum and runs the same qpdf operations under the hood. Smallpdf and iLovePDF impose 2-files-per-day free limits and queue your file behind a paywall after that. This tool is free, no daily cap, runs qpdf at its highest-effort setting, and preserves signature byte ranges that most consumer compressors break.