Ahosting Logo
Knowledge Base

WooCommerce Checkout Optimization

Where a store loses customers it had already convincedRanked by how much each one costsForced account creationthe largest single point ofabandonmentShipping cost appearing latethe second largest, and entirelyavoidableToo many fieldsevery optional field asked foris a reason to stopA checkout that fights a phonewhere most of the traffic isNo visible progresspeople abandon when they cannotsee the endHow to find yourswatch a real customer, ormeasure step by stepThese are customers who chose the product and reached checkout. They are the most expensive ones to lose.

Checkout is where a store loses the customers it already convinced. They chose a product, they clicked buy, and then something on the page made them stop. Almost all of it is friction rather than price.

This is about conversion. For the speed side, why checkout cannot be cached and what cart fragments cost, see WooCommerce speed optimization.

Remove fields you do not use

WooCommerce asks for a full billing address by default. If you sell a digital product, most of that is unnecessary, and every field is another chance to abandon.

Go through the checkout as a customer and ask of each field: what happens if I do not have this. Company name, second address line and phone are frequently collected and never used.

Keep what you need for tax and delivery. Remove the rest.

Do not force account creation

Requiring registration before purchase is the largest single point of abandonment on most stores. The customer wanted a product, not a relationship.

Enable guest checkout, and offer account creation after the order, at that point they have a reason, because the account holds their order.

Show the total early and completely

Unexpected costs at the final step are the most common stated reason for abandonment, and shipping is usually the culprit.

Say what shipping costs before the last page. A shipping calculator on the cart, or a clear statement of your rates, means the total at checkout confirms what they expected rather than revealing something new.

If you offer free shipping above a threshold, say how far away they are. "Add £12 for free delivery" raises order values and removes the surprise at once.

Coupon fields cost more than they earn

A coupon box prompts customers to leave and search for a code. Many do not come back, and the ones who find a code cost you margin on a sale you already had.

If you do not run promotions, remove the field entirely. If you do, consider showing it only to people arriving from a campaign rather than to everyone.

Setting up coupons walks through the restrictions worth applying when you do use them.

Payment methods, and where they matter

A card gateway plus one alternative covers most customers. Which alternative depends entirely on where you sell. The dominant method varies by country and assuming otherwise costs sales.

Do not add six. Each is another integration to maintain and another thing running on checkout.

Use a gateway with embedded fields so the customer stays on your checkout rather than being redirected somewhere unfamiliar. That is a conversion consideration as well as a security one. Configuring payment gateways sets out the security half.

Test it on a phone, properly

Most stores are designed on a desktop and most customers check out on a phone.

Go through your own checkout on a real phone, on mobile data rather than wifi, and buy something. Look for fields that are hard to tap, a keyboard that covers the submit button, and a total you have to scroll to see.

Doing this once finds more than any amount of theory, and the failures are usually obvious the moment you experience them.

Say what happens next

After the order, confirm it clearly: what they bought, what it cost, and when to expect it. Then make sure the email actually arrives; a customer who receives no confirmation assumes the payment failed and either contacts you or reorders.

Order confirmation delivery is a common silent failure, and it is worth testing with a real order instead of a plugin's test button. See WooCommerce email notifications.

Find out where they actually leave

Everything above is a general improvement. What is specific to your store is which step people abandon.

Set up checkout funnel tracking in your analytics so you can see whether they leave at the cart, at the address form, or at payment. Those are three different problems with three different fixes.

Guessing produces a checkout tuned for a problem you did not have.

For the customers who leave anyway, a short recovery sequence brings some back. How to Set Up Abandoned Cart Recovery goes into doing it without training the behaviour.

Speed is part of the checkout

Every optimisation above assumes the page responds. Checkout cannot be page-cached, so it is the slowest page on the store and the one where slowness costs money directly.

curl -o /dev/null -s -w 'ttfb %{time_starttransfer}\n' https://example.com/checkout/

Run it several times. A figure well above a second means the customer waits at every step, entering an address, choosing shipping, applying a coupon, because each of those triggers a request.

The improvements that work here are object caching and reducing what runs on the page, not page caching, which must stay off: why carts break with caching explains why, and speed optimisation explains the rest.

Scripts that run on checkout and should not

Most plugins load their assets on every page including this one, whether or not they do anything there.

A slider, a gallery, a review widget, a chat client. Each adds requests and JavaScript to the page where the customer is trying to pay. Anything that fails to load, or loads slowly from a third party, delays the page or breaks the payment form.

Open the browser's network view on the checkout and look at what is loading. The list is usually longer than anyone expects, and most of it has no business being there.

Errors the customer sees and you do not

A checkout that fails for one customer produces nothing in the server's log, because the failure is in the browser.

The usual causes are a JavaScript error stopping the form from submitting, a payment script blocked by an extension, or an address format the validation rejects without saying which field is wrong.

Open the checkout with the browser's console visible and complete a full order. An error there that you would never otherwise see is a checkout failing silently for some share of your customers, and it will not appear in any report except a fall in conversion.

Read the abandoned orders you already have

Every failed and pending order is a record of somebody who tried to pay and did not finish. That list is more useful than any general advice.

Look for patterns: one payment method failing far more than the others, one country, one shipping option. A method failing repeatedly is a configuration problem rather than customer behaviour.

And distinguish the two states before drawing conclusions. A pending order may be a completed payment the store was never told about, not an abandonment at all. Handling failed and pending payments deals with telling them apart.