# Search Analytics

Search analytics helps you understand how people use search so you can improve result quality and the overall search experience.

# Server-side vs Client-side

A common need when building search experiences is to get answers to questions like:

  • What are the most popular search terms?
  • Are there any search terms that do not return any results?
  • Are there particular search terms that can be added as synonyms to pull in more results?
  • What are the top converting search terms?
  • What search terms lead to higher pages visits per session?
  • What are the items that are most often returned in search results?
  • Is there a correlation between user demographics / cohorts and their search behavior?

Most of these questions require both search data and client-side behavioral data about how users engage with different parts of your site or app. You may already capture this behavioral context in a web/app analytics tool such as Amplitude (opens new window), Google Analytics (opens new window), Heap (opens new window), Mixpanel (opens new window), Plausible (opens new window), or Pendo (opens new window).

To combine these sources and get a complete picture of search performance, we highly recommend instrumenting your search experience on the client side. This lets you send search activity to your existing analytics platform alongside the rest of the behavioral data you already capture.

# Server-side analytics

As of v0.25.0, Typesense supports the ability to capture Search Analytics (the top searched terms) natively. Once the search terms are collected, you can then sort by the count of each search term to get the top search terms.

# Client-side analytics

# InstantSearch Analytics Widgets

If you are using the InstantSearch UI Library, it comes with out-of-the-box widgets to help you capture search data, and send it to your analytics tool of choice on the client-side:

See the Linux Commit Search reference implementation for an example of how to implement this in code.

# Instrument Custom Search UIs

You'd typically want to listen to changes to your search field (with a debounce of say 1s), then capture the search term and search results displayed, and make an API call to your analytics platform using their API library, indicating that a search event has occurred.

This documentation site is open source. Found an issue? Edit this page (opens new window) and send us a Pull Request.

For AI Agents: View an easy-to-parse, token-efficient Markdown version of this page. You can also replace .html with .md in any docs URL. For paths ending in /, append README.md to the path.

Last Updated: 8/4/2026, 5:03:18 PM