X
🐾 Coming from PetMatchPro 6.x? Version 8 adds real adoption analytics, similar-animal suggestions, SEO-friendly URLs, and overlay badges. See What's New →
PetMatchPro
  • Partners
    • AnimalsFirst
    • PetPoint
    • RescueGroups
  • What’s New
  • Shop
  • Demo
  • FAQ
  • Knowledge Base
  • About Us
  • Contact Us
  • My Account
  • Cart
Select Page
Green rocket icon for Getting Started documentation category

Getting Started

6
  • Activate Your License
  • Setup Wizard Walkthrough
  • Connecting Your Shelter System
  • Understanding License Tiers
  • Creating Your First Search Page
  • Creating Your First Detail Page
Blue code brackets icon for Shortcodes and Configuration documentation category

Shortcodes & Configuration

12
  • Shortcode Builder
  • [pmp-search] Reference
  • [pmp-details] Reference
  • [pmp-detail] Reference
  • [pmp-option] Reference
  • Parameters by License Tier
  • Common Shortcode Recipes
  • Pagination Setup
  • Excluding Values
  • Search Filter Button
  • Detail Button Hover Text
  • Search Card Hover Text
Purple palette icon for Templates and Design documentation category

Templates & Design

9
  • Search Templates Gallery
  • Detail Templates Gallery
  • Poster Templates
  • Theme Template Overrides
  • Color Customization
  • Font Size Customization
  • Detail Title Formats
  • Dynamic Banners
  • Bulk Poster Print
Orange image with star icon for Icons and Overlays documentation category

Icons & Overlays

6
  • Understanding Pet Icons
  • Understanding Overlays
  • Icon Reference Gallery
  • Customizing Icon Display
  • Value-Based Icons
  • Icon Size Customization
Teal tag icon for Labels and Customization documentation category

Labels & Customization

3
  • Custom Labels Guide
  • Changing Labels via Filtering
  • Custom Currency & Date Formats
Blue funnel icon for Filters and Search documentation category

Filters & Search

6
  • Custom Filter Groups & Labels
  • Setting Up Search Filters
  • Species & Breed Filtering
  • Filter Value Management
  • Excluding Values via Filtering
  • Partner-Specific Filter Options
Violet chain link icon for Partner Integration Guides documentation category

Partner Guides

3
  • AnimalsFirst Integration Guide
  • PetPoint Integration Guide
  • RescueGroups Integration Guide
Red bar chart icon for Analytics and Tracking documentation category

Analytics & Tracking

8
  • Understanding PMP Analytics
  • GA4 Configuration
  • Google Tag Manager Setup
  • Leveraging Analytics
  • WP-Cron Requirements for PetMatchPro Analytics
  • Queue Health and Tools
  • Privacy and Data Retention
  • Off-Bootstrap Impression Ingest
Amber wrench icon for Troubleshooting and FAQ documentation category

Troubleshooting

16
  • Common Error Messages
  • API Connection Issues
  • Template Not Found Errors
  • Theme Template Override Not Loading
  • Performance & Caching Best Practices
  • Animals Not Displaying
  • Stale Content / Cache Issues
  • Styling Conflicts
  • Empty Field Display
  • Analytics Queue Stuck or WP-Cron Not Running
  • Premium Feature Not Appearing After Upgrade
  • Troubleshoot the PetMatchPro Shortcode Builder
  • Reading PMP Debug Logs
  • wp-config.php Configuration Constants
  • Performance Profiler
  • How to Contact Support
Lightbulb icon representing PetMatchPro best practices guides for homepage layouts, button strategy, performance tuning, and template selection

Best Practices

11
  • Featuring Animals on Your Homepage
  • Adding Animals to Sidebars and Other Pages
  • Using Banners and Subtitles Effectively
  • Overlays and Icons for Quick Visual Cues
  • Writing Effective Detail Page Instructions
  • Button Configuration for Conversion
  • Optimizing Performance with API Caching
  • Customizing Typography and Icon Sizes
  • Lost and Found Search Best Practices
  • Template Selection Guide
  • Preconnect to Your Partner Photo CDN – PetMatchPro
View Categories
  • Home
  • Knowledge Base
  • Troubleshooting
  • Performance Profiler

Performance Profiler

3 min read

0:00 / 4:28
  • View as Markdown Open this page as plain Markdown (opens in a new tab)
  • Open in ChatGPT Ask questions about this page (opens in a new tab)
  • Open in Claude Ask questions about this page (opens in a new tab)
  • Open in Google AI Studio Ask questions about this page (Google account required) (opens in a new tab)

PetMatchPro ships a lightweight request profiler that writes coarse server-side timing lines to the PHP error log. Use it when a search page renders slowly and you need to see where the time goes – the API fetch, the card loop, a theme or third-party the_content filter running after the shortcode, or something else. It is a diagnostic aid, available on every license tier, that adds no markup and no measurable overhead when it is off.

The profiler is deliberately hard to turn on by accident: it logs nothing unless all three conditions below are met at once, so a visitor cannot trigger logging by guessing a query string.

Enable It (wp-config.php) #

Add this line to wp-config.php, above the /* That's all, stop editing! */ comment:

define( 'PMP_PROFILE', true );

Defining the constant alone logs nothing. It is one of three required conditions:

  1. PMP_PROFILE is defined as exactly true.
  2. You are logged in as a user who can manage_options (an administrator).
  3. The URL you load carries ?pmp_profile=1.

Because an administrator is required, the profiling request always fetches live animal data – admins bypass the plugin’s API cache – so the reported fetch time is a live partner-API call, not a cache read. The rendered HTML is byte-identical whether the profiler is active or not.

Run It #

While logged in as an administrator, open the search page you want to measure and add ?pmp_profile=1 to its URL (use &pmp_profile=1 if the URL already has a query string):

https://example.org/adopt/dogs/?pmp_profile=1

Load the page normally. The profiler writes its lines as the request runs. Reload a few times to get a representative set – the first load after a code change or a cache clear is often slower than steady state.

Where the Log Lands #

The profiler writes with PHP’s error_log(). Where that goes depends on your setup:

  • If WP_DEBUG_LOG is true, lines land in wp-content/debug.log.
  • Otherwise they go to your host’s PHP error log.

Host-specific locations:

  • Kinsta: MyKinsta > your site > Logs (choose the error log), or logs/error.log over SSH/SFTP.
  • LiteSpeed / InterServer and most cPanel hosts: the PHP error log, usually surfaced in the host control panel’s Logs or Errors section, or an error_log file in the site root.

Every line this profiler writes is prefixed [PMP Profile], so you can isolate them:

grep "\[PMP Profile\]" wp-content/debug.log

Reading the Output #

Each line starts with the prefix, a six-character request id, and the page path, so lines from one page load group together and concurrent requests do not mix:

[PMP Profile] a1b2c3 /adopt/dogs/ ...

There are two kinds of line.

Milestones report the time in milliseconds since the request started, one per WordPress assembly step – for example init, wp, template_redirect.start/.end, wp_head.start/.end, content.start, content.after11 (after shortcodes run), content.end, pmp-search.start/.end, pmp-details.start/.end, wp_footer.start/.end, and shutdown.start. One line lists every the_content callback as priority:name, and an extra content.afterPrio.N milestone is logged after each callback that runs at priority 11 or higher. A long gap between content.after11 and a content.afterPrio.N line names the filter that is slow – this is exactly how the 8.25 slowdown (WordPress core rewriting the page once per image) was found.

The search line is one summary per [pmp-search] render, with coarse segments:

[PMP Profile] a1b2c3 /adopt/dogs/ search partner=AF method=lost_found cards=936 cache=bypass total=3180.4 | fetch=1850.2 | prepare=120.5 | cards=980.1 | after=60.3 | unaccounted=169.3
  • partner / method / cards – which partner rendered, the method type, and how many cards were built.
  • cache – hit, miss, or bypass. Because profiling requires an administrator, and admins bypass the API cache, this reads bypass and fetch is a live partner call. Non-admin visitors (who cannot profile) are the ones who get hit/miss.
  • fetch – the API fetch (or cache read), including pagination and sort.
  • prepare – sort/filter/field preparation before the card loop.
  • cards – the template render (the per-card loop).
  • after – everything after the loop (poster bar, size overrides, wrap-up).
  • unaccounted – wall time inside the profiled span not captured by a named segment.

Turn It Off #

Remove the define( 'PMP_PROFILE', true ); line from wp-config.php. The profiler stops immediately on the next request. There is no admin setting and no other switch to reset. On a busy site, remember that debug.log is not rotated automatically – see Reading PMP Debug Logs.

Related #

  • Performance and Caching Best Practices – the caching layers the fetch segment measures.
  • Reading PMP Debug Logs – where logs land and how to grep them.
  • wp-config.php Configuration Constants – PMP_PROFILE and other operator toggles.
Performance Profiler ultima modifica: 2026-10-24T13:49:55-04:00 da PetMatchPro
Updated on October 25, 2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
wp-config.php Configuration ConstantsHow to Contact Support

Submit a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Table of Contents
  • Enable It (wp-config.php)
  • Run It
  • Where the Log Lands
  • Reading the Output
  • Turn It Off
  • Related

© Copyright 2018-2026 by PetMatchPro, All Rights Reserved

  • Privacy Policy
  • Terms of Use
  • Disclaimer
  • Login
imunify-bot-check