Carbon District is a genuinely well-built store — and that is exactly why the problems found in this audit are so expensive. The foundations most Shopify stores lack are already here: a sticky header with predictive search, filters with live product counts, breadcrumbs on every level, a shoppable "Shop The Look" gallery, real customer build photography, 113 five-star reviews, a fitment guarantee, and a full policy set in the footer. The traffic that lands here is met by a credible premium brand.
The losses happen in the last three metres — inside the buy box. On a $899.99 carbon fiber part, the product page presents the "Add to Cart" button before the price and before the fitment selector. A shopper is asked to commit before learning what it costs and before choosing between "With ACC" and "Without ACC" — the one choice that decides whether the part physically fits their car. Every wrong-variant order that results becomes a return, a refund, a support ticket and a damaged review.
The second loss is trust that exists but is never shown. The store owns 113 reviews averaging 5.0 with real customer cars — yet the product page contains zero reviews and zero star ratings. The word "review" does not appear anywhere on it. Judge.me is installed and loads its JavaScript on every single page, but renders nothing. The store is paying the performance cost of a review platform while receiving none of its conversion benefit, and the social proof sits alone on the homepage at 9,458px — past the point 85% of visitors ever scroll.
Third, the Quick Add drawer is functionally broken. Opening it on a product with fitment options pushes the "Add to cart" button off the top of the screen, while the 12+ vehicle-option labels overflow their containers and overlap each other into unreadable text. The single fastest path to purchase on the site does not work.
Finally, mobile performance is the silent tax on all of it: a measured LCP of 8.8 seconds and a PageSpeed score of 58/100, driven by 365 requests and 4.9 MB per homepage load. Google's threshold is 2.5s. Most mobile ad traffic is bouncing before the hero image resolves — meaning every improvement above is being applied to a fraction of the audience that actually arrives.
Two details deserve special mention because they cost nothing to fix and silently undermine a premium positioning: the main hero call-to-action reads "SHOW NOW" instead of "SHOP NOW" on three of four slides, and the footer offers a "Become An Affilate" programme. On a store asking for $900 per order, typos on the primary button are a direct trust cost.
The upside is unusually concentrated. None of the five critical findings require a redesign or a theme migration — they are ordering, configuration and asset problems inside a good theme. Reordering one buy box, switching on a review widget that is already paid for and loaded, repairing one drawer, correcting one word, and compressing a homepage is a focused programme with a direct line to revenue on a high-AOV catalogue.

The bar repeats STOREWIDE SALE 15% OFF eight times and carries nothing else — no discount code, no expiry date, and no shipping or returns terms. Worse, it contradicts the product page, which advertises GET 10% OFF STOREWIDE + 5% FOR EMAIL SUBSCRIBERS. A shopper who reads both sees two different offers and trusts neither. This strip should carry the free-shipping threshold ($100) and the 7-day return promise — the two facts that remove purchase hesitation.
⏱ Estimated: 2 dev hours
The entire catalogue is organised by vehicle fitment, so "Select Your Vehicle" is the most important control on the site — but it opens a ~220px single-column list showing only 5 brands (Audi, BMW, Toyota, Mercedes-Benz, Porsche) plus "Show all". Owners of the Corvette, Dodge and other platforms this store stocks must click through an extra level to discover they are catered for. Reaching a product takes 3+ clicks. A true mega menu showing brands and their popular models side by side would cut this to one.
⏱ Estimated: 6 dev hours
The header remains pinned on scroll (verified position: sticky), keeping search, cart and navigation reachable across an 11,224px homepage.
The search form uses Shopify's predictive search component, returning suggestions as the shopper types — essential for a 250+ SKU fitment catalogue.
Cart (with live item badge), account and currency selector are present in the header on every page and every viewport.
Black-on-light-grey header with bold weight gives maximum legibility; the brand mark is clear and correctly sized.

The single most clicked button on the site contains a typo. It appears as SHOW NOW on three of the four hero slides — one slide correctly reads "SHOP NOW", which confirms this is an error rather than a stylistic choice. It is also present on mobile. On a store asking shoppers to spend $900 on a part that must fit their car precisely, a misspelling on the primary button directly undercuts the "premium, precision-engineered" positioning the brand is paying to build. This is a one-word fix with an outsized credibility return.
⏱ Estimated: 1 dev hour
"Lightweight. Strong. Iconic." is atmospheric but carries no information — it never states that the store sells carbon fiber parts, which vehicles are supported, or why to buy here rather than from a competitor. Notably the mobile hero does carry a supporting line ("Discover carbon components that redefine the look and feel of your car") that desktop is missing. Adding that subheadline plus an inline vehicle selector would let visitors self-qualify in the first three seconds.
⏱ Estimated: 3 dev hours
The hero call-to-action is fully visible without scrolling at 1440×900 and again on a 390×844 mobile viewport.
Verified over several minutes: the slideshow holds its position and never auto-advances. This is the correct behaviour — auto-rotating banners reduce comprehension and steal clicks from the primary message.
Four trust signals sit immediately under the fold — Refund Policy (7-day returns), Fast & Free Delivery (free over $100), Quick Dispatch, and Exceptional Assistance — answering the first objections at exactly the right moment.
Full-bleed automotive photography with heavy display type creates the aspirational tone the category demands, and the dark brand palette is applied consistently.

Opening Quick Add on a product with fitment options produces two simultaneous failures. First, the drawer renders with its content starting above the viewport, so the "Add to cart" button is sliced in half at the top edge and the shopper must scroll upward inside the drawer to reach it. Second, the 12+ vehicle option labels ("2015-2020 BMW F80 M3 & F82/F83 M4 Pre-LCI Xenon Headlights" and similar) overflow their fixed-height pills and collide with the options above and below, rendering the list unreadable. Quick Add is the fastest path to purchase in the store and it currently cannot be completed. Fix: give the drawer auto-height pills that wrap long labels, and pin a sticky "Add to cart" bar to the bottom of the drawer so the CTA is always in view.
⏱ Estimated: 8 dev hours
The first actual product on the homepage appears at 2,378px — behind a 1,493px "Shop By Car Make" logo block. On a standard 900px screen that is roughly three full scrolls before a shopper sees anything purchasable. The make selector is valuable, but it should be condensed, or best sellers should be promoted above it so revenue-driving product appears within the first scroll.
⏱ Estimated: 4 dev hours
The store holds 113 reviews at a 5.0 average, but not a single card in the grid displays a rating. Star ratings on cards are one of the highest-yield additions available on a catalogue page, and here the underlying data already exists — it is simply not being surfaced.
⏱ Estimated: 3 dev hours
Cards carry contextual badges — "On sale" and specific savings such as "Save $89.50" and "Save $156.00" — which anchor value far more effectively than a generic sale tag.
Cards hold a second image that reveals on hover, letting shoppers preview an alternate angle without leaving the grid.
A "+ Quick add" control appears on hover across the grid — the right pattern for an accessories catalogue (the drawer it opens needs the repair noted opposite).
Multi-variant products display selectable colour swatches with a "+2" overflow indicator directly on the card, communicating range before the click.
The homepage carries real customer vehicle photography plus a shoppable "Shop The Look" gallery with clickable hotspots that map directly to purchasable products. This is exactly the right place for UGC and it is executed well.

The affiliate programme link is misspelled as Become An Affilate. Combined with the "SHOW NOW" hero button, this forms a pattern of copy errors on a store positioned as precision-engineered and premium. It also weakens the recruiting page's own credibility with the exact audience it is trying to attract.
⏱ Estimated: 1 dev hour
Instagram is the sole social link. Car modification is one of the most video-driven categories on TikTok and YouTube, and the store already produces the install and build content those platforms reward. Omitting them forfeits both a discovery channel and a trust signal for shoppers who research a brand before spending $900.
⏱ Estimated: 1 dev hour
Privacy Policy, Refund Policy, Shipping Policy and Terms of Service are all present and reachable in one click, alongside a dedicated Fitment Guarantee page — a category-specific trust asset most competitors lack.
American Express, Apple Pay, Google Pay, Klarna, Maestro, Mastercard, Shop Pay, UnionPay, Diners and Visa are shown — broad coverage that reassures international buyers at the moment of decision.
"Sign up to Get 5% Off" offers concrete value rather than a generic "subscribe", which materially improves opt-in rates.
The footer publishes a WhatsApp/phone number (+1 281 453 4845) alongside Contact Us and Help Center — high-value reassurance for a considered, fitment-sensitive purchase.

The "3 Series" collection has an H1 but zero descriptive copy (measured: 0 characters). Collection pages are the natural landing point for high-intent searches like "BMW 3 Series carbon fiber parts", and with no indexable text the page has almost nothing to rank on. A short paragraph per collection covering fitment years, chassis codes and part categories would compound organic traffic across the many model collections this store runs.
⏱ Estimated: 4 dev hours
The H1 sits at ~300px, breadcrumbs at ~442px and the first product row does not begin until ~560px. At 900px viewport height only a single row is visible and its product titles are already clipped by the fold. Tightening the vertical rhythm would bring a second row of products into first view on every collection in the store.
⏱ Estimated: 2 dev hours
With 146 products in this collection alone, browsing is broken into numbered pages with no infinite scroll or "Load more" option. Each pagination click is a full page load and a fresh opportunity to abandon; a "Load more" button keeps shoppers in a single continuous browsing session.
⏱ Estimated: 3 dev hours
Facets display real availability — "Exterior (723)", "Performance (148)", "Interior (121)", "Accessories (7)" — so shoppers know what a filter returns before applying it. This is a detail many stores miss entirely.
Car Brand, Car Model, Category, Subcategory and Colour are exactly the axes an automotive parts buyer thinks in, rather than generic ecommerce filters.
A full trail (Home / All Collections / BMW / 3 Series) aids both navigation and SEO across a deep catalogue hierarchy.
Best-selling, price ascending and price descending are all offered and functional.

The page carries 10 still images but no video and no 3D model. In carbon fiber, the weave pattern, gloss depth and finish quality are the product — and they are precisely what a static studio shot fails to convey. Video is also the primary defence against the category's biggest objection, which the store's own FAQ raises: "Are these genuine carbon fiber or carbon fiber overlay?"
⏱ Estimated: 4 dev hours
Both variants of this product sell for the identical $899.99, yet carry different anchor prices: "With ACC" shows a struck-through $1,034.99 ("Save $135.00") while "Without ACC" shows $999.00. The same product also appears in "Shop The Look" at the $999.00 anchor while the product page advertises $1,034.99. A shopper who switches variants watches the "discount" change while the price does not — which reads as manufactured rather than real, and in several markets creates reference-pricing compliance exposure.
⏱ Estimated: 3 dev hours
Ten images with a working zoom control and vertical thumbnail navigation let shoppers inspect finish detail closely.
The title is set large and high-contrast, and encodes the fitment (chassis codes G80/G82/G83) directly — exactly how this audience searches.
The current price, struck-through comparison price and an explicit "Save $135.00" badge are all rendered legibly (the anchor-consistency issue opposite notwithstanding).
The full path (Home / All Collections / BMW / 3 Series / product) supports both SEO and lateral browsing back into the catalogue.
Where products carry colour or finish options, the theme renders visual swatches rather than a plain text dropdown.

The verified DOM order in the buy box is: Title → Add to cart → More payment options → Price → Promo banner → Variant selector. This inverts the decision sequence twice over. A shopper is asked to commit before seeing that the item costs $899.99, and — far more damaging — before choosing between "With ACC" and "Without ACC", the option that determines whether the part fits their car at all. Because a default variant is pre-selected, a shopper who clicks the prominent yellow button first will silently add the wrong part. Every such order becomes a return, a refund, a support ticket and a reputation cost on a $900 item. The buy box should be reordered to the standard sequence: Title → Star rating → Price → Variant selector → Add to Cart.
⏱ Estimated: 5 dev hours
Klarna appears among the accepted payment methods in the footer, yet the product page shows no instalment messaging whatsoever. At $899.99 this is exactly the price point where "4 payments of $225" measurably reduces sticker shock and lifts conversion. The payment rail is already in place — only the on-page messaging is missing.
⏱ Estimated: 2 dev hours
The page gives no signal about availability or dispatch timing. Since the store's own trust bar distinguishes "in-stock & custom-made products", showing which applies to the item being viewed would both create urgency on stocked parts and set correct expectations on made-to-order ones — reducing "where is my order?" tickets.
⏱ Estimated: 2 dev hours
A floating bar with product thumbnail, title and both prices follows the shopper down the page, keeping the purchase action permanently available.
"Buy with Shop" sits alongside the standard Add to Cart, with "More payment options" available — a meaningful shortcut for returning Shop Pay users.
Trust and guarantee markup is rendered in the purchase region, reinforced by the store-wide Fitment Guarantee page.
Marked N/A: this catalogue is largely custom-made/made-to-order and no sold-out product or variant was encountered during the audit. A back-in-stock notifier would add complexity with nothing to notify about.

On a front-grille product page, "You may also like" returns more front grilles for the same car — V2 Grilles, G8X Grilles, VR Style Grilles. These compete with the item in view rather than adding to the basket, creating choice paralysis at the decision point and cannibalising a purchase already in motion. Genuine cross-sell for this store would surface complementary parts that complete the build: a matching front lip, mirror caps, emblems, or install hardware. This is the single clearest AOV lever available on the product page.
⏱ Estimated: 4 dev hours
Description, Features, Includes and Fitment run as one continuous text block with no accordions, and on desktop they are confined to a 583px-wide column while the left half of the 1440px viewport sits empty. The result is a 2,846px-tall product section that buries the Fitment list — the most decision-critical content on the page — under heavy scrolling. Collapsing these into accordions and letting the content use the full width would cut the page height dramatically and make fitment scannable.
⏱ Estimated: 6 dev hours
A product recommendations section is installed and rendering with images, badges, pricing and Quick add — the mechanism works and only the selection logic needs retargeting.
Copy is organised under clear headings — Description, Features, Includes, Fitment — and the Fitment list enumerates specific model years and chassis variants rather than vague compatibility claims.
The product information area contains no outbound third-party links, keeping shoppers inside the purchase funnel.

Verified directly: the word "review" does not appear anywhere in the product page's rendered text, and there are no star elements at all. Meanwhile Judge.me is installed and loads its JavaScript on every page — settings, stylesheet and script all present — while rendering nothing. The store is paying the full performance cost of a review platform and receiving none of its conversion benefit. Compounding this, the 113 reviews it already owns (5.0 average, with genuine customer car photography) live only on the homepage at 9,458px of an 11,224px page — past where the overwhelming majority of visitors ever scroll. Social proof is the primary objection-handler for a $900 part from a brand a buyer may not know, and it is entirely absent from the page where the decision is made. Activating the Judge.me widget and its star badge is largely configuration, not development.
⏱ Estimated: 10 dev hours
The testimonial cards carry no reviewer names, no verified-purchase badges, no dates and no product links, and the "Rated 5.0 based on 113 reviews" headline is not clickable — there is nowhere to read the full set. Attribution and verification are what separate a credible review from marketing copy, and all three are currently missing.
⏱ Estimated: 2 dev hours
113 reviews at a 5.0 average is a genuine asset — the hard part is done. This audit's finding is purely about surfacing it where it converts.
Each card pairs its quote with an authentic customer car photograph (BMW M3, Mercedes G-Class, BMW M8) rather than stock imagery — far more persuasive to this audience.
Judge.me is present site-wide, so no procurement or migration is required — the widget simply needs enabling on the product template.

The store promotes "Orders over $100: Free shipping" in its trust bar, but the cart never references it. A progress indicator ("You've unlocked free shipping" / "$X away") is one of the most reliable AOV levers available, and it is especially effective on a catalogue where sub-$100 accessories — emblems, plate frames, phone mounts — could ride along with larger orders.
⏱ Estimated: 3 dev hours
A shopper with $899.99 of carbon fiber in the basket is shown nothing else. For an accessories catalogue this is the highest-intent moment in the entire session — an install kit, matching emblem or plate frame presented here converts at rates unattainable elsewhere on the site.
⏱ Estimated: 5 dev hours
The final click carries no reassurance — no returns promise, no fitment guarantee, no secure-checkout signal adjacent to the button. Payment icons appear only further down the page. Repeating the 7-day return and Fitment Guarantee next to Checkout directly addresses last-moment hesitation on a high-ticket order.
⏱ Estimated: 2 dev hours
The cart renders roughly an 80px thumbnail. On a visually-driven premium product, a larger image reinforces the value of what is about to be purchased and reduces second-guessing.
⏱ Estimated: 1 dev hour
Adding an item surfaces a confirmation modal showing the product image, price, selected variant ("With ACC") and both View cart and Checkout actions — the shopper is never left uncertain whether the action succeeded.
Quantity editing and a "Remove" action are both directly available on the line item without navigating away.
Subtotal and Total are prominent, with "Tax included. Shipping calculated at checkout." stated plainly — no surprise costs later in the funnel.
No discount-code box on the cart page — the right call, as an empty promo field prompts shoppers to leave and hunt for coupons.
A "We accept" row reinforces payment legitimacy on the cart page itself.
Valuable in this category, where buyers frequently need to specify vehicle details or installation preferences.

Measured body font-size: 14px. Beyond legibility on small screens, any form input under 16px triggers automatic zoom on iOS Safari — which disrupts newsletter signup and, critically, checkout field entry. Raising the base to 16px is a small change with a broad effect across every mobile session.
⏱ Estimated: 2 dev hours
The four trust signals shown side by side on desktop collapse into a single-item slider on mobile — only "Refund Policy" is visible, and free shipping, quick dispatch and support require swiping to discover. Most mobile visitors will see one of four. A compact 2×2 grid would show all four at once in the same vertical space.
⏱ Estimated: 2 dev hours
Three interactive elements among the first thirty measured under the 44px minimum. Undersized targets produce mis-taps and repeated attempts, which is where mobile sessions quietly die.
⏱ Estimated: 2 dev hours
Document width measures exactly 390px against a 390px viewport — no sideways scroll. The wide collection rows are intentional horizontal carousels, correctly contained.
A standard hamburger menu is present with search and cart remaining directly accessible in the mobile header.
No modal blocks the mobile experience on arrival — a common and costly mistake this store avoids.
Mobile includes the explanatory subheadline that desktop omits, giving small-screen visitors more context than desktop visitors receive.

On the mobile product page the chat widget is anchored bottom-right, directly on top of the right edge of the sticky "Add to cart" bar. The two most important touch targets on the page compete for the same pixels — a mis-tap opens a chat window instead of adding to cart, and the CTA is visually truncated. Offsetting the chat bubble upward on product templates resolves it.
⏱ Estimated: 1 dev hour
The inverted buy-box order carries over to mobile: title, then Add to Cart, with price and the ACC fitment selector further down. On a small screen this is more severe, since the price may sit an entire scroll away from the button asking for the commitment. The Block 7 reorder should be applied to both templates together.
⏱ Estimated: included in Block 7
A persistent yellow Add to Cart bar stays pinned at the bottom throughout the page — the single highest-impact mobile product-page pattern, and it is already in place.
Product images swipe naturally with dot indicators showing position, plus a working zoom control.
The quantity field uses type="number" with inputmode="numeric", so mobile devices present the number pad rather than a full keyboard.
The full navigation trail survives the mobile layout, letting shoppers move back up the catalogue without the browser back button.
Measured via PageSpeed Insights: homepage mobile Performance 58/100, First Contentful Paint 2.5s, Largest Contentful Paint 8.8s, Total Blocking Time 310ms, Speed Index 7.5s. The product page is worse — 52/100, LCP 7.6s, Speed Index 10.9s. Google's "good" threshold for LCP is 2.5 seconds. On mobile connections the hero image is still resolving nearly nine seconds in, which means a large share of paid mobile traffic never sees the store at all. This also suppresses Google rankings, since Core Web Vitals are a ranking input. Desktop is materially healthier at 66/100 with a 2.0s LCP — the problem is specifically mobile, which is where most Shopify traffic lives.
⏱ Estimated: 14 dev hours
Measured in-browser: 365 requests, 4.9 MB transferred (9.5 MB uncompressed), of which images account for 3.1 MB across 76 files and JavaScript 1.59 MB across 182 separate files. 59 requests go to third-party hosts. Anything above 200 requests or 4 MB is heavy; this exceeds both. The 11,224px homepage loading 142 images is the primary driver.
⏱ Estimated: 6 dev hours
Just under a quarter of homepage images are served as WebP or AVIF; the remainder are legacy formats carrying 25–35% more weight than necessary. Since images are the single largest payload component at 3.1 MB, converting the catalogue is the most direct route to the LCP improvement above. Judge.me additionally loads on every page while rendering nothing (see Block 9) — removing or activating it eliminates pure waste.
⏱ Estimated: 3 dev hours
113 of 142 homepage images carry loading="lazy", with the above-fold images correctly excluded. Without this the page would be dramatically slower still.
CLS measures 0 on mobile and 0.003 on desktop — content does not jump as it loads. This is a genuinely excellent result and rarer than it should be.
Exactly one H1 per page with a logical H2/H3 structure (1 / 8 / 26) and no heading tags misused for styling — correct for SEO.
CSS totals 81 KB and web fonts 109 KB — both well controlled. The performance problem is concentrated in images and JavaScript, not styling.
Desktop FCP of 0.6s and a fast time-to-first-byte confirm hosting and back-end are not the bottleneck — the payload is.

EcomSend is loaded on the storefront, yet no popup appeared on page load (waited 10 seconds) and none fired on exit-intent. Meanwhile the product page advertises "+5% FOR EMAIL SUBSCRIBERS" and the footer offers "Sign up to Get 5% Off" — so a real incentive exists and is simply never presented proactively. The app is already paid for and installed; it needs configuring, not building.
⏱ Estimated: 2 dev hours
Visitors leaving a $900 consideration page are shown nothing. Exit-intent is the lowest-friction capture point available — it interrupts no one who is still engaged — and with a 5% discount already approved, the offer is ready to use.
⏱ Estimated: 2 dev hours
Car enthusiasts build in stages over months — a front lip now, mirror caps next, a spoiler later. That makes this catalogue unusually well suited to points-based loyalty, yet no rewards mechanism exists to convert a first-time buyer into a repeat one.
⏱ Estimated: 6 dev hours
A chat widget is active site-wide (visible bottom-right in every screenshot in this report) — important where buyers routinely need fitment confirmation before committing.
"Sign up to Get 5% Off" gives a specific reason to subscribe rather than a generic appeal.
No countdown timers, no fabricated stock warnings, no artificial scarcity. Restraint here protects long-term trust with a community that recognises and punishes these tactics.
A "Become An Affiliate" page provides a referral pathway — well matched to a category driven by enthusiast influencers (the page title needs its spelling corrected, per Block 4).
The FAQ directly addresses "Is Carbon District legit?", dry vs wet carbon fiber, genuine carbon vs overlay, shipping times and customs fees — precisely the questions that block a first purchase in this category.
No Klaviyo, Omnisend or comparable ESP was found in the storefront source. Without one, abandoned-cart and abandoned-browse recovery is limited to Shopify's basic defaults — and on a catalogue with an $899 average order, each recovered cart is worth roughly an entire day of smaller-store revenue. Abandoned browse matters especially here, where buyers research fitment across several sessions before committing.
⏱ Estimated: 8 dev hours
GA4, Meta, Google Ads and Pinterest pixels are all installed, but TikTok is absent. Car modification is one of TikTok's largest organic verticals and the store already produces the build and install content the platform rewards — without the pixel, none of that audience can be retargeted or used to seed lookalikes.
⏱ Estimated: 2 dev hours
Judge.me is installed but dormant (Block 9), so the review-request flow that would normally follow delivery appears inactive. With 113 reviews already earned largely without automation, switching this on should compound review volume quickly — which in turn feeds the product-page star ratings recommended above.
⏱ Estimated: 3 dev hours
Google Analytics 4 is live via Google Tag Manager, providing the measurement baseline needed to quantify every fix in this report.
The Facebook/Instagram pixel is firing, enabling retargeting and conversion optimisation on the store's most relevant paid channel.
Google Ads tags are present, so search and shopping campaigns can optimise against real purchase data.
Pinterest tracking is in place — a genuinely useful channel for build inspiration and visual discovery in the automotive space.
Average dev hours and a fixed price at $40/hour. Suggested order: Critical → Medium → Low.
| Block | Task | Hours (avg) | Fixed Price |
|---|---|---|---|
| 2 | Fix "SHOW NOW" → "SHOP NOW" across all hero slides (desktop + mobile) | 1 | $40 |
| 3 | Repair Quick Add drawer — un-clip CTA, fix overlapping option labels, add sticky in-drawer Add to Cart | 8 | $320 |
| 7 | Reorder buy box — price + rating + fitment selector above Add to Cart (desktop & mobile) | 5 | $200 |
| 9 | Activate Judge.me on product pages — star badge under title, full review widget, photo reviews, import existing 113 reviews | 10 | $400 |
| 13 | Mobile performance programme — LCP 8.8s → under 3s (image compression, defer/bundle JS, cut request count, preload hero) | 14 | $560 |
| Subtotal — Critical | 38 hrs | $1,520 | |
| Block | Task | Hours (avg) | Fixed Price |
|---|---|---|---|
| 1 | Rework announcement bar — shipping/returns terms, single consistent promo message | 2 | $80 |
| 1 | Build true vehicle mega menu — brand + model grid, all brands surfaced | 6 | $240 |
| 3 | Promote best sellers above the make selector + add star ratings to product cards | 4 | $160 |
| 5 | Collection SEO descriptions, tighter vertical spacing, "Load more" pagination | 6 | $240 |
| 6 | Product video/3D media support + normalise compare-at anchor prices across variants | 4 | $160 |
| 7 | Klarna / Shop Pay instalment messaging on product pages ($100+ items) | 2 | $80 |
| 8 | Description accordions + full-width layout; retarget cross-sell to complementary parts | 6 | $240 |
| 10 | Cart free-shipping progress bar, cart upsell block, trust badges at checkout | 8 | $320 |
| 11 | Mobile base font to 16px, fix sub-44px tap targets, trust bar as 2×2 grid | 3 | $120 |
| 12 | Offset live chat bubble so it no longer overlaps the mobile sticky Add to Cart | 1 | $40 |
| 14 | Configure EcomSend — welcome offer popup + exit-intent capture | 3 | $120 |
| 15 | Email platform setup with abandoned cart + abandoned browse flows | 8 | $320 |
| Subtotal — Medium | 53 hrs | $2,120 | |
| Block | Task | Hours (avg) | Fixed Price |
|---|---|---|---|
| 4 | Fix "Become An Affilate" → "Affiliate" typo | 1 | $40 |
| 4 | Add TikTok and YouTube social links to footer | 1 | $40 |
| 13 | Convert remaining 108 legacy images to WebP/AVIF | 3 | $120 |
| 7 | Stock / dispatch-time indicator on product pages | 2 | $80 |
| 9 | Add names, dates and verified badges to homepage testimonials + link to full reviews | 2 | $80 |
| 10 | Enlarge cart line-item thumbnails | 1 | $40 |
| 14 | Loyalty / points programme setup | 6 | $240 |
| 15 | Install TikTok pixel + post-delivery review request automation | 5 | $200 |
| Subtotal — Low | 21 hrs | $840 | |
* Hours are averages and the price is fixed at $40/hour, for development implementation only. Content creation (product videos, photography) and third-party subscription costs (email platform, loyalty apps) are not included. Suggested order: Critical → Medium → Low.
The fixes in this report aren't theory — they're the same conversion levers we implement for the stores we work with. Here's the Total Sales curve from a store running our approach versus the previous period:
Total Sales over the period: $168,636 — +19% vs the prior period. Solid line = current (our approach), dotted = before.