Machine Learning Personalisation for Small Online Stores
Last updated:
The mistake small stores make with personalisation
A store doing 400 orders a month buys a personalisation app that promises recommendations like the big marketplaces. Six months later the you-may-also-like widget shows the same five bestsellers to everyone, and the dashboard still claims it drove a large share of revenue.
Nothing was broken. The store simply did not have enough behaviour data for the kind of model the app assumed, so it fell back to popularity, and the attribution counted every purchase by anyone who ever saw the widget. Personalisation for small ecommerce stores works, but it needs techniques sized to the data you actually have.
How much data do different approaches need?
| Technique | Rough data needed | Good for |
|---|---|---|
| Rules (category, price band, stock) | None | Sensible defaults from day one |
| Recently viewed and continue shopping | Session data only | Returning visitors mid-decision |
| Content-based similarity | Good product attributes and descriptions | Long-tail products with few sales |
| Frequently bought together | A few thousand orders with multi-item baskets | Accessories, consumables, bundles |
| Collaborative filtering | Tens of thousands of interactions spread across the catalogue | Large catalogues with repeat customers |
| Deep sequence models | Millions of events | Marketplaces; rarely worth it for small shops |
These are rough orders of magnitude, not thresholds. A store selling 60 products with heavy repeat purchasing can do more with less than a store with 8,000 products and one-off buyers.
Start with content similarity, not behaviour
For most small stores the best first model does not look at customers at all. It looks at products. If you describe items well, with category, material, colour, use case, price band and a decent description, you can compute which products are genuinely similar using text embeddings plus a few structured attributes.
That fixes the cold start problem, because a product added this morning has neighbours immediately. It also produces recommendations a merchandiser can sanity-check by eye, which matters more than people admit. If similar items to a walnut desk include a pine bathroom cabinet, you know the attributes are wrong before any customer sees it.
Then add the behaviour you can trust
- Co-purchase counts, with a minimum threshold so a single odd basket does not create a permanent recommendation
- Recently viewed items and categories, which need no model and often outperform clever ones
- Replenishment timing for consumables: if the typical customer reorders coffee beans after 26 days, email on day 22
- Returned-together pairs to suppress, since recommending the item people send back is a poor idea
- Stock and margin filters applied after the model, so nobody is shown something unavailable
Our longer piece on recommendation engines for ecommerce covers the larger-scale methods for when you outgrow this stage.
Where to personalise first
Placement matters more than algorithm. A modest model on the basket page and in post-purchase emails usually earns more than an excellent one on the home page, because intent is already high.
- Basket and checkout add-ons, especially accessories and consumables
- Post-purchase and replenishment emails
- Product page related items
- Category page ordering for returning visitors
- Home page, last, because most first-time visitors give you nothing to personalise on
What an illustrative first project looks like
Take a typical example: a homeware shop with 1,200 products, around 5,000 orders a year and an average basket of 1.8 items. That is not enough for collaborative filtering, but it is plenty for a sensible first system.
- Clean the product attributes: room, material, colour family, style, price band. This is usually a week of someone's time, and a language model can draft the missing values for a human to check.
- Build content similarity from those attributes plus description embeddings, and review fifty products' neighbours by eye.
- Compute co-purchase pairs from two years of orders, keeping only pairs seen at least five times.
- Blend the two: co-purchase where evidence exists, similarity where it does not, then filter by stock.
- Serve recommendations on product and basket pages, with a 15 percent holdout.
Nothing in that list needs a data science team or a GPU. It needs tidy data, a scheduled job and the discipline to measure against a control group. Most of the value comes from steps one and five, which is not what the app vendors tend to emphasise.
How to tell whether it is working
Ignore revenue influenced figures. They count any order from someone who saw a recommendation, which flatters every tool. Run a holdout instead: show a random 10 to 20 percent of visitors the plain non-personalised version and compare revenue per visitor and average order value between groups.
Small stores often need several weeks to get a clear answer, and sometimes the answer is that the effect is too small to measure. That is useful information. Our note on testing on small traffic sites explains how to avoid calling a result too early.
When personalisation is the wrong investment
If the catalogue data is poor, if the site is slow, or if the main problem is traffic rather than conversion, personalisation will not rescue the numbers. It also adds maintenance: feeds break, attributes drift, and someone has to notice when recommendations go stale.
Stores with very small catalogues, say under 50 products, often get more from well-written hand-picked pairings than from any model. When a client comes to SpiderHunts wanting personalisation, we usually start by checking product data quality and the holdout plan, because those two things decide whether the project can succeed at all. The machine learning part is often the smallest piece.
Frequently asked questions
How many orders do I need before personalisation makes sense?
Are Shopify personalisation apps good enough?
Does personalisation create GDPR issues?
Should I build a custom recommendation model?
Not sure your store has enough data for personalisation?
Share an export of orders and product data. We will tell you which techniques your volume supports and which would just produce expensive noise.