Guide

How to Install a WordPress Theme: 3 Ways, Tested in 2026

WTWP Team X Updated October 2026 9 min read
How to Install a WordPress Theme

There are three reliable ways to install a WordPress theme: from the free theme directory inside your dashboard, by uploading a ZIP file, or by copying the theme folder over FTP. We ran all three again on a fresh WordPress 7.1.3 site on 21 October 2026, broke the upload on purpose to capture the real error messages, and took the screenshots below.

Quick answer: go to Appearance → Themes → Add Theme, search for the theme, click Install, then Activate. For a premium theme, click Upload Theme on the same screen, choose the installable ZIP and click Install Now. Don't unzip it first.

Before you start

You need an account with the Administrator role. Not sure which role you have? If there's no Appearance menu in your dashboard, you're not an admin: editors and authors don't see the Themes screen at all. Three situations change the steps:

Here's the starting point on a fresh install: Appearance → Themes lists what's installed, with the active theme first.

WordPress Appearance, Themes screen with Twenty Twenty-Five active and an Add Theme button
Appearance → Themes on WordPress 7.1.3. The Add Theme button sits next to the page title.

1. Install from the WordPress theme directory

Is the theme free? Then this is the quickest method. It works for any theme listed on WordPress.org, and you won't leave your dashboard.

  1. Log in at yoursite.com/wp-admin.
  2. Go to Appearance → Themes and click Add Theme. Older guides call this button “Add New”; it was renamed.
  3. Browse the Popular, Latest or Block Themes tabs, or type a name into Search Themes.
  4. Hover over the theme card and click Install.
  5. When the card turns green with “Installed”, click Activate, or Live Preview to look first.
Add Themes screen showing 8710 themes with Popular, Latest and Block Themes tabs
The directory counter showed 8,710 themes when we tested. Installed themes are marked in green.
Searching for Kadence in Add Themes with the Install and Preview buttons visible on hover
Searching for Kadence. The Install and Preview buttons appear when you hover over the card.
Kadence card marked Installed with Activate and Live Preview buttons
About ten seconds later: Installed, with Activate and Live Preview.

Will installing a theme change your live site? No. Only Activate does. That makes it safe to install two or three candidates and compare them with Live Preview first. If you're still choosing, our best free Elementor themes and WordPress blog themes lists are a good place to start.

2. Upload a theme ZIP (premium themes)

Bought a premium theme, or got one from a developer's site as a ZIP file? This is the method for you, and you don't need FTP.

  1. Download the theme ZIP. On ThemeForest, pick Installable WordPress file only in the Download menu, not “All files & documentation”.
  2. Go to Appearance → Themes → Add Theme and click Upload Theme at the top.
  3. Click Choose file, select the ZIP, and click Install Now.
  4. Wait for “Theme installed successfully.”, then click Activate.
Upload Theme panel with Choose file and Install Now buttons
Upload Theme opens a small panel above the directory: one file field and Install Now.
Installing theme from uploaded file astra.zip, Theme installed successfully, with Live Preview, Activate and Go to Themes page links
Uploading astra.zip (6.7 MB). Success ends with three links: Live Preview, Activate and Go to Themes page.

Upload errors we reproduced, and the fixes

Did the upload fail? Most failed theme installs come down to the wrong file or a theme that's already there. We triggered both on purpose, so the messages below are exactly what WordPress 7.1.3 shows you. They aren't paraphrased.

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

We zipped a folder the way many marketplaces ship their full download: documentation, licensing files and the real theme ZIP nested inside. WordPress unpacked it, couldn't find a style.css at the top level, and stopped.

WordPress error: The package could not be installed. The theme is missing the style.css stylesheet. Theme installation failed.
The full download package instead of the installable theme: installation fails at the stylesheet check.

Fix: open the download on your computer and look for a smaller ZIP named after the theme, usually in the root or a “theme” folder. That inner ZIP's the one to upload. Every WordPress theme must have a style.css with a theme header at its root, as the theme handbook explains. If you only have a folder, zip the folder itself, not its contents one level down.

“Destination folder already exists.” and “This theme is already installed.”

Uploading a theme that's already on the site doesn't fail outright anymore. WordPress shows the installed and uploaded versions side by side and lets you replace one with the other. That's also the easiest way to update a premium theme by hand.

This theme is already installed: table comparing installed and uploaded Astra 4.14.1 with a Replace installed with uploaded button
Uploading astra.zip a second time. Both columns show Astra 4.14.1, requiring WordPress 5.3 and PHP 5.3.

Fix: check the Version row. If the uploaded one is newer, back up and click Replace installed with uploaded. If it's the same or older, click Cancel and go back.

“The link you followed has expired.”

This one usually means the file is bigger than the server's upload limit (upload_max_filesize or post_max_size in PHP). WordPress shows your limit as “Maximum upload file size” on the media upload screen at /wp-admin/media-new.php. Ask your host to raise it, or you'll need FTP below. What surprised us in testing: our limit was 2 GB, and we still got this exact message once, because we switched from localhost to 127.0.0.1 mid upload and the login cookie no longer matched. So if the file is small, log out, log back in on the site's real address, and try again.

Install fails in the theme directory with a download error

Method 1 needs your server to reach WordPress.org. Behind a strict firewall, or on a local machine without internet, the Install button fails with a download error. You'll have to download the ZIP from the theme's WordPress.org page and use Method 2 instead.

3. Install via FTP

When is FTP worth the extra steps? When uploads are blocked, the ZIP is over the upload limit, or the dashboard won't load at all.

  1. Unzip the theme on your computer. You'll get one folder, for example astra/, with style.css directly inside it.
  2. Connect with an FTP client such as FileZilla, using the SFTP or FTP details from your host.
  3. Open wp-content/themes/. You'll see one folder per installed theme.
  4. Upload the whole theme folder there.
  5. In the dashboard, go to Appearance → Themes and click Activate on the new theme.
wp-content/
└── themes/
    ├── astra/
    │   ├── style.css      ← must sit here, not one level deeper
    │   ├── functions.php
    │   └── ...
    ├── kadence/
    └── twentytwentyfive/

Theme not showing up on the Themes screen after uploading? The folder is almost always nested one level too deep, like themes/astra/astra/style.css. Move the inner folder up.

Bonus: one command with WP-CLI

If your host gives you SSH access with WP-CLI, a directory theme is one line, and a ZIP works the same way:

wp theme install kadence --activate
wp theme install ./astra.zip --activate

Managing several sites? It's the fastest option, and it reports the same errors as the dashboard.

Installing a theme on localhost

Is it any different on a local site? Not really: the steps are the same as Methods 1 and 2. Our test site ran on WordPress Playground through its command line tool (npx @wp-playground/cli server), which doesn't need any PHP or database setup. Local works well too. Two things differ from a hosted site: Method 1 needs internet access from your machine, and if you open the site on two addresses, like localhost and 127.0.0.1, you'll get logged out mid upload, as we did.

After you install

Want to choose more carefully next time? Our list of 20 WordPress themes for beginners and intermediate users and our guide to WordPress theme marketplaces cover where good themes come from.

How we tested: a fresh WordPress 7.1.3 site on PHP 8.3, 21 October 2026. Kadence installed from the directory, Astra 4.14.1 uploaded as a ZIP from its WordPress.org page, and a package without style.css built by hand to trigger the error. Screenshots are uncropped except for resizing.

More WordPress how-tos

Guides, theme picks, and plugin reviews to help you build a better site. All on WP Team X.

Browse WordPress guides

Frequently asked questions

How do I install a WordPress theme for free?
Go to Appearance, then Themes, then Add Theme in your dashboard, search the free theme directory, hover over the theme, click Install, then Activate. No file downloads or FTP needed.
How do I install a premium theme ZIP file?
Go to Appearance, then Themes, then Add Theme, then Upload Theme. Choose the installable ZIP, not the full download package, click Install Now, then Activate. Don't unzip the file first.
Why do I get “The theme is missing the style.css stylesheet”?
You uploaded the wrong ZIP, usually the full download with documentation and the real theme ZIP nested inside. Find the smaller ZIP named after the theme inside the download and upload that one.
Why can't I see the Add Theme or Upload Theme button?
Your account isn't an Administrator, the site is part of a Multisite network where only network admins install themes, you're on a WordPress.com plan that doesn't allow uploads, or your host has disabled them.
Will changing my theme delete my content?
No. Posts, pages and media stay in the database when you switch themes. Only the design changes. Menus, widgets and theme specific settings may need to be set up again.
How do I install a WordPress theme on localhost?
The same way as on a live site: Add Theme for directory themes or Upload Theme for a ZIP. Directory installs need internet access, and you should open the site on one address only, since switching between localhost and 127.0.0.1 logs you out.
Can I have more than one theme installed?
Yes. You can install as many themes as you like and compare them with Live Preview, but only one theme is active at a time.