WP Engine for Developers
We’ve written about WP Engine before. As we have been partners with WP Engine for over 12 years, we thought it would be useful to our readers to break down some reasons we continue to work with them. We’ll highlight some of the tools they provide to make that relationship valuable to us and, more importantly, to our clients.
One of the things that we love about WP Engine is its commitment to technology. They’re constantly evolving and improving their service. With the vastness of their feature set, we didn’t want this to be a bullet point list of everything they offer. Instead, we’re focusing on specific aspects of the service. This post will outline some of WP Engine’s tools for developers.
The Great Migration
We often get requests from our clients to move them from their current host to a new host that we recommend. For all the reasons in this article, WP Engine is the host we most often recommend to our clients. We used to download an entire copy of a site via (S)FTP and then log into the old hosting control panel to get an export of the database. This would be our backup of the site. We would set up a local development environment and test the backup to ensure it was working properly before putting it on the new host. Finally, when working on the local environment, we would (S)FTP the files, log into the new host control panel, and import the database.
If all went well, we could point the domain name to the new host. The client would be up and running, fully migrated. Since a developer has to do all this work manually, this process is prone to network connectivity issues, human error, and other unforeseen and unexplainable problems. Not to mention expensive for our clients!
However, the process couldn’t be any easier when it comes to migrating sites onto WP Engine. You simply have to install the WP Engine Automated Migration plugin from WordPress.org and fill in your WP Engine information. The rest of the process is automated, and you’ll receive an email when the migration is complete. This process saves our clients hundreds of dollars and keeps our developers focused on writing code.
Think Global, Build Local
WP Engine acquired Flywheel, another WordPress hosting company, and all of its assets in recent years. One of these assets is Local by Flywheel, a tool to help WordPress users tinker with their WordPress sites on their desktop computers.
WP Engine has integrated this tool with their platform so that you can pull a copy of your live website down to your computer, make some changes, and then push it back up without using (S)FTP or similar technologies. This is great if you just need to do some quick styling of your site. If you’re doing more involved development work, you’ll want to use a version control system, like git. We use it on every project to see the entire history of code changes for every file and roll back code to a previous iteration if there’s a problem. You can use Local in combination with git for the ultimate developer experience.
Git’er Done!
One of the first things that we embraced at WP Engine was their Git Push technology. Being able to deploy a codebase through version control was leaps and bounds ahead of (S)FTP deployments. Deploying code no longer meant taking a site offline or putting it in maintenance mode while updates were applied. Sites could continue to serve their content and fulfill customer orders while internal systems updated code in real-time. Upon successful deployment, all server-side caches are automatically cleared. This mechanism helps to prevent old code from mixing with new code that could cause errors for users of your website.
Since we use Github as our centrally hosted version control system, using git for deployments means that we can leverage Github Actions features to automatically deploy to staging or production depending on what branch we’re working on. This eliminates the need to deploy our code manually to two different endpoints.
Save The Environments
We use a local development environment when we’re writing and deploying code. As good as that is, the technology stack on our laptop will never be the same as on WP Engine. That’s why it’s important to test your code on a server like the one your website is hosted on. There isn’t a single website that we’ve worked on that has remained the same after launch. The content of pages changes over time, and at a minimum, WordPress core, plugins, and themes should be updated regularly. Since our team doesn’t always write that code, we might not know of a change to the code that might take a site down. So, rather than deploying code that will “probably work” right into the production version of your website, we use WP Engine’s Site Environment feature to deploy our code to a staging environment.
Each site can have a separate staging and development environment for testing new code before implementing it in production. Each of these environments mimics the same server technology stack. This means you can ensure your site functionality will work on your production server. Additionally, WP Engine makes it easy to test code against the newest version of PHP safely by allowing you to change the PHP version of each environment independently. This, combined with an independent error log for each environment, allows you to quickly identify any issues before they cause a problem for your audience in your production environment.
Not Just a Bump on a Log
So, you’ve done all the right things. You’re using version control and tested on staging first, but you’re still running into an issue. When diagnosing an issue on a website, the first place you want to look is in the error logs.
WP Engine has an enhanced view of the raw PHP Error logs within the User Portal, allowing for searching and filtering. Some recent updates to this interface have made this tool even more helpful. Not only can you search the logs for specific text, but you can also narrow the log entries down by time period and severity level. If you’ve ever used the PHP Error log to diagnose an issue, you’ll know that sifting through the file can be time-consuming and often full of PHP notices that may lead you down the wrong path. The WP Engine error log interface can help you hone in on the error you’re looking for and find the file that caused it quickly.
Cache Rules Everything Around Me
A cache can often get in the way of confirming errors or successfully tracking them down. A well-designed caching system can help a server withstand normal, everyday traffic easily, but also jump in to keep a site running smoothly when it unexpectedly finds itself under an intense traffic load. That said, caching systems can often become the bane of a developer’s existence when debugging issues, especially when the caching system is complicated. WP Engine’s caching system includes multiple layers to support caching of all types – Page Cache, Network Cache (CDN), Object Cache, and Browser Cache.
As a developer, you primarily interact with the Page Cache and the Object Cache. Built-in to every site is a WordPress plugin that includes an interface to interact with the WP Engine Cache. With this tool, you can easily clear all caches at once to see a fresh, dynamic view of a page’s content and manage the timing of automatic cache purging to help with your site’s performance. For more detailed tweaking of the WP Engine cache, the User Portal has additional settings for cache exclusions for when you want to exclude certain URL paths from the cache or requests with specific URL strings.
At The Speed of WP-CLI
One of the best developer-focused tools that WordPress offers is WP-CLI, a command-line interface to access and interact with WordPress. This tool provides power users with a way to interact with a WordPress installation without the limitations of the HTTP protocol. Time-consuming things like deleting all spam comments can be reduced to a single command – wp comment delete $(wp comment list –status=spam –format=ids). WordPress core, plugin, and theme updates can be automated using WP-CLI in your local development environment combined with bash scripts.
WP Engine allows developers to access WP-CLI in two different ways. The first is through a web-based interface embedded within the User Portal. This interface is disabled by default, but access can be requested and enabled case-by-case by the WP Engine team. This interface provides access to WP-CLI for quick commands. However, it shouldn’t be used for long-running commands since it’s still subject to HTTP request timeouts like the WordPress admin. Additionally, since this isn’t a full bash command line, you can’t chain commands together as in the example above. This method may provide less technical users with a way to access this feature. But, it is highly recommended to utilize the SSH gateway for any more advanced use case. The SSH gateway allows developers to run more complex commands that may need more time to complete.
We Can Help You Move
WP Engine’s tools and workflows allow developers to be more productive and responsive in all areas of their WordPress work. Beyond their tools, WP Engine’s developer relations team is constantly interfacing with the community to make their platform even better. We’d love to talk if you’re considering changing from your current host to WP Engine and need a little help.