Files
claudetools/clients/ezfastautoglass/session-logs/2026-06/2026-06-22-mike-product-page-wsod-wprocket-removal.md
Mike Swanson 56bf6f44ff sync: auto-sync from GURU-5070 at 2026-06-22 20:00:56
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-22 20:00:56
2026-06-22 20:01:48 -07:00

6.4 KiB

ezfastautoglass.com — product-page white screen fixed (removed WP Rocket / AccelerateWP)

User

  • User: Mike Swanson (mike)
  • Machine: GURU-5070
  • Role: admin

Session Summary

ezfastautoglass.com (WooCommerce store on the IX cPanel server) had a white screen on product pages. Mike suspected caching. Investigation found the site's optimization plugin clsop — which is CloudLinux AccelerateWP, the WP Rocket engine rebranded (not a separately-named "wp-rocket" plugin). Its Remove-Unused-CSS / critical-CSS / delay-JS features (the rocket_saas_* SaaS jobs seen in the error_log) strip/defer CSS+JS the product template needs — the classic cause of a WooCommerce product-page WSOD. The page cache itself was not the problem.

Disabling clsop immediately fixed it: a product page went from white to HTTP 200 with full content. Mike confirmed Woo's default caching is fine and that WP Rocket isn't needed, so the call was to remove it entirely rather than reconfigure it. Did a clean removal of every reference: the active_plugins entry, the rocket/clsop options + transients, 5 orphaned rocket_* cron events (which had been spamming the error_log with "could not be saved"/"invalid_schedule" errors), the plugin directory, wp-rocket-config/, the advanced-cache.php dropin, wp-content/cache, and the WP_CACHE define in wp-config.php. Verified clean (0 rocket options, 0 rocket cron, no files) and the product page + homepage both return 200. The site now runs on WordPress/WooCommerce default behavior with no third-party page cache.

Key Decisions

  • Removed AccelerateWP/clsop entirely rather than reconfiguring — Mike confirmed Woo default caching is fine and the optimization layer (specifically RUCSS) was the WSOD cause. Keeping it would mean re-enabling page cache with RUCSS/critical-CSS/delay-JS OFF; not needed for this store.
  • Used a standalone wp-cli.phar for the DB-side cleanup (active_plugins, options, cron) because the cPanel WP-Toolkit wp wrapper hard-blocks scripted use ("Only CLI access").
  • Backed up before removal (plugin dir + config tarball + settings JSON + wp-config backup) so AccelerateWP can be re-deployed later if perf caching is wanted.

Problems Encountered

  • cPanel WP-Toolkit wp wrapper blocks CLI/usr/local/bin/wp (WP-Toolkit's wpt-wp-cli) prints "Only CLI access" for any non-WPT invocation, even with ssh -tt. Workaround: download the genuine wp-cli.phar and run it directly.
  • Wrong PHP SAPI — running wp-cli via sudo -u <user> php used the cgi-fcgi SAPI; wp-cli refuses ("only works from the cli SAPI"). Fix: invoke the cPanel CLI php explicitly at /opt/cpanel/ea-php81/root/usr/bin/php.
  • Orphaned cron after a partial disable — initially just renamed the plugin dir + set WP_CACHE false; that left rocket_* cron events + options + the active_plugins entry behind, which kept erroring in the log. Lesson: removing a WP-Rocket-class plugin means clearing its DB cron/options/ active_plugins, not just files.

Configuration Changes (on IX, /home/ezfastautoglass/public_html)

  • Removed: plugin clsop (dir), wp-content/wp-rocket-config/, wp-content/advanced-cache.php, wp-content/cache/, the WP_CACHE define in wp-config.php.
  • DB (via wp-cli): removed clsop/clsop.php from active_plugins; deleted options wp_rocket_settings, wpr_rocket_cache_version, wp_rocket_last_base_url, clsop_last_server_software + rocket transients; deleted 5 rocket_* cron events.
  • Backups left on server in /home/ezfastautoglass/: clsop-removal-backup-20260622-131519.tgz, clsop-rocket-settings-<ts>.json, and public_html/wp-config.php.acg-bak-20260622-130601.

Credentials & Secrets

  • No new credentials. IX root access via SSH key from GURU-5070 (ssh root@172.16.3.10); fallback + WHM token in vault infrastructure/ix-server.sops.yaml. No client secrets touched.

Infrastructure & Servers

  • Host: IX cPanel server, 172.16.3.10 (ext 72.194.62.5), Apache 2.4.68 (cPanel), PHP 8.1.34.
  • Account: cPanel user ezfastautoglass, docroot /home/ezfastautoglass/public_html. WordPress 7.0
    • WooCommerce. Site PHP memory_limit 256M. No LiteSpeed, no Cloudflare proxy on this domain.
  • The site retains its .htaccess browser-cache headers (far-future max-age/mod_expires on static assets; HTML is no-cache) — left as-is (normal, not the WSOD cause).

Commands & Outputs

  • Real wp-cli (bypass WPT wrapper): sudo -u ezfastautoglass -- /opt/cpanel/ea-php81/root/usr/bin/php /home/ezfastautoglass/wp-cli.phar --path=<docroot> --skip-plugins --skip-themes <cmd>
  • Remove from active_plugins without loading the plugin: wp eval 'require_once ABSPATH."wp-admin/includes/plugin.php"; deactivate_plugins("clsop/clsop.php", true);'
  • Verify: wp option list --search='*rocket*' --format=count → 0; wp cron event list | grep rocket → none.
  • Health: product page + homepage both http=200 post-removal.

Pending / Incomplete Tasks

  • Monitor product pages over the next day (cache fully gone; confirm no WSOD recurrence and that the error_log stays clean of rocket_* entries).
  • Optional: if page-cache performance is wanted later, re-deploy AccelerateWP via cPanel with Remove-Unused-CSS + Critical-CSS + Delay-JS OFF (those three break product pages; the page cache alone is safe). Backups on the server make this reversible.
  • Delete the server-side backup tarball/json once the fix is confirmed good.

Reference Information

  • Domain → account: ezfastautoglass.com → cPanel user ezfastautoglass (1.7 G). IX article: systems/ix-server.
  • Root cause class: WP Rocket / AccelerateWP Remove Unused CSS strips CSS the WooCommerce product template needs → white screen. General gotcha for any RUCSS-enabled WP-Rocket/AccelerateWP store.

Update: 20:00 PT — browser verification

Verified the fix in a real browser (Firefox via .claude/scripts/ff.py, headless), not just curl. The product page (/product/replacement-for-92-93...vent-glass-wing-window/) renders fully: styled header + nav (NEW GLASS / INVENTORY / ABOUT US / CONTACT US / CART / RETURN POLICY), product image, full title, and price $50.00; DOM check returned title + h1 + price + 1596 chars of body. CSS is intact (the RUCSS removal restored the product-template CSS) — no white screen. WSOD definitively closed; product pages render end-to-end. (ff.py daemon stopped after.)