Do you want to improve the deliverability of your WooCommerce transactional emails? Or in other words, does it matter to you if these wind up in your customer’s spam filters instead of their inboxes:
- WooCommerce order notifications
- shipping notifications
- password reset requests
- subscription renewals
- email newsletters
Mostly you’d think that once your website is configured and WooCommerce is running, that your emails would get from A to B. Except that to get from A to B, you need to use the email superhighways. Your transactional emails need to thread their way through massive amounts of spam and ordinary emails. The email servers that process the vast numbers of emails every day are getting increasingly selective about what they send through and what they filter out as junk.
The first question you might want to know is how many of my emails are getting through and how many are getting filtered? With a standard email setup, there isn’t a way you can answer this question.
Which is why you may find yourself considering using a transactional email service to replace the standard email service available from your web hosting provider.
To understand transactional email, lets take a quick step back and clarify what we are talking about here when we say ’email’.
Say you have an eCommerce website acmewidgets.com, you might need to consider:
- Business Email: you use firstname.lastname@example.org to send and receive email queries from your mail hosting provider
- Transactional Email: your website sends emails from email@example.com to confirm orders (to you and your customers)
- Newsletter Email: you use Campaign Monitor or MailChimp to send out monthly newsletters from their mail servers
In each of these cases, out on the Internet your domain name is seen sending and receiving emails. Your email activity is tracked by the major email service providers and your domain name develops a reputation.
When your email reputation is good, your emails land in inboxes more often. If your reputation suffers, you may find your emails relegated in priority, getting caught by junk filters or not even delivered at all.
Email reputation is affected by a lot of different factors. Here are just *some* of the factors:
- your emails are received and the ‘Report Spam’ button is clicked (big red cross – you are partly in the spammer community now)
- your emails are received and read (big green tick – this is a positive signal of engagement)
- your emails are received and consistently left unopened (small red cross – you are in the low engagement community)
- your emails are sent to addresses that bounce (small red cross – bad engagement signal)
- your emails get sent and the receiver clicks and opens, moves to a folder, adds your email to their address book (green tick in the engagement area)
- your email gets filtered as spam, but a user checks their spam and ticks it as ‘Not spam’ (remove one of the red crosses)
- your domain name appears on one of email blacklists (big red cross)
- your mail server is used to send emails (not your domain, someone else’s) that are marked as spam (red cross – your email server is partly in the spammer community)
The factors being used by the big email service providers to create their filters are constantly evolving – see the list of Further Reading below if you want to learn more.
If your domain name does happen to get blacklisted, you can ask to have it removed (but of course you have to notice that it is blacklisted first). But other than that, in the international ‘court of email reputation’, there are no avenues for appeal – your email actions speak for you and your reputation changes accordingly.
Given the volume of email and the fact that spam isn’t likely to disappear as a problem anytime soon, you can expect email reputation management to get more important over time.
What to do?
Ok, so now you know about deliverability, transactional email and email reputation, the important question is this.
What can be done to improve deliverability rates for all of your domain’s email, including transactional emails from WooCommerce?
Stage 1: Choose a Transactional Email Provider
The first step is to upgrade your website’s email service from the standard email service run by your web hosting provider.
This service lets your website do things like send out WooCommerce order notifications. It sends emails from your domain name, and that service is probably going to be shared by a wide range of businesses that are customers of the hosting provider.
You can upgrade your website to instead use one of the dedicated transactional email service providers such as Postmark, SendGrid, Mailgun, Mandrill or Campaign Monitor. Transactional email service providers are focussed on improved email deliverability. So not only are they set up for optimal delivery, they are constantly monitoring for issues (such as blacklisting) and staying in close alignment with the policies of the major email sending companies.
We’ve used SendGrid in the past, and we now use Postmark which we find works very well and costs $10 USD per month for up to 10,000 emails per month. So these services are very affordable for even small businesses.
Stage 2: Configure Transactional Email for your Website
You need to integrate your transactional email service with your website.
For Postmark this involves configuring the Postmark service as well as configuring the WordPress Postmark plugin on the website.
Stage 3: Configure DNS for Email Authentication
Email authentication is a topic that gets very technical very fast.
Why worry? Anybody on the internet can send an email that says it is from your domain, they just put your email address in the ‘from’ field. What could possibly go wrong?
Because of the issue of email ‘spoofing’ (sending an email that pretends to come from someone else), email standards have evolved that allow a domain owner to identify the mail servers that are authorised (authenticated) to send email on behalf of a domain.
The main email authentication standards are SPF, DKIM and DMARC. You can optionally configure DNS for your domain to publish the authentication information required so email servers can check emails against authorised servers. If an email is sent from an authorised server, that is another big green tick for email deliverability.
Configuring email authentication requires changes to the DNS records for your domain. And be warned, this is a very technical task. If you’d like to see if an SPF record is configured for your domain and whether it is valid, there are a range of testing tools including this one: SPF Record Testing Tools
Before configuring your own email authentication, you should review all of the services involved in sending email from your domain name and prepare your email authentication records accordingly.
When doing this review, it is important to understand you can only have one SPF record for each domain name. This record should contain all of the email services that send outbound email using your domain. Each individual provider may give you recommendations on email authentication setup for their service. But SPF records can only have a maximum of 10 DNS lookups, so you may have to carefully structure the SPF record for you domain as to reduce the number of DNS lookups.
As an example of a recent upgrade to Postmark that we performed for one of our clients, the DNS record for email authentication had to integrate the following services:
- WP Engine (for website emails such as order confirmations)
- Campaign Monitor (for email newsletters)
- Receiptful (for email receipts – uses Sendgrid)
- Aftership (for shipping status notifications – uses Mailgun)
- Office 365 (for standard business email)
- Postmark (the transactional sending service)
Stage 4: Monitoring
Ok, you’ve got everything set up, so you can just sit back and assume everything works? If only. In practice, you should set up regular reporting so you can see what is happening. Postmark allows to you set up daily and/or weekly reporting so you can see total emails sent, bounces (hard/delayed/soft). You can also see how many of your emails are being sent using trusted servers (SPF and DKIM fully aligned with your DMARC policy) or untrusted sources (these could be spam, or legitimate emails sent from sources you haven’t had configured as trusted yet).
In summary, if you are going to all of the effort to find a customer and have them order online, the last thing in the world that you want is to lose that customer because an important transactional email winds up lost in a spam filter somewhere.
To get better email deliverability, you can:
- configure your website to use a dedicated transactional email service provider.
- configure your DNS to set up your trusted email servers.
- monitor your results so you can spot email deliverability issues that may arise.