01Apps and tags that slow the storefront
Every added app, pixel and review widget puts more script in front of the buyer. Speed work fails when it stops at image compression, so we measure real user timings on product and cart pages and remove or defer what does not earn its weight.
Core Web Vitals · Third-party scripts · Checkout
02Product data that never quite matches
Titles, variants, GTINs and stock live in different shapes across the store, the ERP, Google Merchant Center and the marketplaces. Feeds get rejected, listings drift, and merchandising decisions get made on numbers nobody trusts.
Product feeds · Data quality · Merchandising
03Tax and payments across two countries
Selling into Canada and the US brings GST, HST and PST alongside US sales tax that varies by state and by local jurisdiction, plus currency, duty and fraud rules at checkout. Getting it wrong surfaces late, in reconciliation and support tickets rather than in testing.
Payments · Tax · Cross-border
04Subscriptions that outgrow the plugin
Recurring billing starts simple, then needs pausing, swapping, prepaid terms, proration and failed payment recovery. The stock plugin holds until it does not, and the failure lands on your support queue and on the revenue you report.
Subscriptions · Billing · Retention
05Headless rebuilds that stall halfway
A headless front end can be faster and more flexible, and it can also strip out preview, search, promotions and the merchandising controls the team relied on. The rebuild only pays off when those missing pieces are planned in from the start.
Headless · Architecture · Content
06Marketing judged on the wrong number
Platform-reported return on ad spend counts differently from the ledger, and blended numbers hide which products actually pay. Without margin, shipping and returns in the model, budget keeps moving toward campaigns that look good and lose money.
Attribution · Profit · Paid media