Store Maintenance Checklist runs 50 checks across six areas. This page summarises what each area covers and how to interpret severity. For day-to-day use of the UI, see Using the checklist.
Every finding includes a primary action in WooCommerce or WordPress. Optional Further tools links (when enabled) never create a Critical solely because a StoreCrafted product is missing.
Severity guide
| Severity | Meaning |
|---|---|
| Critical | Money or trust risk (checkout, payments, HTTPS on production, coming soon, unsellable downloads, and similar) |
| Warning | Operational risk (email gaps, stuck orders, queue failures, catalog/shipping gaps) |
| Info | Hygiene and soft nudges (missing images/descriptions, weak From address, Site Health / Status link-outs) |
On non-production environments (unless force-production is on), Critical softens to Warning and Warning to Info. See Settings.
Catalog
Product and storefront sellability. Most product-level checks run in Action Scheduler batches and respect catalog bounds.
| Check | Typical severity | What it looks for |
|---|---|---|
| Products with missing or invalid prices | Critical | Published products customers cannot purchase |
| Variable products with incomplete variation prices | Warning | Empty variation prices |
| Products missing a featured image | Info | No featured image |
| Products missing a description | Info | Empty description after stripping markup |
| Products missing a short description | Info | Empty short description |
| Downloadable products missing files | Critical | Downloadable items with no files |
| Products marked out of stock | Warning | Published non-external products with out-of-stock status |
| Products missing a SKU | Info | Empty SKU on published parents |
| Duplicate SKUs in the catalog | Warning | Same SKU on two or more products/variations in the scan |
| Virtual products still require shipping | Warning | Virtual + needs shipping |
| Required WooCommerce pages missing or mis-assigned | Critical | Cart / checkout / account page settings |
| Privacy or refunds policy page not published | Warning | Assigned policy pages not published |
| Checkout page may not be a valid checkout | Warning | Missing shortcode/block or mis-assigned page heuristics |
| Expired coupons still published | Info | Published coupons past date_expires |
Payments
| Check | Typical severity | What it looks for |
|---|---|---|
| No enabled payment gateways | Critical | Zero enabled gateways |
| Payment gateway in test / sandbox mode | Critical | Enabled gateway reporting test/sandbox when detectable |
| Taxes enabled but no tax rates configured | Warning | Tax calculation on with zero rates (ops gap only — not tax advice) |
Shipping
| Check | Typical severity | What it looks for |
|---|---|---|
| No shipping methods configured | Critical | No methods anywhere (exclusive of empty-zone warnings) |
| Default / catch-all shipping zone has no methods | Warning | Empty default zone (skipped if “no methods” already fired) |
| One or more shipping zones have no methods | Warning | Named zones with zero methods |
| No delivery time messaging for physical shipping | Info | Non–local-pickup method without ETA signal; may suggest Expected Delivery Times as a further tool |
| Check | Typical severity | What it looks for |
|---|---|---|
| Order emails may use a weak From address | Info | Addresses like wordpress@… that often hit spam |
| Customer “Processing order” email disabled | Warning | Confirmation email off |
| Customer “Completed order” email disabled | Warning | Completion email off |
| Customer “Refunded order” email disabled | Info | Refund email off |
| Customer “Cancelled order” email disabled | Info | Cancellation email off |
| Admin “New order” email disabled | Warning | Merchant new-order email off |
| New order recipient missing | Warning | Empty new-order recipient |
Primary actions deep-link to WooCommerce > Settings > Emails.
Orders and jobs
| Check | Typical severity | What it looks for |
|---|---|---|
| Orders stuck in Pending payment | Warning | Pending older than 7 days |
| Orders stuck On hold | Warning | On-hold older than 7 days |
| Orders stuck Failed | Warning | Failed older than 7 days |
| Failed Action Scheduler jobs | Warning | Failed AS actions |
| Overdue pending Action Scheduler jobs | Warning | Pending actions past their schedule |
| HPOS compatibility mode still enabled | Warning | Dual-write compatibility mode on |
| Large volume of aged completed orders | Warning | ≥ 10,000 completed older than 24 months |
| Large volume of aged cancelled orders | Info | ≥ 5,000 cancelled older than 24 months |
Aged-order findings may offer Auto Archive Old Orders for WooCommerce as an optional further tool after core housekeeping.
Order queries use HPOS-safe WooCommerce APIs.
Environment
Commerce-relevant environment checks plus soft link-outs to core screens.
| Check | Typical severity | What it looks for |
|---|---|---|
| Site not served over HTTPS | Critical | Evaluated on treat-as-production path only |
WP_DEBUG_DISPLAY enabled on production | Warning | Errors exposed to visitors (production path) |
| Pretty permalinks are disabled | Warning | Plain ?p= permalink structure |
| Store address is incomplete | Warning | Missing address line 1, city, or postcode |
| WooCommerce fatal error logs present | Warning | Non-empty fatal-errors logs |
| PHP / WordPress / database / memory below WooCommerce recommendation | Warning | Server recommendations (PHP below 8.3, WordPress below 6.9, MySQL below 8.0 or MariaDB below 10.6, memory below 256 MB) |
| WordPress or WooCommerce updates available | Warning | Core or WooCommerce update pending |
| WooCommerce Coming soon mode is enabled | Critical | woocommerce_coming_soon is yes |
| Store currency or site timezone is unset | Warning | Empty currency or both timezone fields empty |
| Review Site Health for environment details | Info | Soft nudge; never scored |
| Review WooCommerce Status for system details | Info | Soft nudge; never scored |
Broader environment detail still lives in Tools > Site Health and WooCommerce > Status — this plugin links out rather than cloning those screens.
Runners (for operators)
| Runner | Behaviour |
|---|---|
| Sync | Runs in the scan-start request (payments, shipping, email, environment, order heuristics, some catalog page checks) |
| Action Scheduler | Catalog product/variation batches in group stmc |
One scan at a time. Cancel stops further stmc group actions for the active scan.