# WooCommerce Health Check
**Version:** 1.2.0
**Updated:** 2026-06-30
**Freshly updated:** v1.2.0 adds real order/sales/stock diagnostics via the woocommerce_* read tools (woocommerce_list_orders, woocommerce_sales_report, woocommerce_get_stock_status), gives every detected issue a concrete safe-fix suggestion, uses respira_find_element to locate and validate the actual cart/checkout widgets and blocks, snapshots with respira_get_snapshot before any fix, and frames respira_generate_activity_report as a "prevented X lost orders / revenue protected" report.
**Category:** audit
**Status:** active
**Requires:** Respira for WordPress plugin + MCP server + WooCommerce (`requires_addon: woocommerce`)
**Telemetry endpoint:** https://www.respira.press/api/skills/track-usage
---## Description
Detect checkout issues, cart problems, and configuration errors silently losing sales.
WooCommerce Health Check scans your store for common configuration issues that break checkout flow and lose sales. It detects mobile checkout problems, payment gateway setup issues, AJAX URL mismatches, caching configuration errors on cart/checkout pages, and SSL problems. This skill identifies the exact issues causing cart abandonment and provides Respira workflows to test fixes safely on duplicate pages before going live.
---## Trigger Phrases
This skill activates when the user says any of the following:
- "audit my woocommerce store"
- "check woocommerce health"
**Do NOT trigger for:** general WordPress audits without WooCommerce context, plugin installation requests, theme customization, or non-WooCommerce e-commerce questions.
---
## Execution Workflow
### Step 1: Respira + WooCommerce Verification
Before anything else, verify Respira for WordPress is installed and the MCP server is connected by calling `respira_get_site_context`.
**If Respira is NOT installed, output this and STOP:**
```markdown
## โ Respira for WordPress Required
This skill requires the **Respira for WordPress** plugin to analyze your store safely.
### Install in 3 steps:
1. Go to **https://www.respira.press** and download the plugin
2. Install and activate on your WordPress site
3. Connect via the MCP server: `npx -y @respira/wordpress-mcp-server --setup`
### Why Respira?
- Read-only analysis โ no changes to your live store
- Duplicate-first fix testing so no checkout breaks go live
- Full audit trail for every action
Once installed, come back and try again: *"check woocommerce health"*
```
**If WooCommerce is NOT found in the plugin list, output this and STOP:**
```markdown
## โ ๏ธ WooCommerce Not Detected
This skill is specifically for WooCommerce stores.
WooCommerce does not appear to be installed or active on your site.
**If you do have WooCommerce installed:**
- Make sure the plugin is activated (not just installed)
- Verify Respira can see your plugin list in Respira โ Settings
**If you're looking for a general WordPress audit:**
Try: *"analyze my wordpress site"* (WordPress Site DNA skill)
```
---
### Step 2: Site and Store Context
```
Tool: respira_get_site_context
Returns: WordPress version, PHP version, site URL, WordPress address,
installed plugins, active theme, debug mode
```
Record: `respira_site_url`, `started_at = new Date().toISOString()`
**Critical check โ URL mismatch detection:**
Compare `siteurl` (Site Address) vs `home` (WordPress Address) from site context. A mismatch causes AJAX to fail on checkout.
---
### Step 3: Plugin Audit for WooCommerce-Specific Issues
```
Tool: respira_list_plugins
Returns: All plugins with name, slug, version, active status
```
Check for:
- WooCommerce version (flag if significantly behind latest)
- Payment gateway plugins and their active status
- Caching plugins (W3TC, WP Super Cache, WP Rocket, LiteSpeed) โ these need cart/checkout exclusions
- Security plugins that may interfere with AJAX requests
- Conflicting checkout plugins
---
### Step 4: Live Store Diagnostics (orders, sales, stock)
Configuration checks tell you what *could* break. Live store data tells you what *is* breaking. Pull the real numbers with the WooCommerce read tools:
```
Tool: woocommerce_list_orders
Returns: Recent orders with status, total, date
```
Look at order status mix over a recent window:
- A spike in `failed` / `pending` orders next to very few `processing` / `completed` is a strong checkout-is-broken signal (payment or AJAX failing at the last step).
- Many `cancelled` after `pending` can mean session/cart loss before payment.
```
Tool: woocommerce_sales_report
Returns: Sales totals over a period
```
Use the sales report to size the impact: a sudden drop against a prior period quantifies how much revenue the configuration issues are putting at risk, which feeds the "revenue protected" framing in the final report.
```
Tool: woocommerce_get_stock_status
Returns: Stock state for products
```
Flag stock problems that silently lose sales:
- Products stuck "out of stock" that should be in stock (a fixable data error, not a real shortage).
- Best-sellers low on stock with no backorder allowed.
**Safe fix for a genuine stock data error:** confirm the real count with the store owner, then correct it with `woocommerce_update_stock`. Snapshot first (Step 0 of any fix) and never bulk-change stock without explicit confirmation.
---
### Step 5: Checkout and Cart Page Analysis
```
Tool: respira_list_pages
Params: { status: "publish" }
Returns: All published pages
```
Locate the WooCommerce core pages:
- Cart page (has `[woocommerce_cart]` shortcode or is_cart block)
- Checkout page (has `[woocommerce_checkout]` shortcode or is_checkout block)
- My Account page
- Thank You / Order Received page
For each core page, check:
- Page exists and is published
- Page is assigned in WooCommerce โ Settings โ Pages
- Page content contains expected WooCommerce element
**Validate the actual cart/checkout widget is present** with `respira_find_element` on the cart and checkout pages. A page can be "assigned" in settings but have lost its `[woocommerce_checkout]` shortcode / Checkout block during a builder edit. `respira_find_element` confirms the real checkout widget/block exists in the content, which is the single most common cause of a checkout page that loads but cannot take an order.
**Safe fix when the widget is missing:** create a duplicate of the page, re-insert the correct WooCommerce checkout/cart block on the duplicate, verify it renders, then swap it in. Never edit the live checkout page directly.
```
Tool: respira_analyze_performance
Params: { pageId: <checkoutPageId> }
Returns: Load time, caching status, scripts loading
```
Flag caching on cart/checkout: if caching plugin is active and checkout page has no exclusion configured, this will likely break session handling.
**Safe fix:** add `cart`, `checkout`, and `my-account` to the caching plugin's page-exclusion list (do not rely on URL-pattern guesses; use the actual slugs found above).
---
### Step 6: SSL Verification
```
Tool: respira_get_site_context
Returns: Site URL (check for https://)
```
SSL check:
- Site URL starts with `https://` โ โ
- Site URL starts with `http://` โ ๐ด Critical (payment gateways require SSL)
- WordPress Address and Site Address both https but different subdomains โ โ ๏ธ URL mismatch risk
This skill is read-only by default. When the user approves a fix, every change follows the same safety rules:
1. **Snapshot before any change** with `respira_get_snapshot`. This is the rollback point if a fix has side effects. Restore with `respira_restore_snapshot`.
2. **Duplicate-first for page changes.** Re-insert a missing cart/checkout widget, fix mobile stacking, or remove an unneeded script on a `respira_create_page_duplicate` copy, verify it renders, then swap it in. Never edit the live checkout page directly.
3. **Confirm data changes.** Stock corrections via `woocommerce_update_stock` only after the store owner confirms the real count. Never bulk-change stock or order status on a guess.
4. **Re-validate after the fix.** Use `respira_find_element` again to confirm the checkout/cart widget is present, and re-run the relevant check before calling an issue resolved.
### Safe-fix suggestions per detected issue
| Detected issue | Concrete safe fix |
|----------------|-------------------|
| URL mismatch (Site Address != WordPress Address) | Align the two URLs on a staging copy, verify checkout AJAX works, then apply to live |
| No SSL on checkout | Install/activate a TLS certificate at the host, then force HTTPS; gateways require it |
| Cart/checkout cached | Add `cart`, `checkout`, `my-account` slugs to the caching plugin's exclusion list |
| Missing checkout/cart widget (found via `respira_find_element`) | Re-insert the correct WooCommerce block on a duplicate, verify, swap in |
| Mobile checkout layout breaks | Fix responsive stacking on a duplicate checkout page, test on a phone viewport, swap in |
| Unneeded scripts on checkout | Dequeue the irrelevant scripts on a duplicate first, confirm checkout still works |
| Stock data error (in-stock product flagged out of stock) | Confirm real count, correct with `woocommerce_update_stock` after snapshot |
| Failed/pending order spike (from `woocommerce_list_orders`) | Treat as payment/AJAX failure: verify gateway active + SSL + checkout widget present, fix the underlying cause above |
## Activity Report Handoff
After the audit (and any approved fixes), turn the work into a store-owner-facing report with `respira_generate_activity_report`.
Frame it around protected revenue, not raw tool calls:
- Tie the failed/pending order rate and the `woocommerce_sales_report` drop you measured in Step 4 to an estimate of orders that were being lost.
- After fixes, state what was restored: "checkout widget re-inserted, caching exclusions added, X products corrected back in stock."
- The activity report becomes the "prevented X lost orders / revenue protected" summary the owner can keep or hand to a client, with the snapshot id as the documented rollback point.
---
## Report Output Template
```markdown
# ๐ WooCommerce Health Check Report
**Store:** [URL]
**Analyzed:** [Timestamp]
**Health Score:** [0-100] [๐ข/๐ก/๐ /๐ด]
---
## Executive Summary
- **Critical Issues:** [count] (losing sales right now)
- **Sales vs prior period:** [up/down X%] ([revenue at risk estimate])
- **Stock flags:** [count] products flagged out of stock that may be data errors
### Most Impactful Issues
1. [Highest revenue impact issue]
2. [Second issue]
3. [Third issue]
---
## Checkout Page Analysis
[โ /โ ๏ธ/โ] Checkout page exists at [URL]
[โ /โ ๏ธ/โ] SSL active on checkout
[โ /โ ๏ธ/โ] WordPress Address matches Site Address
[โ /โ ๏ธ/โ] Checkout page excluded from caching
[If URL mismatch detected:]
**Critical: URL Mismatch Detected**
Your WordPress Address and Site Address don't match:
- WordPress Address: [URL]
- Site Address: [URL]
This causes AJAX errors during checkout. Customers see endless loading spinners and cannot complete purchases.
**Respira Fix Workflow:**
```
"Create a staging copy of my site and update the site URLs to match,
then let me verify checkout works before applying to live"
```
---
## Cart Functionality
[โ /โ ๏ธ/โ] Cart page configured
[โ /โ ๏ธ/โ] Cart page excluded from caching
[โ /โ ๏ธ/โ] My Account page configured
[If caching not excluded:]
**Issue:** Cart and checkout pages may be cached.
Cached cart pages cause sessions to break. Customers add items, navigate away, return to find an empty cart โ or worse, see another customer's cart data.
**Respira Fix Workflow:**
```
"Check my caching plugin configuration and add cart, checkout,
**Note:** API key validity and test mode status cannot be confirmed via read-only analysis. Verify credentials directly in WooCommerce โ Payments โ Settings.
---
## Mobile Checkout Experience
[โ /โ ๏ธ/โ] Checkout form columns stack on mobile
[โ /โ ๏ธ/โ] Input fields large enough to tap
[โ /โ ๏ธ/โ] Place Order button fully visible on small screens
[โ /โ ๏ธ/โ] Payment form resizes on mobile
**Mobile Issues Found:** [count]
[If issues found:]
**Respira Fix Workflow:**
```
"Create a duplicate checkout page and adjust the mobile responsive
settings so the form stacks correctly on phones and tablets"
All fixes tested on duplicates before touching your live store.
---
**Honest note:**
This skill identifies configuration issues and reads your real order, sales, and stock data to spot what is actually breaking. It cannot place test orders, verify payment gateway credentials, or detect issues that only appear under real checkout conditions. A failed-order spike is a strong signal, not proof of the exact cause. Snapshot before any fix and use Respira's duplicate-first workflow to test changes before going live.
---
*Report generated by WooCommerce Health Check ยท Powered by Respira for WordPress*
*Re-run anytime: "check woocommerce health"*
```
---
## MCP Tools Reference
All tools below are provided by the `respira-wordpress` MCP server. Never call tools that are not in this list.