What Are Dashicons and Why Are They Slowing Down Your WordPress Site

Run a PageSpeed Insights test on your WordPress site and check the “Remove unused CSS” section. There’s a good chance you’ll see dashicons.min.css listed — a 46 KB stylesheet loading on every page for every visitor, even though it’s only used in the WordPress admin dashboard.

That’s the icon font WordPress uses internally. And unless your theme explicitly uses Dashicons on the frontend, it’s dead weight your visitors are downloading for nothing.

What are Dashicons?

Dashicons is the official icon font of WordPress, introduced in version 3.8. It powers every icon you see in the WordPress admin — the post icon, the settings gear, the media library camera. There are over 300 icons in the set.

The problem: WordPress loads dashicons.min.css on the frontend too, not just in the admin. This happens because the WordPress admin bar — that black toolbar at the top of the screen for logged-in users — uses Dashicons. WordPress loads the entire stylesheet globally to support those few admin bar icons.

For your actual visitors (who aren’t logged in and never see the admin bar), it’s a completely wasted download.

Why should you care?

46 KB of unused CSS on every page. Compressed, it’s roughly 30 KB — still significant when you’re optimizing for Core Web Vitals. PageSpeed flags it as render-blocking unused CSS, which directly impacts your First Contentful Paint (FCP) and Largest Contentful Paint (LCP) scores.

It’s render-blocking. By default, CSS files in the block rendering. The browser won’t paint anything until it finishes downloading and parsing dashicons.min.css. On mobile connections, that can add 100-200ms to your visible page load.

It loads a web font. Dashicons isn’t just CSS — it’s a font file. The stylesheet triggers a font download, which means another HTTP request and more blocking time. On slow connections, font loading can cause layout shifts as icons pop in after the text renders.

Most themes don’t use it. GeneratePress, Astra, Kadence, and most modern themes use their own SVG icon systems or ship no frontend icons at all. If your theme doesn’t explicitly reference dashicons-* classes in its frontend templates, you’re loading 46 KB of CSS that matches zero elements on your page.

I’ve audited dozens of client sites. In roughly 90% of cases, Dashicons was loading on the frontend with exactly zero icons being used.

The quick fix

Add this to your theme’s functions.php or site-specific plugin:

// Remove Dashicons from the frontend for non-logged-in users
add_action( 'wp_enqueue_scripts', function() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
});

This removes Dashicons only for non-logged-in visitors. Logged-in users keep Dashicons because the admin bar needs them. The WordPress admin dashboard is unaffected.

Important: Before removing Dashicons, check if your theme or any frontend-facing plugin uses Dashicons icons. Search your theme’s template files for dashicons- class names. If you find them, you’ll need to either keep Dashicons or replace those icons with SVGs.

The one-click solution

OvKit includes Remove Dashicons under Features → Performance. One toggle disables the stylesheet for non-logged-in visitors. OvKit handles the admin bar dependency automatically — logged-in users keep their icons, visitors get a faster page.

What happens after you fix this?

  • 46 KB less CSS per page — measurable improvement in Unused CSS warnings
  • One fewer render-blocking resource — faster FCP and LCP
  • One fewer font download — reduced HTTP requests
  • PageSpeed score improvement — typically 2-5 points on mobile from this single change

Verify by visiting your site in an incognito window (where you’re not logged in), viewing the page source, and searching for dashicons. Zero results means you’re clean.

FAQ

Is it safe to remove Dashicons from the frontend?

Yes, for most sites. Dashicons is primarily used by the WordPress admin interface. Unless your theme or a frontend-facing plugin explicitly uses Dashicon classes (you’ll see CSS classes like dashicons-admin-home or dashicons-calendar), removing it has zero visual impact on your site.

Will removing Dashicons break the admin bar for logged-in users?

Not if you use the code above. The conditional check ! is_user_logged_in() ensures Dashicons remains loaded for logged-in users who see the admin bar. Only non-logged-in visitors — who never see the admin bar anyway — lose the stylesheet.

My WooCommerce site uses icons in the cart — will this break them?

WooCommerce doesn’t use Dashicons on the frontend. It has its own icon system. Removing Dashicons won’t affect WooCommerce cart icons, product ratings, or any other frontend elements. Same for Elementor, GeneratePress, and most modern page builders.


Related reads: