Title: Paul Bunyan
Author: teoleonard
Published: <strong>October 23, 2026</strong>
Last modified: October 24, 2026

---

Search plugins

![](https://ps.w.org/paul-bunyan/assets/banner-772x250.png?rev=3762512)

![](https://ps.w.org/paul-bunyan/assets/icon-256x256.png?rev=3762512)

# Paul Bunyan

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

[Download](https://downloads.wordpress.org/plugin/paul-bunyan.1.1.3.zip)

 * [Details](https://wordpress.org/plugins/paul-bunyan/#description)
 * [Reviews](https://wordpress.org/plugins/paul-bunyan/#reviews)
 *  [Installation](https://wordpress.org/plugins/paul-bunyan/#installation)
 * [Development](https://wordpress.org/plugins/paul-bunyan/#developers)

 [Support](https://wordpress.org/support/plugin/paul-bunyan/)

## Description

Your site is slow, or something keeps throwing errors, and you need to know which
plugin, which file and which line is responsible. Paul Bunyan watches every request
on your own server and tells you, in plain words, what to fix first.

No server extension, no outside service, no code changes. It runs wherever WordPress
runs, including shared hosting.

#### What it finds

 * **Which plugin is slowing down your site.** Time and memory per plugin and theme,
   split into front end, dashboard, AJAX and background requests.
 * **Slow pages and a slow dashboard.** Every request timed, with processor time
   and memory, the numbers a hosting CPU limit counts.
 * **Slow database queries**, grouped by shape and ranked by total time, with the
   plugin, file and line that ran them.
 * **Slow outside calls**: license checks, APIs and webhooks that hold a page up.
 * **PHP errors, warnings and deprecation notices**, grouped so a notice repeated
   thousands of times shows as one line with a count.
 * **Email**: how long each message took to build and to send.
 * **Background jobs**: WP-Cron and Action Scheduler jobs that are waiting, late
   or failing.
 * **Real page loads in visitors’ browsers**, with Core Web Vitals (LCP, INP, CLS).
 * **Site setup checks**: autoloaded options, object cache, OPcache, transients,
   scheduled jobs, debug settings and page cache.

#### Fix first, in plain words

One ranked list of what costs your site the most: what it is, where it is, how often
it happens, how much time it takes and what to do about it. Every finding carries
a numbered PB code with a full explanation on diamondsierra.com.

#### Built to stay on

 * Small footprint: about 10 to 20 ms per request in our tests on a WooCommerce 
   store (median of 20 loads per page, logged in).
 * A safety switch turns recording off by itself if it ever costs visitors too much.
 * Switch it on for an hour, for your browser only, or off, from the admin bar.

#### For developers

 * Log from your own code with `paul_bunyan_info()`, `paul_bunyan_warn()`, `paul_bunyan_error()`,`
   paul_bunyan_scope()`, `paul_bunyan_event()` and `paul_bunyan_mark()`.
 * Use `do_action( 'paul_bunyan_log', ... )` in code that must also run where Paul
   Bunyan is not installed.
 * Open any request as a timeline of hooks, queries, outside calls, emails and your
   own messages.
 * Profile one page on demand, compare two requests, and set a marker to compare
   before and after a change.
 * WP-CLI: `wp pb status`, `wp pb fix`, `wp pb report`, `wp pb on` and `wp pb off`.

#### Your data stays on your site

Everything is stored in your own database. Nothing is sent to us or to anyone else.
Email addresses are masked. Export or delete your data at any time. The AI report
is a plain-text summary you copy or download and paste into the AI assistant of 
your choice; the plugin itself contacts no AI service.

By default it keeps 3 days of full detail and 7 days of everything else. Both are
settings (up to 400 days), and a size limit keeps the log from growing past what
you allow.

#### Paul Bunyan Professional

An optional add-on for people who need more: Show the fix, alert rules, “got slower”
detection, WooCommerce order trails, scheduled page checks, email reports, Ask AI
with your own key, and private support. Everything listed above stays free. [Details at diamondsierra.com](https://diamondsierra.com/professional/)

#### Since 1999

The original Paul Bunyan Message Logger showed Windows developers the function, 
module and line behind a bottleneck. This is the same idea, rebuilt for WordPress.
[Documentation and PB codes](https://diamondsierra.com/docs/)

### External services

This plugin does not connect to any outside service. To profile a page or test your
page cache, it loads pages from your own site, and nowhere else. Nothing it records
leaves your site unless you copy it yourself (for example the AI report, which you
can paste into an AI assistant of your choice).

### Privacy

 * Log data stays in your own database, in two tables, and is removed on uninstall.
 * Values are stripped from SQL and from URLs before storing. Keys that look like
   secrets are redacted. Email addresses are masked.
 * The browser timing script sets no cookies and stores no identifiers. It reports
   paths and timings only.
 * Only administrators can see the log.

## Installation

 1. In your dashboard go to Plugins > Add New, search for “Paul Bunyan”, then click
    Install and Activate.
 2. Open Paul Bunyan in the admin menu. It profiles your home page on first run.
 3. Use the site as normal. The Fix first list fills in as requests come in.

## FAQ

### Will it slow down my site?

In our tests it added about 10 to 20 ms per request. Recording stops by itself if
it ever costs too much, and you can switch it off from the admin bar.

### How do I find which plugin is slowing down my site?

Open the Plugins screen in Paul Bunyan. It shows the time and memory each plugin
and your theme cost per request, without deactivating anything.

### Does it work on shared hosting?

Yes. It needs no PHP extension, no server access and no outside service.

### Where do PHP errors go?

Into Paul Bunyan’s own table in your database, grouped by message, with the plugin,
file and line. Nothing is written to a public file.

### Does it work with page caching?

Yes. Cached pages never reach PHP, so Paul Bunyan marks cached copies and tests 
whether your page cache is working.

### Does it work with WooCommerce?

Yes. Checkout, emails, payment callbacks and background jobs are all recorded. Following
one order across requests is part of Professional.

### What are PB codes?

Numbered findings, each with a fixed meaning and a remark on what to do. Every code
has its own page at diamondsierra.com/docs/codes/.

### Does it support multisite?

Not yet. It is tested on single sites.

### Where do I get help?

On the WordPress.org support forum for this plugin. Under Paul Bunyan > Get support,
the Copy support details button gives you a block of versions and setup to paste
into your post.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Paul Bunyan” is open source software. The following people have contributed to 
this plugin.

Contributors

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

[Translate “Paul Bunyan” into your language.](https://translate.wordpress.org/projects/wp-plugins/paul-bunyan)

### Interested in development?

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

## Changelog

#### 1.1.3

 * How long messages and routine detail are kept, how many markers are kept, and
   which other roles may read the screens are now settings in the free plugin.
 * Watching database queries is now a setting you turn on (it uses WordPress’s SAVEQUERIES
   for the request); Profile one page always includes queries.
 * The developer functions are now paul_bunyan_info(), paul_bunyan_warn(), paul_bunyan_error(),
   paul_bunyan_scope(), paul_bunyan_event(), paul_bunyan_mark() and friends.
 * Paul Bunyan no longer changes the order of active plugins. To time every plugin’s
   loading, copy the optional mu-loader file into wp-content/mu-plugins; it now 
   finds Paul Bunyan wherever it is installed and only when it is active.
 * Old temporary support accounts from version 0.19 are deleted only when an administrator
   presses the button.
 * Every value read from the request, a cookie, the command line, an imported file
   or a browser report is cleaned before use.
 * The browser timing script is added through WordPress’s script queue.

#### 1.1.2

 * Security: a browser timing report must come from a page built in the last 12 
   hours, and reports are capped at 80 rows a minute per visitor address and 6,000
   an hour for the whole site, counted without races.
 * The size limit now runs hourly when the log is well over, and trims browser timings
   before older warnings and errors.
 * The Space meter, the notice and the size limit all measure the same thing; pooled
   text is shown on its own.
 * The weekly cleanup of unused pooled text finishes on very large logs, over several
   runs.
 * Short keys in links (8 characters or more, letters and digits mixed) are masked
   too.
 * Filtering Messages by PB-2806 or PB-2807 lists every visit counted for it.
 * Query tracing no longer trims the query list another tool (such as Query Monitor)
   relies on.
 * Works with databases that store table names in lower case.
 * Reset and uninstall remove every option and transient Paul Bunyan stores.
 * Emails sent by a WordPress background process (such as WooCommerce’s deferred
   order emails) no longer count as making a visitor wait.
 * Room on the Site setup cards for tools from add-ons.

#### 1.1.1

 * Security: browser timing reports must carry a signature from a page this site
   built, and are capped at 600 stored rows a minute.
 * Security: more personal data is kept out of the log: user names and passwords
   in links, keys and tokens in link paths, codes and addresses in email subjects,
   and fields named like keys, sessions, phone numbers and addresses.
 * Fix: the size limit now measures the message table, and unused pooled text is
   removed once a week.
 * Fix: the empty-space rebuild runs at most once a week, only with more than 50
   MB to give back, never on MyISAM tables and never on tables over 500 MB.
 * Fix: “Delete these kinds of message” keeps messages with a code, as it says.
 * Fix: a missing log table is recreated on the next write.
 * Fix: query tracing stays off for WP-CLI and cron, and keeps memory in check on
   very long requests.
 * Fix: largest paint is no longer counted for pages that sat in a background tab.
 * Fix: a visit poor on more than one Web Vital is counted under each.
 * Fix: checks of your own site’s address respect the https_local_ssl_verify setting.
 * Fix: scripts and styles load the WordPress way; including the one small script
   on visitor pages.
 * Reset and uninstall remove every option Paul Bunyan stores.

#### 1.1.0

 * New: a size limit for the log (100 MB by default). The daily cleanup trims routine
   detail first, then the oldest messages, and hands the empty space back to the
   database.
 * New: Your data shows what takes the room, by kind of message and by age, with
   a Free space now button.
 * A notice on Paul Bunyan’s screens when the log nears its limit.
 * Wording: “kinds of problems found”.

#### 1.0.0

 * First release on WordPress.org.

## Meta

 *  Version **1.1.3**
 *  Last updated **3 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [debug](https://wordpress.org/plugins/tags/debug/)[error log](https://wordpress.org/plugins/tags/error-log/)
   [php errors](https://wordpress.org/plugins/tags/php-errors/)[profiler](https://wordpress.org/plugins/tags/profiler/)
   [slow](https://wordpress.org/plugins/tags/slow/)
 *  [Advanced View](https://wordpress.org/plugins/paul-bunyan/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/paul-bunyan/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/paul-bunyan/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/paul-bunyan/)