
I kept running into the same problem: every image compressor I used either uploaded my files to a server (not great for client work) or froze the browser tab mid-compression.
So I built CompressImg β a free image compressor that runs 100% in your browser. Files never leave your device. No sign-up, no watermarks, no limits.
The hardest part wasn't compression β it was performance.
Initial PageSpeed score on mobile: LCP 7.1s. That's terrible for an SEO-focused tool.
The culprit: loading AdSense and GA4 with afterInteractive instead of lazyOnload. One config change dropped LCP from 7.1s β 2.0s on mobile.
Other wins:
Stack: Next.js 14 (static export) + browser-image-compression + Vercel + heic2any + gifuct-js
Where I am now (3 weeks in):
The SEO strategy: long-tail first β "compress image to 100kb", "photo compressor", "reduce image size" β before going after head terms.
What surprised me: content depth matters more than I expected. Pages with 1000+ words + FAQ schema + comparison tables get crawled faster and rank higher, even at the same URL age.
Happy to answer questions about the Web Worker setup, Next.js static export + SEO, or the privacy architecture. Open to honest feedback on the tool too.
The Web Worker approach makes a lot of sense, especially when users are processing larger images. Keeping the processing client side also helps when privacy is important. For simpler resizing and compression tasks, I have also found browser based tools useful when you do not want to install another app.