When the user searches in a VTEX store using Intelligent Search, the desired product may not be found, even if the search term is included in the item's information.
Example scenario: When searching the store's website for products containing the term "Pendleton," the search results return 6 products. However, when we access the VTEX Admin (Storefront > Intelligent Search > Explained Search) and enter the same term, 9 products are displayed.


This behavior can occur due to the following reasons:
-
Incorrect product registration in the Catalog.
-
The term used is not in one of the product's searchable fields. Learn more about Search behavior configuration and Search configuration.
-
Internal route redirecting the search result to a brand page.
Solutions
To enable the searched products to be displayed correctly in the site's search results, consider the following solutions:
- Verify product registration fields
- Change search filters in Rewriter
- Removing internal search route in Rewriter
Verifying product registration fields
A missing product in a search result may come from incomplete fields during the product registration. Follow the steps below to check the Brand, Show on site, and Show when out of stock fields:
- In the Admin VTEX, go to Catalog > All Products.
Stores using the Products and SKUS (Beta) page should check the product registration fields by going to Catalog > Products and SKUs in the VTEX Admin. Learn more about Produtos and SKUS (Beta).
-
Find the product you want and click Edit product.
-
In the Brand field, confirm if the information is correct. If necessary, add the brand corresponding to the product. You can only add brands that have already been created in the store.
-
Confirm if the Show on site option is checked.
-
Confirm if the Show when out of stock option is checked.
-
Click Save.
-
Go to the store's website, search for the desired term, and ensure that the products displayed in the search results are the same as the ones available on the Explained Search page under Intelligent Search (Storefront > Intelligent Search > Explained Search).
If the search term is included in the product's name or description, but the product belongs to a different brand than the term specified in the search, proceed with the other steps to solve the problem.
Changing search filters in Rewriter
Another reason a product may not be displayed in search results is the Rewriter app's default behavior when displaying products.
If a term is listed in Rewriter as a brand, Intelligent Search will understand that it should only be displayed when it is included in a brand name.
To remove the restriction on searching by brand and allow products to be found also by terms in the name or description (full text), follow the steps below:
-
In the VTEX Admin, go to Storefront > Intelligent Search > Explained Search enter the desired term, and see how many products are returned in the search.
-
Configure the Rewriter app. If this app is not installed in your store, go to the App Store and install it.
-
Access the GraphQL IDE in Store Settings > Storefront > GraphQL IDE.
-
Under Choose an app, click the Rewriter app option (vtex.rewriter@{app-version-number}).

-
In the query input field (below GraphiQL), enter the details of the saveInternal mutation function.
mutation saverInternal($route: InternalInput!) {internal {save(route: $route) {fromdeclarertypeidqueryendDatebindingresolveAsorigindisableSitemapEntry}}} -
In Query Variables, enter the route details. You must replace the Pendleton value with the desired term and the id field value with the product ID.
{"route": {"from": "/Pendleton","declarer": "vtex.store@2.x","type": "fullText","id": "2000307","query": {"map": "ft"},"origin": "user-canonical"}}
The value ft (full text) instead of b (brand) in the map parameter indicates that products with the term Pendleton in the name or description will also be displayed in the search.
-
Click the GraphiQL IDE arrow (next to GraphiQL) to update the search filter. The display of the following message in the GraphiQL IDE results field will confirm the new default search filter for the term.
{"data": {"internal": {"save": {"from": "/Pendleton","declarer": "vtex.store@2.x","type": "fullText","id": "2000307","query": {"map": "ft"},"endDate": null,"binding": "0be568e5-52f5-44f0-9308-3ea701a9f847","resolveAs": null,"origin": "user-canonical","disableSitemapEntry": null}}}} -
Go to the store's website, search for the desired term, and ensure that the products displayed in the search results are the same as the ones available on the Explained Search page under Intelligent Search (Storefront > Intelligent Search > Explained Search).
If the search term is associated with a brand that no longer exists on your site, you will need to remove the internal search route within the Rewriter app, as described in the solution below.
Removing internal search route in Rewriter
Internal search routes in the Rewriter app can prevent a product from being displayed in the search if it is associated with a brand that is no longer available in the store.
To display products using the search terms only in the name or description, you need to delete the search route.
To remove an internal search route for the term, follow the steps below:
-
In the VTEX Admin, go to GraphQL IDE in Store Settings > Storefront > GraphQL IDE.
-
Under Choose an app, click the Rewriter app option (vtex.rewriter@{app-version-number}).
-
In the query input field (below GraphiQL), enter the data for the internal get function, replacingo pendleton with the desired term.
{internal {get(path: "/Pendleton") {fromresolveAstype}}} -
Click the GraphiQL IDE arrow (next to GraphiQL) and check the results field to see if the internal route is described as a brand.
{"data": {"internal": {"get": {"from": "/Pendleton","resolveAs": "/Pendleton","type": "brand"}}}} -
In the query input field (below GraphiQL), enter the data for the mutation function, replacing pendleton with the desired term.
mutation {internal {delete(path: "/Pendleton"){type}}} -
Click the GraphiQL IDE arrow (next to GraphiQL) to remove the internal filter route by brand and confirm that the information below appears in the GraphiQL IDE results field.
{"data": {"internal": {"delete": {"type": "brand"}}}} -
Repeat steps 3 and 4 to confirm that the internal redirection route from term to brand has been deleted. This can be indicated by the "get": null result in the GraphiQL IDE results field.
{"data": {"internal": {"get": null}}} -
Go to the store's website, search for the desired term, and ensure that the products displayed in the search results are the same as the ones available on the Explained Search page under Intelligent Search (Storefront > Intelligent Search > Explained Search).