UX heuristic analysis · Retail

Costco.com: a UX heuristic analysis

For Costco’s digital product team

Download the PDF

Costco.com’s navigation, warehouse finder and price card have faults the shopper meets on every visit

The faults are spread out: delivery links and footer links under the 24 px target size, a Feedback tab fixed over other buttons, a warehouse finder that reports a failed search when nothing was typed, a price card whose title does not follow the chosen option, and four navigation links that open new tabs with no warning. The product page is right: a clear title, the price and unit price on the first screen, and each way to get the item priced inside its own tile. Seen from Toronto, Canada: the US site, set to a Seattle warehouse and ZIP 98101.

Where to start

  1. Finding 4: Product-card delivery links and footer links are under the 24 px target size Medium
  2. Finding 7: Pressing Find with an empty field reports a failed search and clears the list Low
  3. Finding 2: The fixed Feedback tab covers part of Share, Find and carousel buttons Low
  4. Finding 1: Seen from Toronto, pages show a Seattle warehouse and ZIP 98101 the visitor never chose Medium
  5. Finding 5: The price card stays titled ‘2-Day Delivery’ after In-Warehouse is chosen Medium
Findings by level
HighMediumLowBest practice
0421

The 7 findings

Findings about the whole site first, then each page in the order examined, the most severe first within each. The levels, high, medium, low, best practice, are explained on the method page.

Finding 1Medium

Seen from Toronto, pages show a Seattle warehouse and ZIP 98101 the visitor never chose

Where
Throughout
Seen at
Desktop
Effort to fix
Medium
costco.com at desktop size, the frame on what this finding is about: Seen from Toronto, pages show a Seattle warehouse and ZIP 98101 the visitor never chose.
Desktop, 1440 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

Viewed from Toronto, Canada, the home page was the US site, marked ‘US’ at the top right. Under the navigation it shows ‘My Warehouse Seattle, Open until 6PM’ and ‘Delivery Location 98101’, and the product page says ‘98101 Available’ and ‘Seattle In Stock’. The country menu lists Canada. No prompt about the location or country appeared on the first screen.

Implication

Stock, delivery and warehouse hours are shown for a place the visitor never picked. Someone outside that area can believe an item is available to them, or not notice that a site for their own country exists.

Recommendation

Label a guessed location as a guess (‘Showing Seattle. Change location’) until the visitor confirms it. When the visitor appears to be outside the US, offer the matching country site once, with a choice to stay. Keep the location visible in the header; it is the right place.

Measured

  • Toronto visit shows Seattle warehouse, ZIP 98101
  • Product page: '98101 Available', 'Seattle In Stock'
  • 26 Oct: still ‘My Warehouse Seattle’ and ‘98101’, no prompt

Finding 2Low

The fixed Feedback tab covers part of Share, Find and carousel buttons

Where
Throughout
Seen at
Phone
Effort to fix
Small
costco.com at phone size, the frame on what this finding is about: The fixed Feedback tab covers part of Share, Find and carousel buttons.
Phone, 390 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

The ‘Feedback’ tab, 35 by 112.7 px, is fixed to the right edge. At 390 px it covers 11 by 28.3 px of the product page’s Share button and 11 by 8.1 px of the store locator’s Find button. At 1440 px it covers 15 of the 36 px of the home carousel’s ‘Next promo’ button.

Implication

A tap near the edge of these buttons opens the feedback form instead. On a phone the tab covers the main column, where people tap most.

Recommendation

Leave the right edge free of controls by padding the content past the tab, or move the tab into the footer or the account menu on small screens. Check that no button is under it at the common widths.

Measured

  • Feedback tab covers the Share button on a phone
  • Overlap: 11 × 8.1 px (88.7 px²)
  • Overlap: 15 × 36 px (540 px²)

Finding 3Best practice

Four main navigation links open a new tab with no warning

Where
Throughout
Seen at
Desktop
Effort to fix
Small
costco.com at desktop size, the frame on what this finding is about: Four main navigation links open a new tab with no warning.
Desktop, 1440 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

In the blue navigation, Optical, Pharmacy, Photo and Travel open in a new tab, while Services, between them, and the rest do not. None has an icon, and none says so in its name. On the home page at desktop size the check found 11 such links, among them Investor Relations, Credit Card and Grocery by Instacart in the footer.

Implication

Items in one menu behave two ways. People who expect to stay in the tab lose the back button and end up with several Costco tabs, and screen reader users are not told the context changed.

Recommendation

Open main navigation links in the same tab. Where a new tab is kept, for a partner site, show a small new-tab icon and add ‘opens in a new tab’ to the link’s accessible name.

Measured

  • Optical, Pharmacy, Photo, Travel open new tabs
  • Photo: opens a new tab, no cue
  • Travel: opens a new tab, no cue
  • Investor Relations: opens a new tab, no cue

Finding 4Medium

Product-card delivery links and footer links are under the 24 px target size

Where
Home
Heuristic
Accessibility
Seen at
Tablet
Effort to fix
Small
WCAG 2.2
2.5.8 Target Size (Minimum) (level AA)
costco.com at tablet size, the frame on what this finding is about: Product-card delivery links and footer links are under the 24 px target size.
Tablet, 820 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

Ten ‘2-Day Delivery’ links in home page product cards are 20.8 px tall, and 55 of 61 footer links are 23.8 px tall with no gap: under the 24 px of WCAG 2.2 criterion 2.5.8 (AA). The 8 px buttons beside the navigation labels are keyboard duplicates: hovering a label opens the same menu, and on focus the button grows to 32 px, so the exception for an equivalent covers them.

Implication

People with a tremor, or using a touch screen, can miss a 20.8 px delivery link and open the product card instead. In the footer, a tap can land on the link above or below the one they meant.

Recommendation

Give the ‘2-Day Delivery’ links and the footer links at least 24 px of height, with padding, or 4 px of space between stacked links. Recheck with axe target-size at 1440, 820 and 390 px.

Measured

  • Company Information: 23.8 px tall
  • 26 Oct: 10 delivery links 20.8 px tall; 55 of 61 footer links 23.8 px, no gap
  • axe target-size: 58 elements (serious)

Finding 5Medium

The price card stays titled ‘2-Day Delivery’ after In-Warehouse is chosen

Where
Product: Kirkland Signature Paper Towels
Seen at
Desktop
Effort to fix
Small
costco.com at desktop size, the frame on what this finding is about: The price card stays titled ‘2-Day Delivery’ after In-Warehouse is chosen.
Desktop, 1440 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

On the Kirkland paper towels page the price card reads ‘2-Day Delivery’, ‘Online Price $23.99’. After choosing the In-Warehouse tile it reads ‘Warehouse Price $20.99’ under the same ‘2-Day Delivery’ title. That title is a link, in blue with no underline, set as the card’s heading. The unit line reads ‘$2.05/per 100 sq ft’.

Implication

A shopper comparing ways to get the item sees a warehouse price under a delivery title and cannot be sure which price applies to which choice. A link set as a heading is not read as something to press.

Recommendation

Title the card after the selected tile (‘In-Warehouse’, ‘Same-Day Delivery’) and put the 2-Day Delivery link in body text with an underline. Write the unit price as ‘$2.05 per 100 sq ft’. Keep the price inside each tile; it makes the $3 difference plain.

Measured

  • In-Warehouse chosen, card still titled 2-Day Delivery
  • Links styled as headings: 1, e.g. "2-Day Delivery"
  • 26 Oct: In-Warehouse pressed, card still titled ‘2-Day Delivery’

Finding 6Medium

At 374px the delivery-fee line makes the product page scroll sideways

Where
Product: Kirkland Signature Paper Towels
Seen at
Phone
Effort to fix
Small
WCAG 2.2
1.4.10 Reflow (level AA)
costco.com at phone size, the frame on what this finding is about: At 374px the delivery-fee line makes the product page scroll sideways.
Phone, 390 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

At 374 px wide the product page is 483 px wide, 109 px too wide, so it scrolls sideways; at 320 px, the width WCAG 1.4.10 is judged at, it is 484 px. The element past the edge is the header’s delivery line, which ran off as ‘Add $75.00 More to Avo’ in the capture. At 390 px the line wraps and fits. At 375 px the home page is 380 px wide.

Implication

On narrow phones the whole page can slide sideways under a thumb, and the fee message is cut mid-word. People lose their place and may miss how much more they need to spend.

Recommendation

Let the delivery line wrap at every width, as it already does at 390 px, or shorten it below 400 px (‘$75 more for free delivery’). Add a test at 320, 360 and 375 px that fails when the page is wider than the screen.

Measured

  • Page 483 px wide in a 374 px viewport
  • Page 380 px wide in a 375 px viewport
  • 26 Oct at 320 px: page 484 px wide, fee line cut at x 458

Finding 7Low

Pressing Find with an empty field reports a failed search and clears the list

Where
Warehouse locator
Seen at
Desktop
Effort to fix
Small
costco.com at desktop size, the frame on what this finding is about: Pressing Find with an empty field reports a failed search and clears the list.
Desktop, 1440 px wide, taken 25 October 2026. The frame marks what the finding is about.

Observation

On Find a Warehouse, pressing Find with the ‘City, State, or Zip’ field empty shows ‘We couldn’t find what you’re looking for. Try entering a different city, state, or ZIP code.’ The list and the map then drop to the Seattle warehouse alone; the other nine pins, Tukwila among them, go.

Implication

Nothing was searched, yet the message says the search failed and asks for a different place. The nearby warehouses the page showed a moment before disappear, so the visitor loses what they had.

Recommendation

When the field is empty, keep the current results and say ‘Enter a city, state or ZIP code’ beside the field, linked to it with aria-describedby. Keep the ‘couldn’t find’ message for searches that ran and matched nothing.

Measured

  • Empty Find: 'We couldn't find what you're looking for'

What was examined

  1. Home
  2. Search: paper towels
  3. Category: Paper & Plastic Products
  4. Product: Kirkland Signature Paper Towels
  5. Warehouse locator
  6. Sign in or register
  7. Warehouse savings

No real users were observed. Only public pages were examined, signed out, on the date shown, at the sizes listed. A browser took the measurements; the numbers are in each finding.

Automated checks

Automated checks across the pages examined
Accessibility rules failed (axe)2 rules: 2 serious
Tap targets under 24 pixels138
Links that open a new tab83
Console errors on load4
The 2 rules, by impact, with the elements and pages each failed on
  1. target-size serious

    WCAG 2.5.8 Target Size (Minimum) (AA) · 343 elements on 6 pages: Home; Search: paper towels; Category: Paper & Plastic Products; Product: Kirkland Signature Paper Towels; Warehouse locator; Warehouse savings

  2. color-contrast serious

    WCAG 1.4.3 Contrast (Minimum) (AA) · 1 element on 1 page: Home

    color-contrast: not counted against the level, because The failing node was the caption of a rotating Costco Travel promotion (4.39:1, 25 October); on 26 October no text on the page fails. Promotions rotate; re-check at the next capture.

Counted by the engine on every page examined, at all three sizes. The search and category pages were counted as the headless session was served them, a no-match page, not as a browser shows them.