1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
WooCommerce Speed Checklist
A practical pass for WordPress / WooCommerce storefronts (including a WPForge-style theme) that feel slow on the catalog, product, and cart. Measure first, change one thing, then measure again.
1. Baseline
- Note TTFB, LCP, and INP on the home page, one product page, and the cart.
- Test both a cold cache and a warm cache, with a catalog that looks like production (images, variations, a few plugins).
- Use the same device profile each time so the numbers can be compared.
2. PHP and hosting
- Run a current PHP 8.x release with OPcache enabled.
- If the host offers Redis, use it as the object cache so WooCommerce sessions and transients are not all hitting MySQL.
- Do not let wp-cron fire on every front-end hit during a sale. A system cron is steadier.
3. Theme
- Keep a single layout system. Two builders on one store usually means two copies of CSS and JS.
- Stop WooCommerce assets on pages that are not the shop, a product, the cart, or checkout.
- Prefer a system font stack, or one subset webfont. Icon fonts loaded sitewide for a few glyphs are a common extra request.
4. Images
- Give the hero and the first product photo explicit width and height, and do not lazy-load that LCP image.
- Generate only the thumbnail sizes the theme actually prints.
- Serve a modern format when the host or CDN can do it without a second plugin that rewrites every URL.
5. Plugins and cart
- List every script that prints on all pages (reviews, chat, currency, analytics) and drop the ones the template does not need.
- The mini-cart fragment request (wc-ajax=get_refreshed_fragments) bypasses the page cache. If the header cart does not have to be live, that call is optional cost.
- Load payment and shipping SDKs on checkout only.
6. Cache
- Full-page cache anonymous catalog HTML.
- Exclude cart, checkout, my-account, and any URL that embeds a nonce or a personalized price.
- Do not let a geo banner or a logged-in admin bar get stored in the public cache.
7. Data
- Purge expired transients and old sessions on a schedule.
- If layered nav is slow, check that product attribute lookups are indexed before adding another filter plugin.
Notes for this stack live at https://shopaiwp.com
After each change, recheck the same three URLs. Keep the change only if add-to-cart, variation selection, and checkout still work.
|