8 Checkout Changes That Reduce WooCommerce Cart Abandonment
Eight changes to a WooCommerce checkout, from guest checkout and fewer fields to wallets, early shipping costs, inline errors and speed, with the setting or code for each one.

People abandon a checkout for ordinary reasons: a forced account, a form that asks too much, a cost that appears late, an error they cannot find, a page that hangs. WooCommerce checkout optimization is the work of removing those reasons one at a time.
The eight changes below run roughly from least effort to most. Where a setting exists, we name it. Some details differ between the Checkout block, which new stores have used by default since WooCommerce 8.3, and the older [woocommerce_checkout] shortcode that many established stores still run, so each item says which one it applies to.
1. Let people buy without an account
Go to WooCommerce > Settings > Accounts & Privacy and switch on "Enable guest checkout". Leave "Enable log-in during checkout" on as well, so returning customers can sign in without leaving the page.
For account creation, prefer the "After checkout" option. It offers an account on the confirmation page, when the customer already has what they came for, in place of a password field in the middle of the form. Subscriptions, memberships and courses are the exception because they need a login to work. For those, create the account from the email address and send a link to set the password.
2. Remove every field you do not use
Each field is one more thing to type and one more chance of a validation error. In the Checkout block, open the checkout page in the editor, select the address section and use the toggles for the company, second address line and phone fields. Each can be hidden, optional or required, as the Checkout block documentation shows.
On the shortcode checkout, fields are removed with a filter in a small plugin or the child theme:
add_filter( 'woocommerce_checkout_fields', function ( $fields ) {
unset( $fields['billing']['billing_company'] );
unset( $fields['order']['order_comments'] );
return $fields;
} );
The Checkout block ignores that filter. Its built-in fields are changed in the block settings, and new ones are registered through the Additional Checkout Fields API. Code written for one checkout does nothing on the other, which catches people out after a switch.
Two checks before you delete anything. Ask your carrier whether it needs a phone number for delivery. And if you sell digital goods, find out whether your tax rules still require a billing address.
3. Put wallet buttons where the decision happens
Apple Pay, Google Pay and PayPal let a shopper pay with a saved card and address in a couple of taps, with no form at all. They come from your payment gateway extension and are enabled in its settings. The Checkout block shows them in an express payment area above the form, and most gateways can add them to the product and cart pages too.
Test on real devices. Apple Pay needs your domain registered with the payment provider. Gateway plugins normally do this for you, so a missing button is the first sign that the step failed. Then check that shipping options and tax update correctly inside the wallet sheet. Offer the methods your customers already use in your market, not every method that exists.
4. Show shipping and the full total before the last step
A total that jumps on the final screen undoes everything before it. Three fixes:
- State the delivery cost, or the order value that earns free delivery, on the product page and in the cart.
- Under WooCommerce > Settings > Shipping there are two calculation options: one enables the shipping calculator on the cart page, the other hides shipping costs until an address is entered. Turn the first on and the second off unless your rates really depend on the full address.
- Under WooCommerce > Settings > Tax, set prices to display the same way in the shop and during cart and checkout, so tax is not a late surprise.
Flat rates and a free-delivery threshold are easier to communicate than live carrier rates. If you can price that way, do.
5. Show errors next to the field, in plain words
The Checkout block checks each field as the shopper leaves it and prints the message under that field. The shortcode checkout collects errors in a notice at the top of the form after "Place order" is pressed, which on a phone is usually off screen. If you are on the shortcode, this is one of the better reasons to move.
On either checkout:
- Keep everything the shopper typed when an error appears.
- Give custom fields the right
typeandautocompleteattributes, so phones show the right keyboard and browsers can autofill. - Do not enforce one country's phone or postcode format on international customers.
- Make a declined payment say what to do next, such as trying another card.
To test, submit an empty form on a phone, then pay in test mode with one of your gateway's decline test cards, and read what the page tells you.
6. Make the checkout itself fast
Cart and checkout pages are different for every shopper, so they cannot come from the page cache. Every request runs PHP and the database, and a slow server shows here first. What helps:
- a current PHP version and a persistent object cache,
- fewer plugins loading code on the checkout,
- cached or table-based shipping rates, because a live carrier lookup runs on every address change and leaves a spinner over the totals while it waits,
- no chat widgets, popups or session-recording scripts on this page.
Our guide to WooCommerce speed optimization covers the server side in detail, and deeper profiling is part of our performance optimization service.
7. Take out the exits and distractions
The checkout has one job. In a block theme, the checkout template already uses a reduced header with only the site title and logo. On a classic theme, strip the sidebar, the promotional banners and the footer menus from the checkout template.
Look at the coupon box as well. An open, empty coupon field invites the shopper to leave and search for a code. The Checkout block keeps it collapsed behind a link. If you never issue codes, switch coupons off under WooCommerce > Settings > General. Keep one clear way back to the cart, which the block provides as a "Return to Cart" link.
8. Answer the last doubts at the point of payment
Just before paying, shoppers recheck four things: the total, the delivery date, the return terms and whether the shop is real. Put the answers beside the order button:
- an order summary with product images and the chosen variants,
- a delivery estimate and a one-line returns summary,
- a way to contact you,
- the logos of the payment methods you accept.
Every page must load over HTTPS with no mixed-content warnings, because a browser warning ends the sale on the spot. Then make sure the confirmation email arrives within a minute and not in spam. A customer who sees no email assumes the order failed. If yours are unreliable, start with fixing WordPress email delivery with SMTP.
Measure, change one thing, then place a real order
Track the funnel before you start. The standard GA4 ecommerce events begin_checkout, add_shipping_info, add_payment_info and purchase show which step loses people. Change one thing at a time. After each change, place a real order on a phone with every payment method you offer.
Changes 1, 4 and 7 are settings you can make today. Moving from the shortcode to the Checkout block when a gateway or extension has not caught up, adding custom fields with their own validation, and tracing a wallet button that will not appear are developer tasks. They are routine for a WooCommerce development team, and most of them count as checkout customization.
Frequently asked questions
Should I switch from the shortcode checkout to the Checkout block?
Yes, if your payment gateway and every checkout-related extension support it. You gain inline validation and the express payment area. Test on staging first: a gateway that does not support the block does not appear as a payment option. The page can be converted back to the shortcode from the editor.
Is a one-page checkout better than a multi-step checkout?
Neither wins everywhere. Fewer fields, a visible total and clear errors matter more than how many screens the form is split across. If you want to compare layouts, run them as a test on your own traffic.
Do abandoned cart emails solve cart abandonment?
They recover some orders after the fact, which is worth having, but they do not remove the cause. They also depend on capturing an email address early and on consent rules that vary by country, so check what applies to you before sending them.
Does guest checkout stop me from building a customer list?
No. A guest order still records the customer's email address and order details. You can offer an account after the purchase, and marketing consent is a separate checkbox in both cases.
Add worldwincoder.com as a preferred source on Google, or open this article in your AI assistant to use it as a source.
