WooCommerce Checkout Optimization - Reduce Abandonment and Increase Conversions

WooCommerce checkout abandonment averages 70%. Technical and UX changes that reduce it - guest checkout, express payments, and fewer form fields.

Dobromir Dechev
Dobromir WordPress agency owner

The average e-commerce checkout abandonment rate is around 70%. Most of that abandonment is caused by friction: too many steps, required account creation, confusing form fields, or a lack of preferred payment methods.

WooCommerce's default checkout is functional but not optimised. Here are the changes that reliably reduce abandonment on client stores.


Audit your current checkout first

Before making changes, measure the baseline. Set up a checkout funnel in Google Analytics 4 or use WooCommerce's built-in analytics to track:

  • Customers who view the cart
  • Customers who reach checkout
  • Customers who initiate payment
  • Customers who complete payment

This funnel shows exactly where you are losing customers. If most abandonment happens on the cart page, the checkout itself may not be the problem. If it happens on the payment step, payment method friction is likely the culprit.


Remove mandatory account registration

By default (or with some hosts' WooCommerce setup), customers are required to create an account before purchasing. This alone can kill conversion rates.

In WooCommerce > Settings > Accounts & Privacy:

  • Enable "Allow customers to place orders without an account"
  • Enable "Allow customers to log into an existing account during checkout"

Guest checkout should always be available. Offer account creation as an option after the purchase is complete - customers are more willing to register once they have already committed to buying.


Reduce the number of form fields

WooCommerce's default checkout asks for: first name, last name, company, address line 1, address line 2, city, state/county, postcode, country, phone, and email. That is up to 11 fields before payment.

Remove fields that are not needed for your business:

  • Company name: only necessary for B2B stores
  • Address line 2: can be removed or made optional for most stores
  • Phone number: not needed if you do not call customers (remove it or make it optional)

Use the WooCommerce Checkout Field Editor plugin or add code to functions.php:

// Remove company field
add_filter( 'woocommerce_checkout_fields', function( $fields ) {
    unset( $fields['billing']['billing_company'] );
    unset( $fields['billing']['billing_address_2'] );
    return $fields;
});

// Make phone optional
add_filter( 'woocommerce_checkout_fields', function( $fields ) {
    $fields['billing']['billing_phone']['required'] = false;
    return $fields;
});

Every field you remove or make optional reduces friction. Fewer fields = more completions.


Implement address autocomplete

Google Places Autocomplete fills the address fields automatically as the customer types the first few characters of their street address. This turns a 5-field address entry into a single input.

The Checkout Address Autocomplete for WooCommerce plugin (or several alternatives) integrates this. It requires a Google Maps API key with the Places API enabled.

Expected conversion lift: 10-20% on mobile, where typing addresses is most painful.


Move to one-page or multi-step checkout

WooCommerce's default two-page checkout (cart, then checkout) works for desktop. For mobile, a focused single-page checkout or a guided multi-step flow often outperforms it.

Options:

Checkout Blocks (built in): WooCommerce's new block-based checkout (introduced in WooCommerce 8.x) is cleaner and faster than the classic shortcode-based checkout. Enable it in WooCommerce > Settings > Advanced > Features. The block checkout loads faster and has a cleaner mobile experience.

CartFlows: Purpose-built checkout funnel builder. Supports multi-step checkout, order bumps, one-click upsells, and A/B testing. Best for stores where checkout optimisation is a priority revenue lever.

FunnelKit (formerly WooFunnels): Similar to CartFlows with a clean UI and good Express Checkout support (Apple Pay, Google Pay).


Add express checkout options

Apple Pay, Google Pay, and PayPal One Touch let customers check out with a single tap, using payment details already stored on their device. No entering card numbers, no billing address form.

Implementation depends on your payment gateway:

Stripe: Install the WooCommerce Stripe plugin. Enable "Payment Request Buttons" in the plugin settings. Apple Pay and Google Pay appear automatically on compatible devices.

PayPal: Install the official WooCommerce PayPal Payments plugin. Enable the "Smart Buttons" which include PayPal, Venmo, and Pay Later.

Express payment buttons can appear on the product page, cart page, and checkout page. Putting them on the product page (as a "Buy Now" option) captures impulse purchases before the customer even reaches the cart.


Optimise checkout performance

A slow checkout page increases abandonment. The checkout page loads multiple scripts: payment gateway JS, Google Maps (if you add autocomplete), analytics, and WooCommerce's own scripts.

Move to checkout block

The WooCommerce block checkout is significantly faster than the classic shortcode checkout. It uses React and loads asynchronously, rather than rendering everything server-side.

Disable unnecessary payment gateways

Every active payment gateway loads its own JS file on the checkout page. If you have 6 payment gateways installed but only use 2, disable the other 4. Each one removed reduces checkout page load time.

Use a server-side caching plugin carefully

Do not cache the checkout page. The checkout page contains dynamic data (cart contents, nonces) that breaks if served from cache. WooCommerce automatically sets cache-busting cookies on cart/checkout pages, but verify your caching plugin respects these:

In W3 Total Cache, WP Rocket, and LiteSpeed Cache, the checkout URL should be in the "excluded pages" list. WooCommerce's built-in integration with major caching plugins usually handles this, but verify it manually by checking the checkout page while logged in with items in the cart.


Reduce payment failures

A completed checkout that fails at payment causes abandonment and loss of customer trust. Common causes of payment failures:

Incorrect 3D Secure handling: 3DS2 (required for European transactions under PSD2) requires the user to authenticate with their bank. If your checkout does not handle the 3DS redirect cleanly, many European transactions fail. Use a gateway that handles 3DS2 natively (Stripe, Mollie, Braintree).

Billing address mismatch: Some gateways decline transactions where the billing address does not match the card's registered address. If you removed or optional-ised the billing address fields, verify your gateway does not require an AVS match.

SSL certificate issues: An expired or invalid SSL certificate on the checkout page will cause most payment gateways to block the transaction. Set up automated SSL renewal (Let's Encrypt via certbot renews automatically; managed hosts handle this for you).


Post-purchase optimisation

What happens after a successful checkout affects lifetime value:

Order confirmation email: Sent immediately. Include order summary, estimated delivery, and a support contact. This email is the most-opened email you will ever send - use it to set expectations and reduce support enquiries.

Thank you page upsell: CartFlows, FunnelKit, or the native WooCommerce "thank you" page hook (woocommerce_thankyou) can present a related product offer. The customer has just completed a purchase and is in a buying mindset - this is the highest-converting upsell moment.

// Add content to the thank you page after order details
add_action( 'woocommerce_thankyou', function( $order_id ) {
    echo '<div class="post-purchase-offer">';
    echo '<h3>One more thing...</h3>';
    // Display related product or offer
    echo '</div>';
});

Account creation prompt: After guest checkout, prompt the customer to create an account with their order email pre-filled. Many customers will complete this when the purchase is done and they want to track their order.


Quick-win priority list

If you implement nothing else, do these three:

  1. Enable guest checkout - every minute a guest checkout is disabled is revenue lost
  2. Add Stripe with Apple Pay/Google Pay - express checkout buttons on product and cart pages
  3. Remove unnecessary form fields - company name, address line 2 at minimum

These three changes alone typically reduce abandonment by 15-25% on stores that had not previously optimised checkout.


Was this article helpful?