10+ practical resources for web app performance optimization

public://webform/writeforus/profile-pictures/received_10208308343079540_0.jpeg
Jess Ingrassellino, President, Teachcode.org

Web app performance matters now more than ever. As new technologies emerge, user expectations rise. Amounts of data being used, shared, and processed are increasing, putting heavier burdens on websites.

At the same time, users expect their experiences to be quick and seamless. Delivering the experience your customers expect is a critical component of maintaining a user base and growing a business.

To help provide that, here are some tools for analyzing and monitoring web performance, covering every range (startup to enterprise), every budget (free to paid), and every experience level (out-of-the-box to highly configured or configurable).

World Quality Report 2018-19: The State of QA and Testing

Get to know your web app

The first step to optimizing a web app is getting to know how the app is behaving. Running a web app through a performance audit yields actionable results within moments. Commercial tools such as Pingdom, Silk and Uptrends are free to try and offer tiered pricing, depending on your needs. These tools typically offer a summary page with basic information about your site's load time, page size, number of requests required for the page to load, and so on.

Browser developer tools

Both Firefox and Chrome contain developer tools that can be used to audit your website for performance issues. Google's tutorial on using Chrome developer tools provides end-to-end guidance in performing the audit.

Once the audit is done, there is a "score," as well as a list of opportunities for improvement. The tutorial walks developers through understanding how to implement the changes that they want to make and provides a good interface for retesting as each change is made so that the impact of each change can be compared to the baseline measurement.

Firefox offers a performance tool to help developers audit web performance and execute improvements. It's geared more toward longer-term auditing, since it records performance over time. These metrics are surfaced in the UI of the tool and comprise four different tools. 

[ Webinar: Agile Portfolio Management: Three best practices ]

Web bundles and dependencies

Another unknown in web performance is the impact of any third-party dependencies used for your site. A tool called Import Cost is available for free for users of Visual Studio. Import Cost shows the impact of imported libraries on the overall performance of your app. The app allows developers to keep tabs on the size of their web bundles, which has an overall impact on performance.

Developers who aren't using Visual Studio Code can run Webpack Bundle Analyzer, a plugin that takes normal or compressed web bundles and analyzes them to compute their true size, rendered as an interactive map. The map is a helpful way to quickly understand and visualize your entire bundle in one swoop, and focus in on areas that may no longer be relevant, helping to increase overall performance of your site.

If you are not certain what web bundling and minification are about, this article gives a brief, clear introduction to the topic.

Monitor app performance regularly

To remain high performers, web apps need to be monitored regularly and adjusted for optimization as needed. There are several tools available for regular monitoring of web performance, and many of them can be easily integrated into development and reporting tools. 

The tool(s) for the job depend upon the needs and capabilities of the product and product team. Some products are ready to go right out of the box, while others take time and multiple configuration attempts to achieve their maximum benefit. Here are multiple solutions for each type of project.

Nagios

One popular option for completely monitoring systems related to web app performance is Nagios. The open-source company has several products, with the core product containing the key functionality of check scheduling, check execution, check processing, event handling, and alerting.

Extended functionality for monitoring web performance issues is in the Nagios XI product; the enterprise edition has a cost associated with it. 

In addition to the core and enterprise product offerings, Nagios offers 50 extensions that are officially supported, as well as the community-supported Nagios Exchange. This has thousands of projects and plugins to make integrating and monitoring complex systems easier to centralize. One thing to note about Nagios is that its power comes from being highly configurable, making Nagios a better solution for teams that have someone who knows Nagios or can learn very quickly.

 

Zabbix

Zabbix is an enterprise-level, open-source monitoring tool that is used by Fortune 500 companies including HPE, IBM, and Oracle, Amazon. Like Nagios, Zabbix is open source; however, the solution is completely free to use.

Also, Zabbix has an intuitive web interface, which helps ease setup and configuration. In addition, Zabbix has performance graphs right out of the box, making it a great choice for smaller teams with less need for customization, or even teams with a smaller staff dedicated to developing custom visualizations.

Zabbix offers free webinars that are intended for the general user, and there are many community-created training materials available as well.

Keep web performance in mind

Like any other aspect of app design, achieving consistent web performance is something that requires intention. In the beginning of the design phase, take a few moments to discuss how design choices might impact speed and performance.

Developers and testers should raise concerns early in the process to avoid making more expensive changes later in development if unanticipated performance issues arise. Setting goals or performance targets for your site based upon prior benchmarks or improvement goals can help guide decisions.

Testing performance during development is also helpful to determine what changes have the biggest impact, positive or negative, on your site's performance. Also, the phrase "it works on my machine" doesn't belong here; make sure to test and audit website performance outside of your development environment. 

A tool such as Global Performance with Securi will allow you to test your site's performance from locations around the world. Make sure to test on different devices, browsers, operating systems, and versions of iOS and Android (if mobile) that make the most sense for your customer base, using different browser tools to examine and compare performance across platforms. 

Webpage Test will help you with cross-platform testing in different locations. If you are working in mobile, learn about mobile trends to discern where to invest your energy when testing mobile web performance.

Using these tools, you can audit your site, implement continuous performance monitoring, and encourage your team to be intentional about performance decisions during the design process to improve your site speed and user engagement with your product.