I have used metaobjects to dynamically create pages, but the pages do not display in the search results of the Search and Discovery app. Is there a solution for this? I have multiple pages created with metaobjects as it seemed to be a cleaner solution than creating a mass amount of separate pages. Better content management at the cost of having the pages not appear in the search results is a difficult pill to swallow. Any suggestions?
Topic summary
-
Metaobject-generated pages are not showing in Shopify’s Search & Discovery results. The goal is to keep dynamic content management without losing search visibility.
-
Current understanding: Search & Discovery appears to support simple metafields (e.g., for filters like color/size) but not metaobjects. A suggested workaround is to use template files to create standard Pages and render content there.
-
Concern: Manually creating a Page per item seems tedious and may hurt UX. The existing setup uses metaobject handles for breadcrumbs and hierarchical URLs (e.g., /pages/our-fungi/chestnut-mushroom); switching away would break that structure.
-
Context: Shopify has a flat structure without true multi-level categories. Nesting can be simulated via collections and navigation links. Shopify also lacks native breadcrumbs; they can be added via Liquid templates, deriving breadcrumbs from the URL and objects (page_title, collection.title, product.title).
-
Status: No confirmed method to make metaobjects indexable by Search & Discovery in this thread. Discussion points to workarounds (standard Pages, collections, Liquid-based breadcrumbs). Unresolved/ongoing.
You can use template files to create pages, but I don’t think you can use metaobjects with the Search and Discovery app. It looks like you can only use simple metafields there. If I’m wrong, please let me know guys. You can use metafields with the Search and Discovery app as filters, for example, colors, prices, sizes, etc.
I’m confused as to how I should resolve this issue. Yes, I could just create a page for each item and use a template to dynamically render a different metaobject onto each page, but this seems extremely tedious and not friendly for UX. Currently I have the metaobject pages creating breadcrumbs based on there handle. The URL structure for each item is: “https://floridafungi.farm/pages/our-fungi/chestnut-mushroom”, if I don’t use the metaobject pages I lose the hierarchy of the handle. The user navigates from “Our Fungi” >> “[specific fungi]”, so it seems natural for the URL to reflect this. Also the breadcrumbs I have created will break without this handle. Am I overseeing something simple? I tend to over engineer solutions and I feel this may perhaps be one of those moment.
I appreciate you taking time to help me understand.
Shopify has a flat structure, so it has some limitations regarding the creation of nested categories. Unlike some other e-commerce platforms, Shopify does not natively support multi-level categories. This means categories cannot be nested in the traditional sense. Instead, Shopify uses collections, which can be presented in a way that simulates nesting, but they are not technically nested.
This can be worked around by creating parent and sub-collections and manually linking them on the site. For example, you can have a “Clothing” collection with links to sub-collections like “T-Shirts,” “Pants,” etc., in the navigation menu. Anyway, it’s not a real subcategory.
Shopify also doesn’t natively support breadcrumbs, but you can add them by editing the Liquid template files.
To add breadcrumbs you can:
- Open the template file, such as theme.liquid.
- Add code in the appropriate place (usually in the header or footer) to generate breadcrumbs based on the current URL path.
- Use Liquid variables like page_title, collection.title, product.title to dynamically create breadcrumbs.
The final code will depend on your store’s structure and theme, but here is a sample Liquid code: