Search page pulling non-search product

Topic summary

A user reports that Dawn theme’s search returns two correct products plus one unrelated item that shares no tags but appears in the same collection.

Root cause identified:
Shopify’s default search doesn’t only match product titles—it also scans:

  • Product descriptions
  • Collections containing the keyword
  • Vendor, product type, and tags
  • Variant data (SKU, option values)
  • Relevance ranking algorithms

Proposed solutions:

  1. Restrict search scope by modifying the predictive search URL to only fetch products:

    /search/suggest.json?q={{ search.terms }}&resources[type]=product
    
  2. Add strict title matching in theme code (search.js or predictive-search.js) to exclude description/collection matches

  3. Use Search & Discovery app to pin/hide specific products and control result types

  4. Filter results page with hidden input or Liquid code to show only products whose titles contain the search term

Multiple experts offered code snippets and implementation assistance. The issue remains open pending the user’s chosen approach.

Summarized with AI on October 25. AI used: claude-sonnet-4-5-20250929.

When I enter a product in my Dawn Search, I noticed that it is pulling 2 correct products and one unrelated to the search.

The boxed product does not share any identical tags, but it is listed on a collection page with other products.

1 Like

Your search result will return all products that have your search key in the product’s title or description.

Hi @Levent21 ,

The products that appear in the search results may be based on several factors:

  • Product Title: Shopify searches for keywords in the product title. If there’s a match, the product will show up.

  • Product Description: The search also applies to the product description. If the keyword is found in the description, the product will appear in the search results.

  • Collections: Products listed in collections that contain the search keyword can also appear in the search results.

Let me know if this helps or if you need more assistance!

Best,
Felix

Hi @Levent21,

Shopify now supports displaying results by relevance ranking. So it doesn’t need to be the same as the title to display the result, the result can be displayed based on:

  • Product title
  • Product description
  • Vendor / Product type / Tags
  • Variants: SKU, option values

You can also create boot searches in the ‘Search & Discovery’ app.

Hope it is clear to you

Hey @Levent21 ,

This happens in Dawn (and most Shopify themes) because the default predictive search doesn’t just match product titles or tags - it also pulls in results based on collections, product descriptions, and even partial keyword relevance. That’s why you’re seeing an unrelated product appear even though it doesn’t share tags.

  1. Limit Predictive Search Scope
    In your search.json or predictive search request (usually inside global.js or search.js), restrict the search to only products, not collections or pages:
/search/suggest.json?q={{ search.terms }}&resources[type]=product

This ensures only products are fetched.

  1. Add Strict Matching
    Modify the query so it only matches title or variants.sku instead of pulling from descriptions or collection context. That prevents unrelated products from being included.
  2. Theme Code Update - Go to Online Store > Edit Code. > Find the predictive search logic (commonly in search.js, predictive-search.js, or global.js). > Update the fetch URL to filter only type=product.
  3. Test
    Search again with the same keyword - now it should only display the correct products, ignoring the one that was showing up because of collection association.

If you want me to implement this, please feel free to reach out - here is my portfolio: https://rajatweb.dev/ where you’ll find my contact info and past work.
Thanks,
Rajat – Shopify Expert

1 Like

Hi,

Hope this will help

  • Shopify search matches more than titles; it also checks descriptions, tags, vendor/type, and variant fields, so “unrelated” items can appear.
  • Step A: Find and remove hidden word causing match.
  • Step B: Use Search & Discovery to (1) restrict result types and (2) pin/hide products for specific queries.
  • Step C (optional): Add a small theme filter so results page only shows products whose titles contain search words.

Code example (Limit the search page to products:)

<input type="hidden" name="type" value="product">

Coed example (Filter results by title on the results page:)

{% assign term = search.terms | downcase %}
{% for item in search.results %}
  {% if item.object_type == 'product' and item.title | downcase contains term %}
    {% render 'card-product', card_product: item %}
  {% endif %}
{% endfor %}

1 Like