Did you know your marketing team could be impacting your page load times? Or worse, their activities could bring your site down?
You may think that the development team is the sole owner of website performance, but actually there are quite a few other teams that can contribute to the speed of your website. One of the biggest influencers is the marketing team, who are responsible for driving traffic to the website. Since they are the drivers of traffic, they actually have quite a lot to do with how well your website can manage that traffic. There are two areas where the marketing team can directly impact both the scalability and speed of the website during typical marketing activities: email and tracking.
Email Campaigns
When there is a sale on an ecommerce website, the marketing team tries to push as much traffic as possible to the website. One of the key channels used to drive traffic is email because it often has a very high ROI. Email as a channel is very low cost as you don’t pay per view or click beyond your normal monthly email costs, and it is the most targeted audience of potential customers because the people on your email list have already shown interest in your products or services.
One challenge with email is that it is notorious for creating a burst of traffic at once, more so than any other marketing channel. When you send an email, somewhere between one third to one quarter of email opens happen within the first hour. This creates a challenge for your website as it now needs to deal with a spike in traffic. The term “scalable” in website performance means how well your website deals with this increase in traffic.
To be able to take advantage of email marketing while minimizing its impact on performance, marketing teams can start batching emails. Email batching is the concept of sending a campaign to several smaller batches instead of sending to the entire list all at once. This is an option provided by many email providers and can make a big difference on performance. The smaller the batches and the more time delay between each scheduled batch, the less your website will have to work to handle the traffic.
On the development side, we recommend caching your static files using the Cache Statics TTL
Varnish Cache Configuration. This allows you to set a certain amount of time (known as Time To Live) to keep objects cached in order to ease the work required by the server. This is hugely important to your website as the burst in traffic only impacts your servers if all the requests are going to your servers. By implementing caching, your requests are answered from the cache and therefore your servers aren’t impacted by the increase in traffic.
Campaign Tracking
A second marketing area that can greatly impact your website performance is campaign tracking. Data has become critical to making marketing decisions, but before you can analyze the data you must start collecting it by implementing some kind of tracking. This includes tracking on all the links in your email campaign described above, as well as tracking for ads, social posts, and even links for marketing assets on your own website.
Tracking is typically done by adding parameters to each url. The most common parameters are UTM, which can be easily consumed by most analytics platforms. For example, if I wanted to drive people to signup from this blog post I might create the following url:
section.io/sign-up?utm_source=internal&utm_medium=blog&utm_content=2016-07-05-marketing&utm_campaign=signup
Once you get started creating parameters, you realize it’s critical for everyone on the team to use the same labels. For instance, I’m using “internal” as a source to mean that it’s coming from our own marketing site. But if someone decides to indicate the same thing by making “section.io” as the medium, then we won’t be able to properly do our analysis.
But here is something you may not have thought about before: the order of your utm parameters matters. It does not matter to your customers or to your analytics platform, but it matters to the server responding to the request. To it:
section.io/sign-up?utm_source=internal&utm_medium=blog
and
section.io/sign-up?utm_medium=blog&utm_source=internal
are not the same thing. And in fact, they are both different from section.io/sign-up
This is a pretty big deal if you are trying to optimize your website caching because even if the first url has been cached, the second one has not and will need to request the page from the server. As mentioned earlier, your servers are only impacted by the requests going to it, so each of these requests is going to hit the server which increases the likelihood you site can go down and decrease the speed and scalability fo your website.
One thing the marketing team can do to minimize the impact is to try to keep all urls in the same order. The same way that your team has agreed upon labels and meanings for those labels, whether via a tool or an internal spreadsheet, you can dictate the order as well. Furthermore, you could create a spreadsheet that will generate the url for you given a set of inputs, which can ensure (if someone is using the spreadsheet) that all parameters are in the same order.
On the development side, we recommend enabling a Varnish Cache configuration called Sort Querystring
, which re-orders parameters to be in alphabetical order so they are always in the same order, which decreases the requests made to your server. This takes the burden off the marketing team by automating the ordering of parameters so they don’t have to manage it manually.
You can take this one step further by writing additional VCL (Varnish Vonfiguration Language) to strip the parameters from the url (normalizing the url in Varnish Cache) if your parameters are used only for tracking and are not meant to change what elements are shown on the page. This does not remove the parameters from your tracking, only for the server, and allows all of the parameter permutations for a single page to be cached and served as one object. Yet another strategy is to use VCL to whitelist parameters the marketing team has created and only allow those requests to come through. These strategies require communication between development and marketing teams and can be covered more in depth in a future blog post.
The two Varnish Cache configurations mentioned are part of our basic Varnish Cache configurations in Section that you can enable with a single click. These are two quick ways that development can help minimize the impact that marketing activities have on the speed and scalability of the website, in addition to two changes the marketing team can make. Happy marketing!
To read more about Varnish Cache configurations with Section, checkout our documentation.