WooCommerce Checkout Abandonment: What's Actually Killing Your Conversions

By , AI Systems ArchitectPublished Updated 7 min read

TL;DR

Across 50 studies, the Baymard Institute puts the average documented cart abandonment rate at 70.22% (its list was last updated in September 2025). Much of that is outside your control — plenty of shoppers are only browsing — but a real share comes from checkout friction you can fix: a slow checkout page, unnecessary form fields, a payment step that doesn't look trustworthy, and a phone field that opens the wrong keyboard on mobile. This guide diagnoses each friction point and shows you the exact fix.

What does checkout abandonment actually cost you?

Take a WooCommerce store with 100 visitors a day and a 2% conversion rate — 2 orders a day. At 70% abandonment, that means about 6.7 carts are started daily and about 4.7 are left behind. With a ₪200 average order, that is about ₪930 a day — roughly ₪340,000 a year — in carts that never became orders. Cut abandonment from 70% to 65% and about one more cart every three days becomes an order: roughly ₪24,000 a year.

Why do shoppers leave? In Baymard's survey of US shoppers who abandoned during checkout (excluding those who were just browsing), the top reasons are extra costs that were too high (40%), delivery that was too slow (20%), not trusting the site with card details (19%), being forced to create an account (18%), a checkout that was too long or complicated (17%) and site errors or crashes (17%). Trust, length, errors and forced sign-up are problems a developer can fix directly — that is where this guide focuses.

Data

Why shoppers abandon checkout (Baymard)

Extra costs too high40%
Did not trust the site with card details19%
Forced to create an account18%
Checkout too long or complicated17%

Diagnosis 1: Slow Checkout Load (>3s)

Load your WooCommerce checkout page and open Chrome DevTools (Ctrl+Shift+I, Network tab). Check the page load time. If it's over 3 seconds, you've found your first culprit. Most slow checkouts are caused by: (a) too many plugins loading scripts globally, (b) unoptimized product images still being pulled into cart review, (c) slow payment gateway integrations.

Quick fix: stop non-essential plugins (social widgets, analytics, live chat, SEO add-ons) from loading on the checkout page only. A per-page plugin manager such as Plugin Organizer or Freesoul Deactivate Plugins does it from the dashboard. Do not copy the common deactivate_plugins() snippet — that function switches the plugin off for the whole site, permanently. The code route is a small must-use plugin in wp-content/mu-plugins/ that filters the active-plugin list for checkout requests only:

add_filter( 'option_active_plugins', function ( $plugins ) {
  if ( strpos( $_SERVER['REQUEST_URI'] ?? '', '/checkout' ) === false ) {
    return $plugins;
  }
  return array_values( array_diff( $plugins, array( 'plugin-folder/plugin-file.php' ) ) );
} );

Never unload the payment gateway, WooCommerce itself, or anything the checkout form depends on, and test on a staging copy first. Then reload and measure again. How much each plugin saves depends on how much script and styling it ships, so compare the Network tab before and after rather than assuming.

Diagnosis 2: Unnecessary Form Fields

Count the fields on your checkout page: name, email, phone, address, postcode, city, company name and so on. In Baymard's 2024 benchmark, the average US checkout had 11.3 form fields, while most sites need only 8. Every extra field is one more thing to type on a phone, and a checkout that is "too long or complicated" is one of the top reasons shoppers give for leaving.

In the classic checkout, Appearance > Customize > WooCommerce > Checkout lets you hide the Company name and Address line 2 fields and make Phone optional or hidden (keep it if your gateway or courier needs it). In the block-based Checkout, the same toggles sit in the Checkout block's settings in the editor. Fields WooCommerce doesn't offer to hide, such as Postcode, need a checkout field editor plugin or a small filter. And delete any custom field you added but no longer use.

Diagnosis 3: Untrusted Payment Redirects

If your payment step sends shoppers to a page on another domain — a gateway's hosted payment page, or PayPal — they see the address change, for example from yourstore.co.il to the gateway's domain. On mobile, where the page suddenly looks different, that can feel like being handed to an unfamiliar third party at the exact moment they are typing card details.

Fix: most Israeli payment gateways can show their payment form embedded inside your checkout — as an iframe or as hosted fields — so the shopper never leaves your page, while the card details still go straight to the gateway. Ask your gateway which embedded option its WooCommerce plugin supports, and switch to it. If a redirect is unavoidable, brand the gateway's payment page with your logo and colors, and tell shoppers next to the pay button where they are about to go and which company processes the payment. It matters: 19% of the shoppers in Baymard's survey left because they didn't trust the site with their card details.

Diagnosis 4: Broken Mobile Inputs (Phone Number)

Test your checkout on an iPhone. Tap the phone field. Does the keyboard show numbers or does it show the full QWERTY keyboard? If it shows QWERTY, the field is not a type="tel" input, or it lacks inputmode="tel". Shoppers then have to switch keyboards to reach the digits — small friction, at the worst possible moment.

Fix: WooCommerce ships the billing phone as type="tel", which already opens the number pad — so if you see QWERTY, a theme or checkout-editor plugin has changed the field. Set the type back to Phone in that plugin, or add this to your child theme's functions.php (or a snippets plugin) to force it:

add_filter( 'woocommerce_checkout_fields', function ( $fields ) {
  $fields['billing']['billing_phone']['type'] = 'tel';
  $fields['billing']['billing_phone']['custom_attributes']['inputmode'] = 'tel';
  return $fields;
} );

If your store uses the block-based Checkout (the default for new WooCommerce stores since 8.3), this filter does not apply — the phone field there is already a tel input, and the fix is to remove whatever plugin overrides it.

Test and Measure: Set a Baseline

Measure checkout abandonment before and after each fix. In Google Analytics 4, with your store sending the standard ecommerce events, build a funnel exploration from begin_checkout to purchase. Set a baseline: "Our current checkout abandonment is X%." Apply one fix (unload plugins, hide a field, fix the phone input), wait 1–2 weeks, and measure again. Even a couple of points of improvement is real money. For the speed part specifically, the revenue impact calculator gives a rough estimate of what a slow page costs, from your own traffic and order value.

Document each change and apply one at a time, so you know which fix moved the number. If the rate doesn't move after the technical fixes, the cause is probably price, shipping or trust — not code.

The measuring routine, in four steps. First, set a baseline with a GA4 funnel from begin_checkout to purchase. Second, apply one fix: unload plugins, hide a field, or fix the phone input. Third, wait 1–2 weeks. Fourth, measure again and document which fix moved the number. If the rate does not change after the technical fixes, the cause is probably price, shipping or trust, not code.
One fix at a time, so you know which one moved the number.

FAQ

Does adding a "Save your cart" recovery email help?

Yes, but only for shoppers who already entered an email address — and many leave before that step. Recovery emails (via plugins such as AutomateWoo or WooCommerce Cart Abandonment Recovery) win back part of those carts; measure how many in your own store. In Israel, make sure the consent wording in your checkout covers these reminders under the anti-spam rules. It's a useful add-on, not a fix for the friction itself.

Should I reduce shipping costs to recover abandonment?

Extra costs are the top reason in Baymard's survey: 40% of shoppers who abandoned during checkout cited shipping, taxes or fees that were too high. You may need no surprises more than cheaper shipping — show the shipping price, or the free-shipping threshold, on the product page and in the cart, not for the first time at the last step. Then fix the technical friction too: a fast, clear checkout with honest pricing up front is the combination that works.

Sources

Related services

Related reading