Since 2010, WordPress has released a new default theme every year but one. Each default theme (though sometimes stylistically opinionated) is meant to provide a solid and flexible foundation that site owners can use to build out their new WordPress site.
Though only the three most recent bundled themes are included in new WordPress installs, all 13 of the default “Twenty” themes are currently actively maintained. The level of effort to support 13 themes is not insignificant, especially in the times of the rapidly evolving block Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor. The burden of maintaining these themes has historically fallen on the Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team to ensure they continue to receive any needed updates.
Because there are so many, it’s not uncommon for it to take several months before older default themes properly support newer features added in WordPress Core. Additionally, themes created prior to the existence of certain APIs are often unable to fully take advantage of these new features (global styles, block patterns, etc.).
Trimming the number of default themes actively supported will allow contributors to be more effective at providing the best possible experience in modern WordPress through the block editor for sites using newer default themes. It also helps clear the path for work on new block theme-focused experiments and initiatives (such as the Community Themes Initiative) attempting to refine the role that themes will have in the block editor era.
This post summarizes the current state of bundled themes in WordPress before proposing new support states for bundled themes, as well as two potential ways to decrease the total number of themes receiving regular updates.
Documentation and Data
Before proposing any changes to the bundled theme support policy, it’s important to fully document the current state of bundled themes, how they are maintained, and the bundled theme life cycle (which can roughly be divided into three stages).
Bundled Theme Life Cycle
- Build Out: Once per year, a new default theme is announced and planned in coordination with a major version of WordPress (typically the final one of the calendar year). A small team of contributors build each theme out on GitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ over the course of 1-3 months before it’s merged into the WordPress Core SVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. code base for release and future maintenance.
- Active Default Theme: The theme is released with the next major version of WordPress where it receives its time in the spotlight being activated as the default for all new sites. The original theme authors typically continue to work on improving the theme and fixing bugs during this stage. Active default themes are usually the first bundled theme to receive support for new features added to Core. Every effort is made to ensure full support when the next version of WP is released within reason and where appropriate. The active default theme ideally shows the full capability of what WordPress can do.
Note: “active” default theme is currently not an officially recognized designation.
- Maintenance: The next default theme is built and merged into Core and activated for new sites. The previous theme continues to be maintained, but those involved with creating it often are not able to keep up with maintaining it long term, or are assigned to other projects and initiatives. Bundled Theme component maintainers and other Core contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. become almost entirely responsible for maintaining the theme, in addition to all others that came before it.
Maintenance means many things in different contexts. Here is an incomplete list of typical maintenance currently required by and performed on bundled themes in no particular order:
- Ensuring compatibility with new versions of PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher.
- Fixing reported bugs.
- Adjustments to code utilizing pre-existing WordPress APIs and functions to prevent additional bugs.
- Utilizing new functions, APIs, or best practices as necessary.
- Changes required to adhere to new and more modern web standards and requirements.
- Adding support for new features in the block editor and throughout Core.
- Updating npm dependencies and build scripts.
- Security updates.
- Curating changelog updates.
- Bundling, testing, and pushing releases to the theme directory.
Along with these maintenance tasks, there are some factors that need to be considered and make
- When themes are built, they target support for specific browsers and versions. This does not change over time and the support policy is “locked in” for the life of the theme. As an example, older bundled themes likely still contain code that specifically targets IE6-9. It’s usually not worth the effort and risk to remove this code because it’s impossible to anticipate the impact in the wild, especially for any child themes that have been created.
- The minimum version of WordPress required for default theme when released is set to the version of WordPress it is initially released with and does not change. As an example, Twenty Ten still technically supports back to WordPress 3.0.
- Shipping patterns in themes that support WordPress 5.0 and up is particularly complicated since valid block syntax changes over time (see #53617 for an example).
- Adding support for new features is not always straightforward and takes a substantial amount of time to test, especially for older themes (see #56487 for an example).
Current Default Theme Usage
Another important factor to consider before making any changes to a support policy is overall usage. Here is a rough breakdown of the active install counts for the “Twenty” default themes (according to WordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/) as of April 26, 2023 (note: this does not include sites running child themes of any “Twenty” themes):
- Twenty Ten: 90,000+ installs (~0.3%)
- Twenty Eleven: 100,000+ installs (~0.4%)
- Twenty Twelve: 90,000+ installs (~0.3%)
- Twenty Thirteen: 50,000+ installs (~0.2%)
- Twenty Fourteen: 100,000+ installs (~0.35%)
- Twenty Fifteen: 100,000+ installs (~0.45%)
- Twenty Sixteen: 100,000+ installs (~0.7%)
- Twenty Seventeen: 700,000+ installs (~2.5%)
- Twenty Nineteen: 200,000+ installs (~1%)
- Twenty Twenty: 600,000+ installs (~2%)
- Twenty Twenty-One: 800,000+ installs (~3%)
- Twenty Twenty-Two: 800,000+ installs (~3%)
- Twenty Twenty-Three: 1M+ installs (~3.5%)
Some interesting findings:
- Twenty Thirteen is the least used default theme at roughly 50,000 installs (0.2%).
- Twenty Fifteen and older are all active on less than 0.5% of all WordPress sites each. Cumulatively they account for slightly more than 2% of all sites.
- Twenty Sixteen and older all have less than 1% of all installs.
- Twenty Twenty-Three is currently the most used default theme active on 1M+ sites.
- Twenty Twenty through Twenty Twenty-Three all have roughly 2% of all sites or more each, cumulatively accounting for nearly 12% of all sites.
- Twenty Seventeen through Twenty Twenty-Three accounts for 15% of all sites.
Defining and clarifying the different default theme states
This proposal is also a good opportunity to refine and clarify what the different states of bundled themes are before deciding if any default themes should be retired. Currently, there is only “actively maintained”. In order to retire older themes, there needs to be a new retired state defined. It would also help to have an intermediary state (similar to long-term support or LTS) where some support and maintenance is performed, but not all.
Actively supported state
This state is for all themes included with new WordPress installs (three most recent). Ensuring the themes in this state are fully compatible with the latest version of WordPress when released is top priority. Themes in this state will receive:
- All types of bug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes.
- All types of compatibility fixes (PHP, WP, etc.).
- Support for all new features added to WordPress (when they are relevant).
- Security updates.
- Changes to utilize new functions or APIs.
- Changes to adhere to best practices or modern web standards.
This state is for all themes that have not yet met the requirements for retirement but are no longer included with new WordPress installs. Themes in this state will receive:
- All types of bug fixes.
- All types of compatibility fixes (PHP, WP, etc.).
- Security updates.
Retired theme state
These themes have met the requirements for retirement and are no longer actively maintained. Themes in this state will receive:
- No new enhancements, features, or bug fixes.
- Security updates.
In addition, the “Tested up to:” value will no longer be updated with each WordPress release. Any tickets currently open on Trac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. for a theme being placed in the retired state will be scrubbed and closed.
Retiring older bundled themes
Regardless of which methodology is used to identify when themes should be retired, the following points should be considered:
- Policies can always be altered as themes and WordPress continue to evolve. What constitutes a theme currently evolving being re-explored. Any support policy set after discussion can always be revisited in the future with new context.
- A review of the actively supported themes will be conducted annually. After a new default theme is built and released, the list of default themes will be reviewed using the criteria chosen from this proposal. When a theme qualifies for retirement, a proposal will be made on the Making WordPress blog (versus network, site). Barring any compelling evidence that the theme should continue to remain in maintenance state, the open tickets for it will be scrubbed and closed appropriately and the theme will be retired after the next major WordPress release.
Proposed Criteria for retiring bundled themes
The following criteria is proposed as the requirements to retire a bundled theme:
- Themes must be supported for a minimum of 5 years. Even if a bundled theme is not widely used, it must be actively supported for at least 5 years.
- Themes must be active on fewer than 1% of all WordPress sites (as determined by WordPress.org data).
Themes that would be retired today with this criteria:
- Twenty Ten
- Twenty Eleven
- Twenty Twelve
- Twenty Thirteen
- Twenty Fourteen
- Twenty Fifteen
- Twenty Sixteen
Themes that would be moved to maintained status
- Twenty Seventeen
- Twenty Nineteen
- Twenty Twenty
Themes that are actively maintained (currently shipped with WordPress)
- Twenty Twenty-One
- Twenty Twenty-Two
- Twenty Twenty-Three
This proposal uses a minimum percentage of active installs as the criteria for retiring default themes.
While percentages like 1% may seem low, it’s important to call out that when applied to WordPress installs, even 1% equates to a few hundred thousand sites. As more new WordPress sites are created and this number is greater, the policy can be revisited and altered if necessary (see above).
- Brings the number of actively supported themes from 13 to 6.
- Drops support for themes with an outdated aesthetic (less emphasis on visual elements, content visually “contained” within a boxed layout, etc.).
- Results in both fully block-based themes (2) and some classic-style themes (4) being actively supported or maintained.
- Establishes a clear criteria for an annual review going forward.
- Reduces the maintenance burden for 3 themes by refining what it means to be maintained vs. actively maintained.
- A non-zero number of WordPress sites currently use these themes (roughly 730,000).
This post presents a thoroughly refined recommendation as a result of feedback from several contributors listed below. However, it is only a proposal and is not concrete. Adjustments can be made to this proposal based on feedback from contributors in the comments below. If you have any thoughts, please do leave them below!
Unless there is a need to republish a modified version of this proposal for further feedback, after a consensus is reached and any needed approval from leadership to implement this proposal is received, the following action items would need to be addressed:
- The Making WordPress Core handbook should be updated in the appropriate places to outline the annual process to review for retirement candidates.
- Contributors should scrub all tickets for themes being retired and either close them out with a message why, or complete them before the theme retirement date.
- A post on WordPress.org/news announcing the retirement of any themes being retired and clarifying what that means.
- Any other action items identified while discussing this proposal.
Props @jeffpaul, @flixos90, @poena, @annezazu, @jorbin, @chanthaboune, @joemcgill, @azaozz for contributing to this post through providing feedback and proof reading.