=== WP Avoid Slow === Contributors: deshabhishek007, fitehal Tags: performance, speed, optimize, bloat, core-web-vitals Requires at least: 5.0 Tested up to: 6.7 Requires PHP: 7.4 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html WordPress ships features most sites never use. Here's the off switch. == Description == WordPress prioritises backwards compatibility. That's a feature. It also means every install ships with things you didn't ask for. An emoji CDN script. An oEmbed script. A Windows Live Writer manifest (discontinued 2017). Dashicons loaded for logged-out visitors. Heartbeat polling every 15 seconds. A version tag that tells the world exactly which WordPress you're running. None of these are bugs. They're just not needed on most sites. **WP Avoid Slow gives you the off switch for each one.** = The Off Switches = * **Emoji script** — ~15 KB + 1 HTTP request. Browsers handle emoji natively. * **Embed script** — ~4 KB + oEmbed discovery links in ``. * **RSD link** — Really Simple Discovery. Only needed for legacy XML-RPC clients. * **WLW manifest** — Windows Live Writer has been discontinued since 2017. * **WP version tag** — Stops advertising your WordPress version to the world. * **Shortlink** — Removes the `` that search engines ignore. * **Query strings on assets** — Strips `?ver=` so CDNs and proxies cache correctly. * **XML-RPC endpoint** — Closes a common brute-force attack vector. * **Heartbeat API** — Reduces admin polling from every 15 s to every 60 s. * **Dashicons on the frontend** — ~35 KB (CSS + font) saved for every logged-out visitor. = Script & Style Control = * **jQuery Migrate** — ~30 KB. Modern themes don't need it. * **Block Library CSS** — ~7 KB loaded on every page, even with no Gutenberg blocks. * **Global Styles (theme.json CSS)** — 10–50 KB inline CSS from block themes. * **SVG Duotone Filters** — Hidden SVG blob injected on every page, even with no duotone images. * **Script/Style type attributes** — `type="text/javascript"` and `type="text/css"` are redundant in HTML5. * **Defer non-critical JavaScript** — Adds `defer` so scripts don't block HTML parsing. jQuery is never deferred. * **Move scripts to footer** — Relocates enqueued scripts from `` to just before ``. jQuery is never moved. = What it doesn't do = * No caching — use a dedicated caching plugin for that. * No CDN — use Cloudflare, BunnyCDN, or your host's CDN. * No .htaccess writes — pure PHP hooks, works on any host including managed hosting. * No upsell. No Pro version. No phone-home. = How it works = Every toggle is a named WordPress hook removal or filter. You can read the entire logic in one file per module. No compiled assets. No build step. No obfuscation. = Who it's for = Developers and agencies who know what these features do — and know their site doesn't need them. Not sure what a toggle does? Leave it off. Each one is independent. == Installation == 1. Upload `wp-avoid-slow` to `/wp-content/plugins/` 2. Activate through the Plugins menu 3. Go to **Settings → Avoid Slow** 4. Turn off what you don't need == Frequently Asked Questions == = Will this break my site? = Each toggle is independent. Safe defaults are on. Risky ones (jQuery Migrate, defer JS, scripts to footer) are off by default. If something breaks — turn that toggle off. Nothing is written to disk. = Does it work on managed hosting (WP Engine, Kinsta, Pressable)? = Yes. Pure PHP hooks, no .htaccess required. = Should I disable XML-RPC? = Only if you don't use Jetpack, the WordPress mobile app, or any XML-RPC client. When in doubt, leave it off. = Should I enable "Defer non-critical JavaScript" or "Move scripts to footer"? = Test on staging first. These two are the most likely to cause issues on complex sites — some themes and plugins rely on scripts being available synchronously in ``. = Does it cache pages? = No. This plugin removes unused WordPress features. For page caching, use a dedicated plugin. = How is this different from other performance plugins? = Most performance plugins add things — caching layers, CDN routing, minification pipelines. This one removes things. It's a different job. == Changelog == = 1.0.0 = * Complete rewrite — no longer depends on .htaccess * 17 independent toggles across two sections, pure PHP hooks * New: Script & Style Control section (jQuery Migrate, Block Library CSS, Global Styles, SVG Duotone, type attributes, defer JS, move scripts to footer) * Admin UI: CSS toggle switches replacing checkboxes * Works on any host including managed hosting * Ships with safe defaults — risky toggles are off until you opt in * Settings → Avoid Slow admin page = 0.4 = * Minor fixes = 0.3 = * Minor fixes = 0.2 = * Expire cache fix = 0.1 = * Initial release — .htaccess Expires headers + ETags