# 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 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-.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= --skip-plugins --skip-themes ` - 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.)