How to Fix “The Theme Is Missing the style.css Stylesheet” Error in WordPress

You uploaded a theme ZIP, clicked Install Now, and WordPress stopped with this message:

The package could not be installed. The theme is missing the style.css stylesheet.

In most cases the theme itself is fine. The ZIP you uploaded just doesn’t have the shape WordPress expects. This guide shows how to find the right file, check it in under a minute, and fix the less common cases where the ZIP really is broken.

We reproduced the error on a test site running WordPress 7.1.2 so the screenshots below show exactly what you will see.

What the error actually means

When you upload a theme, WordPress unzips the file and looks for a theme folder that contains a file called style.css. That file starts with a comment block (the theme header) where the theme declares its name, version and other details. If WordPress can’t find style.css where it expects it, it refuses to install anything and shows the error above.

There are three usual causes:

  1. You uploaded the full download package, not the installable theme. Premium themes are often delivered as one big ZIP that contains documentation, license files, demo content and, somewhere inside, the actual theme ZIP.
  2. The ZIP has an extra folder level, for example my-theme-v2/my-theme/style.css. This often happens when a ZIP is unpacked and re-zipped on a computer.
  3. The file is not a theme at all: a plugin ZIP, an HTML template, a design file kit, or a corrupted download.
Diagram: a full download package with docs, demo content and an inner ZIP, next to the installable theme ZIP that contains style.css
Diagram: the package you download often contains the theme ZIP you actually need to upload.

Before you start

You need:

  • An administrator account on the site.
  • The ZIP file you downloaded from the theme seller (for SH Themes, from your account or the product page).
  • A way to open ZIP files on your computer (built into Windows and macOS).
  • A recent backup if you are installing on a live site. If you have not done this before, read our guide on installing a WordPress theme without breaking your site first.

Step 1: Look inside the ZIP before uploading it

Open the downloaded ZIP on your computer (don’t upload it yet) and look at the first level of folders.

  • If you see folders such as Documentation, Licensing or Demo Content, plus another .zip file, you have the full package. The file you need is the inner ZIP, usually named after the theme (for example theme-name.zip).
  • If you see a single folder named after the theme, open it. If style.css is right there, together with files like functions.php and index.php, the ZIP is ready to install.
  • If you see style.css two or more folders down, the ZIP has an extra level. Go to Step 3.

Some packages also include a separate child theme ZIP (often theme-name-child.zip). Install the parent theme first; the child theme depends on it.

Step 2: Upload the installable theme ZIP

In your dashboard go to Appearance › Themes › Add Theme, then click Upload Theme. Choose the inner theme ZIP, not the package, and click Install Now.

WordPress Add Themes screen with the Upload Theme panel open, the file demo-starter-package.zip selected and the Install Now button highlighted
Appearance › Themes › Add Theme › Upload Theme. (1) Upload Theme, (2) the selected file, (3) Install Now. Here the full package is selected, which triggers the error. Test site, WordPress 7.1.2.

If you uploaded the package by mistake, WordPress unpacks it, finds no stylesheet at the expected level and stops:

WordPress result screen reading The package could not be installed. The theme is missing the style.css stylesheet. Theme installation failed.
The exact message WordPress 7.1.2 shows after uploading a full download package instead of the theme ZIP.

Nothing was installed, so there is nothing to clean up. Go back to Add Theme and upload the correct file. When the structure is right, the result screen ends with Theme installed successfully, followed by links to preview or activate the theme:

WordPress result screen showing Theme installed successfully with Live Preview, Activate and Go to Themes page links
Uploading the inner theme ZIP works: WordPress installs the theme and offers to preview or activate it.

Don’t activate it straight away on a live site. Check the theme’s documentation for required plugins first, and if you plan to change templates or add PHP code later, set up a child theme (we cover that in our child theme guide).

Step 3: Fix a ZIP that has an extra folder level

If you re-zipped the theme yourself, or a download tool added a wrapper folder, rebuild the ZIP so the theme folder sits at the top:

  1. Extract the ZIP to a folder on your computer.
  2. Open folders until you reach the one that directly contains style.css.
  3. Compress that folder (not its parent, and not just the files inside it).
  4. Upload the new ZIP.

On macOS, right-click the folder and choose Compress. On Windows, right-click the folder and choose Compress to ZIP file (the exact wording depends on your Windows version).

A quick check: when you open your new ZIP, the first thing you see should be one folder with the theme’s name, and style.css should be inside that folder.

Step 4: Check the stylesheet header

If the structure is right but installation still fails, open style.css in a text editor and look at the comment at the top. The only field WordPress strictly requires in this header is Theme Name, but a well-built theme usually declares more:

/*
Theme Name: Demo Starter
Author: Your theme author
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: demo-starter
*/

A missing or damaged header produces a different message: “The style.css stylesheet does not contain a valid theme header.” That usually means the file was edited by mistake or the download is incomplete. Download a fresh copy from the seller rather than repairing the header by hand.

Other upload errors that look similar

These messages appear on the same screen and are easy to confuse with the stylesheet error. The exact wording below comes from WordPress 7.1.2.

Message What it usually means What to do
The theme is missing the style.css stylesheet. Wrong file or extra folder level Upload the inner theme ZIP or rebuild the ZIP (Steps 1–3)
The style.css stylesheet does not contain a valid theme header. Damaged or edited style.css Re-download the theme
Template is missing. Standalone themes need to have a templates/index.html or index.php template file… Incomplete theme, or a child theme without a Template header Re-download; for child themes check the header
The PHP version on your server is X, however the uploaded theme requires Y. Hosting runs an older PHP version Ask your host to upgrade PHP; WordPress recommends PHP 8.3 or later
The uploaded file exceeds the upload_max_filesize directive in php.ini. Server upload limit is lower than the ZIP size Raise the limit with your host, or upload the theme folder via SFTP
Incompatible Archive. The file is not a valid ZIP or is corrupted Download it again; don’t rename .rar or .7z files to .zip
Destination folder already exists. A theme with the same folder name is installed WordPress shows a comparison screen and offers to replace the installed version; only continue if you meant to update

When to install over SFTP instead

If the dashboard upload keeps failing because of server limits, you can install the theme manually:

  1. Extract the installable theme ZIP on your computer.
  2. Connect to your site with SFTP (or your host’s file manager).
  3. Upload the theme folder to wp-content/themes/.
  4. Go to Appearance › Themes. The theme appears in the list and you can activate it there.

Use the same check as before: the folder you upload must contain style.css directly.

Common mistakes to avoid

  • Uploading a plugin ZIP on the theme screen. Required plugins that ship with a theme go to Plugins › Add Plugin › Upload Plugin, or are installed by the theme’s own setup screen after activation.
  • Uploading the HTML version of a template. Some items are sold as HTML templates or design kits. They can look like WordPress themes in previews but can’t be installed in WordPress. Our comparison of UI kits, website templates and WordPress themes explains the difference.
  • Renaming the theme folder. Changing the folder name can break child themes that point to the parent, and it can stop updates from matching the installed theme.
  • Editing files inside the package before uploading. If you need changes, make them after installation in a child theme.

Quick checklist

  • I extracted the download and found the inner theme ZIP.
  • Opening the theme ZIP shows one folder, and style.css is inside it.
  • I installed the parent theme before any child theme.
  • I checked the theme’s required PHP and WordPress versions against my hosting.

If you are installing an SH Themes theme

SH Themes product pages list this exact error under Support › Popular question for this item, with the same fix: extract the downloaded package first and upload the theme ZIP inside it. If you have followed the steps above and the error persists, contact the author from the product page’s support form and mention the file name you uploaded.

Want to practice on a free theme first? The SH Themes free WordPress themes are a safe way to try the upload flow before you install a premium package on a client site.

Need help?
Need a custom theme for your project?