Review storefront performance
WooCommerce pages combine public catalog content with session-specific cart, checkout, and account state. Performance work must preserve that boundary: a fast cached response is not correct if it exposes stale totals, the wrong customer, or obsolete stock.
Establish representative journeys
Measure more than the home page. Review:
- the Shop page;
- a populated category;
- a filtered archive;
- a simple product;
- a variable product with a gallery;
- the side cart and Cart page;
- Checkout;
- My Account.
Repeat on a mobile connection and while signed out and signed in. Record the URL, device, cache state, and customer state so comparisons remain meaningful.
Keep dynamic pages dynamic
Exclude Cart, Checkout, My Account, and other customer-specific WooCommerce routes from full-page caching. Preserve WooCommerce's session and cart-fragment behavior.
After changing exclusions, test two separate browser sessions with different carts and accounts. Neither session should see the other's items, totals, addresses, orders, or notices.
Control catalog workload
Use a reasonable products-per-page setting under Settings → POM Theme → E-Commerce → Storefront → WooCommerce storefront. On custom archives, choose deliberate pagination or progressive loading under Storefront → Product archives.
Large initial result sets increase database work, HTML, images, and browser layout. Filters should narrow a well-structured catalog, not compensate for an unbounded first page.
Optimize product media
Upload appropriately sized source images with consistent aspect ratios. Configure WooCommerce main image, thumbnail width, and cropping in POM, then regenerate existing thumbnails when those values change.
Check that archive cards request thumbnail-sized media and that product galleries retain enough resolution for their displayed size. Compressing an oversized source does not remove the cost of decoding and resizing it in the browser.
Enable only useful interactions
POM loads WooCommerce front-end behavior according to the active page and enabled feature context. Keep optional storefront features disabled when the store does not use them.
POM replaces the WooCommerce core stylesheets with its reduced, optimized woocommerce.min.css stylesheet whenever WooCommerce is active. This behavior is automatic and has no Theme Options toggle. Its complete readable source can be customized under Settings → POM Theme → Advanced → Custom CSS → Independent CSS assets → WooCommerce without changing that condition. Sites upgraded from a version that retained the WooCommerce core styles can use the WooCommerce core-styles migration command to preserve their previous presentation without restoring the full core stylesheet.
Review the cost and usability of:
- quick view and archive product pop-ups;
- large related-product carousels;
- auto-opening side carts;
- oversized reusable blocks around filters or accounts;
- multiple simultaneous promotional overlays.
Each enabled interaction should support a real customer task.
Validate after caching or optimization changes
- purge the relevant cache;
- open a fresh signed-out session;
- browse and filter products;
- select a variation;
- add and remove cart items;
- apply a coupon;
- complete a test checkout;
- sign in and review My Account;
- repeat in a separate session;
- inspect phone and desktop behavior.
Expected result: public catalog pages benefit from caching where appropriate, while cart, checkout, stock, prices, notices, and customer data remain current.
Diagnose before adding another optimization
If an archive is slow, compare its product count, filters, template, media, and pagination with a smaller archive. If Cart or Checkout is incorrect, remove full-page caching from the test before changing the theme layout. If a first uncached request is slower after a settings or template change, verify the next clean request as well as the cached result.