The Drupal 7 period was, without a doubt, a golden era in Drupal. The improvements since Drupal 6 were substantial, both in terms of interface, code and number of contributed modules. That is why even today, and with two core versions later, almost 50% of Drupal websites use version 7.
It was recently announced that the "end of life" of Drupal 7 would be delayed until at least 2023, and could be extended further if needed. Although this may come as a relief to the owners of these sites, it can rather be seen as an invitation to reflect: should I stay on Drupal 7?
The first release of Drupal 7 is already 11 years old, while the beginning of the "end of the cycle" of Drupal 7 was marked by the release of Drupal 8 at the end of 2015. In software, 7 years is too much time and this is noticed when you delve into the features that Drupal 7 can no longer offer due to lack of support:
- Outdated jQuery libraries, which can lead to security issues.
- Limitations in modern PHP versions. By not using current PHP versions, security and performance improvements will be lost.
- Contributed modules that no longer maintain their version of D7. Most of the effort of the maintainers is focused on the current versions, so many of the D7 versions are unsupported or poorly maintained.
- Fewer security reviews (both core and contrib modules) by the Drupal Security Team. Again, the focus is on the current version of Drupal.
Not to mention the advantages of the new versions that Drupal 7 does not have access to (in the case of Drupal 9, detailed in the next section). Sooner or later the time will come when it will be mandatory to make the leap, so why not prepare yourself as soon as possible?
What options do we have?
Migrate to Drupal 9
This is the most obvious and recommended option. It is not necessary to "go through" Drupal 8 for this, as since D8, major Drupal updates are not as disruptive as the jump from D7.
There are many tools that can be used to make the migration to the latest version of Drupal easier. In addition, Drupal 9 offers many advantages of having the latest developments:
- Plenty of functionality in Core (better maintained and with more upgrades):
- A more modern content management experience.
- Better structured code, with object-orientation and dependency injection.
- Minor updates are more frequent and easier to perform with Composer.
- Improved, robust and extensible translation system.
- The global security team watches out for every core update and many contributed modules.
Help can also be found in our posts in the migration series.
Migrate to Backdrop CMS
This alternative may not be well known. Backdrop CMS was born almost at the same time as Drupal 8, when a group of developers bet on the continuity of how the code was done in D7 and decided to provide an easy upgrade path (not migration) for D7 projects.
Although less powerful than the official versions of Drupal, Backdrop is an up-to-date and present alternative. Among its main advantages we highlight:
- Similar to D7, but with support for current PHP/MySQL versions.
- Easy upgradeability between D7 and Backdrop CMS.
- Most APIs / D7 code is compatible with Backdrop CMS.
Use something completely different
The most difficult of the options, but still better than staying stuck with Drupal 7 when it is no longer supported. This option may make sense in specific cases, where developers may have experience in other frameworks / CMS or if an external solution fits perfectly with the project philosophy.
It will not be easy (none of the three options are), as it has a number of added difficulties:
- Not having specific tools for a migration outside the Drupal ecosystem.
- Need for the developers in the team to know the new framework/CMS, especially if it is not PHP like Drupal.
Going through a migration will take effort and time, and the sooner it is tackled the better. Drupal 7, even if its end-of-life is extended again, has its best days behind it.
Therefore, opting for a recent technological option is the best bet, especially before the added pressure of the countdown to the lack of support from the core of the project.