And here we are again! In this Laravel Forge review, I’ll do a deep-dive into Laravel Forge and see if it’s any good for hosting WordPress.
Did you know? I started reviewing hosting providers because I was disappointed in the many, low-level reviews found on the internet. These reviews didn’t give the exact information I was looking for and actually did elaborate how good a hosting company actually was.
And so the quest to find the best WordPress hosting was born by reviewing them all. It will probably take years, but it’s a nice journey. And this review is a part of this journey. Let’s get back to the review!
Laravel Forge is a control panel for PHP applications (one of the programming languages WordPress uses) that allows you to host WordPress on a server or virtual private server (VPS) from any cloud provider of your preference.
Laravel Forge is great, as it does all the configuration, security and maintenance of your server so that you can focus on building WordPress websites (or any other PHP applications, such as Laravel, but this site is about WordPress). It makes it dead easy to run and manage your own servers.
In short: Laravel Forge is a control panel that allows you to host PHP applications and WordPress on your own servers. If you like it, try it out with a high-performance Vultr VPS. Vultr is one of the best performing cloud providers.
So, is Laravel Forge any good? Let’s see!
If you don’t want to read this long-read, this is what you should know:
- With Laravel Forge, it is easy to set up WordPress and to host it on your own servers.
- Laravel Forge is not optimized for running WordPress. Its out-of-the-box performance is behind the best performing control panels. Also, while support does answer in a couple of hours, answers are brief and not necessarily suited towards WordPress.
- Laravel Forge misses some features which would make it much better for running WordPress, such as file backups and staging.
- Laravel Forge looks great and is easy to use.
- Pricing is fair, especially if you run many servers.
- GridPane is in my opinion a much better control panel for hosting WordPress, while Ploi, Runcloud and Cyberpanel are much better multi-purpose panels. You can compare WordPress hosting here.
- If you don’t like managing a server, but want a Control Panel like experience, consider Cloudways.
Laravel Forge Review: the procedure
If you’re a returning visitor to this site, you know that I use five criteria to review these WordPress hosting companies. Let’s look briefly into them:
- The features offered by Laravel Forge: what does it do?
- The performance (speed) of Laravel Forge: how fast do websites load?
- The usability of Laravel Forge: is it easy to use?
- The support provided by Laravel Forge: do they know stuff?
- The pricing of Laravel Forge: is it matching the value you get?
So, in this Laravel Forge review, I evaluated the platform on these five factors.
For whom is Laravel Forge?
Laravel Forge is created for serious WordPress professionals. It’s not like your traditional shared WordPress hosting or managed WordPress hosting provider.
You need to know how to set up your own servers, you need to know how to access these servers and do some simple system administration if things go wrong.
Also, you need to manually optimize your servers for WordPress, because Laravel Forge doesn’t provide that. It also doesn’t support WordPress Multisite out of the box.
Using Laravel Forge
The video in this Laravel Forge review goes through the process of using Laravel Forge and setting up WordPress. Basically, you need to take the following steps (just skip this if you want to read the review):
- Sign-up for an account at Laravel Forge.
- Have an account at a cloud provider. Digital Ocean, Linode, AWS, Vultr and Hetzner are supported out of the box.
- Under your account in Laravel Forge, you can connect one of the supported cloud providers by adding the API keys.
- In the example of Vultr, go to account, API and copy the API key. Also, add 18.104.22.168/32 and 22.214.171.124/32 to Access control. Subsequently, go back to your account settings at Laravel Forge and add the API key for Vultr under Cloud Providers.
- You can now add a new server on the main dashboard of Laravel Forge. It takes 10 minutes to set-up a server.
- After this server has been built, you can add a site. Make sure that the domain points to the IP of the server.
- After a site has been added, you can install WordPress on it from the panel. You then need to go the given site, and the WordPress installer will pop-up.
- For a custom provider, you need to manually login to your server and paste the command Laravel Forge is giving you.
So, let’s continue this Laravel Forge review by looking into the features of Laravel Forge.
Features: good, but not exhaustive
Laravel Forge has some great features for running PHP apps on your server but misses a couple of features that come in handy (especially if you’re setting up WordPress Hosting).
Running and managing sites
The core of Laravel Forge is setting up servers and managing sites. What does that mean in terms of features?
- Laravel Forge installs the required software to run WordPress on your own server and keeps everything up to date.
- By default, Laravel Forge supports Digital Ocean, Linode, AWS, Vultr and Hetzner and any custom server-provider.
- Laravel Forge allows you to manage your servers and websites from a single place.
- The Circles feature allows you to give other uses access to specific servers.
- Database backups on a remote location are supported.
- A server that has been set up by Forge requires login over SSH and is been firewalled.
- There are some features specifically for Laravel, the development framework for PHP.
- Obviously, you can add SSL to any of your sites.
- You can manage and change the domains associated with a website.
- At last, you can set up redirects for your websites from the panel.
Git integration and other developer features
Laravel Forge has some goodness for developers:
- It installs Nginx, with PHP, Redis, Memcached and MySQL or MariaDB.
- Integration with Git repositories, such as Github and Gitlab with automatic deployments.
- Recipes, which allow you to run certain pre-configured scripts upon server setup. Recipes are great to tweak your server and automate configurations. There are also many Forge Recipes out there on the internet.
- Nginx templates, which allow you to change Nginx settings (per site) from the panel.
- Obviously, you have SSH access to your server.
- An API is also provided for automating tasks with Laravel Forge.
- You can change PHP and MySQL configurations and versions from the panel for sites and servers.
- From the panel, you can also set up Cron Jobs per server.
- On website and server level, you can access logs from the panel
- You can isolate websites (by system users) to improve safety
- It’s also possible to set-up HTTP authentication for websites.
- The panel itself can be secured with 2 Factor Authentication.
- It also supports setting up a server as a load balancer and setup server networks, so you have separate servers for example your databases.
- Laravel Forge also has an SDK, which makes it very easy to use Laravel Forge in application development.
No email or domain registration
As Laravel Forge is a control panel, it doesn’t register domains and it does not support email accounts either.
It also doesn’t send emails that originate from your applications (transactional email), such as form submissions.
For the above, you need separate services.
To use Laravel Forge as a serious platform for WordPress hosting, it still needs a couple of features. In my opinion, this is lacking:
- Easily cloning sites or staging environments
- File-backups and backup restores
- Installing WP-CLI by default if a server is running WordPress
- Better control over caching (more about that later)
- Support for WordPress Multisite out of the box
- Firewalls on application level (called Web Application Firewall, or WAF)
- Better monitoring of server and applications
- Better notifications for server and application events, instead of manual events.
Having looked at the features, let’s continue this Laravel Forge review with the next chapter: performance!
Performance: could be faster
Laravel Forge does not provide the best loading performance by default. Let’s talk about that, but first, discuss how I do performance testing.
Testing Laravel Forges Performance
I tested Laravel Forge using various benchmarks and tests:
- The main test: how many simultaneous users per second can the server handle while maintaining a load time under 2 seconds, using loader.io.
- Speedtesting with Pingdom, GTMetrix, Sucuri and WebPageTest.org.
- Uptime testing using StatusCake.
- WordPress benchmarks using the WordPress Performance Tester Plugin.
Before running these tests, I set up a WordPress website with a bloated theme and WooCommerce, in combination with the caching as suggested by the platform.
For this test, I tested Laravel Forge together with a 1GB/1C Vultr High-Frequency server.
And these are the results:
Here are the results of the various benchmarks.
Maximum concurrent users (with caching): 150
With caching turned on, Laravel Forge can handle a maximum of 150 concurrent users per second before response times get big. A total of 8985 requests were made in one minute, with an average response time of 164ms.
This score is pretty bad, as Laravel Forge does not support FastCGI caching out of the box. Of course, you can set it up by doing some system administration, but that is much more effort and we’re looking to default performance here.
Maximum concurrent users (no caching): 7
Situations without caching do occur on WordPress, for example, if users are logged with their account on a WooCommerce webshop.
That’s why it’s also important to look to uncached scores.
Laravel Forge could handle 7 simultaneous users per second before its responsive times became very large. It did that with an average response time of 796ms, firing 420 requests in one minute.
Time to First Byte: 42ms
The time to the first byte (the first response from the server) was 42ms which is really good.
Worldwide, from over 12 locations in multiple continents, the average time to the first byte was 539ms which is also decent.
WordPress Benchmark Scores: 1052 queries/second
The WordPress Benchmark is always interesting, as it is run in WordPress itself. The site hosted with Laravel Forge could perform 1052 queries per second which is an excellent score. The execution time was 0.951 seconds, and the server score was 0.324 (which is great too).
Laravel Forge, in combination with Vultr, is very stable. I didn’t have any downtime during my testing period (meaning the server could not be reached).
The load-time test displays in how many seconds the test website is fully loaded.
In my opinion, this test doesn’t say much about the platform or server, but mainly how well a website itself is optimized. These are the scores for Laravel Forge:
- Average load-time Pingdom (cached): 0.55 seconds,
- Average load-time Pingdom (uncached): 0.78 seconds,
- Average WebPageTest load-time: 8.19 seconds,
- Average GTMetrix load-time: 3.70 seconds.
These scores are good to average, only the WebPageTest load-time was off.
Laravel Forge vs. Other Control Panels
So how does Laravel Forge compete with some of the other panels? The tool below allows you to pick a certain metric and compare control panels.
It will show a chart after you have picked a metric.
Laravel Forge in terms of cached performance is in the lower tier. It can handle fewer users (without manual optimization) than most of the other panels.
Initial loading times and the WordPress benchmark do show good scores though.
The interface of Laravel Forge is clear and the platform is easy to use, especially if you are already familiar with control panels.
Managing a server
Managing a server is a breeze with a clear panel, using tabs for the most important sections.
However, once you have servers, adding a new server is a bit odd. You need to go to the homepage of the dashboard first, where you can then add servers. There is no clear ‘Add Server’ button.
Moreover, it’s easy to look into server logs from the panel. In addition, Forge also remembers all the actions and events happening on the control panel, which you can see on the homepage of the panel.
Managing a site
Sites can be accessed using the top menu and clicking on Sites. Again, a site can be managed from the interface with clear tabs indicating all features.
The addition of sites needs to be done on the server level, which I think should also be possible just from the ‘Sites’ menu.
Managing and adding databases can be done in the database tab, although you need to install something like phpMyAdmin or use an SQL program to actually access these databases.
It’s also pretty easy to change or add new domains when managing a site, using the meta-tab.
As mentioned in features, Laravel Forge doesn’t have neat features for cloning or setting up staging websites.
Setting up redirects
The panel also has another neat feature, and that is the possibility to set up redirections. No more hustling with tardy Redirection plugins!
Circles: Inviting other users
The Circles feature of Laravel Forge allows you to invite other Laravel Forge users to any of your servers. Useful for collaboration and restricting access.
One other very neat feature is the possibility to set up custom warnings for your server. For example, an email warning after a server has passed 90% of disk space or CPU usage.
Unfortunately, the panel itself doesn’t have visual stats for things such as CPU usage, memory usage, disk space usage and application performance.
Support: help yourself
For this Laravel Forge review, I also tested support. Live-chat / ticket-based support is available, but don’t expect elaborate answers or support on your WordPress problems.
Live chat or tickets?
There is a live chat screen in Laravel Forge, which more or less functions as a ticket system (or ticket form). Usually, you will get a reply in 3-4 hours.
I also prepared some questions for the Forge Support team, and they answered in roughly 3 hours.
However, the answers were very brief and missed some specific details that should have been known.
For example, I asked if multisite was supported, which only works after you add a certain Nginx directive to the Nginx template. I wasn’t pointed to this answer as it was ‘up to me what I did with the application‘.
Recipes & Community
Since Laravel Forge is made for hosting Laravel applications, it’s used by many people and there are many sites, topics and people devoted to it.
There are also many recipes out there that help you to fine-tune the server run by Laravel Forge (recipes is a feature to save predefined scripts that can be run on your server).
At least, I do find their documentation good, but it doesn’t cover a lot about WordPress.
Laracasts for Laravel Forge
There is one thing that is great about Laravel Forge and that it’s also explained within Laracasts (which are videos about Laravel). This really adds up to the existing documentation.
Pricing: it’s not expensive
Surpricingly (haha), the platform is not very expensive, especially if you manage a lot of servers. Starters my find it a bit expensive if you just run one server or one site.
Laravel Forge Pricing Plans
Laravel Forge has three pricing plans.
|Hobby ($12 per month)||Growth ($19 per month)||Business ($39 per month)|
|Single server||Unlimited Servers||Everything in growth|
|Unlimited sites||Unlimited sites||Share servers|
|Unlimited deployments||Unlimited deployments||Database backups|
It’s possible to try Laravel Forge for five days.
Top 5 alternatives to Laravel Forge
There are many options if you want a platform or control panel to host WordPress on your own VPS. These are the top 5 competing with Laravel Forge:
Concluding this Laravel Forge Review (for WordPress)
Phew, it’s time to conclude this Laravel Forge review! Let me start with the upsides first. I do think Laravel Forge is a great platform, especially if you’re developing PHP or Laravel applications.
It’s specifically meant for professional developers and a pleasure to use and has some very useful features. Notable features are recipes (pre-configured scripts for servers), Cron-jobs and redirect manager, deployment from a Git repository and custom monitoring alters.
The downside is that I think the default cached performance for WordPress is lacking. I also miss some useful features such as file backups, staging environments and WP-CLI. Also, support is a bit narrow, but the platform isn’t expensive either (there is possible a relation there).
So I do think there are some good alternatives, but you can always try Laravel Forge if you like it.