Check the traffic is real and commercial
Open Shopify Analytics, sort sessions by referrer and landing page. Bot and referral spam show as high sessions with near zero add to cart and a sub two second average. Blog and informational landing pages behave the same way for a legitimate reason. Strip both out before judging the site.
Then look at what remains. If your paid traffic lands on the homepage or a collection instead of the exact product advertised, you will see traffic without sales every time. Match the landing page to the promise in the ad.
Prove the tracking before you rebuild anything
Place a real test order on a phone using mobile data. Check it lands in Shopify, GA4 and your ad platforms within the hour. Missing purchase events are common after the checkout extensibility migration, because anything left in the old additional scripts field stopped firing.
Purchase events now belong in a custom pixel under Settings then Customer events, or in the native channel integrations. If Shopify shows orders that GA4 never recorded, you have a reporting fault. Fix that before you spend money redesigning pages that may already work.
Test the whole journey on a real phone
Use your own device rather than a resized desktop browser. Add to cart, apply a discount code, reach checkout, choose delivery and stop at payment. Time it. Anything over roughly ninety seconds from product page to payment screen is costing you orders.
Watch for the usual killers. Delivery cost revealed only at checkout, a discount field that fails silently, a sticky bar covering the add to cart button and an app popup that traps the scroll. These are cheap to fix and they move the number quickly.