How Northwind cut page load from 4.1s to 900ms
Northwind sells outdoor equipment across three countries. Their catalogue had grown to 40,000 products and the search page had become the slowest part of the site.
The problem
Search took between three and six seconds depending on the term, and the abandonment rate on that page was almost double the site average. The team had already upgraded their previous host twice with no improvement, which is usually the sign that resources were never the constraint.
What we found
Two unindexed joins against the product meta table were responsible for most of the time, and the page was excluded from caching because of a query string the filter UI appended on every load. Neither was visible without slow query logging.
The change
We added the indexes, normalised the filter parameters so the cache could key on them, and moved the catalogue to a CX41 instance in the London region beside their database.
- Median search response: 4.1s to 0.9s
- Cache hit rate on search: 4% to 81%
- Search abandonment: down 34%
- Monthly hosting cost: down 12%
In their words
"We assumed we had outgrown our hosting. What we had actually done was outgrow two missing indexes. The migration was handled overnight and we did not lose a single order."