In previous blog posts, we discussed how online grocery shopping has now become a habit for many people, making it crucial for retailers to optimise this channel and ensure a seamless customer experience through the digital shelf, while avoiding some common pitfalls.
In this blog, we take a deep dive into the importance of optimising the site navigation, focusing on the category hierarchy (also called ‘taxonomy’) and the steps a retailer should take to ensure the best possible product discoverability and a smooth online journey for customers. To bring this to life, we will look at an example of a grocery retailer in Europe who benefited from improving its online presence.
Knowing how customers currently browse your website and how the back-end algorithm works in detail is crucial to understand what to fix first, and where to invest your resources to have the quickest and most significant impact on customer experience.
Clickstream data can (and should) be used to explore how your customers (both existing and new) navigate your site and their browsing behaviours, for example the sections they spend more time on or where they add products to their basket from (e.g., from the ‘Favourites’ section? From ‘Offers’? How much do they use the search function to find specific products?).
This data helps understand what should be prioritised, which areas are underperforming, and ultimately how to create the optimal online strategy based on traffic, conversion, and basket removal rates. It’s the equivalent of tracking how shoppers move around in a physical store to find the products they want to buy. This step can be enhanced further with research using techniques such as ‘accompanied surfs’ or targeted surveys that build on knowledge of customer engagement with your website.
We recently helped a specific grocery retailer optimise their online taxonomy (i.e. how the products are classified and grouped); in this case, clickstream data was analysed to find that ‘Search’ (i.e. the search bar at the top of their website) accounts for almost half of all basket adds, while almost 10% (up to 20% for new shoppers) go through the taxonomy (i.e. the digital departments / aisles / shelves) and only 2-3% through other website sections like the homepage.
Examining the algorithm behind the retailer’s website showed that search results are influenced by product titles first, then taxonomy and finally the product description.
What did all of this tell us? That in this case optimising ‘Search’ was the priority to ensure the best customer experience and the highest rate of basket adds, and that we had to improve the product titles and the taxonomy to do so, which would also allow us to convert new customers (as we found that they use the taxonomy more than existing customers).
To create the optimal taxonomy structure, we started by identifying online-specific customer need states, which refers to where customers expect products to sit and how these should be grouped based on how they shop (which is equally important in-store). We did this by using product substitutability data from online transactions via our dunnhumby Assortment ranging tool; this analysis allows us to create a taxonomy structure that reflects customers’ behaviours, making it easier for them to browse a certain category and find the products they want.
Substitutes are discovered by tracking shoppers over time. When we find that shoppers do not put some products of the same area in their basket on a specific trip, we conclude that they are likely substitutes for each other. We then create 'decision trees' where products are grouped based on how substitutable or different they are, which helps identify customers' need states.
This process also highlights potential dual placement opportunities for those items that customers would expect to find under more than one shelf/aisle (which is typically more difficult to do in-store due to physical limitations) and encourages you to reflect on emerging need states or category trends that you might want to dedicate a section of your site to (for example ‘organic’ or ‘eco-friendly’), to anticipate customers’ needs and future-proof the category.
For this specific retailer, this analysis has led to the creation of a number of new aisles and shelves. Taking the Beer, Wine and Spirits (BWS) category as an example, we created two new aisles there, one for gifting and one for on-the-go cans, with the aim of supporting specific customer missions/trends that we identified as important.
Once the new hierarchy structure is defined, it is time to choose the appropriate names for each section (e.g. department, aisle, shelf, filters etc.), to ensure it resonates with customers and is aligned with their language. To do this, each need state identified in the previous step is linked to clickstream data to discover the key search terms used by shoppers. An example of this in BWS could be replacing the word ‘RTD’ (an acronym known to people working in the industry) with ‘Ready to Drink’ or ‘Canned Drinks’, which is easier to understand and more straightforward for most. It might not seem a big difference but putting yourself in customers’ shoes is crucial to avoid building a business-oriented flow that would likely make the online experience confusing and cause frustration.
The outputs of steps 2 and 3 also lead to the identification of best-in-class product titles and thesaurus fix recommendations (to ensure relevant research results are still shown if customers make common typos using the search tab) which, in our example, contributed to improve the Search results (based on how the algorithm behind the retailer’s website worked).
Category expertise, common sense, and wider market knowledge also play a role in refining the output of the previously described steps and building the optimal hierarchy, while the data is at the core of it.
Best practice is to conduct an evaluation of the changes made a few months post-implementation, to check how customers have responded and if there is any adjustment to make. Key metrics to track can include sales uplift, shelf conversion, search term conversion, friction etc.
Going back to the BWS example, when a 12-week post-implementation assessment has been conducted, we found great results in terms of impact:
As consumer needs and market trends constantly change, the target inevitably keeps moving. This is why it is important to review the performance and ‘challenge the status quo’ periodically to identify further areas for improvement, while being conscious that the results might be influenced by other factors (e.g. Covid restrictions, product availability, seasonality etc.) that might not be easy to strip out from the review.
Conducting this type of work also presents the perfect opportunity to carry out a more in-depth exploration of customer needs and expectations in terms of online shopping, by asking them directly via customer research , to also identify emerging trends and how the customer experience could be further improved. This type of research can shed further light on a range of areas such as naming conventions, purchase journey consideration, website performance and usability of different devices, customer pain points, the need or desire for enhanced content. The applications are endless but ultimately the aim is to enhance the insight from the data science by bringing the needs and voice of the customer to you.
With online shopping becoming a habit for more and more people, it is crucial for retailers to act to ensure a smooth and pleasant digital journey; how products are displayed and grouped online plays a key part in this, as it does in-store. Thanks to advanced data science and tools, it is possible to identify the required changes and provide a better shopping experience while increasing sales, with the confidence that only customer data can give.
Helping brands get the most from retail media
Audience Targeting solutionsCookie | Description |
---|---|
cli_user_preference | The cookie is set by the GDPR Cookie Consent plugin and is used to store the yes/no selection the consent given for cookie usage. It does not store any personal data. |
cookielawinfo-checkbox-advertisement | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category . |
cookielawinfo-checkbox-necessary | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
CookieLawInfoConsent | The cookie is set by the GDPR Cookie Consent plugin and is used to store the summary of the consent given for cookie usage. It does not store any personal data. |
viewed_cookie_policy | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
wsaffinity | Set by the dunnhumby website, that allows all subsequent traffic and requests from an initial client session to be passed to the same server in the pool. Session affinity is also referred to as session persistence, server affinity, server persistence, or server sticky. |
Cookie | Description |
---|---|
wordpress_test_cookie | WordPress cookie to read if cookies can be placed, and lasts for the session. |
wp_lang | This cookie is used to remember the language chosen by the user while browsing. |
Cookie | Description |
---|---|
CONSENT | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
vuid | Vimeo installs this cookie to collect tracking information by setting a unique ID to embed videos to the website. |
_ga | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors. |
_gat_gtag_UA_* | This cookie is installed by Google Analytics to store the website's unique user ID. |
_ga_* | Set by Google Analytics to persist session state. |
_gid | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
_hjSessionUser_{site_id} | This cookie is set by the provider Hotjar to store a unique user ID for session tracking and analytics purposes. |
_hjSession_{site_id} | This cookie is set by the provider Hotjar to store a unique session ID, enabling session recording and behavior analysis. |
_hp2_id_* | This cookie is set by the provider Hotjar to store a unique visitor identifier for tracking user behavior and session information. |
_hp2_props.* | This cookie is set by the provider Hotjar to store user properties and session information for behavior analysis and insights. |
_hp2_ses_props.* | This cookie is set by the provider Hotjar to store session-specific properties and data for tracking user behavior during a session. |
_lfa | This cookie is set by the provider Leadfeeder to identify the IP address of devices visiting the website, in order to retarget multiple users routing from the same IP address. |
Cookie | Description |
---|---|
aam_uuid | Set by LinkedIn, for ID sync for Adobe Audience Manager. |
AEC | Set by Google, ‘AEC’ cookies ensure that requests within a browsing session are made by the user, and not by other sites. These cookies prevent malicious sites from acting on behalf of a user without that user’s knowledge. |
AMCVS_14215E3D5995C57C0A495C55%40AdobeOrg | Set by LinkedIn, indicates the start of a session for Adobe Experience Cloud. |
AMCV_14215E3D5995C57C0A495C55%40AdobeOrg | Set by LinkedIn, Unique Identifier for Adobe Experience Cloud. |
AnalyticsSyncHistory | Set by LinkedIn, used to store information about the time a sync with the lms_analytics cookie took place for users in the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
bcookie | LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognise browser ID. |
bscookie | LinkedIn sets this cookie to store performed actions on the website. |
DV | Set by Google, used for the purpose of targeted advertising, to collect information about how visitors use our site. |
ELOQUA | This cookie is set by Eloqua Marketing Automation Tool. It contains a unique identifier to recognise returning visitors and track their visit data across multiple visits and multiple OpenText Websites. This data is logged in pseudonymised form, unless a visitor provides us with their personal data through creating a profile, such as when signing up for events or for downloading information that is not available to the public. |
gpv_pn | Set by LinkedIn, used to retain and fetch previous page visited in Adobe Analytics. |
lang | Session-based cookie, set by LinkedIn, used to set default locale/language. |
lidc | LinkedIn sets the lidc cookie to facilitate data center selection. |
lidc | Set by LinkedIn, used for routing from Share buttons and ad tags. |
li_gc | Set by LinkedIn to store consent of guests regarding the use of cookies for non-essential purposes. |
li_sugr | Set by LinkedIn, used to make a probabilistic match of a user's identity outside the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
lms_analytics | Set by LinkedIn to identify LinkedIn Members in the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland) for analytics. |
NID | Set by Google, registers a unique ID that identifies a returning user’s device. The ID is used for targeted ads. |
OGP / OGPC | Set by Google, cookie enables the functionality of Google Maps. |
OTZ | Set by Google, used to support Google’s advertising services. This cookie is used by Google Analytics to provide an analysis of website visitors in aggregate. |
s_cc | Set by LinkedIn, used to determine if cookies are enabled for Adobe Analytics. |
s_ips | Set by LinkedIn, tracks percent of page viewed. |
s_plt | Set by LinkedIn, this cookie tracks the time that the previous page took to load. |
s_pltp | Set by LinkedIn, this cookie provides page name value (URL) for use by Adobe Analytics. |
s_ppv | Set by LinkedIn, used by Adobe Analytics to retain and fetch what percentage of a page was viewed. |
s_sq | Set by LinkedIn, used to store information about the previous link that was clicked on by the user by Adobe Analytics. |
s_tp | Set by LinkedIn, this cookie measures a visitor’s scroll activity to see how much of a page they view before moving on to another page. |
s_tslv | Set by LinkedIn, used to retain and fetch time since last visit in Adobe Analytics. |
test_cookie | Set by doubleclick.net (part of Google), the purpose of the cookie is to determine if the users' browser supports cookies. |
U | Set by LinkedIn, Browser Identifier for users outside the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
UserMatchHistory | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
UserMatchHistory | This cookie is used by LinkedIn Ads to help dunnhumby measure advertising performance. More information can be found in their cookie policy. |
VISITOR_INFO1_LIVE | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
YSC | YSC cookie is set by YouTube and is used to track the views of embedded videos on YouTube pages. |
yt-remote-connected-devices | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt.innertube::nextId | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
yt.innertube::requests | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
_gcl_au | Set by Google Analytics, to take information in advert clicks and store it in a 1st party cookie so that conversions can be attributed outside of the landing page. |