CSS forensics for Elementor power users

The page looks great. The stylesheet ships everything twice.

Elementor writes a stylesheet per page — and every widget you style by hand writes its declarations again. Elementor CSS Optimizer reads what Elementor actually generated, finds the repeats, the copy-pasted custom CSS and the bloat, and scores it 0–100.

FROM $49/YEAR · LIFETIME OPTION · 14-DAY GUARANTEE

Every page's CSS weighed — ranked, rule-counted Identical style blocks found — wasted bytes counted Custom CSS audited — duplicates, empties, !important Site-wide analysis + cleanup (Pro)
“PageSpeed said reduce unused CSS. We opened uploads/elementor/css and found 66 KB for one page — the same button styling repeated for every button on it. Nobody wrote that CSS. The editor did.”
— Every Elementor site, after year two

It isn't carelessness — it's the workflow. Styling widgets one at a time is exactly how Elementor is designed to be used, and every repeat is invisible until you read the generated stylesheets. Elementor CSS Optimizer reads them for you, names the repeats, and counts what they cost.

How it works

Read the output. Fix the source.

One scan reads every stylesheet Elementor generated plus the custom CSS stored in your page data. Nothing is edited — you get the evidence, ranked by cost, with the fix named for each finding.

WEIGH

Every page's generated CSS, weighed and ranked

Every post-*.css file sized, rule-counted and ranked — plus Elementor's base and global files and the kit. The 66 KB page sits at the top of the table with its 342 rules, and the score tells you at a glance whether the site is lean or carrying weight.

MATCH

Identical style blocks, found and costed

Declaration sets are normalised — order, case and whitespace ignored — and matched. Style the same card five ways of identical on one page and the scan shows the block, the five selectors, and the wasted bytes. Trivial one-liners are ignored; only repeats with substance count.

AUDIT

Every custom CSS block, in one table

Element-level and page-level custom CSS out of your Elementor data: identical blocks marked ×3, ×4 — Elementor emits every copy separately — plus empty left-overs, blocks that skip the selector keyword and apply site-wide from wherever they're pasted, and !important counts.

FLAG

Inline-delivery pages, caught

When Elementor can't write a page's stylesheet it silently prints the whole thing inline — uncached, re-sent on every load. Those pages are flagged with the likely cause, and a site-wide warning fires if the CSS Print Method forces inline for everything.

TRACE

Cross-page duplicates — Pro

The same block shipped on six pages is your global-class candidate — Pro lists each one with the exact pages, copy counts and wasted bytes, biggest win first. Same for custom CSS pasted across pages: one copy in the kit covers the site.

CLEAN

Orphans deleted, CSS regenerated — Pro

Stylesheets for deleted or de-Elementored posts are dead weight; Pro deletes them with each file re-verified as orphaned at delete time. And after you consolidate, regenerate all of Elementor's CSS from the same screen and re-scan to measure the win.

MERGE

One-click consolidation, with undo — Pro

Duplicated custom CSS that's provably location-independent merges into the site kit with one button: one copy kept, every element copy removed, stylesheets regenerated — and a byte-for-byte undo snapshot taken first. Blocks using Elementor's selector keyword are deliberately never auto-merged.

PROVE

A score trend that keeps the receipts

Every scan stores a snapshot. The dashboard charts the score across scans and shows the change since last time; the report carries the trend table. Fix, re-scan, and the improvement is on record — plus a weekly email digest and wp eco scan --json for CI in Pro.

REPORT

White-label report & PDF — Pro

The whole diagnosis as a branded A4 report — your name, logo and colour — with the score, findings, cross-page groups and heaviest pages. Print it or download the true PDF. Made for the “here's why your site is slow, and here's the plan” conversation.

Who it's for

Anyone whose Elementor site has history.

The PageSpeed chaser

“Reduce unused CSS” with no clue where it lives. The scan names the pages, the blocks and the bytes — so you fix causes instead of chasing a score blind.

The site with three authors

Three people styling widgets three ways. The duplicate table shows exactly where the same result was built by hand repeatedly — the shortlist for your global classes.

The inherited build

You took over a site with years of accumulated custom CSS. One table of every block, with duplicates, empties and hard-coded selectors marked — an audit that used to mean opening every page.

The redesign-in-place

Pages deleted, templates swapped, CSS folder never cleaned. Orphan detection finds the stylesheets nothing owns; Pro deletes them safely and regenerates the rest.

?The mystery slow page

One page drags and nobody knows why. Its stylesheet is inline on every load — flagged with the likely cause in one scan, fixed by re-saving after the permissions fix.

The agency retainer

You maintain client Elementor sites. The white-label report turns a scan into a deliverable — evidence, plan, and a re-scan that proves the clean-up moved the score.

The CSS report

Anatomy of one scan.

AThe weight line

The heaviest page, its stylesheet named and sized — and what it could weigh once the repeats collapse into shared styles. Real file sizes from disk, not estimates.

BThe findings

Each row is one diagnosis: the repeated block with its copy count and pages, the custom CSS pasted four times, the page serving CSS inline, the orphaned files. Severity-ranked, edit links included.

CThe clean-up — Pro

Orphans deleted (re-verified at delete time), Elementor's CSS regenerated from the same screen, and the after-figure measured — not promised.

DThe score

0–100, from the evidence: weights, repeats, custom CSS, delivery, orphans. Re-scan after each fix and watch it move — the honest way to prove an optimisation pass worked.

Honest comparison

How we compare to the alternatives.

The usual responses to Elementor CSS bloat: a caching/minify plugin, an unused-CSS remover, or reading the generated stylesheets yourself. Here's the honest breakdown.

CSS Optimizer (us)Minify / unused-CSS tools
Shows where the bloat comes from✓ Block, selectors, pages, bytes✗ Compresses output, cause stays
Finds duplicate style blocks✓ Within and across pages, normalised✗ Not their job
Audits Elementor custom CSS✓ Duplicates, empties, selector use✗ Invisible to them
Catches inline-delivery pages✓ Flagged with the likely cause◐ Some inline everything on purpose
Cleans orphaned Elementor CSS✓ Re-verified at delete time (Pro)✗ Not their layer
Safe on dynamic content✓ Read-only analysis — nothing stripped◐ Unused-CSS guessing breaks things
Proves the fix worked✓ Re-scan, score moves◐ Lab score moves, causes remain
Client-ready deliverable✓ White-label report + PDF (Pro)✗ Settings pages don't present well
Makes pages faster by itself✗ It's a diagnosis — you apply the fix✓ Compression helps immediately
Free to run✗ Pro from $49/yr (free: full per-page diagnosis)◐ Free cores, paid for the useful bits

Credit where due: a good caching and minify setup is worth having, and we don't replace it. The difference is that compression treats symptoms — this shows you the disease. Fix the source and every optimiser downstream has less to do. Full comparison →

Pricing

Simple prices. One is forever.

Every plan includes every Pro feature — site-wide duplicate analysis, custom CSS tracing, orphan cleanup, regeneration, and the white-label report with PDF. You're only choosing how many sites.

10 Sites
$49/yr

Up to 10 sites

  • All features included
  • Updates & support for a year
  • 14-day guarantee
Choose 10 Sites
Agency
$99/yr

25 sites · for agencies

  • All features included
  • Updates & support for a year
  • 14-day guarantee
Choose Agency
100 Sites
$149/yr

Up to 100 sites

  • All features included
  • Updates & support for a year
  • 14-day guarantee
Choose 100 Sites
Lifetime
$599 once

Up to 100 sites, forever

  • All features, all future updates
  • Never renew, never re-buy
  • 14-day guarantee
Own it forever

Prices in USD. Licence keys are domain-based — no accounts, no phoning home. The free edition (full per-page diagnosis) is included with every order for staging sites. VAT invoices available.

Questions

Asked and answered.

Where does all this duplicate CSS actually come from?

From working the way Elementor encourages you to work. Style a heading — colour, size, spacing, hover — and Elementor writes those declarations into that page's stylesheet, scoped to that one widget. Style the next heading the same way, by hand, and it writes them again. Six pages of that and the identical block exists six times in six files. None of it is visible in the editor; it only shows up in the generated CSS, which is exactly what this plugin reads.

Does the plugin edit or "optimize" my pages automatically?

No, and that's deliberate. Scanning is strictly read-only — it never touches your pages, your widgets or Elementor's files. The plugin shows you exactly which blocks repeat, where, and what they cost, so you can consolidate them at the source: a global class, kit styles, one copy of the custom CSS. The only writes Pro can make are deleting orphaned stylesheet files that belong to deleted posts (Elementor regenerates anything it still needs) and asking Elementor's own files manager to regenerate its CSS.

Why not just use a minifier or an "unused CSS removal" plugin?

Those work on the output: compress the file, strip selectors a crawler didn't see. Useful, but the duplication is still there — minified duplication is still duplication, and unused-CSS removal tools are notorious for guessing wrong on dynamic content. This plugin works on the input: it shows you that the same 560-byte block ships eleven times because eleven widgets were styled by hand, and the durable fix is one global class. Fix the source and every optimiser downstream has less to do. The two approaches stack, honestly.

What is a "repeated style block" exactly?

A set of CSS declarations that is identical after normalisation — same properties, same values, regardless of order, whitespace or case — appearing under two or more different selectors. Trivial one-liners are ignored; only blocks with real substance count. Within a page, repeats usually mean widgets styled one-by-one to the same result. Across pages (Pro), they're your strongest candidates for a global class or kit style.

What does the custom CSS audit catch?

Every element-level and page-level custom CSS block stored in your Elementor data, in one table: blocks pasted identically into several elements (Elementor emits each copy separately — we mark them ×3, ×4…), empty left-over blocks, blocks that never use Elementor's "selector" keyword (hard-coded ID rules apply site-wide from wherever they're pasted, which is why they end up duplicated), and !important counts, which are usually specificity-war debris.

What's an "inline delivery" flag?

Elementor normally writes each page's CSS to a file that browsers cache. When it can't write the file — usually an uploads-folder permissions problem — it silently falls back to printing the whole stylesheet inline in the HTML on every single load: nothing cached, re-sent to every visitor. Pages in that state are flagged, and there's a site-wide warning if the CSS Print Method setting forces inline for everything.

Will the cleanup break my site?

The orphan cleanup deletes only post-*.css files whose post is gone, binned, or no longer built with Elementor — and each file is re-checked at delete time, not trusted from an old scan. Elementor regenerates any stylesheet it actually needs the next time a page is viewed. Regenerate-all uses Elementor's own files manager — the same thing as its Regenerate CSS tool. Neither touches your content.

What's in the free edition, and what does Pro add?

Free is the complete per-page diagnosis: every page's generated CSS weighed and ranked, repeated blocks found within each page with wasted bytes counted, the full custom CSS audit, inline-delivery flags, orphan detection and the 0–100 score. Pro adds everything site-wide: identical blocks tracked across pages with the exact pages listed, custom CSS pasted on multiple pages, one-click orphan cleanup, regenerate-from-here — plus the white-label branded report and true PDF export for client work.

Does it work with my theme and other plugins' CSS?

It measures what Elementor generates — the post-*.css files, the kit, Elementor's base files — plus the custom CSS stored in your Elementor data. Theme stylesheets and other plugins' assets are a different problem (our WP Asset Radar covers that side). Being scoped to Elementor is what lets the analysis be precise instead of guessy.

How is the licence delivered?

Order through the form and your licence key and invoice arrive by email, usually within the hour. Keys are long codes starting VPC1. — paste the whole thing into the licence textarea rather than typing it. Domain-based, no account, no phoning home, no lock-in.

What if it's not for me?

14-day money-back guarantee, no questions. Email us and we refund you.

Get started

Your stylesheets already know what's wrong.

Order below and your licence key and invoice arrive by email — usually within the hour. Install it, scan, and twenty minutes from now you'll know exactly which pages are heavy, which styles repeat, and what to consolidate first.

14-DAY MONEY-BACK GUARANTEE · SUPPORT BY ACTUAL HUMANS

You'll receive an invoice by email — pay by card or bank transfer. Nothing is charged on this page.