Latest SeedProd News

WordPress Tutorials, Tips, and Resources to Help Grow Your Business

How to Add Custom CSS in WordPress

How to Add Custom CSS in WordPress 

Written By: author avatar Stacey Corrin
author avatar Stacey Corrin
Stacey Corrin is a certified content marketing and search specialist with over 15 years of experience writing about WordPress, SEO, and digital marketing. She manages content for SeedProd and RafflePress, covering tools and strategies she actively uses and tests herself.
    
Reviewed By: reviewer avatar Turner John
reviewer avatar Turner John
John Turner is the co-founder of SeedProd. He has over 20+ years of business and development experience and his plugins have been downloaded over 25 million times.

TL;DR: How to Add Custom CSS in WordPress

Where you paste your CSS matters more than the CSS itself, because each spot behaves differently the moment you change themes.

  1. SeedProd: a Custom CSS box in the builder’s Global Settings, free, with styles that stay attached to the page you built.
  2. The Customizer: Appearance, Customize, then Additional CSS, if you run a classic theme.
  3. The Site Editor: Styles, then the three-dot menu, if you run a block theme.
  4. WPCode: a CSS snippet that survives any theme switch.
  5. Theme files: they work, but the next theme update wipes your changes.
  6. No Additional CSS option? That’s a permission on your account, not your theme.

Have you ever tried to change a color or hide something on your WordPress site, only to find there’s no option for it? I’ve been there too. I remember spending way too long looking through my theme settings for a simple font tweak that just wasn’t possible.

That’s when I learned about custom CSS. It’s a quick way to fix small visual issues on your site, without editing theme files or hiring a developer.

You don’t need to know how to code for any of this. There are four places you can add custom CSS in WordPress, and the one you pick decides whether your styles survive the next theme change.

Methods to Add Custom CSS in WordPress:

What Is Custom CSS?

CSS stands for Cascading Style Sheets. It’s a simple language that controls how your WordPress site looks.

For example, this bit of CSS changes a heading color to red:

h1 {
  color: red;
}

And this one hides an element on the page:

.hidden {
  display: none;
}

You don’t need to write code like this from scratch. Most of the time, you’ll just copy and paste it into the right place.

The key is knowing where to put your custom CSS, and that’s exactly what I’ll show you next.

Why Add Custom CSS in WordPress?

Sometimes you want to change a button color, center a heading, or remove a bit of extra spacing, and your theme doesn’t give you a way to do it.

That’s where custom CSS comes in. It gives you control over the small design details that make your site look and feel just right.

With CSS, you’re not stuck with the default WordPress theme settings. You can fine-tune your layout, style, and spacing without switching themes or installing extra WordPress plugins.

Just remember: CSS helps tweak your design, but it won’t fix bigger visual mistakes that custom CSS can’t fix, like cluttered layouts or poor navigation.

So, how do you actually add custom CSS in WordPress?

There are a few different ways, but I’ll start with the one I use most often, and the one I recommend if you want full control without the hassle.

1. Add Custom CSS with SeedProd (My Favorite Way)

SeedProd Drag-and-drop WordPress website builder

If you’ve never used SeedProd before, it’s a drag-and-drop WordPress builder that makes customizing your site super easy, even if you’re not a developer.

I use it all the time because I can build full themes or landing pages without touching any code. And when I do want to add a bit of CSS, SeedProd gives me a simple place to do it.

Before we get into the steps, it helps to have SeedProd set up on your site.

If you haven’t used it yet, here are a couple of beginner-friendly tutorials to help you get started:

Once you’ve built a landing page or theme with SeedProd, you’re ready to add your own custom CSS. Let’s start with how to do that on a single landing page.

How to Add CSS to a Landing Page in SeedProd

To get started, open your WordPress dashboard and go to SeedProd » Landing Pages.

Find the landing page you want to edit and click the Edit link next to it.

Editing a WordPress landing page in SeedProd

This will open the SeedProd page builder. In the bottom-left corner, click the gear icon to open your Global Settings.

Opening the global page settings in SeedProd

From the left-hand sidebar, click on the Custom CSS tab.

Now paste in your CSS. For example, here’s one that styles your paragraph text:

p {
  font-style: italic;
  color: #444;
}
how to add custom CSS in WordPress landing page using SeedProd

Click the Save button in the top-right corner.

You can then preview your page to see the saved changes live on your website.

Example of custom CSS changing paragraph text to italic in WordPress

How to Add Global CSS with SeedProd’s Theme Builder

If you’re using SeedProd’s Theme Builder to design your entire site, you can apply custom CSS that works across every page.

To get started, open your WordPress dashboard and go to SeedProd » Theme Builder.

Find the template called Global CSS and click Edit Design.

Editing the Global CSS template in SeedProd

Inside the builder, click the gear icon in the bottom-left corner to open Global Settings.

From the left-hand sidebar, click the Custom CSS tab.

Click the Edit Custom CSS button. This opens the WordPress Customizer in a new window.

Edit Custom CSS button in SeedProd Global CSS Settings

In the Customizer, click Additional CSS, then paste in your code.

how to add custom CSS in WordPress theme with SeedProd

For example:

p {
  font-style: italic;
}

This will make all paragraph text across your site appear italic.

Click Publish to save your changes and apply them sitewide.

You can now refresh your page to see the update live.

Example of making WordPress theme paragraph text italic using Custom CSS in SeedProd

This method is helpful for making global style changes like font adjustments, spacing, and color tweaks.

The sitewide route is WordPress’s own panel: that Edit Custom CSS button opens the Customizer, so your global styles are saved against your theme rather than inside SeedProd. The landing page box further up is the genuinely SeedProd part and it works on the free version, though Theme Builder itself needs a Plus plan or higher.

2. Add Custom CSS in WordPress Without a Page Builder

If you’re not using a page builder like SeedProd, you can still add custom CSS directly in WordPress. The steps depend on the type of theme you’re using, either a classic theme or a block theme.

Classic themes use the older Customizer tool and often rely on widgets and page templates. Block themes, on the other hand, use the newer Site Editor, which lets you design your whole site with blocks.

Both boxes are built into WordPress, so there’s nothing to install. I use them for one-off changes rather than anything I want to keep, because WordPress files the CSS under whichever theme is active at the time.

Use the WordPress Customizer (Classic Themes)

In your WordPress dashboard, go to Appearance » Customize.

Customizing the appearance of a Classic WordPress theme.

From the Customizer menu, click on Additional CSS.

A text box will appear where you can paste your custom code. For example:

p {
  color: #0073aa;
}

This changes all paragraph text on your site to a shade of blue.

You’ll see a live preview of your changes on the right as you type.

how to add custom CSS in WordPress using the theme customizer

When you’re happy with how it looks, click the Publish button to save your changes.

This method works well with older themes that support the Customizer, and it doesn’t require any WordPress plugins.

Use the Site Editor (Block Themes)

If your WordPress site uses a block theme, you’ll manage your design using the full Site Editor instead of the Customizer.

To begin, go to Appearance » Editor in your WordPress dashboard.

Opening WordPress full site editor

In the left-hand sidebar, click the Styles icon. It looks like a half-moon or a paint palette.

Opening full site editor styles

Then click the small pencil icon labeled Edit Styles.

Editing styles in WordPress full site editor

You’ll now see the WordPress editor. In the top-right corner of the screen, click the three-dot menu (⋮) and select Additional CSS from the dropdown.

Opening additional CSS in WordPress full site editor

Paste your custom code into the box. For example:

p {
  color: #0073aa;
}

This will change the paragraph text color across your entire site.

how to add custom CSS in WordPress using the full site editor

Click Save in the top-right corner to apply the changes.

No Additional CSS option in that menu? That’s almost never your theme. It comes down to a permission on your user account, and the section below covers how to check it.

3. Use a Custom CSS Plugin

If your theme doesn’t support the Customizer or Site Editor, or if you just want a clean way to manage your CSS in one place, I recommend using a plugin like WPCode.

WPCode WordPress code snippets plugin

WPCode is a lightweight WordPress plugin that lets you add custom code snippets, CSS included, without editing your theme files.

Once you’ve installed and activated WPCode, go to Code Snippets » + Add Snippet in your WordPress dashboard.

Adding a new code snippet in WPCode

Click the box that says Add Your Custom Code (New Snippet) and give your snippet a name, like Custom CSS Styles.

Add custom code snippet in WPCode

Under Code Type, select CSS Snippet from the dropdown.

Now paste your CSS into the code box. For example:

p {
  color: #0073aa;
}

Scroll down and choose Auto Insert to apply the CSS across your entire site.

how to add custom CSS in WordPress using WPCode plugin

Then click Save Snippet and toggle the switch at the top to Active.

That’s it! Your custom styles are now live across your site, and you can come back to this snippet anytime to make changes.

This method only works if you’re using a classic theme. Block themes don’t include access to the Theme File Editor in the WordPress dashboard.

If you’re using a classic theme, and you’re comfortable editing code, you can add custom CSS directly to your theme’s style.css file. But I don’t recommend this unless you know what you’re doing.

When you edit theme files directly, your changes can be lost during updates. You also won’t see a live preview, and even a small typo can break your layout.

That said, if you’re using a child theme or know how to restore your site if something goes wrong, here’s how to do it.

Go to Appearance » Theme File Editor in your WordPress dashboard.

Opening Classic WordPress theme file editor

From the list of files on the right, click on style.css.

how to add custom CSS in WordPress style.css in theme editor

Scroll to the bottom of the file and paste your CSS. For example:

p {
  color: #0073aa;
}

Click Update File to save your changes.

Example of customized CSS by changing style.css file.

Only edit theme files behind a child theme: without one, the next theme update overwrites everything you added. If you’re not sure how to restore your site when something breaks, use SeedProd or WPCode instead.

Why Is the Additional CSS Option Missing in WordPress?

WordPress hides Additional CSS from any account that lacks a permission called edit_css, so when the box disappears it’s the permission that went missing, not the feature.

The theme looks like the obvious suspect, and it almost never is. WordPress runs the same permission check for the Customizer box and the Site Editor box, so switching themes changes nothing.

Three things switch that permission off:

  • A security setting in wp-config.php. When DISALLOW_UNFILTERED_HTML is defined on a site, WordPress takes custom CSS editing away from everyone, administrators included.
  • Multisite. On a WordPress network, only the super admin who runs the network keeps the permission, so individual site admins lose the box.
  • A hardening plugin that strips it. The edit_css permission is built on an older one called unfiltered_html, and some security plugins remove that, which takes the CSS box with it.

I went and read this in WordPress 7.1’s own code rather than repeating the theme explanation, because the option isn’t built on theme support at all.

If you’re the only admin and nothing obvious should be blocking you, ask your host or whoever set the site up whether DISALLOW_UNFILTERED_HTML is defined in your wp-config.php file. That’s the quickest one to rule out.

If the setting turns out to be deliberate, respect it and put your CSS somewhere that doesn’t go through the same check. SeedProd’s Custom CSS box saves through the builder’s own permissions and WPCode uses its own snippet permission, so a missing Additional CSS panel doesn’t stop either of them working.

Which Method Should You Use?

Pick based on what you want to happen when you change your theme, because that’s the real difference between these four.

MethodBest forSurvives a theme change?Needs a paid plan?
SeedProdStyling landing pages and templates you built yourselfYes, the CSS is saved with the pageNo for a single page, Plus for sitewide
Customizer or Site EditorA quick tweak to the theme you’re running nowNo, WordPress stores it per themeNo
WPCodeCSS you want to keep through any theme changeYesNo
Theme filesNothing, unless you’re working in a child themeNo, the next update overwrites itNo

If the CSS is sitewide and you want to stop thinking about it, I’d use WPCode, because it’s the only one of the four that ignores your theme completely. If the styling belongs to a page you designed, keep it in SeedProd with the page.

The Customizer is still fine for a small tweak you wouldn’t miss after a re-theme. Just know that’s what you’re choosing.

Bonus: Target Custom CSS to Pages or Blocks

Sometimes you don’t want your CSS to affect the whole site, you just want it to apply to one page or a single block. You can do that by using page IDs or custom CSS classes.

Using Page IDs in WordPress

Every page in WordPress has a unique ID, and you can use that to target styles for just that page.

To find the page ID, visit the page in your browser, right-click anywhere, and choose Inspect.

Inspecting a WordPress page element in Chrome web browser

In the code, look for the <body> tag. It will include a class like page-id-37.

Finding the WordPress page ID in inspect element tool

You can then use that in your CSS like this:

.page-id-37 p {
  color: green;
}
Adding custom CSS to specific page IDs in WordPress

This will only change the paragraph text color on that specific page.

Example of custom CSS targeting specific page IDs in WordPress

Using SeedProd’s Block Settings

If you’re using SeedProd, you can target specific blocks by adding a custom class name.

Open your page in the SeedProd builder and click on the block you want to style. In my case, I want to style a specific heading block.

In the left-hand panel, go to the Advanced tab, look for the Attributes option, and expand it.

Block attributes in SeedProd block

Find the field labeled CSS Class and add a class name like my-special-style.

Adding a custom Class to a heading block in SeedProd

Then, in your global or page-level Custom CSS box, add something like this:

.my-special-style {
  background-color: #fff7e6;
  border-radius: 10px;
}
Using the custom CSS class to change the heading block CSS

After saving and previewing the page, you’ll see your changes on that specific block without affecting the rest of your site.

Example of eading block customized using custom CSS class in SeedProd

FAQs About Adding Custom CSS in WordPress

How Do I Add CSS to a Specific Page?

You can target one page with its unique page ID, like .page-id-123 p { color: red; }. If you’re using SeedProd or WPCode, add a custom CSS class to the block or section you want to style and target that class instead.

Can I Use HTML and CSS Together?

Yes. You can add HTML inside WordPress blocks or widgets and style it with custom CSS, as long as your CSS targets the right element or class.

Is It Safe to Add CSS Without a Developer?

Yes, as long as you stay out of your theme files. CSS only changes how things look, so a mistake shows up as a visual oddity rather than a broken site, and you can delete the rule to undo it. Editing theme files directly is the only part of this that carries real risk.

Will Adding CSS to WordPress Affect Mobile Devices?

Your CSS applies to every screen size unless you wrap it in a media query. If you’re working in SeedProd, you can switch to the mobile preview in the builder and adjust it there before you publish.

Why Is My Custom CSS Not Working?

Two things cause this most of the time. Either a rule in your theme is more specific than yours, so it wins, or a caching plugin is still serving the old stylesheet. Clear your cache first, then right-click the element and choose Inspect to see which rule is actually being applied.

Where Does WordPress Store My Custom CSS?

CSS you add in the Customizer goes into a hidden post that WordPress names after your active theme, which is why it doesn’t follow you when you switch. The Site Editor keeps its CSS with your theme global styles. SeedProd and WPCode both store theirs outside the theme.

Ready to Customize Your WordPress Site?

Custom CSS is the quickest way past a theme that won’t let you change something, and none of it needs a developer.

You don’t have to rebuild anything or learn how stylesheets work to use it. Decide where the CSS should live, paste it in, and look at the page in your browser.

If you’d rather do the styling visually and keep it attached to the page you built, SeedProd handles both in the same place.

Want to keep customizing your WordPress site?

Here are some guides I recommend next:

Thanks for reading! We’d love to hear your thoughts, so please feel free to join the conversation on YouTubeX and Facebook for more helpful advice and content to grow your business.

author avatar
Stacey Corrin Content Marketing Specialist
Stacey Corrin is a certified content marketing and search specialist with over 15 years of experience writing about WordPress, SEO, and digital marketing. She manages content for SeedProd and RafflePress, covering tools and strategies she actively uses and tests herself.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. We only recommend products that we believe will add value to our readers.

Run this WordPress site by chatting with ChatGPT or Claude. Free plugin. Try it free