What's Specific For WordPress
-
Per-PHP-version base images (we ship 8.2, 8.3, and roll forward as
WordPress core support shifts). PECL extensions, OPcache tuning, and
FastCGI Cache are wired in by default.
-
WordPress object cache backed by per-slot external Redis. Blue and
green slots have independent cache instances, so a deploy never
flushes your live cache. Sessions stay valid across the cutover via
a shared session Redis — true zero-downtime deploys, with no cold
start and no dropped session.
-
WP Offload Media or S3-Uploads compatible: uploads land in a
per-tenant S3 bucket and serve through the CDN. Blue and green slots
read from the same bucket.
-
WP-CLI ships in the runtime. Use it via SSH, in cron jobs, or through
the dashboard's self-service action surface.
What synpress Gets You That Generic WordPress Hosting Doesn't
- Diagnostic report on every deploy. Plugin updated?
We trace the new code path and tell you if anything regressed before
your customers see it.
- Plugin-level cost attribution. Which plugin is
burning the most CPU? Which one issues the slowest SQL? The
observability stack ties every query and span to the originating
plugin file.
- Per-tenant MySQL. Your
wp_options table
is yours alone — no shared-server autoload tax from someone
else's runaway plugin.
- 14-day PITR. A plugin update corrupted post meta? We
restore to any timestamp in the last 14 days.
- MCP server for your agent. Cursor or Claude Code can
deploy, roll back, flush the object cache, and query traces without
leaving your IDE. Same tool surface our internal team uses.
What A synpress Diagnostic Looks Like
Real finding shape. Every report carries a finding ID, the evidence
trace, the exact file:line, and a recommended fix — in your stack's
idioms, not a generic dashboard widget.
Product filter meta_query scanning all of wp_postmeta
Evidence
trace b2d41fa: browser → nginx → php-fpm → mysql
slowest span: SELECT post_id FROM wp_postmeta
WHERE meta_key = '_stock_status'
411,920 rows · 8.7s · no index on meta_value Code Location
wp-content/plugins/product-filter/includes/Query.php:212
'meta_query' => [['key' => '_stock_status', ... ]]
Recommended Fix
1. Add index: wp_postmeta (meta_key, meta_value(20))
2. Cache filter results in the Redis object cache (5-min TTL)
Expected p99: 8.7s → ~90ms