Shopify’s Search & Discovery app is a great free solution for storefront search and filtering. For smaller stores with only a handful of filters, it works well.
However, as stores grow, the app starts to show some fundamental limitations that make it difficult to build a scalable filtering experience.
Some examples:
-
You can’t hide unwanted tags from the default tag filter (while this can be worked around in Liquid, it’s not a real solution).
-
There are hard limits on the number of filters and filter values.
-
There are several other limitations that merchants have been requesting improvements for over the years.
Thankfully, there are some amazing third-party search and filtering apps that solve many of these problems.
But there’s a catch.
Most of these apps rely heavily on client-side rendering, and that creates a few important issues.
1. Performance
Instead of rendering everything on Shopify’s servers, the browser has to:
-
Load the initial HTML.
-
Download additional CSS and JavaScript.
-
Execute JavaScript.
-
Fetch collection/filter data from third-party servers.
This introduces additional latency and another point of failure. If the app’s servers are slow, rate-limited, or temporarily unavailable, the collection experience suffers.
2. SEO (and increasingly GEO)
This is arguably the bigger issue.
Third party Shopify search/filter apps often replace or generate the collection grid on the client side. While Google can render JavaScript, server-rendered HTML is still the preferred approach for indexing. Other crawlers, AI crawlers, and emerging GEO (Generative Engine Optimization) systems may rely even more heavily on the initial HTML response.
As a result, client-side rendering can negatively impact the discoverability of collection and search pages.
There’s a reason much of the web has shifted back toward server-side rendering over the last several years.
Proposal 1: Improve Search & Discovery
The obvious solution is to continue expanding Shopify’s own Search & Discovery app.
There is already a large amount of merchant feedback requesting improvements to filtering capabilities, filter limits, tag handling, and other missing features. Addressing these would eliminate the need for many merchants to rely on third-party solutions.
Proposal 2: Enable Server-Side Rendering for Search Apps
If Shopify wants to keep encouraging an app ecosystem around search and filtering, another option would be to allow apps to server-render collection sections.
For example, the request flow could look something like this:
User Request
↓
Shopify
↓
App Proxy / Search Service
↓
Shopify
↓
User
The third-party service could generate the HTML for the collection section, which Shopify would then render as part of the page. This would provide the benefits of server-side rendering while still allowing apps to provide advanced search and filtering capabilities.
Of course, this would require careful consideration around:
-
Performance
-
Caching
-
Reliability
-
Security
But it would be a significant improvement over today’s client-side rendering approach.
This would also provide many of the benefits that are currently only achievable with a headless storefront—without requiring merchants to go fully headless.
Proposal 3
Maybe there’s an even better solution that the Shopify team has in mind. ![]()
I’d simply love to see a way for advanced search and filtering apps to deliver a truly server-rendered experience, or alternatively, for Shopify’s native Search & Discovery app to evolve enough that merchants no longer need these workarounds.