Backend Optimization Checklist
Use this checklist to audit and improve the backend paths that bypass page cache (logged-in pages, checkout, admin, search, AJAX). It is designed as a quick reference you can run after major plugin/theme changes.
Quick Reference
Backend optimization targets dynamic requests that cannot be served from full-page cache.
Database Optimization
- Slow query log enabled and reviewed.
- No queries exceeding 50 ms on regular page loads.
- Total queries per page under 100 (check via Query Monitor).
- Custom indexes added for frequently queried
wp_postmetakeys. - Autoloaded options total under 1 MB.
- Transient cleanup running (expired transients removed).
- Post revisions limited (
WP_POST_REVISIONSset to 5 or less). - Spam comments and trashed posts cleaned.
- Database tables optimized (
OPTIMIZE TABLE).
PHP Optimization
- PHP 8.2+ installed and active.
- OPcache enabled with sufficient memory (128–256 MB).
- Unused WordPress features disabled (emoji, XML-RPC, self-pingbacks).
- PHP memory limit set appropriately (256M–512M).
- PHP error logging enabled, display errors disabled.
- Autosave interval increased from 60s to 300s.
Object Caching
- Redis or Memcached installed and connected.
- Object cache drop-in active (
object-cache.phppresent). - Object cache hit ratio above 90%.
- Redis memory limit set appropriately.
- Persistent object cache verified with
wp redis statusorredis-cli info.
Plugin Audit
- Total active plugins minimized (under 15 for most sites).
- No duplicate functionality between plugins.
- Deactivated plugins deleted (not just deactivated).
- Heavy plugins identified via Query Monitor profiling.
- No plugin making external HTTP requests on every page load.
Cron and Background Tasks
- WP-Cron offloaded to system cron (if high traffic).
- No stale or failed cron jobs.
- Background tasks (imports, emails) not blocking page loads.
Verification Commands
backend-verification-commands.sh
# Check total database size
sudo mysql -e "SELECT table_schema, ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' FROM information_schema.tables WHERE table_schema = 'wordpress_db' GROUP BY table_schema;"
# Check autoloaded options size
sudo mysql -e "SELECT SUM(LENGTH(option_value))/1024/1024 AS 'Autoload MB' FROM wp_options WHERE autoload='yes';" wordpress_db
# Check PHP OPcache status
php -r "var_export(opcache_get_status()['opcache_statistics']);"
# Check Redis status
redis-cli info memory | grep used_memory_human
redis-cli info stats | grep keyspace
# Profile WordPress hooks
wp profile hook --url=https://example.com/ --spotlight
Summary
Backend optimization targets every request that bypasses cache. Audit database queries, PHP configuration, object caching, and plugin performance. Use this checklist after every major plugin or theme change.