Running a QuickScan on a new ecommerce store takes me two to three hours. After dozens of these sessions across Dutch online retailers, from artisan food brands to large print platforms to financial services providers, certain problems appear so consistently that I can predict them before I open the tab.
That predictability is useful for store owners. These are not unusual edge cases or advanced optimization territory. They are structural UX failures that appear across store types, traffic volumes, and budgets. If your store has been live for more than two years without a dedicated UX review, at least three of the five patterns below are almost certainly present.
Here is what I find, why it persists, and what to fix.
1. Mobile performance is worse than you think
The gap between how a store feels on a developer’s MacBook and how it actually performs on an Android mid-range phone is often dramatic. I routinely open stores in a throttled mobile environment and watch LCP values of 8, 10, or 13 seconds.
In a recent audit of a large Dutch print platform, the mobile LCP was 13.4 seconds. The two main causes were 5MB of JavaScript loading upfront before any content was visible, and a 1MB Inter font file being served as a .ttf rather than a compressed .woff2 file. Neither of these is visible to anyone reviewing the store on a fast desktop connection. Both are immediately apparent to the 64% of Dutch shoppers arriving on a mobile device.
The average Lighthouse performance score across Dutch ecommerce sites is 0.53 out of 100. That number is not a typo. A score below 0.5 indicates critical performance problems. This is the median for the Dutch market, not the floor.
The finding that surprises most clients: their analytics often report a reasonable bounce rate and session duration. This is because the users who stayed are the ones with better connections or more patience. The users who left in the first three seconds are underrepresented in every metric except raw traffic numbers. The performance problem is visible in the gap between traffic volume and conversion rate, not in the UX data from users who stuck around.
What makes this pattern persist: most store owners check their own experience on their own devices, on their own fast connections. The slowness is invisible to the people who know the store best.
What to fix: Run Google PageSpeed Insights on your actual product listing page (not just the homepage) using the Mobile tab. The tool identifies the three largest LCP contributors. For most Dutch ecommerce stores, these are: uncompressed images served at desktop resolution to mobile viewports, third-party JavaScript from apps executing on pages that do not need them, and font files not converted to woff2. Fixing those three before anything else typically moves LCP from 10 seconds to under 4. Font subsetting with woff2 alone can reduce font payload by 70%.
2. Navigation built for the product catalog, not the customer
In almost every audit I run, at least one primary navigation item makes complete sense to the store owner and requires explanation for everyone else.
In one audit of an artisan food brand, the main product line had been given an evocative brand name. That name appeared in the primary navigation. Customers arriving from a Google search for chocolate, bonbons, or gift boxes had no way to know what that word referred to without clicking through and reading product descriptions. The name was internal language that had migrated into the customer-facing interface. The category page bounce rate reflected this precisely.
In the print platform audit, the issue was visual hierarchy rather than naming. “All products” appeared in the navigation with the same font weight, size, and color as specific product subcategories. Users scanning the navigation had no visual cue distinguishing a gateway to the full catalog from a specific product type. Baymard guideline #266D specifies that category headers should be visually distinct from subcategories and should be clickable to reach the full parent category listing. This store violated both rules with a single design choice.
The common pattern: navigation is built by people who know the product range deeply. Every label feels natural from the inside. First-time visitors who are comparing three stores simultaneously are reading navigation at a glance and making quick decisions about whether to stay or go. Anything that requires interpretation loses them.
A related finding that appears in roughly half of audits: main navigation categories expand to show subcategories in a dropdown, but there is no link to view all items in the parent category. A user who wants to browse the complete collection has no clear path. This is a common source of dead-end navigation flows.
What to fix: Test your navigation with five users who have never seen your store. Ask each one to find a specific product type without help. Note where they hesitate. Where hesitation is consistent, the navigation has failed. Specifically check for: category names that require product knowledge to interpret, items with no visual hierarchy between parent and child categories, and dropdown menus where “View all [category]” is missing or buried at the bottom of a long list. The fix for navigation naming is almost always vocabulary research, not design work.
3. Form inputs that fight the user
Checkout forms and lead-capture forms are where friction is highest and patience is lowest. A user who has made a purchase decision and is filling in their details is one bad interaction away from abandoning. They are not looking for reasons to stay; they are looking for confirmation that finishing is easy.
The most specific form finding I have documented came during an audit of a Dutch financial services provider. The date picker refused to accept single-digit month entries. A user typing “9” for September saw the field clear or trigger an error. The required input was “09”. The field provided no placeholder text, no format example, and no error message explaining the expected format. The field simply did not accept what a person naturally types.
In the same audit, a country selection dropdown sorted entries by ISO country code rather than country name. Finding “Curaçao” required knowing that the ISO code is “CW” and scanning for it in an alphabetically sorted list of codes rather than names. For a Dutch financial product where a predictable segment of applicants comes from Curaçao, Aruba, and Suriname, this is not an edge case. It is a systematic failure affecting a known user group, caused by a one-line configuration issue that had never been reviewed from the perspective of someone outside the Netherlands proper.
These are not significant design failures. They are one-line code issues. A missing placeholder="DD-MM-YYYY" attribute. A sort order preference. An incorrect dropdown data source. They appear in almost every form I audit and have an outsized effect on completion rates because they occur at the highest-commitment point in the funnel.
From the broader QuickScan dataset on form friction: wrong input types on mobile (numeric fields showing the full QWERTY keyboard instead of the number pad), address fields that do not trigger browser autofill because the autocomplete attribute is missing or incorrect, and country dropdowns with 200+ unsorted options requiring full scrolling are the three most common form failures after date and country input.
What to fix: Complete your own checkout form on an actual mobile phone, not a desktop browser, with browser autofill disabled. Write down every moment where you stop and think. Each of those moments is a leakage point. The technical audit checklist: verify type="tel" on phone fields, add autocomplete attributes to all address fields (postal-code, street-address, given-name, family-name), add placeholder text with format examples to all date fields, and replace alphabetically sorted country code dropdowns with searchable selectors that surface the most common choices first based on your actual customer location data.
4. Price presentation that creates doubt
Price should be the clearest element on any ecommerce page. In practice, it is frequently the one that creates uncertainty.
The pattern appears in two distinct forms. The first is quantity-based pricing without per-unit clarity. In the print platform audit, a product listing showed “100 items for €33” without stating whether that was the total (€0.33 per item) or the per-item rate with a minimum order quantity. B2B print buyers comparing suppliers across multiple tabs are making this calculation automatically. When the answer is not visible at a glance, many move to the next result rather than clicking through to confirm. For products where per-unit cost drives the purchase decision, per-unit clarity is not a nice-to-have.
The second form is the hidden shipping cost revealed at checkout. Baymard research attributes 48% of cart abandonment to unexpected costs appearing for the first time at the payment step. In the Dutch ecommerce context, this effect is amplified by the iDEAL payment flow. Dutch consumers treat the iDEAL step as a commitment point, partly because the payment happens immediately and refund processes are non-trivial. Discovering an additional €6.95 shipping fee at that step registers as deception rather than just inconvenience.
An additional pricing pattern that appears in roughly a third of audits: promotional price display without clear original price context. A product shown at “€29” with a strikethrough of a previous price is legally required under EU omnibus directive rules to show the lowest price in the past 30 days as the reference. Most stores are not doing this correctly, which creates both a compliance exposure and a trust problem for informed shoppers who recognize the missing reference price.
What to fix: Audit your product pages specifically for price ambiguity. If you sell in quantities, show the per-unit price explicitly alongside the total. If shipping costs vary by order size or destination, show a threshold or range on the product page (“free shipping above €75”) before the user has committed to filling in their address. Move price transparency upstream. The shipping cost that causes abandonment at checkout would not have caused abandonment if shown on the product page, because at that stage the user has not yet invested their personal data in the transaction.
5. Missing feedback at moments of commitment
Users need to know their action worked. This is a foundational principle of interaction design, and it breaks down consistently in ecommerce at exactly the two moments where it matters most: after a form is submitted, and at steps that escalate user commitment.
In an audit of a Dutch financial services provider, the confirmation page displayed after a completed multi-step application form had no visible success state. No confirmation headline, no next-step explanation, no reference number or expected timeline. Users who had spent 10 to 15 minutes completing a detailed form landed on a page that appeared identical to a transitional loading state. The result was a predictable pattern of support contact and repeated form submission, both of which are expensive to handle and indicate a fundamental failure in closing the conversion loop.
In the same audit, a checkbox authorizing a third-party BKR credit check appeared partway through the application, before the user had seen the full product terms or the actual offer. The checkbox was positioned as a prerequisite for seeing the offer, rather than as an informed consent step following an offer the user had decided to accept. Users who had not yet decided whether to proceed with the product were being asked to authorize a financial inquiry into their credit history. The commitment sequence was inverted: escalation before value, not after.
This pattern appears in less severe forms across many store types. Newsletter popups presented within the first few seconds of a visit, before the user has formed any view of whether the store is relevant to them. Account creation required before accessing checkout, converting a browsing session into a commitment before any purchase intent has been confirmed. Cart success states that are either absent or so brief (a one-second flash) that users click add-to-cart a second time, creating duplicate items.
What to fix: Map the commitment escalation sequence in your checkout and lead-capture flows. Every request you make of a user, whether creating an account, authorizing data sharing, or entering payment details, should come after, not before, the value exchange that justifies the request. After any form submission, display a distinct, persistent success state. Not a flash. Not a redirect to a blank page. A confirmation message that names what was submitted, states what happens next, and gives a reference point for follow-up. That page is your final opportunity to close the loop on a conversion; treating it as a throwaway state is a measurable revenue leak.
Why these five persist
These patterns share a common cause: each is a failure invisible from inside the store.
The developer reviewing the site on a fast desktop connection does not see the 13-second mobile LCP. The product team that named the categories understands the navigation perfectly. The checkout form was tested by people who knew the expected date format. The pricing was written by someone who always reads carefully. The confirmation page was cut from scope because it was not listed as a requirement.
A UX audit introduces an outside perspective at precisely the pages where the inside perspective is structurally blind. The value is not in finding problems the team could not have found; it is in finding problems the team could not have seen.
If you want to check your store against these five patterns before booking an audit, start with five specific tests: a Google PageSpeed Insights mobile test on your product listing page, a five-second navigation test with an unfamiliar user, a full checkout completion on an Android mid-range device with autofill disabled, a review of your product pages for per-unit price clarity, and a walkthrough of every post-conversion state in your store.
Those five tests will surface most of what a QuickScan would identify in this category. What a QuickScan adds is the prioritization, the Baymard guideline references, the fix specifications, and the sequenced action plan so you know not just what is broken but which fix to do first and exactly how to specify it for your development team.
