Skip to content

Compress PDF Online Free

Squeeze a PDF down to fit a 25MB email cap. Lossy by design — text becomes pixels, but the file gets small.

In your browseryour files never leave your device.

Learn more

Rasterizes pages to JPEG. Great for scanned PDFs (typically 60-80% smaller). Text-only PDFs may not shrink and lose sharpness — keep the original in that case.

Files never leave your browser. Compression uses pdf.js + pdf-lib locally. Output is image-based — selectable text is lost in exchange for size savings.

About this tool

Compressing a PDF is mostly about making image-heavy files small enough to attach to an email. Gmail caps you at 25MB, Outlook at 20MB, and most company portals reject anything bigger than 10MB. This tool rasterizes each page into an image using pdf.js, recompresses the image as JPEG at one of three quality levels, and writes a new PDF where every page is a single embedded image. That is the trade-off — selectable text becomes pixels, and the visual quality drops at strong settings. For scanned reports and image-heavy decks it works great. For a 12-page text-only contract it will often make the file bigger or grainier than the original, and the page surfaces that honestly rather than handing you a worse output and pretending it is better. Compression runs in your browser using a Web Worker for pdf.js plus pdf-lib for the output, so the file never uploads anywhere. The how-to and FAQ below cover what to expect from each setting and what the tool deliberately does not do.

How to compress pdf online free

  1. Drop in your PDF

    Any PDF works regardless of how it was made (scanned, exported from Word, generated by a report engine, photographed by phone).

  2. Pick a compression level

    Light keeps quality near original at modest size savings (around 20-40%). Medium is the sensible default for most email use. Strong shrinks aggressively at the cost of visible quality loss — best on scanned material.

  3. Click Compress

    The page rasterizes each page at the chosen DPI, then re-encodes as JPEG. Before and after sizes appear in the status area as it works.

  4. Decide if it is worth it

    If the output is larger than the input, the page tells you to keep the original. Otherwise click Download to grab the compressed file.

Why use this tool

Your bank statement is 38MB because each page is a 300 DPI scan, and you need to email it to your accountant who keeps complaining about attachment size. You shot photos of a whiteboard during a meeting, dropped them into a PDF, and now the file is 80MB. You scanned a 90-page user manual to share with someone overseas and the file is 120MB which their email provider rejects. You have a slide deck of product mockups (every slide is essentially a screenshot) and the deck weighs in at 60MB. You are uploading a scanned ID to a portal that caps attachments at 5MB and the source file is 14MB. These are the cases where compress actually saves you time. For text-only PDFs — a CV, a typed letter, a Word doc you exported — the compress tool is the wrong tool and you should use it sparingly. The page surfaces this honestly when the output would be larger than the input and tells you to keep the original.

Features

Three honest quality levels

Light targets 150 DPI at JPEG quality 85 — visually near the original on screens, modest savings around 20-40% on image-heavy PDFs. Medium drops to 110 DPI at quality 70, which is the sensible default for email attachments where the recipient is reading on a phone or laptop screen. Strong is 90 DPI at quality 55 and is what you use when you absolutely need the file under 5MB and quality is secondary. Each level shows you the projected output before you commit, so you can pick the right trade-off for your use case.

Refuses to make files bigger

If the compressed output ends up larger than the input (this happens with text-only PDFs because rasterizing crisp vector text into JPEG is inherently inefficient), the page surfaces a warning and tells you to keep the original. No silently shipping a worse file. Some compress tools will happily hand you a 12MB output from a 4MB input — this one will not. The behaviour is deliberate; it protects users from picking the wrong tool for the wrong job.

Page dimensions preserved

A compressed A4 PDF still prints at A4. The rasterizer keeps the original page size in points and only changes the embedded image resolution. So a 90-page user manual that was printed for B5 stays B5 after compression — handy when you need to feed the output back into a print workflow or a PDF reader that respects page sizes. Mixed-orientation PDFs (some pages portrait, some landscape) also keep each page's original dimensions and rotation.

Runs entirely in your browser

The file never uploads. Compression uses a Web Worker to run pdf.js (for rendering each page to a canvas) and pdf-lib (for writing the output PDF) entirely on your CPU. Open the Network tab while compressing and you will see no outgoing requests for the file bytes. This matters for legal documents, medical scans, financial statements — anything where uploading would be its own risk. It also means there is no daily cap and no rate limit.

Privacy & security

Compression happens entirely in your browser. PDF.js parses each page, the Canvas API renders it to a bitmap, the browser's native JPEG encoder writes the compressed image, and pdf-lib reassembles the result — all client-side. The bigger the PDF, the longer this takes, because rendering is your CPU's job and large scans burn cycles. The original file stays in your tab and the compressed output is generated locally before your browser saves it; nothing in this flow touches our server.

Frequently asked questions

How much smaller will my PDF get?
Depends entirely on what is in it. Image-heavy and scanned PDFs typically lose 50-80% at the Strong setting and 30-60% at Medium. Text-only PDFs (CVs, typed letters, exported Word docs) often shrink very little and sometimes grow, because rasterizing crisp vector text into JPEG is inefficient. The tool surfaces the actual before/after sizes so you can decide if it is worth keeping the compressed version. The savings on image-heavy material come from re-encoding the embedded images at a lower DPI and quality; on text-only PDFs there is no embedded image to recompress, so the rasterization actually adds bytes.
Will text in the output still be selectable?
No. The compressor rasterizes each page to a JPEG image and rebuilds the PDF around those images. Selectable text becomes pixels, and so does anything that depended on text being a real object — bookmarks pointing to a paragraph, form fields, hyperlinks anchored to specific characters. If you need a smaller file that keeps selectable text and proper text reflow, the right tool is a server-side PDF optimizer (PDF24, Smallpdf, Adobe Acrobat) — the trade-off there is that you upload the file. For most email-attachment use cases the lossy approach here is fine because the recipient just needs to read the PDF, not search it.
Why is my compressed text blurry?
Because the page rasterized your text into a JPEG at low DPI. Strong compression uses 90 DPI which is fine for screen viewing and rough printing but looks soft compared to the original vector text, especially at zoom levels above 100%. Try Light or Medium and the blur goes away (in exchange for less size reduction). For text-heavy PDFs, this kind of compressor is genuinely the wrong tool — keep the original and email it as-is, or split it into smaller PDFs with the split tool, or use a server-side optimizer that preserves vector text.
Will it fit Gmail or Outlook attachment limits?
Most scanned documents drop under 25MB (Gmail's limit) in a single pass at Medium or Strong. Outlook caps at 20MB. If your PDF is, say, 80MB of scanned receipts, Strong will likely get it under both caps. For genuinely huge inputs (200MB+) you may need to split the PDF into halves first with the split tool, compress each half, then merge them back with the merge tool. The page shows you the output size right after compression, so you know whether to try a stronger setting before downloading.
Does it work on a phone?
Yes, in any modern mobile browser. Phones with limited RAM may struggle with very large PDFs (200MB+) because pdf.js loads the entire document into memory before rasterizing. For a typical 10-50MB scan, a recent iPhone or Android handles it in 10-20 seconds. The compression is CPU-heavy so older phones get warm; do not be surprised if your phone fans up. The tool keeps the UI responsive by running the heavy work in a Web Worker.
Is there a size cap?
No hard cap is set in the code. Practical ceiling is around 200MB on a laptop, 100MB on a phone, because the page has to hold the original plus the rasterized output in browser memory at the same time. Beyond that the browser will run out of memory and the tool errors out cleanly instead of freezing. If you have something that big, split it first, compress the halves, and merge them back.
My PDF only has one page. Should I still use this?
Only if that one page is a high-resolution scan or photo. For a single-page text PDF (a one-page CV, a typed letter, a generated invoice) compression usually does not help — the original is already small. Look at the file size first; if it is already under 1MB there is nothing to compress, and the lossy rasterization will just make it look worse without saving meaningful bytes.
Will compression break my signed PDFs?
Yes — that is one of the things this kind of compression definitely does. Digital signatures sign the bytes of the original PDF, and the compressor rebuilds the PDF from scratch with rasterized pages, so the original signature no longer matches the new content. If you need the signature to remain valid, do not compress the file after signing. The right order is: edit, then compress, then sign, then send.
Does it preserve hyperlinks?
No. Hyperlinks in PDFs are stored as link annotations tied to text or page regions, and after rasterization the text is just pixels — there is nothing to attach a link to. If your PDF has clickable URLs that need to stay clickable, do not run it through this compressor. Use a server-side optimizer that keeps the link annotations intact (PDF24 or Smallpdf both do), or compress only the image content of the PDF using Acrobat's advanced optimize settings.
Can I compress a password-protected PDF?
Not directly. Encrypted PDFs need to be unlocked first with the PDF unlock tool (you need the password), then compressed, and optionally re-encrypted afterward with the protect tool. The three-step flow is annoying but it prevents the compressor from silently failing on locked files. All three tools run in your browser, so the password never leaves your device.
Does the compress preserve PDF/A archival format?
No — the lossy rasterization approach breaks PDF/A conformance. PDF/A is an ISO standard for long-term archiving that requires embedded fonts, no external dependencies, and specific encoding rules. The compressed output here is a regular PDF with rasterized pages, which fails PDF/A validation. If you need archival compliance, do not compress; either keep the original or use a PDF/A-aware optimizer like Acrobat's Save As Optimized PDF.
What about PDFs with mixed content — some scanned pages, some typed?
The compressor treats every page the same way: rasterize at the chosen DPI and re-encode as JPEG. So the scanned pages shrink as expected, and the typed pages get rasterized too (losing their crisp vector text). For mixed documents you might consider splitting first, compressing only the scanned-half, and merging back with the original typed-half pages. Three-tool flow, but it gives you the best of both: small file overall, crisp text where it matters.
Does my browser support the compression?
Any modern browser does — Chrome, Firefox, Safari, Edge from the last 4-5 years. The tool uses WebAssembly for pdf.js (rendering) and pdf-lib (PDF assembly), both of which have been supported in mainstream browsers since 2017. Internet Explorer is not supported (it has been deprecated by Microsoft anyway). If you see a load error, your browser is probably too old; updating to the latest version fixes it.