If you've been hunting for a WordPress image compression plugin that doesn't route your images through a third-party server, doesn't cap your free tier at 100 images a month, and doesn't require an API key — this is the tutorial for you. ShrinkTo runs the compression engine directly inside your WordPress admin browser, which makes it fundamentally different from Smush, ShortPixel, Imagify, and EWWW. Here's how to install it, use it for your first compression, run a bulk job on your entire media library, and configure it for production.

🚀
Want to try the plugin without installing anything? Open the live WordPress demo — a full WordPress instance with ShrinkTo pre-installed, running in your browser. Boots in 8-15 seconds. No signup.

What ShrinkTo does (and how it's different)

ShrinkTo is a WordPress image compression plugin that runs the compression engine in your admin browser tab using the HTML5 Canvas API. That single architectural choice changes everything downstream:

  • No API key. Smush, ShortPixel, and Imagify all require you to register, get an API key, and route images through their servers. ShrinkTo has nothing to register for.
  • No monthly limit. Server-based plugins cap free tiers because each compression costs them CPU. ShrinkTo runs on your computer's CPU, so the free tier is genuinely unlimited.
  • No data leaves your site. Your images are never uploaded anywhere. You can verify this in DevTools → Network while compressing.
  • Works on shared hosting. No ImageMagick, no GD requirement, no server-side image libraries needed.
  • Exact KB targeting. Type "50 KB" and the plugin lands within 0.5 KB of that target via binary search. Other plugins only offer "quality" sliders.

The trade-off: compression happens when you, the admin user, are using the WordPress admin. There's no background automatic compression of uploads from visitors — that's the next version. For most blogs, content sites, and small e-commerce stores, this is fine: you upload media weekly, you can compress weekly.

Step 1 — Install the ShrinkTo plugin

Option A — Try the demo first (recommended)

Before installing on your production site, open the browser-based demo. A full WordPress + ShrinkTo runs in your browser tab. Test every feature for 5-10 minutes. No risk to your real site. When you close the tab, the demo disappears.

Option B — Manual install (current method)

The plugin is in review at WordPress.org. Until the directory listing is live, install manually:

  1. Download the plugin zip from shrinkto.com/downloads/shrinkto-plugin.zip.
  2. In your WordPress admin, go to Plugins → Add New → Upload Plugin.
  3. Click Choose File, select shrinkto-plugin.zip, then Install Now.
  4. Click Activate Plugin.

You'll see a new ShrinkTo menu in the left sidebar of wp-admin.

Option C — Install from WordPress.org (after approval)

Once the directory listing goes live, the standard route works:

  1. Plugins → Add New
  2. Search for "ShrinkTo"
  3. Install Now → Activate

Requirements

The plugin works on any reasonably modern WordPress install:

  • WordPress 5.5 or newer (released 2020, so practically every install)
  • PHP 7.4 or newer (PHP 8.0+ recommended)
  • A modern admin browser — Chrome, Firefox, Safari, Edge from the past 3 years

No ImageMagick required. No GD library required. No special hosting needed. It runs identically on shared hosting, managed WordPress, and self-hosted VPS.

Step 2 — Compress your first image

From the WordPress admin:

  1. Click ShrinkTo → Image Compression in the left sidebar.
  2. You'll see a dropzone with target size chips along the top: 20 KB · 50 KB · 100 KB · 200 KB · 500 KB · 1 MB · custom.
  3. Pick a target. For a blog featured image, 100 KB is the sweet spot — small enough for fast LCP, large enough to look sharp at 1200×630.
  4. Choose output format. JPG for photos, WebP for modern sites that don't need legacy browser support, PNG only for screenshots or logos.
  5. Drag your image into the dropzone (or click to browse). The plugin accepts JPG, PNG, WebP, HEIC, GIF, BMP up to 50 MB.
  6. Click Compress.

The compression runs locally — usually 0.3 to 1 second for a typical phone photo. You'll see a side-by-side preview of the original vs compressed with the SSIM quality score and the actual file size.

Three things you can do with the result:

  • Download — saves to your computer's Downloads folder.
  • Save to Media Library — adds it as a new attachment in WordPress.
  • Copy URL — copies the data-URL of the compressed image for pasting into a post body directly (skips the media library entirely).

What "exact KB target" actually means

This is the killer feature versus other WordPress image compression plugins. Smush gives you a quality slider — you can't ask it to "make this 75 KB". ShrinkTo runs binary search: it tries quality 50, measures the result, then adjusts up or down. Six to eight iterations converge within 0.5 KB of your target on the first try.

Why this matters for WordPress specifically: many themes have featured image sizes set in stone (1200×630 for OG cards, 800×400 for thumbnails). If you target a specific KB cap, every featured image on your site has identical file size. That makes performance reports predictable — your Core Web Vitals stop having photo-of-the-day variance.

Step 3 — Use exam presets (Indian government forms)

If you run a coaching site, exam-prep blog, or any WordPress site whose users upload photos for Indian government exams, ShrinkTo has 14 built-in presets that auto-set the right dimensions, KB cap, and format:

Exam preset Photo spec Signature spec
SBI Clerk200×230 px, 20-50 KB140×60 px, 10-20 KB
IBPS PO / Clerk200×230 px, 20-50 KB140×60 px, 10-20 KB
UPSC CSE350×350 px, 20-300 KB350×350 px, 20-300 KB
SSC CGL100×120 px, 20-50 KB140×60 px, 10-20 KB
NEET UG200×230 px, 10-200 KB110×140 px, 4-30 KB
JEE Main200×230 px, 10-200 KB140×60 px, 4-30 KB
GATE240×320 px, 5-200 KB250×80 px, 5-150 KB
RBI Grade B200×230 px, 20-50 KB140×60 px, 10-20 KB

Plus 4 passport country presets (USA, UK, India, Schengen). Workflow:

  1. Open ShrinkTo → Image Compression
  2. Click Exam Presets dropdown
  3. Pick the exam you're applying for
  4. The dimensions, KB cap, and format auto-set
  5. Drop a portrait photo, hit Compress
  6. Download — output is portal-compliant on the first try

Specs are sourced from each exam's current official notification. If a portal changes its requirements, the preset is updated in the next plugin release.

Step 4 — Bulk re-compress your entire media library

If you've been running WordPress for a while, your wp-content/uploads/ folder probably has thousands of unoptimized images from the days before you cared about Core Web Vitals. ShrinkTo's Bulk Library tool re-compresses them all.

Before starting, back up wp-content/uploads/. The bulk processor replaces original files in place — it regenerates WordPress thumbnails server-side, but there's no automatic rollback if you change your mind. A backup is your rollback.

Workflow:

  1. Open ShrinkTo → Bulk Library
  2. The page auto-scans your media library and shows stats: total images, total disk space used, breakdown by format.
  3. Pick your filters:
    • Minimum size — skip images already smaller than this. Recommended: 50 KB. Anything smaller probably isn't worth re-processing.
    • Format — limit to one MIME type (JPG, PNG, WebP) or process all.
    • Target KB — what each image should be compressed to. For a typical content site, 200 KB is a good blanket target.
  4. Click Start bulk compression.
  5. The browser tab processes images sequentially. Keep this tab open — if you close it, processing stops. Closing and reopening pauses; you can resume.
  6. Each image: fetched from your media library URL, compressed in the browser, posted back to WordPress, which replaces the file and regenerates thumbnails.
  7. Progress UI updates in real time: processed count, bytes saved, skipped (savings < 5%), errors.

On a typical media library of 500-1000 images, the bulk job takes 15-30 minutes. Most users find Bulk Library saves 60-80% of their media library disk space on the first pass.

How much can you save?

A real example: a WordPress food blog with 847 images, all uploaded in 2019-2023 at default WordPress quality. Total media library size before: 3.4 GB. After running Bulk Library at 200 KB target: 0.9 GB. That's 73% savings, freeing 2.5 GB of hosting space and dropping the average image LCP from 2.8s to 1.1s. Took 22 minutes of admin-tab-open time.

Step 5 — PDF tools (bonus)

Most WordPress image compression plugins do only images. ShrinkTo also includes a PDF tools page because PDFs in the media library suffer the same problem — vendor-uploaded PDFs balloon to 30-50 MB and tank both your storage and your download speed for visitors.

From the WordPress admin, ShrinkTo → PDF Tools offers:

  • Compress PDF — typically 50-80% size reduction, runs in browser via pdf-lib.
  • Merge PDFs — combine multiple PDFs into one.
  • PDF → JPG — extract each page as a JPEG. Useful for thumbnails.
  • JPG → PDF — combine multiple images into a single PDF.

Same architecture as the image side: nothing is uploaded to any server. PDF processing happens in your admin browser using pdf-lib (compress, merge, jpg→pdf) and pdf.js (pdf→jpg rasterization).

Step 6 — Recommended settings for production

Open ShrinkTo → Settings and configure these for a typical content WordPress site:

Default target size

  • Blog content sites: 150 KB
  • E-commerce product photos: 100 KB (faster loading is more important than maximum detail)
  • Photography portfolios: 300 KB (quality matters more)
  • News/magazine sites: 100 KB

Default output format

If your site has > 95% modern browser traffic (check Google Analytics for browser breakdown), set default to WebP. You'll save another 25-30% file size vs JPG at equivalent quality. Otherwise stick with JPG for universal compatibility.

Auto-resize max dimension

Default 1920 px is fine for most sites. If your theme never displays images wider than 800 px (typical for blog content), set this to 1200 px and you'll save extra file size with zero visible difference.

Skip threshold

The bulk processor skips images where compression saves less than 5%. This default is good. Lower it to 2% if you want to be more aggressive; raise it to 10% if you want to skip marginal cases.

Step 7 — Run a PageSpeed audit

Click ShrinkTo → Performance. The plugin calls Google PageSpeed Insights against your homepage and shows the report inline — Largest Contentful Paint, Cumulative Layout Shift, Total Blocking Time, and the image-specific opportunities.

This is the easiest way to measure the impact of your bulk compression: run an audit before bulk-compressing, run another after. You'll see LCP drop, "Properly size images" disappear from the opportunities list, and overall Performance score increase by 5-15 points.

Common issues and fixes

"Plugin requires JavaScript"

The compression engine is pure JavaScript running in your admin browser. If you have a browser extension that blocks JavaScript (NoScript, uBlock Origin in strict mode), the plugin pages won't function. Whitelist your WordPress admin domain.

Bulk Library shows "v1.1 backend integration required"

You're running an older 1.0 alpha build of the plugin. Update to the current 1.0.0 release from shrinkto.com/downloads/shrinkto-plugin.zip. The current build has the real bulk implementation.

Compression produces a larger file than the original

This can happen if your "original" was already heavily compressed (e.g., a 30 KB photo you're trying to compress to 50 KB). The plugin won't artificially inflate file size — if the input is smaller than your target, it returns the input unchanged. Check the "Result" section: it'll say "No compression needed."

HEIC photos from iPhone won't upload

Older WordPress versions (pre-5.8) reject HEIC uploads at the server level. Update WordPress to 5.8+ or use the plugin's Compress + Convert HEIC option to convert in-browser before saving to media library.

Bulk Library stops processing when I close the admin tab

This is expected. Compression runs in the admin tab's JavaScript thread — closing the tab kills the worker. The next time you open ShrinkTo → Bulk Library, click Resume to continue where it left off.

How ShrinkTo compares to other WordPress image compression plugins

Plugin Free tier Uploads to server? Exact KB target
ShrinkToUnlimitedNo (browser-only)Yes
Smush (WPMU DEV)50/month free, 5 MB capYesNo
ShortPixel100/month freeYesNo
Imagify25 MB/month freeYesNo
EWWW Image OptimizerUnlimited (local)No (server-side)No

The closest competitor in philosophy is EWWW — it also runs locally rather than via API. The difference: EWWW does compression on your WordPress server (requires server CPU and ImageMagick/GD). ShrinkTo does it in your admin browser (no server load at all). For shared hosting on cheap plans, ShrinkTo wins because it doesn't add server load. For dedicated WordPress hosting with spare CPU, EWWW's automatic-on-upload behavior is more convenient.

For everyone else — Smush, ShortPixel, Imagify users — switching to ShrinkTo means: no more API key, no more monthly limit, no more "your images are now on their server", and the new ability to hit exact KB targets.

Ready to try it? Open the live demo to test before installing, or download the plugin zip and upload to your WordPress admin. Both are free.

Frequently asked questions

Is the ShrinkTo WordPress plugin free?

Yes — fully free with unlimited image compressions, unlimited bulk processing, and no monthly cap. Because compression runs in your admin browser (not on a vendor server), there are no per-image costs to recover, so the free tier is sustainable forever.

Does the ShrinkTo plugin upload my images to an external server?

No. All compression happens in your admin browser tab using the HTML5 Canvas API. You can verify this by opening DevTools → Network in your WordPress admin before clicking compress — there are no outbound requests carrying image data. This is the main architectural difference from Smush, ShortPixel, Imagify, and similar plugins.

Will the ShrinkTo plugin slow down my WordPress site?

No, because compression runs in your admin browser, not on the WordPress server. There is no server CPU cost during compression operations. The plugin adds about 200 KB of JavaScript loaded only on plugin admin pages — your front-end site is completely untouched.

How do I compress images to a specific KB size in WordPress with ShrinkTo?

Open ShrinkTo → Image Compression in your WordPress admin. Click a target size chip (20 KB, 50 KB, 100 KB, 200 KB, 500 KB, 1 MB) or type a custom value. Drop your image into the dropzone. The plugin uses binary search across JPEG quality levels to land within 0.5 KB of your target on the first try — usually in under a second.

Can ShrinkTo bulk re-compress my existing WordPress media library?

Yes. Open ShrinkTo → Bulk Library, pick your filters (minimum size, format, target KB), and click Start bulk compression. The plugin processes images sequentially in your admin tab. A typical 500-1000 image library takes 15-30 minutes. Back up wp-content/uploads/ before the first run since files are replaced in place.

Does the plugin work on shared hosting like Hostinger, Bluehost, or SiteGround?

Yes — it works on any WordPress hosting because it requires no server-side image processing libraries. No ImageMagick, no GD, no special configuration. The plugin needs only WordPress 5.5+ and PHP 7.4+, which every host supports.

Can I use ShrinkTo to compress passport photos and Indian government exam forms?

Yes — the plugin includes 14 built-in exam presets (SBI Clerk, IBPS PO/Clerk, UPSC CSE, SSC CGL, NEET, JEE Main, GATE, RBI Grade B, RRB plus more) and 4 passport country presets (USA, UK, India, Schengen). Pick the preset, drop your photo, and the output is portal-compliant.

How is ShrinkTo different from Smush?

Three big differences: (1) ShrinkTo is fully unlimited free — Smush caps the free tier at 50 images per month; (2) ShrinkTo runs in your browser — Smush uploads to their API servers; (3) ShrinkTo has exact KB targeting — Smush only offers quality-level settings.

Where can I try the ShrinkTo WordPress plugin before installing?

Open shrinkto.com/demosite for a live, browser-based WordPress instance with the plugin pre-installed. Powered by WordPress.org Playground (WebAssembly). Boots in 8-15 seconds. No signup, no risk to your real site. Close the tab when done.

Does ShrinkTo work with WordPress Multisite?

Yes. The plugin can be activated network-wide or per-site. Each site has its own settings, stats, and bulk library state. Tested on Multisite installations up to 50 subsites.