
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_thankyouto 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.

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

The log list under WooCommerce > Status > Logs.