Title: Feather – Elementor Performance Optimizer | Asset Cleanup, Page Speed &amp; Database Cleanup
Author: feather
Published: <strong>15. maj, 2026</strong>
Last modified: 30. september, 2026

---

Søg plugins

![](https://ps.w.org/feather-performance/assets/banner-772x250.png?rev=3545459)

![](https://ps.w.org/feather-performance/assets/icon-256x256.png?rev=3545459)

# Feather – Elementor Performance Optimizer | Asset Cleanup, Page Speed & Database Cleanup

 Af [feather](https://profiles.wordpress.org/featherr/)

[Download](https://downloads.wordpress.org/plugin/feather-performance.0.4.0.zip)

 * [Detaljer](https://da.wordpress.org/plugins/feather-performance/#description)
 * [Vurderinger](https://da.wordpress.org/plugins/feather-performance/#reviews)
 *  [Installation](https://da.wordpress.org/plugins/feather-performance/#installation)
 * [Udvikling](https://da.wordpress.org/plugins/feather-performance/#developers)

 [Support](https://wordpress.org/support/plugin/feather-performance/)

## Beskrivelse

Feather is an optimizer for WordPress sites built with Elementor. It reads each 
page’s saved Elementor data, knows which widgets and assets are actually in use,
and trims the rest from your frontend.

#### What it does

 * **Per-page asset awareness.** Inspects your saved Elementor data to build a map
   of which widgets each page uses. Asset-stripping optimizations only activate 
   when the scan confirms zero usages site-wide.
 * **Safe defaults.** Universally-safe optimizations are active on first activation:
   skip Elementor’s frontend bundle on non-Elementor pages, defer JavaScript, block
   Elementor telemetry, throttle the admin heartbeat, disable WP emojis and embeds,
   and more.
 * **Measured impact.** Take page-weight snapshots from the dashboard and track 
   the trend across bytes, asset count, and HTTP request count, all measured against
   your real frontend.
 * **Database tooling.** One-click cleanup for expired transients, orphaned Elementor
   revisions, and oEmbed cache rows. Autoload audit flags any large always-loaded
   options.
 * **Privacy by default.** No telemetry. Scans run on your server. Page-weight measurements
   hit your own URLs. Nothing leaves your site without explicit opt-in.

#### Optimization categories

 * Elementor frontend assets: Font Awesome 4 shim, eicons, Google Fonts, JS defer,
   asset gating on non-Elementor pages, atomic (v4) JS and CSS gating on legacy 
   pages
 * WordPress hygiene: emojis, embeds, jquery-migrate, heartbeat throttle, head cleanup,
   version disclosure, hover-prerender for faster navigation
 * Lazy loading & media: iframe lazy attributes, image-dimension auto-fix, content-
   visibility for off-screen sections
 * Database: transient cleanup, Elementor revision pruning, oEmbed cache flush, 
   autoload audit
 * Reporting: page-weight history, site-scan results, database health score

#### Compatibility

Tested with Elementor 3.x and 4.x up to 4.3.3 and WordPress up to 7.1.2, including
the Atomic Editor’s `e-` element family (Grid, Form, Tabs, Accordion, Background
Video, Components and the rest). Elementor 4.1 and newer require WordPress 6.8; 
Feather itself runs on WordPress 6.0 and up.

Feather detects WP Rocket, LiteSpeed Cache, SiteGround Optimizer, W3 Total Cache,
Imagify, Smush, and most other performance / image-optimizer plugins and lists them
on the Settings screen, so you can leave overlapping toggles off where another plugin
already does the work.

## Skærmbilleder

[⌊Dashboard with measured savings and quick wins.⌉⌊Dashboard with measured savings
and quick wins.⌉[

Dashboard with measured savings and quick wins.

[⌊Features browser, grouped by category, with risk badges.⌉⌊Features browser, grouped
by category, with risk badges.⌉[

Features browser, grouped by category, with risk badges.

[⌊Site Scan view showing widget and asset usage per page.⌉⌊Site Scan view showing
widget and asset usage per page.⌉[

Site Scan view showing widget and asset usage per page.

[⌊Database health and cleanup tools.⌉⌊Database health and cleanup tools.⌉[

Database health and cleanup tools.

[⌊Dashboard in dark mode.⌉⌊Dashboard in dark mode.⌉[

Dashboard in dark mode.

## Installation

 1. Upload the `feather` folder to the `/wp-content/plugins/` directory, or install
    the plugin through the WordPress Plugins screen.
 2. Activate Feather through the Plugins menu in WordPress.
 3. Visit Feather in the admin sidebar. Run the welcome scan and apply a recommended
    preset.

## FAQ

### Will Feather break my site?

Feather’s defaults are conservative. Aggressive optimizations require a recent site
scan and an explicit confirmation. Every change is reversible from the dashboard.

### Does Feather work alongside WP Rocket / LiteSpeed Cache?

Yes. Feather detects them and shows which are active. Most Feather optimizations
are Elementor-specific and don’t overlap; where one does (JS defer, lazy-loading),
leave it to whichever plugin you prefer.

### Does Feather send any data to a remote server?

No. Scans, metrics, and configuration all live on your server. The Lighthouse-on-
demand feature uses your own Google PageSpeed Insights API key to call Google directly.
Feather never proxies this through a third party.

### Does Feather work on multisite?

Yes, in compatible mode (per-site configuration). Network-level controls are planned
for a later release.

## Anmeldelser

![](https://secure.gravatar.com/avatar/224ae6e84e9c9f7941e94f6d013891a195e385efa48e47393e0729163f9a03d8?
s=60&d=retro&r=g)

### 󠀁[Simple but powerful plugin](https://wordpress.org/support/topic/simple-but-powerful-plugin-10/)󠁿

 [mayouniss](https://profiles.wordpress.org/mayouniss/) 25. maj, 2026

I really like that i can just disable all elementor telemetry and background tasks
after I'm done editing my website instead of having to deal with it always running
jobs and unneeded updates.

 [ Læs 1 anmeldelse ](https://wordpress.org/support/plugin/feather-performance/reviews/)

## Bidragsydere & udviklere

“Feather – Elementor Performance Optimizer | Asset Cleanup, Page Speed & Database
Cleanup” er open source-software. Følgende personer har bidraget til dette plugin.

Bidragsydere

 *   [ feather ](https://profiles.wordpress.org/featherr/)

[Oversæt “Feather – Elementor Performance Optimizer | Asset Cleanup, Page Speed & Database Cleanup” til dit eget sprog.](https://translate.wordpress.org/projects/wp-plugins/feather-performance)

### Interesseret i udvikling?

[Gennemse koden](https://plugins.trac.wordpress.org/browser/feather-performance/),
tjek [SVN repository](https://plugins.svn.wordpress.org/feather-performance/), eller
abonner på [udviklerloggen](https://plugins.trac.wordpress.org/log/feather-performance/)
via [RSS](https://plugins.trac.wordpress.org/log/feather-performance/?limit=100&mode=stop_on_copy&format=rss).

## Ændringslog

#### 0.4.0

 * Compatibility: Tested with Elementor 4.3.3 and WordPress 7.1.2. Handles, hooks
   and options every optimizer relies on were re-checked against the 4.3.3 source.
 * Fixed: “Defer Elementor JavaScript” could break Elementor Pro and add-on scripts.
   It forced `defer` onto `elementor-frontend-modules` and `elementor-frontend` 
   even when a non-deferred script depended on them, so those scripts ran before`
   elementorModules` existed. It now uses WordPress’s loading-strategy API, which
   only defers a script when everything depending on it can wait. The atomic (v4)
   and Interactions scripts are covered too.
 * Fixed: The scanner now looks inside Elementor Components. Widgets placed in a
   component were invisible to the page that embeds it, so “Trim per-widget assets”
   could drop their styles on that page. Rescan after updating.
 * Fixed: “Lazy-load iframes” no longer overrides WordPress’s choice to keep the
   first on-screen embed eager (it was adding `loading="lazy"` to exactly those,
   delaying hero videos and maps). It now only covers what core doesn’t: comments,
   and Elementor templates and popups rendered outside the main content. It also
   respects the `wp_lazy_loading_enabled` filter.
 * Fixed: “Disable Font Awesome 4 shim” no longer removes icon fonts that are still
   in use. It had also been dropping the Font Awesome 5 icon stylesheets and the
   unmigrated FA4 font, which broke icons whenever Inline Font Icons was off.
 * Fixed: Elementor’s promotional admin notices were never actually removed (the
   removal targeted the wrong hook priority). They are now.
 * Fixed: “Remove Edit with Elementor from the admin bar” now removes the item from
   Elementor’s admin-bar config. Elementor builds that menu in JavaScript, so the
   old node removal never matched and only the CSS fallback hid it.
 * Fixed: Elementor’s tracker listener removal ran before Elementor registered the
   listener, so it removed nothing. It now runs right after.
 * Fixed: “Drop Elementor’s wp-admin Google Fonts” (formerly “Disable Elementor 
   admin top bar”) targeted the 3.x top bar, which Elementor 4.x never loads. It
   now removes the Roboto request Elementor 4.x makes on every wp-admin screen.
 * Fixed: Self-closing `<img … />` tags no longer come out as `<img … / width=… 
   height=…>` after “Auto-fix image dimensions”.
 * New: Elementor 4.3 atomic elements. Background Video is mapped to its handler,
   and “Skip atomic widget JS on legacy-widget pages” also drops the new handlers
   plus the atomic `base-*` / `default-*` stylesheets that load on every Elementor
   page.
 * New: “Block Elementor telemetry” covers Elementor 4.3’s server-side Mixpanel 
   pipeline. It forces the `editor_events` experiment off, unregisters the `/elementor/
   v1/events/…` proxy routes, and refuses any request Elementor’s events code sends.
 * New: “Disable Elementor MCP / AI agent abilities” (opt-in). Elementor 4.3 loads
   its MCP module whenever WordPress has the Abilities API (6.9+): 27 abilities,
   a REST proxy, heartbeat hooks and a menu item.
 * New: “Prerender pages on hover” (opt-in). Switches WordPress 6.8+ speculative
   loading from click-prefetch to hover-prerender for logged-out visitors, with 
   WooCommerce cart, checkout and account pages excluded. Constants a site owner
   sets win.
 * New: “Hide Elementor admin bloat” also removes the Elementor One dashboard widget,
   the Go Pro conversion banner, the V4 editor promotions (and their remote fetch)
   and the Angie “Custom Widget” upsell.
 * Improved: The network firewall also covers `elementor.red`, where Elementor 4.
   x hosts its cloud template library.
 * Improved: Emoji and head cleanup also remove core’s 6.4+ emoji style enqueue,
   the /embed/ template’s emoji script, and the shortlink HTTP header.
 * Removed: “Remove Elementor DOM artifacts”. It stripped `?ver=` from Elementor
   asset URLs. That query string is Elementor’s only cache-buster, so visitors kept
   stale CSS after every edit and, after an Elementor update, could get old JavaScript
   alongside the new. Elementor 4.3 rewrote `frontend.min.js` under the same URL.
 * Removed: “Hide Elementor loading overlay”. The element it hid only exists inside
   the Elementor editor, so it did nothing on visitor pages.
 * Stored settings for the two removed features are cleaned up automatically on 
   upgrade.

#### 0.3.0

 * Fixed: Pages built with Elementor 4.2’s Grid, Form, or Collection Loop elements
   could lose their atomic-widget JavaScript. The scanner recognised only a hardcoded
   list of atomic types, so a page made of newer ones scanned as “no atomic widgets”
   and the gated optimizer dropped a bundle that page needed. Atomic detection now
   matches Elementor’s own rule (any `e-` element or widget type), so future atomic
   elements are covered without a Feather update.
 * Fixed: The atomic-widget asset gate targeted `elementor-v2-widgets-frontend`,
   a handle Elementor no longer registers, while missing `elementor-v2-action-link-
   handlers` and `elementor-v2-form-handlers`. Both new handler bundles are now 
   included, along with the tabs preview handler.
 * Fixed: “Skip Elementor assets on non-Elementor pages” now drops the per-page 
   stylesheet. Elementor names it `elementor-post-{id}`, not the `elementor-post-
   css` the gate looked for, so that CSS shipped on every non-Elementor request.
   The Kit stylesheet is deliberately left in place because themes inherit its global
   typography and colors.
 * Fixed: “Disable Elementor Google Fonts” now dequeues the per-font stylesheets
   Elementor actually enqueues (`elementor-gf-*`, `elementor-gf-local-*`) instead
   of two handles that no longer exist.
 * Fixed: “Disable Elementor AI module” reads Elementor’s current AI switch. The
   old `elementor/ai/is_ai_enabled` filter is gone from Elementor 4.x, so the feature
   relied on its dequeue fallback alone; it now answers the `elementor_enable_ai`
   user option at read time and covers all seven current AI bundles.
 * Fixed: The Font Awesome feature also removes the shim’s script half and the FA4/
   FA5 bundles Elementor enqueues for legacy icon content.
 * Removed: Three optimizations that Elementor deleted upstream and that could not
   do anything on Elementor 4.x — the `e_optimized_assets_loading` / `e_lazyload`/`
   e_css_smooth_scroll` sub-toggle, the `e_element_cache` sub-toggle, and “Trim 
   Elementor frontend config payload” (the filter it hooked no longer exists). Their
   stored settings are cleaned up automatically on upgrade. The experiments card
   still forces Inline Font Icons and Optimized Markup, which are real.
 * Removed: Dead handles and hooks from the remaining optimizers (`elementor-frontend-
   legacy`, `elementor-waypoints`, `elementor-animations`, `lottie-js`, `elementor/
   admin/menu/promotions`, the Google Fonts preconnect detach). They matched nothing
   in Elementor 4.x and made the optimizations look broader than they were.
 * Changed: Tested against Elementor 4.2.1. Note Elementor 4.1 and newer require
   WordPress 6.8; Feather itself still supports WordPress 6.0.

#### 0.2.9

 * Fixed: “Remove Edit with Elementor from the admin bar” optimizer now actually
   removes the node. Elementor 4.0.x registers the node late in the `admin_bar_menu`
   lifecycle, so the previous priority-999 hook fired before the node was added 
   and removed nothing. Switched to `wp_before_admin_bar_render` (which fires after
   all menu callbacks complete) and added a CSS belt-and-braces hide that guarantees
   the item never renders even if a third party re-adds the node after our removal.
 * Fixed: The three Elementor telemetry component features (telemetry, phone-home,
   AI module) no longer appear as duplicate cards on the Features page. They’re 
   surfaced through the Dashboard “Block Elementor telemetry” composite toggle; 
   the underlying optimizers still apply at runtime.
 * Fixed: Site Scan results now appear as soon as the scan completes instead of 
   requiring a page refresh. The polling tick now refreshes aggregate + results 
   progressively (every 1.5 s) so the UI converges in real time even when object
   caches briefly desync the scan state.

#### 0.2.8

 * New: WordPress 7.0 and Elementor 4.0.9 compatibility. Tested up to WordPress 
   7.0; scanner recognises Elementor 4.0.x atomic Self-Hosted Video and standalone
   Video elements.
 * New: Dashboard “Block Elementor telemetry” toggle. A single switch bundles Elementor’s
   tracker flags, my.elementor.com phone-home (banners, what’s-new feed, update 
   prompts, upsells), and the AI editor bundle.
 * New: Optimizer that removes the “Edit with Elementor” item from the WordPress
   admin bar at the top of the site. Post-edit screen buttons still open the editor
   as usual.
 * New: Background auto-rescan on post save. When an Elementor page is saved, Feather
   refreshes that post’s scan row so gated optimizations stay accurate without a
   manual rescan. Throttled to one rescan per 60 seconds per post.
 * New: Per-page feature overrides. A sidebar meta box on the post edit screen lets
   you disable specific Feather features on a single page without touching the sitewide
   setting. Wired into JS defer, frontend asset gate, per-page asset trim, iframe
   lazy-load, image dimensions, and below-fold rendering.
 * New: Settings export / import. Download your Feather configuration as JSON and
   re-import on another site. Scan history and metrics history are not included.
 * New: Core Web Vitals signals on the Dashboard. The page-weight probe now records
   response time, a TTFB estimate, and the hero-image byte size (HEAD-probed for
   same-origin images).
 * New: Elementor 4.0.x Global Classes detection in the site scan. Gated optimizers
   can now factor in Global Class usage when deciding whether a handle is safe to
   strip.
 * New: Database cleanup adds Spam Comments and Auto-Draft Posts tools. Batched 
   in groups of 200 per click.
 * Changed: Pause-all card copy clarified — the toggle is now explicitly labeled“
   Pause all optimizations for editing”, with a Resume optimizations button in the
   paused state.
 * Changed: The three Elementor experiment-forcing toggles (`force_experiments`,`
   force_extra_experiments`, `element_cache`) are now one feature card, “Force-enable
   Elementor performance experiments”. Existing installs keep their behavior — sub-
   toggles for the extra experiments and element cache live under `advanced.experiments`.
 * Changed: Heartbeat throttler now tunes the block editor and other admin pages
   separately, with the public-frontend disable still default-on.
 * Fixed: Brand mark in the topbar briefly rendered the wrong variant (cream on 
   a light page or vice versa) when the OS color preference disagreed with the saved
   Feather theme. The theme is now applied synchronously and passed down to the 
   mark.
 * Fixed: Several pre-existing lint warnings (nested ternaries, unused catch bindings)
   cleaned up across the admin UI.

#### 0.2.7

 * Fixed: Optimizations briefly showed as “not applied” after toggling them, on 
   sites using persistent object caches (Redis, Memcached, LiteSpeed). The settings
   option now busts the WordPress options cache explicitly after every save so follow-
   up requests see the canonical database value immediately.
 * Fixed: Site Scan results and “Take measurement” output sometimes appeared stale
   until a page reload on sites with page caches (LiteSpeed Cache, WP Rocket, Cloudflare).
   The feather/v1 REST namespace now returns strict no-store, no-cache headers so
   page caches stop holding onto authenticated responses.
 * Changed: In-WordPress plugin name shortened to “Feather” so the Plugins list 
   and Updates screen show a clean brand name. The longer descriptive title remains
   on the WordPress.org listing for search visibility.

#### 0.2.6

 * Fixed: “Settings” link in the Plugins list now points to the correct admin page
   slug. Previously it linked to `admin.php?page=feather`, which produced a “Sorry,
   you are not allowed to access this page” error.
 * Fixed: Site Scan now refreshes results in the UI as soon as the scan finishes,
   instead of requiring a full page reload. The old code only refreshed when the
   scan state landed exactly on `complete`, missing edge cases where the cached 
   state briefly read as `idle` after the cron tick.
 * Fixed: Dashboard “Take measurement” now re-reads the latest snapshot from the
   server after capturing, so the “Last measured” tile and homepage-weight value
   update immediately instead of after a page reload.
 * New: Footer link on every Feather admin page that opens the WordPress.org review
   form in a new tab.
 * Changed: Plugin display title rewritten to describe what it does in search results
   and on the plugin page.
 * Changed: Replaced em dashes throughout the readme and plugin header with regular
   punctuation.

#### 0.2.5

 * Changed: Inline CSS now emitted via `wp_register_style()` + `wp_add_inline_style()`
   instead of direct `<style>` echoes. Follows WordPress.org enqueue guidelines.
 * Removed: Placeholder feature toggles that had no implementation. Every shipped
   feature is now fully functional out of the box.
 * Removed: `load_plugin_textdomain()` call. WordPress.org auto-loads translations
   for hosted plugins since WP 4.6.

#### 0.2.0

 * New: Elementor 4.0.x support. Scanner detects atomic widgets (e-heading, e-button,
   e-image, e-paragraph, e-divider, e-svg, e-self-hosted-video, e-youtube, e-component)
   and atomic element types (e-flexbox, e-div-block, e-tabs, etc.) in saved page
   data.
 * New: “Skip atomic widget JS on legacy-widget pages” optimizer (gated). Drops 
   the v4 atomic widget handler bundle, including Alpine.js, on pages built entirely
   with legacy widgets. Auto-bails on Elementor Pro.
 * New: “Pause all optimizations” master toggle on the Dashboard. Temporarily disable
   every Feather optimization while editing in Elementor, without uninstalling.
 * New: “Block all Elementor outbound HTTP except user-initiated” optimizer (gated).
   Refuses every background request to elementor.com and subdomains. Template Library,
   Connect login, and Pro flows still work because they run as AJAX/REST.
 * New: PerPageAssetTrimmer now drops `elementor-tabs-handler` and `elementor-youtube-
   handler` on pages that don’t use those atomic elements.
 * New: UnusedWidgetBundleStripper deregisters the entire v4 JS chain when no scanned
   post on the site uses atomic widgets.
 * Changed: Default theme switched from “system” to “light” on fresh installs. Existing
   users keep their preference.
 * Fixed: Third-party widget packs (Rivax, etc.) that throw inside `get_style_depends()`
   no longer leak error strings into Feather’s asset map.
 * Fixed: Elementor’s `Widget_WordPress` class incorrectly declares Swiper as a 
   dependency for every `wp-widget-*` type. Feather now strips that incorrect claim
   so sidebar widgets don’t falsely require Swiper.
 * Fixed: Dashboard “Last measured” tile no longer shows “Never” immediately after
   running a measurement.
 * Fixed: Dashboard “Pause all optimizations” card now renders with proper spacing
   between label and description.

#### 0.1.0

 * Initial pre-release scaffold.

## Meta

 *  Version **0.4.0**
 *  Senest opdateret **1 uge siden**
 *  Aktive installationer **90+**
 *  WordPress-version ** 6.0 eller højere **
 *  Testet op til **7.1.3**
 *  PHP-version ** 7.4 eller højere **
 *  Sprog
 * [English (US)](https://wordpress.org/plugins/feather-performance/)
 * Tags
 * [asset cleanup](https://da.wordpress.org/plugins/tags/asset-cleanup/)[elementor](https://da.wordpress.org/plugins/tags/elementor/)
   [optimization](https://da.wordpress.org/plugins/tags/optimization/)[Page Speed](https://da.wordpress.org/plugins/tags/page-speed/)
   [performance](https://da.wordpress.org/plugins/tags/performance/)
 *  [Avanceret visning](https://da.wordpress.org/plugins/feather-performance/advanced/)

## Bedømmelser

 5 ud af 5 stjerner.

 *  [  1 5-stjernet anmeldelse     ](https://wordpress.org/support/plugin/feather-performance/reviews/?filter=5)
 *  [  0 4-stjernet anmeldelser     ](https://wordpress.org/support/plugin/feather-performance/reviews/?filter=4)
 *  [  0 3-stjernet anmeldelser     ](https://wordpress.org/support/plugin/feather-performance/reviews/?filter=3)
 *  [  0 2-stjernet anmeldelser     ](https://wordpress.org/support/plugin/feather-performance/reviews/?filter=2)
 *  [  0 1-stjernet anmeldelser     ](https://wordpress.org/support/plugin/feather-performance/reviews/?filter=1)

[Din anmeldelse](https://wordpress.org/support/plugin/feather-performance/reviews/#new-post)

[Se alle anmeldelser](https://wordpress.org/support/plugin/feather-performance/reviews/)

## Bidragsydere

 *   [ feather ](https://profiles.wordpress.org/featherr/)

## Support

Problemerne er løst inden for de sidste to måneder:

     0 ud af 1

 [Vis supportforum](https://wordpress.org/support/plugin/feather-performance/)