How we count
Every rule the app uses, where it comes from, what makes it fail and how to fix it. The app only reads product data. It does not predict sales or visibility.
- Methodology version 2026-10-16
- Last changed 16 October 2026
- Rule logic version 1.0.0
01
What is checked
The app reads every product in your store with read-only access to your products. Active and unlisted products are checked. Draft and archived products are not part of the check, because they cannot appear anywhere a shopper sees them. The app shows how many there are.
Each rule gives one of three results for each product:
- Pass: the data is there and meets the rule.
- Fail: the data is missing or does not meet the rule. The product is listed under that issue with an Open in admin link.
- Unknown: the app could not read the data, for example when the store did not allow reading a metafield or a product has more variants or media than one request reads. Unknown is never counted as a pass.
02
Where each rule comes from
Every rule carries its origin, so you can tell a published requirement from our own advice.
- Catalog requirement: a condition from the published Shopify Catalog requirements. A product that fails one of these may be left out of the catalog.
- Catalog risk: not a requirement, but a known risk: without a category the product may be classified as Uncategorized.
- Recommended field: a field Shopify recommends filling in for better product data.
- ARLing heuristic: our own check with our own threshold. It is not a platform requirement.
03
The rules
Catalog requirement
Product title
Rule code (same as in the CSV export): cat_nazov
- Fails when
- The product title is empty.
- Fix
- Add a title to the product in your admin.
- Weight
- 3
- Source
- Shopify Help Center: Shopify Catalog requirements
Product image
Rule code (same as in the CSV export): cat_obrazok
- Fails when
- The product has no image with an https address. Shopify requires at least one product image; the app counts only images with an https address.
- Fix
- Upload at least one product image in your admin.
- Weight
- 3
- Source
- Shopify Help Center: Shopify Catalog requirements
Price above zero
Rule code (same as in the CSV export): cat_cena
- Fails when
- A variant has a price of zero or less, or a price that is not a number, or the product has no variants.
- Fix
- Set a price greater than zero for every variant.
- Weight
- 3
- Source
- Shopify Help Center: Shopify Catalog requirements
Published to the online store
Rule code (same as in the CSV export): cat_publikovanie
- Fails when
- The product is not published to the online store sales channel. This check cannot see Hydrogen or headless storefronts.
- Fix
- Publish the product to your online store sales channel.
- Weight
- 3
- Source
- Shopify Help Center: Shopify Catalog requirements
Not unlisted
Rule code (same as in the CSV export): cat_status
- Fails when
- The product status is Unlisted. Unlisted products open only from a direct link and do not meet the catalog requirements.
- Fix
- Change the product status from Unlisted to Active.
- Weight
- 3
- Source
- Shopify Help Center: Shopify Catalog requirements
Not hidden from search engines
Rule code (same as in the CSV export): cat_seo_skryty
- Fails when
- The seo.hidden metafield is set to 1, which hides the product from search engines.
- Fix
- Remove the seo.hidden metafield or set it to 0 if the product should be found.
- Weight
- 3
- Source
- Shopify Help Center: Shopify Catalog requirements
Catalog risk
Category set
Rule code (same as in the CSV export): cat_kategoria
- Fails when
- Category not set: the product may be classified as Uncategorized, which the catalog excludes. Its own classification can still differ from the category you set.
- Fix
- Choose a standard product category in the product details.
- Weight
- 1
- Source
- Shopify Help Center: Shopify Catalog requirements
Recommended field
Product type
Rule code (same as in the CSV export): rec_typ
- Fails when
- The product type field is empty. It is a recommended field, separate from the category.
- Fix
- Fill in the product type.
- Weight
- 1
- Source
- Shopify Help Center: optimizing your products for AI platforms
Vendor or brand
Rule code (same as in the CSV export): rec_vyrobca
- Fails when
- The vendor field is empty.
- Fix
- Add the true manufacturer or brand. Never invent one.
- Weight
- 1
- Source
- Shopify Help Center: optimizing your products for AI platforms
Named variant options
Rule code (same as in the CSV export): rec_moznosti
- Fails when
- A product with several variants has no named options, an option named Title, an option without values, or a variant without an option value.
- Fix
- Name every option and give it values that tell the variants apart.
- Weight
- 2
- Source
- Shopify Help Center: optimizing your products for AI platforms
Description
Rule code (same as in the CSV export): rec_popis
- Fails when
- The product has no description text.
- Fix
- Describe material, size and use in the product description.
- Weight
- 2
- Source
- Shopify Help Center: optimizing your products for AI platforms
Valid barcode
Rule code (same as in the CSV export): rec_barcode
- Fails when
- A barcode has an invalid GTIN check digit. A missing barcode is not an error.
- Fix
- Correct the barcode from the manufacturer, or remove it. If the manufacturer assigned one, add it; never invent one.
- Weight
- 0 (shown as an issue, not counted in the score)
- Source
- Shopify developer docs: the variant object
ARLing heuristic
Title of 3 characters or more
Rule code (same as in the CSV export): heu_nazov_dlzka
- Fails when
- The title has fewer than 3 characters. Titles under 3 characters are flagged by our own threshold, not a platform requirement.
- Fix
- Give the product a descriptive title, not just a code.
- Threshold
- 3 characters, after spaces at the start and end are removed
- Weight
- 1
- Related guidance
- Shopify Help Center: optimizing your products for AI platforms
Description of 80 characters or more
Rule code (same as in the CSV export): heu_popis_dlzka
- Fails when
- The description has fewer than 80 characters of plain text. This is our own threshold, not a platform requirement.
- Fix
- Add material, size and use details to the description.
- Threshold
- 80 characters of plain text, after HTML tags are removed and entities decoded
- Weight
- 1
- Related guidance
- Shopify Help Center: products in agentic storefronts
Image alt text
Rule code (same as in the CSV export): heu_alt_text
- Fails when
- The first product image has no alt text. This is our own check, not a platform requirement.
- Fix
- Describe the product in the alt text of the first image.
- Weight
- 1
- Related guidance
- Shopify developer docs: the product object
In a collection
Rule code (same as in the CSV export): heu_kolekcia
- Fails when
- The product is not in any collection. This is our own check, not a platform requirement.
- Fix
- Add the product to at least one collection.
- Weight
- 1
- Related guidance
- Shopify Help Center: optimizing your products for AI platforms
04
The numbers on the overview
X of Y products pass all checks. Y is the number of active and unlisted products. A product passes all checks when none of its rules failed and every rule could be evaluated. A product with an unknown result is never counted as passing. It is listed under that rule, so you can see what could not be read.
Score shows how much of the checked data meets the rules, from 0 to 100. Every rule has a weight. Each product and each rule count once, across all products in scope:
score = 100 × weight of passed rules ÷ weight of rules that passed or failed
Coverage shows how much the app could actually check, from 0 to 100. A rule with an unknown result is left out of the score and lowers coverage instead:
coverage = 100 × weight of rules that passed or failed ÷ weight of all rules
When some checks could not be evaluated, the app shows the coverage next to them, because a high score from little readable data means little. Both numbers are rounded to whole numbers.
Fixed and new. On Pro, the history compares two full checks. Fixed: products that had a failed check in the previous full check and have none now. New: products that have a failed check now and had none before.
05
What the check cannot see
- Whether the catalog places the product in a prohibited category. It uses its own classification.
- Whether the product counts as sensitive content.
- The status and history of your store account.
- A noindex tag added in your theme code. The app has no access to your theme.
- Publication to Hydrogen or headless storefronts.
Known limits: for each product the app reads the first 10 collections, so a product in more collections is counted with those 10 in the collection overview. A product with more variants or media than one request reads gets unknown for the rules that need all of them.
06
When this page changes
When a rule, a weight or a threshold changes, the methodology version and the date at the top change with it. Questions about a rule: Support.