Shopify Product Recommendations Not Working? Diagnose Empty, Irrelevant, or Missing Recommendations
Empty, missing, or irrelevant product recommendations usually have a specific owner. Find the broken layer before you replace the app or rewrite the recommendation strategy.
The short diagnosis: check theme support, product eligibility, recommendation intent, catalog signals, API or section output, card rendering, and tracking. Shopify documents the behavior, but your storefront test identifies which layer is failing.
7
layers to check before changing recommendation logic
Diagnostic framework
30 min
for a first-pass live storefront audit
Audit framework
The diagnostic order
Do not tune relevance while the module is not eligible to render
The fastest path is to establish whether the problem is visibility, eligibility, candidate quality, presentation, or measurement.
Use the evidence to decide
Visible section
The theme includes the product recommendation section and places it on the intended template.
Next evidence
Eligible products
The anchor and candidates satisfy active, published, price, inventory, and cart rules.
Next evidence
Correct intent
Related and complementary requests answer different shopper jobs.
Next evidence
Useful output
The response reaches the card with the correct product, price, state, link, and tracking.
Next evidence
Reader takeaway: The first layer that fails is the first layer to fix. Do not use a candidate-quality explanation for a theme-rendering problem.
The direct answer
Shopify recommendations are usually broken by a path, not a single setting
A recommendation has to travel from a product context to a candidate source, through eligibility rules, into a theme or API response, through a product card, and finally into an analytics event. If any link fails, the shopper sees an empty row, the wrong products, no products, or a product that cannot be purchased.
That is why changing the heading or selecting more products rarely fixes the real problem. First ask whether the module is present. Then ask whether Shopify is allowed to return the candidate. Then ask whether the candidate answers the page’s question. Only after that should you tune ordering or presentation.
Pro Tip: test one known anchor and one known candidate
A small controlled example is easier to reason about than a random catalog page. Pick a product with a clear relationship, verify its status and inventory, and use that product for every layer of the diagnostic.
Layer 1
Check theme support and placement first
Shopify product recommendations do not appear on every product template automatically. Shopify documents that your theme needs the relevant product recommendation or complementary product section, and that the section needs to be added to the product page. If the section is absent, candidate quality is irrelevant because there is no visible surface.
Open the theme editor and inspect the exact product template used by the anchor. Stores often have more than one template. A recommendation section may exist on the default template but not on a custom template for bundles, wholesale products, landing pages, or seasonal products.
Expected path
Product template contains the section, the section is enabled, and the module appears after the primary product information.
Section exists → enabled → visible
Common failure
The section is only on one template, hidden by a condition, or placed inside a block that is not rendered for the current product.
Correct product → different template → empty page
If the module appears on one product and not another, compare templates before comparing products. If it appears nowhere, inspect theme support and section configuration before touching Search & Discovery.
For a custom storefront, confirm that the recommendation query runs after the anchor product is known, that the request uses a published product identifier, and that the response is inserted into the page.
Check Shopify’s recommendation requirementsLayer 2
Check product eligibility before judging relevance
Shopify applies product eligibility rules before a recommendation reaches the shopper. The candidate must be active, published to the Online Store channel, and priced above zero. It cannot be a gift card or an unlisted product. The inventory rule differs by intent: related products can have a documented exception when continue selling is active, while complementary products require inventory above zero.
The candidate also cannot already be in the visitor’s cart. This is easy to mistake for an algorithm problem. A shopper adds an accessory, revisits the product page, and the accessory disappears from the complementary row. That may be the correct behavior, not a missing recommendation.
Eligibility check
An eligible product passes every gate before it reaches the card
Use this sequence for one candidate. If the candidate fails a gate, record the reason instead of editing the relationship.
Follow the working path
Store status
Active product with the intended product template and no unlisted state.
Channel
Published to Online Store and available on the storefront.
Commercial data
Price is above zero with a usable title, image, and option state.
Inventory
Availability satisfies the recommendation intent and selling rules.
Session state
Candidate is not already in the cart and is not a duplicate.
Reader takeaway: A candidate that fails eligibility should be repaired or excluded. It should not be used as evidence that the relationship is weak.
Check the candidate in the admin and on the storefront. A product can be active in the admin and still be unpublished to the Online Store channel. A product can be published and still fail the card because its chosen variant is unavailable. Record the exact state you see.
Check the anchor too. The recommendation request can fail because the anchor product is not found, is not published, or is identified incorrectly in a custom integration. A missing anchor is not the same as an empty candidate set.
Layer 3
Identify whether the source is manual, automatic, or custom
A Shopify store can show recommendations from manual selections, automatic related-product logic, a theme or API implementation, or another app. Those sources can look identical to a shopper but behave differently when data changes.
Open Search & Discovery and inspect the anchor product. If you selected manual recommendations, verify that the list is still intentional. If you enabled automatic recommendations, understand that the output can change as product data, orders, and customer activity change. Shopify documents purchase history, product descriptions, and related collections as automatic recommendation inputs, with different availability depending on the store.
| Source | Useful when | Inspect first |
|---|---|---|
| Manual | Compatibility, hero products, category exceptions | Stale links, sold-out candidates, ownership |
| Automatic | Broad coverage and changing relationships | Cold start, thin data, wrong product types |
| Custom | Headless surfaces and custom rules | Parameters, response, cache, tracking |
The right source can vary by category. Use automatic relationships for a broad catalog with enough activity. Use manual relationships for parts, compatibility, bundles, and strategic launches. Use a hybrid approach when the store needs both coverage and exceptions.
Layer 4
Audit catalog data and cold-start conditions
Automatic recommendations need evidence. New products, low-volume products, imported orders, and sparse descriptions can produce thin or surprising relationships. This does not necessarily mean the system is broken. It means the store needs an intentional fallback while the product earns enough context.
Inspect the anchor and candidate titles, descriptions, product types, collections, tags, attributes, and compatibility fields. Ask whether a human can explain the relationship from the data. If the answer is no, automatic logic has less to work with and manual selection will be harder to govern too.
Cold-start fallback
When behavior is thin, use catalog context before showing an empty row
A new product still needs a useful discovery path. The fallback should be clear and honest about the relationship.
Follow the working path
New product
No meaningful purchase history or click pattern exists yet.
Category context
Use product type, collection, and attributes to find plausible neighbors.
Editorial review
Select the relationships the team can defend for this launch.
Automatic learning
Let behavior refine the set as evidence accumulates.
Reader takeaway: A fallback is not a failure. An unexplained empty state is the failure. Label the relationship and review it as the catalog changes.
Be careful with imported history. If order history came from another store or platform, it may not support the same recommendation behavior as new orders in the current store. For a new product, use the fields and relationships you know rather than assuming the system can infer a complete network from day one.
Then check the candidate card. A recommendation can be logically correct but look irrelevant because the title is generic, the image is misleading, or the variant detail is hidden. Data quality and presentation quality reinforce each other.
Layer 5
Trace the API response and card rendering separately
If the candidate set is correct but the storefront is wrong, inspect the boundary between data and presentation. Shopify’s Ajax Product Recommendations API can return product data or a rendered section. A custom theme or headless implementation can then alter, filter, cache, or replace that response before the shopper sees it.
Use the browser’s network panel or storefront logs. Confirm the request contains the correct product ID, limit, intent, locale, and section ID where relevant. Confirm the response contains the expected product. Then inspect the DOM and verify that the card reads the same product, price, availability, URL, and image.
Request checklist
recommendations/products.json
product_id = anchor product
intent = related or complementary
limit = the number your card can display
locale = the shopper’s storefront locale
compare response → rendered product → clicked URL → analytics eventA 404 can mean the product does not exist or is not published to the Online Store channel. A 422 can mean a required parameter is missing or the intent is invalid. Shopify documents both response patterns in the Ajax API reference. Use the response code to choose the next owner instead of treating every empty module as a ranking issue.
Read the Product Recommendations API referenceLayer 6
Verify measurement before you call the fix a success
A recommendation can look fixed in the browser and still be invisible in analytics. Shopify documents recommendation click, add-to-cart, and purchase reporting, but the implementation needs to preserve the tracking path. A custom card that strips recommendation parameters can make the dashboard undercount or misattribute activity.
Test one anchor and one candidate. Open the module, click the candidate, add it to the cart, and complete a test purchase only if your environment allows it. At minimum, inspect the URL, event payload, product ID, recommendation intent, placement, and session ID. Record what you can prove.
Seen
Module renders
Clicked
Tracked URL survives
Added
Recommended item in cart
Purchased
Outcome reported
If the module is visible but the report is empty, fix measurement before changing candidates. If the report has clicks but the storefront test cannot reproduce them, check event scope, consent behavior, URL parameters, and whether another recommendation surface is mixed into the same report.
Layer 7
Run the 30-minute recovery audit
Use this sequence when a merchant report says “recommendations are not working.” It gives you evidence without requiring a complete implementation review.
Choose one anchor product
Pick a product with a clear relationship and one candidate you expect to see.
Inspect the product template
Confirm the recommendation or complementary section exists, is enabled, and appears on this template.
Check candidate eligibility
Verify active status, Online Store publication, price, inventory, product page, and cart state.
Identify the source
Record whether the row is manual, automatic, native API, theme code, or another app.
Compare response to card
Confirm the response contains the same product that the storefront card displays.
Test the click path
Open the candidate, add it if appropriate, and verify the tracking URL or event.
Assign the owner
Classify the failure as theme, eligibility, source, catalog, rendering, or measurement.
The output
Save one screenshot, one expected candidate, one observed result, one owner, and one next test. That is enough to stop random changes across several systems.
Frequently asked questions
Start with theme support and section placement. Then check the anchor product, candidate product status, publishing, price, inventory, cart state, and the recommendation intent. Shopify documents eligibility requirements for related and complementary products, and a theme must include and render the relevant recommendation section.
The two intents have different requirements and configuration paths. Complementary products are manually selected in Search & Discovery and require inventory above zero. Related products can be automatically generated or manually configured, subject to their own eligibility rules.
Check whether the module is asking the right question. Related products should be credible comparison options. Complementary products should help complete the selected product. Then audit titles, descriptions, product types, collections, attributes, price, and availability before changing the recommendation system.
Yes. A theme can omit the section, place it in the wrong template, render an empty response incorrectly, use a mismatched section ID, or display stale card fields. Compare the API or section response with the visible card to separate candidate problems from rendering problems.
Use the recommendation URLs and reports documented by Shopify. Check that clicks preserve the tracking parameters, that cart and purchase events follow the recommended product, and that your report includes the surface you are testing. Validate one known product manually before trusting a dashboard average.
Part of a bigger picture: this is the diagnostic spoke for the complete ecommerce product recommendations guide. Read the pillar for placement, relationship design, measurement, and software evaluation.
Continue the recommendation audit
When Shopify recommendations do not work, resist the urge to add more products or change every setting. Prove whether the module exists, whether products are eligible, whether the relationship is correct, whether the card is rendered accurately, and whether the outcome is tracked.
Which layer will you test first: theme, eligibility, candidate source, rendering, or measurement?
Connect recommendation problems to product discovery
ParticleSearch helps you inspect the search and discovery path around the product recommendation, so you can fix the right layer first.