| 开发者 |
Uzair
easywpstuff uzairwp |
|---|---|
| 更新时间 | 2026年10月28日 20:27 |
| 捐献地址: | 去捐款 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GNU General Public License v2 or later |
| 版权网址: | 版权信息 |
WP_REDIS_* constants automatically. It defers to any object-cache drop-in already installed instead of overwriting it, never edits wp-config.php, and includes a one-click flush plus a live status panel (connection, memory, Redis version).url()/@import paths are rewritten so assets keep resolving. Works independently of Remove Unused CSS and Delay JS.srcset, <picture> and CSS background heroes — stored per URL so every page preloads its own correct hero for faster visual loading.font-display: swap so text stays visible during webfont loads, with optional per-device font preloading learned from a lightweight beacon.wp-config.php edits), and view, run or delete scheduled cron events./wp-content/plugins/easy-optimizer/.Yes. Easy Optimizer is built to play nicely alongside other plugins, including WP Rocket, FlyingPress, Perfmatters, LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Fastest Cache, Autoptimize, NitroPack and the common page builders (Elementor, Divi, Beaver Builder, Oxygen) and SEO plugins (Yoast, Rank Math). It also works with WooCommerce and Cloudflare. The only rule is simple: don't run the same optimization twice. Every module is independent and only runs when you switch it on, so just turn off whatever overlaps with another plugin you're already using. Most importantly, never run two page caches at once — if another plugin is handling caching, leave Easy Optimizer's Page Cache off (or turn the other one off and let Easy Optimizer handle it). The same applies to features like unused CSS, delay JavaScript, or lazy load: pick one plugin to do each job. This means you can use Easy Optimizer as a complete all-in-one replacement, or keep your current setup and use only the parts you want — for example the Backend Analyzer, Autoload Health, database cleanup, or heartbeat and cron controls — while another plugin keeps doing the caching. Either way works.
Easy Optimizer is free and open, with no premium-locked core features and no upsells: caching, Remove Unused CSS, Delay/Defer JS, LCP preload, lazy load, Cloudflare and hosting-cache purging, database cleanup and the Backend Analyzer are all included. Those paid plugins are mature and excellent; Easy Optimizer aims to give you the same core speed wins for free, and to coexist cleanly if you already run one — just don't run two of the same optimization at once.
Use the Debug Issues button in the top bar. Pick the page that looks wrong, tick one optimization at a time, and open the generated link — that single page load runs with the feature switched off, while your settings and your cache stay exactly as they are. Answer "did that fix it?" and Easy Optimizer tells you which feature was responsible and takes you to the exclusion field that keeps the fix permanently. You do not need a private browsing window. Some optimizations are normally skipped while you are logged in, so the panel's links quietly render the page the way a visitor sees it. If the page is still wrong with everything switched off, the cause is your theme, another plugin or your server — and the panel says so rather than sending you round the loop again.
Yes. Every optimization module runs on your shop, while Cart, Checkout and My Account are automatically excluded so the purchase flow is never cached or altered — including custom or translated slugs. Multi-currency stores cache a correct copy per selected currency, and you can disable WooCommerce cart fragments from the Bloat Removal tab to speed up pages that don't need them.
All of them. On Apache it can optionally write .htaccess rules (after a per-server safety probe that prevents a bad rule from ever 500-ing your site); on Nginx, LiteSpeed and OpenLiteSpeed it serves cached pages through PHP. On hosts with their own server-level cache (Varnish / LiteSpeed / nginx FastCGI), preloading and on-visit caching are handled correctly.
Defer keeps scripts in order but runs them after HTML parsing; it is the safer choice and rarely breaks anything. Delay goes further, holding scripts until the first user interaction (scroll, tap, move) for the biggest INP and blocking-time win, at a slightly higher chance of needing exclusions. Start with Defer if you're cautious, or Delay (jQuery excluded by default) for maximum speed, and add any problem script to the exclusion list.
Usually not. Delayed scripts run on the first interaction, so analytics and pixels still fire for engaged visitors. If you need a tag to load immediately — for example to measure bounces or run consent logic — add it to the Delay JS exclusion list and it will load normally.
Add the affected stylesheet or CSS selector to the exclusion fields on the CSS tab and rebuild. Remove Unused CSS also learns JavaScript-generated classes (sliders, menus, tabs) automatically so their styles aren't stripped. To confirm it really is the cause, use the Debug Issues panel. To revert quickly, use Safe Mode on the Settings tab to return to a conservative baseline.
Use the exclusion fields on each tab — the Cache tab has URL and cookie exclusions for pages you never want cached, and the JavaScript tab lets you exclude scripts by name or URL from Delay/Defer. For a one-off test, the Debug Issues panel builds the right link for you; you can also append ?nocache, ?nodelayjs, ?norucss or ?nooptimize to any front-end URL by hand to disable that feature for that single request.
It minifies your local CSS and JS (caching each file on disk and processing it once). It does not force-combine files into one — under HTTP/2 and HTTP/3 that usually no longer helps and can hurt caching — so Easy Optimizer focuses on minification, delay/defer and removing unused CSS instead.
No. Every core feature works without a CDN. If you want next-gen image delivery you can optionally enable the built-in Image CDN (WebP/AVIF), and you can connect Cloudflare for edge-cache purging — but neither is required.
No. Optimization features run on your front end, and modules you don't enable are never loaded, so your admin stays responsive. The Backend Analyzer's profiling is on-demand and never runs for real visitors.
Enable Page Cache, Remove Unused CSS, Delay or Defer JavaScript, Lazy Load, LCP Preload and Font Display Swap, then turn on the accessibility and SEO toggles relevant to your site. Save and re-run the built-in speed test to compare before and after. The dashboard's "What to fix next" card then lists what is still worth changing, ranked by impact, so you don't have to guess. If you used the setup wizard, the Balanced preset already enables most of these.
As a rule of thumb — shared hosting: the Safe wizard preset with the Gentle preload speed; most sites and managed hosting: Balanced; VPS or high-performance managed hosting: Maximum with the Turbo (or Balanced) preload speed. Preload also auto-tunes to your server's real capacity and backs off automatically if it detects errors or rate-limiting, so you can't overload your host.
The Object Cache module needs a running Redis server (many shared hosts ship the PhpRedis extension but no server — if the status panel shows "not connected", leave Object Cache off). You do not need a Redis PHP extension, though: the pure-PHP Predis client is bundled, so the object cache works without PhpRedis or Relay. Enter your host, port and password in the settings, or define WP_REDIS_* constants in wp-config.php and they'll be used automatically. Easy Optimizer never edits wp-config.php, and if another object-cache plugin is active it defers to it rather than overwriting its drop-in.
Both count unique URLs, not files. With Separate Mobile Cache on, one page can have a desktop copy and a mobile copy on disk, but it is still one page in both figures. The two numbers are not meant to converge: a page whose desktop copy is cached while its mobile copy is still queued is legitimately counted in each at the same time.
Yes. Add your API token and Zone ID in the Cloudflare tab. Cache purges sync automatically.
Works on individual sites within a multisite network.
Export settings as JSON from the Settings tab, then import on the destination site. Credentials (Cloudflare token, Redis password, CDN key) are deliberately left out of the export, so re-enter those on the destination site.
Editing content clears only the affected URLs — the post or product itself plus its archives, author, date and taxonomy pages (with pagination) — instead of wiping the whole cache, and changing a slug also clears the old URL. Comment and term edits trigger the same targeted, lightweight clears.
The usage analytics are opt-in and off by default. When enabled they send only technical, non-personal data (plugin/WordPress/PHP versions, theme, locale, host flags and your site URL) — never your email, visitor IPs, user data or page content. With analytics left off, nothing is sent anywhere. See the Privacy and External Services sections for the full list.
On the Settings tab, turn on "Delete all plugin data on uninstall" before deleting the plugin. With it on, removing the plugin cleans up its options, cache files, drop-ins and snapshots; with it off, your settings are preserved in case you reinstall.
Yes. You can trigger purges from your own code with these action hooks:
do_action( 'easyopt_purge_all' ); — clear the entire page cache.
do_action( 'easyopt_purge_url', 'https://example.com/some-page/' ); — clear one URL.
do_action( 'easyopt_purge_url_type', 'home' ); — clear a key page type (home, front or posts page).
do_action( 'easyopt_purge_url', get_permalink( $post_id ) ); is the call to use from a plugin that shows content on a page other than its own, for example forum replies embedded in a post. It also clears that URL in Cloudflare and in your host's cache when those are connected.
The plugin also fires events you can listen to: easyopt_cache_cleared_all, easyopt_cache_cleared_url (passes the URL) and easyopt_page_cached. For Cloudflare, EasyOpt_Cloudflare::purge_url( $url ) and EasyOpt_Cloudflare::purge_all() are available when the integration is connected.
EASYOPT_IMAGES_CONCURRENCY in wp-config.php to choose the number (up to 8).bg-[url('/hero.png')]. Every rule after that point was missing from the critical CSS until the visitor interacted, so padding, gradients and image fitting could jump on first paint. Escaped selectors are now read correctly and matched to the classes on the page.<noscript> (for example the Google Tag Manager fallback) was being lazy-loaded. Lazy-loading also skipped the wrong elements around the admin bar and could miss <picture> sources. All three now behave as intended.md:hidden, w-1/2 or 2xl:p-4, because the stylesheet writes them escaped. Exclusions now match whether you type the class as it appears in your HTML or in its escaped form.>, + or ~ — which is how every minified stylesheet writes them — was not recognised, so an exclusion you added could still be stripped. Of the twelve rules carrying one Swiper class, only three were being kept. This applies to every exclusion, including ones you had already added.* wildcards now work in Prefetch Pages → Exclude URLs, the same as in every other Excluded URLs field. Lines naming a query parameter (ref=) are matched against the query string rather than the path./wp-json/, feeds, downloads and WooCommerce cart/checkout/account pages are excluded before the browser ever sees them, and exclusions added by other plugins through WordPress's own wp_speculation_rules_href_exclude_paths filter are honoured too.assets/easyoptlink.js) and its licence notice. No code derived from it remains.