# Log Slow Page Loads

> Writes a line to the PHP error log for every request that takes longer than a set number of seconds, with the URL, time, memory and query count.

- Type: PHP
- Runs: Run everywhere
- Category: [Developer](https://wpide.com/library/category/developer/)
- Tags: debugging, performance, logs, monitoring
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/dev-log-slow-requests/

## Code

```php
add_action( 'shutdown', function () {
    $threshold = 2.0; // Seconds.

    $time = timer_float();

    if ( $time < $threshold ) {
        return;
    }

    $uri = isset( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ( defined( 'WP_CLI' ) ? 'wp-cli' : '' );

    error_log( sprintf( '[slow request] %.2fs | %s | %s | %d queries | %s', $time, isset( $_SERVER['REQUEST_METHOD'] ) ? sanitize_key( $_SERVER['REQUEST_METHOD'] ) : 'cli', $uri, get_num_queries(), size_format( memory_get_peak_usage( true ) ) ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions
}, 999 );
```

## Notes

Change $threshold. Enable WP_DEBUG_LOG or check your server's PHP error log to read the entries.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Log Slow Page Loads" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
