Title: Checkout Profiler for WooCommerce
Author: con
Published: <strong>July 23, 2024</strong>
Last modified: July 16, 2026

---

Search plugins

![](https://ps.w.org/checkout-profiler-for-woocommerce/assets/banner-772x250.png?
rev=3610345)

![](https://ps.w.org/checkout-profiler-for-woocommerce/assets/icon-256x256.png?rev
=3123944)

# Checkout Profiler for WooCommerce

 By [con](https://profiles.wordpress.org/conschneider/)

[Download](https://downloads.wordpress.org/plugin/checkout-profiler-for-woocommerce.1.1.0.zip)

 * [Details](https://en-ca.wordpress.org/plugins/checkout-profiler-for-woocommerce/#description)
 * [Reviews](https://en-ca.wordpress.org/plugins/checkout-profiler-for-woocommerce/#reviews)
 *  [Installation](https://en-ca.wordpress.org/plugins/checkout-profiler-for-woocommerce/#installation)
 * [Development](https://en-ca.wordpress.org/plugins/checkout-profiler-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/checkout-profiler-for-woocommerce/)

## Description

Checkout Profiler measures how long placing an order takes in your shop and writes
every measurement to the WooCommerce log. No dashboards, no external service — just
numbers you can act on, next to the logs you already have.

View the results under WooCommerce > Status > Logs, source `checkout-profiler`. 
Each entry names the order, the duration in seconds and the payment gateway (the
gateway usually dominates checkout time):

    ```
    Classic checkout for order 1234 took 1.311 seconds (payment via stripe).
    ```

**Both checkouts are supported:**

 * **Block checkout** (the default since WooCommerce 8.3): detected automatically,
   measured in the shopper’s browser from the moment they hit “Place Order” until
   the checkout succeeds — the time your customer actually experiences.
 * **Classic (shortcode) checkout**: measured in PHP between two hooks. The defaults
   measure the server-side order processing, including the payment gateway round
   trip. Works out of the box, no configuration needed.

**Configurable for the classic checkout:**

 * Choose start and end hooks from sensible presets — for example end at `woocommerce_thankyou`
   to include the redirect to the order confirmation page in the measurement.
 * Or enter any custom hook name for start and end.

**What this plugin is not:** a full APM suite like New Relic. It answers one question—“
how slow is my checkout, really?” — with near-zero overhead: one session value, 
one log line per order, and a small script that only loads on the block checkout
page.

## Screenshots

[⌊Settings: start/end hooks for the classic checkout, with explanations.⌉⌊Settings:
start/end hooks for the classic checkout, with explanations.⌉[

Settings: start/end hooks for the classic checkout, with explanations.

[⌊The measurements in the WooCommerce log — block and classic checkouts, with payment
gateway.⌉⌊The measurements in the WooCommerce log — block and classic checkouts,
with payment gateway.⌉[

The measurements in the WooCommerce log — block and classic checkouts, with payment
gateway.

[⌊The log list under WooCommerce > Status > Logs.⌉⌊The log list under WooCommerce
> Status > Logs.⌉[

The log list under WooCommerce > Status > Logs.

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/checkout-profiler-for-woocommerce`
    directory, or install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. Optional: adjust the classic-checkout hooks under WooCommerce > Settings > Profiler.
 4. Do a test purchase and go to WooCommerce > Status > Logs (source: `checkout-profiler`)
    to see the results.

## FAQ

### Does this slow down my website?

No measurable impact. The classic checkout timer stores one timestamp in the WooCommerce
session and writes one log line per order. The block checkout script (about 1 KB)
loads only on the checkout page, and only when the checkout block is actually in
use.

### Is the block checkout supported?

Yes, since 1.1.0 (requires WooCommerce 9.8 or newer, where the official checkout
events are available). It is detected automatically and measured in the browser —
the settings page only applies to the classic checkout.

### What exactly is measured?

Classic checkout: the time between the configured start and end hooks, by default
from checkout form submission until the order is processed (server-side, including
the payment gateway). Block checkout: the time from clicking “Place Order” until
the checkout succeeds, as experienced in the shopper’s browser.

### Where do I see the results?

WooCommerce > Status > Logs, pick the file/source `checkout-profiler`. Note: your
WooCommerce log threshold must include `info` messages (it does by default).

### Will this work with my theme/pagebuilder/custom checkout?

The block and shortcode checkouts are covered out of the box. For custom checkout
flows, point the start and end hooks at any two hooks your flow fires — as long 
as both fire, the measurement works.

### Is this like New Relic?

Of course not. But it pursues a similar goal for a very specific spot: APM tools
instrument your whole stack; this plugin tells you plainly how long your checkout
takes, with results stored in the WooCommerce logs you already use.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Checkout Profiler for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ con ](https://profiles.wordpress.org/conschneider/)

[Translate “Checkout Profiler for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/checkout-profiler-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/checkout-profiler-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/checkout-profiler-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/checkout-profiler-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/checkout-profiler-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * New: block checkout support — measured in the shopper’s browser via the WooCommerce
   checkout events API and logged with order number and payment gateway. (The 1.0.0
   block timer never loaded; this is a rebuild.)
 * New: the log line now includes the payment gateway, since the gateway usually
   dominates checkout time.
 * New: durations are rounded to milliseconds for readable logs.
 * Fix: the plugin now measures out of the box — previously nothing was logged until
   the settings were saved once.
 * Fix: the advertised default end hook (`woocommerce_checkout_order_processed`)
   is now actually the default.
 * Fix: the Settings link on the Plugins screen points to the Profiler settings 
   tab instead of the admin dashboard.
 * Fix: empty placeholder scripts and styles are no longer loaded on every front-
   end page; admin assets load only on the Profiler settings tab.
 * Fix: block/classic explanation on the settings screen was never displayed due
   to an invalid field type.
 * Fix: a custom hook selection with an empty hook name falls back to the default
   instead of silently breaking the timer.
 * Compatibility declared with High-Performance Order Storage (HPOS) and the cart/
   checkout blocks.
 * Uninstalling the plugin now removes its settings.
 * Text domain changed to `checkout-profiler-for-woocommerce` so translations can
   be delivered via wordpress.org language packs.
 * Requires WordPress 6.5+, PHP 7.4+ and WooCommerce 9.8+ (declared via Requires
   Plugins / WC headers).

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.0**
 *  Last updated: **3 months ago**
 *  Active installations: **Fewer than 10**
 *  WordPress Version: ** 6.5 or higher **
 *  Tested up to: **7.0.7**
 *  PHP Version: ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/checkout-profiler-for-woocommerce/)
 * Tags:
 * [checkout](https://en-ca.wordpress.org/plugins/tags/checkout/)[debug](https://en-ca.wordpress.org/plugins/tags/debug/)
   [performance](https://en-ca.wordpress.org/plugins/tags/performance/)[profiler](https://en-ca.wordpress.org/plugins/tags/profiler/)
   [speed](https://en-ca.wordpress.org/plugins/tags/speed/)
 *  [Advanced View](https://en-ca.wordpress.org/plugins/checkout-profiler-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/checkout-profiler-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/checkout-profiler-for-woocommerce/reviews/)

## Contributors

 *   [ con ](https://profiles.wordpress.org/conschneider/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/checkout-profiler-for-woocommerce/)