Why Does WooCommerce Say My Session Has Expired at Checkout?

Why This Usually Isn't a Genuine Timeout

WooCommerce's default session lifetime is generous enough that a customer completing checkout in a normal timeframe shouldn't encounter a genuine expiry. When this message shows up sooner than that, it's almost always a symptom of the session cookie itself not being read or maintained correctly, rather than the customer actually exceeding the configured expiry window.

Common Causes of a WooCommerce Session Expiring

  • Browser cookie restrictions (third-party cookie blocking, aggressive privacy settings, private browsing mode in some configurations) preventing the session cookie from persisting correctly across the checkout flow.
  • A caching plugin caching a page that includes session-dependent content incorrectly, effectively serving a mismatched session state.
  • Multiple domains or subdomains (a www vs. non-www inconsistency, or a checkout hosted on a different subdomain) splitting cookie scope in a way that loses session continuity between pages.
  • A security plugin or CDN stripping or modifying cookies in a way that breaks WooCommerce's session handling.
  • WooCommerce's session database table (wp_woocommerce_sessions) having an issue, in rarer cases, though this is less common than a cookie-related cause.

How to Diagnose and Fix It

  1. Check for domain consistency — confirm the site is served consistently (always www or always non-www, no unexpected subdomain switches) across the shopping and checkout flow.
  2. Test with a different browser and with cookie restrictions relaxed to rule out a client-side cookie-blocking issue.
  3. Check caching and security plugin settings for anything that might interfere with cookie handling specifically on cart/checkout pages.
  4. If the issue is widespread and not client-specific, check the WooCommerce sessions database table for any obvious corruption or unusual size.

Customers repeatedly hitting this and abandoning checkout? See WooCommerce fixes.

  1. Look at the cookies. In the browser's developer tools, open the site's cookies, add a product to the cart and reload. WooCommerce sets cookies such as woocommerce_items_in_cart, woocommerce_cart_hash and a wp_woocommerce_session_ cookie. If the session cookie never appears, or disappears on the next page, something is blocking or stripping it.
  2. Check the host consistency. If browsing happens on www and checkout on the bare domain or a subdomain, cookies set for one host aren't sent to the other.
  3. Test in a private window, in another browser and with extensions off. Browser privacy features and extensions can interfere with session cookies, especially when a hosted payment page is involved.
  4. Check whether a CDN or host cache strips cookies from pages it treats as cacheable. WooCommerce depends on those cookies reaching the server.

If it happens after returning from a payment page

When the message appears as a customer comes back from an off-site payment page, compare the domain they return to with the one where the cart began. A www and non-www difference between the two is enough to lose the session.

Available for new projects

NEXT STEP

Rather have it fixed than keep reading?

Based in Dhaka, Bangladesh — serving clients worldwide. Tell me what's happening and you'll have a reply within one working day.

  • Reply within one working day
  • Fixed quote before work starts
  • UK, EU and US hours covered