Description
EmiCache is the fastest free WordPress cache plugin built for Elementor, WooCommerce, and modern page-builder sites — engineered from the ground up to maximize PageSpeed Insights scores, Google Core Web Vitals (Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift), Lighthouse audits, and GTmetrix grades right out of the box. One lightweight plugin replaces the typical stack of separate page caching, lazy load, image optimization, critical CSS, JavaScript defer, minify, and CDN plugins, so your plugins folder stays clean and your front-end stays fast.
EmiCache runs cleanly on LiteSpeed Web Server, OpenLiteSpeed, Nginx, and Apache with full feature parity across every stack. It auto-detects server capabilities like Brotli compression, AVIF image support, OPcache, Redis, and Memcached, then enables the matching modules automatically — there is nothing to tune by hand, no provider-specific quirks, and no premium upsell wall. Whether your site lives on Cloudways, Hostinger, SiteGround, Kinsta, WP Engine, a shared cPanel host, or a self-managed Docker / Nginx / PHP-FPM VPS, EmiCache adapts to the environment and picks the optimal cache backend, compression layer, and asset delivery path for that stack.
Built for Elementor and WooCommerce
Elementor and WooCommerce sites are consistently among the slowest WordPress installs in the wild — they stack heavy CSS bundles, jQuery dependencies, builder-generated dynamic styles, scroll-triggered animations, and cart-fragment AJAX that cripple Largest Contentful Paint and Interaction to Next Paint scores. EmiCache ships with builder-aware defaults so the first page load is lighter, faster, and layout-stable from the moment you activate the plugin. Elementor widget animations, slider scripts, and dynamic Elementor CSS stay intact while non-critical plugin stylesheets are deferred via the media="print" onload swap pattern, hero images get fetchpriority="high" preload hints, and entry animations are optionally disabled so scrolling and navigation feel instant on mobile. WooCommerce cart, checkout, my-account, and add-to-cart pages are auto-excluded from the cache, the heavy wc-cart-fragments AJAX call can be limited to actual cart pages, and WooCommerce-only CSS and JS are dequeued from blog posts and landing pages where they would otherwise bloat every request. Compatibility is also tested and tuned for Divi, WoodMart, Avada, Astra, GeneratePress, Kadence, Blocksy, OceanWP, Hello Elementor, WPBakery / Visual Composer, Slider Revolution, AOS, Element Pack, and Animate.css.
Why EmiCache
- Fastest free cache for Elementor and WooCommerce — outperforms popular free alternatives on real PageSpeed Insights, Lighthouse, and GTmetrix benchmarks
- Works on LiteSpeed, Nginx, and Apache — full feature parity across every stack, with LiteSpeed Cache (LSCache) coexistence support so you can keep server-level caching while EmiCache handles minification, lazy loading, WebP, critical CSS, and CDN delivery
- All-in-one performance suite — full-page cache, HTML / CSS / JS minify and combine, lazy loading, WebP and AVIF conversion, critical CSS, CDN integration, database cleanup, and persistent object cache in one plugin
- Lightweight frontend — vanilla JavaScript runtime under 3 KB, zero external services, no telemetry, no premium upsell walls, no account required
- Server-aware — auto-detects AVIF, Brotli, OPcache, Redis, and Memcached and enables the matching modules automatically
- Standards-compliant — GPL-2.0, sanitized inputs, escaped outputs, nonce-verified AJAX, no
eval(), no obfuscated code, no encrypted PHP - PHP 7.4 8.3 and WordPress 5.4 6.9 tested across thousands of real sites
Server Compatibility
EmiCache is genuinely server-agnostic — page caching, minification, lazy loading, image optimization, and CDN integration work identically on every supported stack. On LiteSpeed Web Server and OpenLiteSpeed the plugin coexists with LSCache so you can keep server-level caching enabled while EmiCache handles HTML, CSS, JS, and image optimization layers without conflict. On Nginx it pre-compresses cached pages to .html.gz and .html.br so a single try_files rule serves Brotli or GZIP responses with zero runtime CPU cost, and the Compression module ships ready-to-paste Nginx snippets for static asset delivery. On Apache and LiteSpeed the bundled .htaccess rules handle GZIP via mod_deflate, Brotli via mod_brotli, browser cache headers, ETag and 304 Not Modified responses, and direct-file protection out of the box. Whether your host is a shared cPanel plan, a managed WordPress platform like Cloudways, Hostinger, SiteGround, Kinsta, or WP Engine, or a self-managed VPS with Docker and PHP-FPM, EmiCache adapts to the environment without manual .htaccess edits or wp-config.php constants beyond the standard WP_CACHE define that the plugin sets for you on activation.
Core Web Vitals Optimization
Every EmiCache module is built around the three Core Web Vitals metrics that Google uses for search ranking — Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS) — plus the supporting metrics like Time to First Byte, First Contentful Paint, and Total Blocking Time that PageSpeed Insights and Lighthouse report. LCP is improved through automatic hero image preload with fetchpriority="high", critical CSS inlining per page type, render-blocking stylesheet elimination, font preloading with font-display: swap, and HTML pre-generation so the server returns a static .html file before WordPress even boots. INP is improved through JS Delay (which holds non-essential scripts like Google Tag Manager, Facebook Pixel, Hotjar, and Microsoft Clarity until the first user interaction), JS Defer for everything else, a lightweight jQuery shim that queues inline jQuery calls until the library loads, and Heartbeat API throttling that keeps admin-ajax.php quiet on idle tabs. CLS is prevented through SVG placeholders sized to match each lazy-loaded image, automatic width and height attribute injection on unsized images, and font-display tuning with size-adjust fallbacks. The result is a real, measurable PageSpeed score lift on real-world Elementor and WooCommerce sites — typically a +20 to +40 point gain on mobile when starting from a stock theme plus page builder install, and a stable green Core Web Vitals report in Google Search Console after the next 28-day data window.
Performance Modules
Full Page Cache. Static HTML files served before WordPress loads. GZIP and Brotli pre-compression, ETag headers, 304 Not Modified support, mobile-separate cache, stampede protection, and sitemap-based preload.
HTML, CSS, and JS Minification. Removes whitespace and comments from output. Preserves content inside pre, code, textarea, script, and style tags. Combine option for stylesheets and scripts.
Smart CSS Defer. Eliminates render-blocking plugin stylesheets via the media="print" onload swap pattern. Theme stylesheets and builder dynamic CSS stay render-blocking so the first paint is layout-stable.
JS Defer + JS Delay. Defer attribute injection for non-critical scripts, delay-until-interaction for tracking and widget code (Google Tag Manager, Facebook Pixel, Hotjar, Clarity, and 24 more).
Lazy Loading. Images, iframes, videos, and CSS background images load only when they enter the viewport. YouTube and Vimeo facade placeholders replace the heavy default iframe with a lightweight preview. SVG placeholders prevent CLS on unknown-dimension images.
Image Optimization. Automatic WebP and AVIF conversion using GD, Imagick, or command-line tools (cwebp, avifenc) — whichever is available. Adaptive responsive sizing generates variants at 7 breakpoints with proper srcset / sizes. Original files are never modified.
LCP Image Preload. Auto-detects the largest above-the-fold image and injects a <link rel="preload" as="image" fetchpriority="high"> hint into <head> so the LCP candidate downloads in parallel with HTML.
Disable Entry Animations. Skips scroll-triggered fade-in / slide-up entry animations from Elementor, AOS, Element Pack, WoodMart, and Animate.css. Interactive transitions (sliders, dropdowns, modals) stay active.
Smart Prefetch. Browser-native speculation rules in prefetch mode warm assets for likely navigations without re-firing entry animations.
Critical CSS. Inline above-the-fold CSS per page type. Non-critical stylesheets deferred with preload/onload plus loadCSS polyfill.
CDN Integration. URL rewriting for any CDN. Built-in CloudFlare API (purge URL, purge all, dual auth) and Bunny CDN API. Automatic cache purge on content changes.
Object Cache. File-based persistent object cache drop-in (object-cache.php) with multisite global groups, gzip compression, and file locking. Auto-detects Redis and Memcached and recommends them when available.
Compression. GZIP via mod_deflate and Brotli via mod_brotli (Apache / LiteSpeed). PHP-level Brotli pre-compression for static assets on Nginx.
WordPress Tweaks. Heartbeat API control, emoji script removal (~50 KB saved), oEmbed disable, query string removal from static assets, post revision limiter, WooCommerce-specific optimizations.
Privacy
EmiCache runs entirely on your own server. It does not phone home, does not load remote scripts, does not track users, and does not collect telemetry. The only outbound HTTP requests are the optional CDN API calls described in the “External services” section below, made only when you explicitly configure them.
External services
EmiCache is fully self-hosted. The plugin does not contact any external service unless you opt in by entering credentials for one of the optional CDN integrations below. No data is sent without your configuration.
Cloudflare API
Used to purge cached files from your Cloudflare zone when content changes or when you click “Purge All Cache”.
- What is sent: Your Cloudflare API token, zone ID, and the list of URLs to purge.
- When it is sent: Only after you enter Cloudflare credentials in EmiCache CDN settings and either save content (auto-purge) or trigger a manual purge.
- Endpoint: https://api.cloudflare.com/client/v4/
- Terms of service: https://www.cloudflare.com/website-terms/
- Privacy policy: https://www.cloudflare.com/privacypolicy/
Bunny CDN API
Used to purge cached files from your Bunny CDN pull zone when content changes or when you click “Purge All Cache”.
- What is sent: Your Bunny CDN API key and the list of URLs to purge.
- When it is sent: Only after you enter Bunny credentials in EmiCache CDN settings and either save content (auto-purge) or trigger a manual purge.
- Endpoint: https://api.bunny.net/
- Terms of service: https://bunny.net/tos/
- Privacy policy: https://bunny.net/privacy/
Third-party script delay (no data sent)
For PageSpeed reasons, EmiCache can defer the loading of well-known third-party scripts (Google Tag Manager, Facebook Pixel, Hotjar, Microsoft Clarity, Tawk.to, and similar) until the user interacts with the page. EmiCache only matches hostnames in the page HTML to decide whether to add a delay attribute. It does not contact, send data to, or load anything from these third parties — that responsibility stays with the existing third-party scripts your site already runs.
Screenshots

Dashboard with overall performance score, module status grid, and Safe / Recommended / Aggressive presets 
Cache settings — lifetime, separate mobile cache, 304 support, GZIP pre-compression, URL and cookie exclusion rules 
Image optimization — WebP quality controls, adaptive responsive breakpoints, external image rehosting, and GD / Imagick / cwebp capability detection 
CDN integration — base URL rewriting plus Cloudflare and Bunny CDN auto-purge 
Database cleanup — revisions, auto-drafts, orphan meta, transients, and table optimize / repair 
WordPress tweaks — Heartbeat control, emoji removal, oEmbed disable, query string removal, post revision limit, and WooCommerce optimizations 
Advanced diagnostics — WP_CACHE constant, advanced-cache drop-in, GZIP / Brotli / OPcache status, debug mode, and global enable toggle
Installation
- Upload the
emi-cachefolder to/wp-content/plugins/(or install via Plugins Add New Upload). - Activate through the Plugins menu in WordPress.
- Navigate to EmiCache in the admin sidebar.
- Click Apply Recommended Preset on the Dashboard for safe defaults that auto-adapt to your server.
- Run a PageSpeed test on a frontend page (logged out) to verify improvements.
FAQ
-
Will it work with my theme?
-
Yes — EmiCache works with any properly coded WordPress theme. Tested with Astra, GeneratePress, WoodMart, Avada, Divi, OceanWP, Kadence, Blocksy, and the default Twenty-* themes. If a specific module conflicts, every toggle has a per-module exclusion field on its settings page.
-
Is it compatible with WooCommerce?
-
Yes. Cart, checkout, my-account, and add-to-cart pages are excluded from caching automatically. WooCommerce-specific tweaks (cart fragment control, script limiting on non-shop pages) are available in the Tweaks panel.
-
Can I use it alongside another caching plugin?
-
No — running two page caching plugins at once corrupts cached output. EmiCache detects and warns about WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache, Cache Enabler, and 10 other known plugins.
-
Does it modify wp-config.php?
-
Yes. On activation EmiCache adds
define('WP_CACHE', true);and creates awp-config.php.emi-cache-backupfirst. On deactivation the constant is removed. Uninstall removes all data: cache directory, drop-ins, cron events, and the WP_CACHE define. -
How do I purge the cache?
-
Click Purge All Cache on the EmiCache Dashboard or in the WordPress admin bar. The cache is also purged automatically when posts are published, updated, or deleted, and when comments are approved.
-
Does it support Cloudflare?
-
Yes. Enter your Cloudflare API credentials on the CDN settings page. EmiCache automatically purges Cloudflare cache when local cache is purged. Both API Token and Global API Key authentication are supported.
-
Are WebP and AVIF images served safely?
-
Originals are never modified. WebP and AVIF variants are generated alongside the original (
image.jpg+image.jpg.webp) and served via<picture>tags or.htaccessrewrite. Browsers without support fall back to the original automatically. -
Is it multisite compatible?
-
The Object Cache module supports multisite with global groups and per-blog isolation. Full multisite page caching is on the roadmap.
-
Does it work on Nginx and LiteSpeed servers?
-
Page caching, minification, lazy loading, image optimization, and CDN integration are server-agnostic and work everywhere.
The bundled
.htaccess(used by Apache and LiteSpeed) blocks direct access to.php,.log, and.jsonfiles inside the cache directory. For Nginx, add the following to your server block as a defense-in-depth measure:location ~* /wp-content/cache/emi-cache/.+\.(php|log|json)$ { deny all; }GZIP and Brotli rewrite rules generated by the Compression module apply to Apache and LiteSpeed only. On Nginx, enable
gzip on/brotli onat the server level — EmiCache pre-compresses cached pages to.html.gzand.html.brregardless of server. -
Why is “Reduce unused JavaScript” still flagged in Lighthouse?
-
That audit measures third-party script efficiency (Google Tag Manager, Facebook Pixel, etc.) which EmiCache cannot tree-shake. JS Delay does prevent these scripts from blocking your LCP and FCP — the audit itself is informational (“unscored”) and does not affect your PageSpeed score.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“EmiCache – Faster Elementor, Better PageSpeed” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “EmiCache – Faster Elementor, Better PageSpeed” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.7.0
- IMPROVED: Cache and generated files now stored under the WordPress uploads directory for cleaner deployments and better compatibility with managed hosting
- IMPROVED: Tree-Shake now preserves responsive layout, sticky variants, and popup/overlay styles across all themes — no more broken headers or misplaced modals when aggressive purging is on
- IMPROVED: JS Bundle no longer combines scripts that depend on WordPress core globals (wp.i18n, wp.hooks, wp.element, etc.), preventing initialization errors in plugins like Contact Form 7 and block-based editors
- IMPROVED: JS Delay leaves Google Maps, reCAPTCHA, hCaptcha, Cloudflare Turnstile, Mapbox, and Leaflet scripts untouched so embedded maps and form challenges always load
- IMPROVED: Presets now only toggle dashboard modules — hidden behaviors no longer change behind the scenes when switching between Safe / Recommended / Aggressive
- IMPROVED: Heartbeat module deregisters dependent core scripts together to silence WP_DEBUG notices
- FIX: 404 errors for combined CSS/JS and responsive image variants caused by an old internal path
- FIX: Critical error during activation on sites with case-sensitive filesystems
- FIX: Various code-quality and security hardening updates required for WordPress.org directory compliance
1.6.0
- NEW: Smart CSS Defer — eliminates render-blocking plugin stylesheets while keeping theme and builder CSS for a layout-stable first paint
- NEW: jQuery Defer (Lite) — defers WordPress core jQuery via a shim that queues inline jQuery() calls until the library loads
- NEW: Disable Entry Animations — skips scroll-triggered fade-in / slide-up animations from Elementor, AOS, Element Pack, WoodMart, and Animate.css; interactive transitions like sliders and modals stay active
- NEW: Smart Prefetch — browser speculation rules in prefetch mode warm assets without re-firing entry animations on navigation
- NEW: Hero Preload — auto-detects the LCP candidate (largest above-the-fold image) and injects a
<link rel="preload">hint withfetchpriority="high" - NEW: Environment Auto-Detect — Recommended preset auto-enables AVIF, Brotli, and Object Cache only when the server actually supports them
- IMPROVED: Mobile UX — JS Delay no longer consumes the first touch; scroll and link taps work immediately
- IMPROVED: Image Optimizer — sub-size counter, WebP savings tracking, theme-registered size protection (preserves slider thumbnails and other custom variants)
- IMPROVED: Admin panel — third-party plugin notices suppressed inside EmiCache pages for a clean working area
- IMPROVED: Score map balanced to exactly 100 with fair weighting based on real PageSpeed impact
1.5.0
- NEW: Self-Pushing Task Runner — background queues (image rehost, cache preload, critical CSS, DB cleanup) drain even on low-traffic sites where WP-Cron rarely fires
- IMPROVED: External Image Rehosting drains right after the request that queued the URL instead of waiting for the next cron tick
1.4.0
- NEW: External Image Rehosting — pulls third-party hosted images into local cache so they benefit from WebP, lazy load, and CDN rewriting
- NEW: YouTube and Vimeo facade placeholders now match the real video aspect ratio via oEmbed, fixing CLS on vertical and square embeds
1.3.0
- NEW: De-inline Large Images — oversized base64 images extracted from HTML into static files so they flow through the WebP, lazy load, and CDN pipeline
- NEW: SVG Lazy Placeholders — every lazy image reserves layout space with a properly sized SVG placeholder to prevent CLS
- NEW: Per-Stage Pipeline Timing — debug mode records how long each optimization step takes for bottleneck diagnosis
1.2.1
- FIX (critical): fatal error “Call to undefined function sanitize_text_field()” in
advanced-cache.phpthat broke page caching on every site running 1.2.0 — all 1.2.0 users should upgrade
1.2.0
- NEW: Brotli pre-compression for cached pages and static assets
- NEW: Font Inlining and Critical Font Auto-Detection — small fonts embedded as data-URIs, above-the-fold fonts auto-preloaded
- NEW: 3-Tier CSS System — Critical (inline) / Fonts (high priority) / Non-Critical (deferred)
- NEW: Adaptive Image Sizing — responsive variants at 7 breakpoints with automatic
srcsetandsizes - NEW: JS Aggregation and per-region combining (head / body)
- NEW: Builder Compatibility Pack — Elementor, Slider Revolution, OWL Carousel, WooCommerce gallery, AOS, WOW.js trigger preservation
1.1.0
- NEW: Setup Wizard with Safe / Recommended / Aggressive presets
- NEW: Batch Image Optimizer for bulk WebP conversion without modifying originals
- NEW: Self-Diagnosis system with automated health checks and one-click auto-fix
- NEW: Async Task Queue for background processing via WP-Cron
- NEW: Admin bar quick-purge, browser cache headers, CDN
s-maxagesupport - IMPROVED: Object Cache gains gzip compression, file locking, and TTL support
- IMPROVED: Lazy loading skip patterns for logos, sliders, and hero images
1.0.0
- Initial release with 12 optimization modules: page cache, HTML/CSS/JS minify, lazy loading, critical CSS, WebP/AVIF conversion, CDN integration with Cloudflare and Bunny APIs, database cleanup, object cache drop-in, GZIP/Brotli compression, WordPress tweaks, WooCommerce optimizations, and performance dashboard
