How to Install a WordPress Theme
Install a free, premium or custom WordPress theme from wp-admin, a ZIP file or SFTP, then verify the theme before activating it on a live site.
Quick answer: in wp-admin, go to Appearance → Themes → Add New. Search the official directory and click Install, or choose Upload Theme and select the installable theme ZIP. Installing is not the same as activating, so you can add the files without changing the live design.
If this is an established website, create a backup and use staging before activation. A new theme does not erase normal WordPress content, but it can change menus, widget areas, templates, featured-image sizes and theme-specific features.
Before you install the theme
Check five things first:
- the theme comes from WordPress.org or a vendor you trust;
- it has recent maintenance and supports your WordPress and PHP versions;
- the download is the installable theme ZIP, not a bundle of documentation and licenses;
- the site has a current database and files backup;
- you know whether it is a block theme or a classic theme.
Block themes are customized through Appearance → Editor. Classic themes generally use Appearance → Customize, although individual themes may add their own settings. The distinction matters after installation because the editing screens will look different.
Avoid “nulled” premium themes. Modified packages can contain backdoors, and they do not receive trustworthy security updates.
Method 1: Install a free theme from WordPress.org
This is the simplest method and does not require downloading a file.
- Sign in to wp-admin.
- Open Appearance → Themes.
- Select Add New Theme.
- Search by the exact theme name or use the feature filters.
- Open Details & Preview to review the description and version requirements.
- Click Install.
- When installation finishes, preview the theme or click Activate.
The WordPress directory is useful for discovery, but popularity is not proof that a theme fits the project. Test the mobile menu, typography, content width, templates and accessibility with your own content rather than relying only on the demo.
Method 2: Upload a premium or custom theme ZIP
Use this method for a theme purchased from a vendor or produced for your website.
- Download the theme package to your computer.
- In WordPress, open Appearance → Themes → Add New Theme.
- Click Upload Theme.
- Choose the
.zipfile and select Install Now. - Wait for the “Theme installed successfully” message.
- Preview or activate the theme.
Do not extract the installable ZIP before uploading it through wp-admin. WordPress expects the compressed package.
Some vendors provide one large download containing the theme, a child theme, documentation and bundled plugins. If WordPress reports “The theme is missing the style.css stylesheet”, unzip that vendor bundle on your computer and locate the inner installable ZIP. Its top-level theme folder should contain style.css.
If the upload is too large
A low PHP upload limit may produce “The link you followed has expired” or a server upload error. Confirm that you selected the theme ZIP rather than the full product bundle. If the correct file still exceeds the server limit, ask the host to raise upload_max_filesize and post_max_size, or install it through SFTP. Our expired-link guide explains how to identify the effective limits.
Method 3: Install a theme with SFTP
SFTP is useful when wp-admin is unavailable or the server rejects the upload.
- Extract the installable ZIP on your computer.
- Connect with an SFTP client using credentials from the hosting provider.
- Open the WordPress installation and navigate to
wp-content/themes/. - Upload the extracted theme folder—not the ZIP itself.
- Confirm that the result resembles
wp-content/themes/theme-name/style.css, without an accidental extra nested folder. - Return to Appearance → Themes in wp-admin.
- Preview or activate the uploaded theme.
Use SFTP rather than unencrypted FTP whenever the host supports it. File ownership and permissions should normally be inherited from the hosting environment; do not solve a permission error by making every file writable.
Preview before activation
A preview can reveal obvious layout problems, but it does not test every dynamic feature. On a staging copy, inspect:
- homepage and blog index;
- representative posts and pages;
- header, footer and mobile navigation;
- search and 404 pages;
- forms and account screens;
- WooCommerce product, cart and checkout pages, if applicable;
- custom CSS and reusable design elements.
Take screenshots of the current header, footer, menus and widget areas before switching. Theme locations can differ even when the underlying menus still exist.
What to do after activation
Open the frontend in a private window, then:
- Assign the correct navigation menu or Navigation block.
- Check the homepage setting under Settings → Reading.
- Review the Site Editor or Customizer without importing demo content blindly.
- Clear only relevant page, server and CDN caches.
- Regenerate image sizes if the new design crops existing media incorrectly.
- Test forms, analytics, structured data and key conversion paths.
- Remove inactive themes you no longer need, but keep one current default WordPress theme for troubleshooting.
Do not install every companion plugin suggested by the theme. Add a plugin only when you need its function and understand what happens if it is later removed.
If you are replacing an existing design, continue with How to Change a WordPress Theme. For styling after activation, see How to Customize a WordPress Theme.
Frequently asked
- Yes. Installation copies the theme files to the site, while activation makes that theme control the frontend. You can install a theme and preview or inspect it before activation.
- The uploaded ZIP is often the full vendor download rather than the installable theme package. Extract it locally and upload the inner ZIP that contains style.css at the theme root.
- Installing or activating a theme does not delete posts, pages or media. It can change how that content appears, and theme-specific widgets, templates or shortcodes may stop displaying correctly.