Skip to main content
Card class: StandardCategory: Ecommerce Platform
The number of categories that contain zero enabled products, the dead-end links in your storefront navigation that send shoppers to an empty page.

At a glance

An empty category is a navigation path that leads nowhere: a shopper clicks it expecting products and lands on a blank listing page. Every empty category is a small leak of trust and a wasted click. They accumulate quietly, a category whose last product was disabled or moved, a seasonal category left up out of season, a placeholder created but never filled. This card counts categories that currently contain zero enabled, storefront-visible products, so dead navigation gets cleaned up before customers and search engines stumble into it.
What it countsCategories with zero enabled products mapped to them. Categories live in oc_category; the product-to-category links live in oc_product_to_category.
Enabled onlyA category counts as empty if all the products linked to it are disabled or out of catalogue. A category full of disabled products is, to a shopper, empty.
SubcategoriesOpenCart categories are hierarchical. A parent with empty subcategories but its own direct products is not empty; a parent with no direct products and only empty children is a dead path. The count reflects categories with no enabled products of their own.
Storefront statusA category itself can be enabled or disabled. A disabled category does not show on the storefront; the most damaging empties are enabled categories with no products.
Currency / refundsNot applicable. This is a catalogue-structure count.
Multi-storeCategory-to-store layout assignment governs which storefronts show a category. A category empty everywhere is a dead path on every store.
Time windowRT (live count)
Alert trigger> 0
Rolesowner, operations

Calculation

COUNT(categories) WHERE COUNT(enabled products in category) = 0

Worked example

A Malaysian electronics store on OpenCart 4.x with a deep category tree: 180 categories across three levels (for example Audio → Headphones → Wireless). The owner runs seasonal categories and recently disabled a discontinued product range.
DateTotal categoriesEmpty (0 enabled products)Note
13 Mar 261800Clean tree
14 Mar 261804Alert fires (over 0)
of which: “Wireless Earbuds (Legacy)“-1Last product discontinued
of which: “Festive Bundles”-1Out of season, kept live
of which: “Action Cameras”-1Products moved, links not updated
of which: “New Arrivals - Q1”-1Placeholder, never filled
What’s interesting here:
  1. Each empty category has a different story. One is genuinely retired, one is seasonal, one is a mapping mistake, and one is a placeholder. The count surfaces all four; the merchant decides the right action for each (delete, disable until season, re-map products, fill or remove).
  2. “Action Cameras” is the real problem. Its products were moved into a renamed category, but the old category was left enabled in the menu with broken product links. Shoppers clicking it from the main navigation hit an empty page, and the store kept advertising the link in its top menu.
  3. An enabled empty category is worse than a disabled one. Three of the four are still enabled and reachable from navigation. A disabled empty category is harmless (nobody can reach it); an enabled one actively wastes clicks. The fix priority follows that distinction.
  4. Empty categories hurt SEO too. Search engines that crawl an empty category page see a thin, content-less URL. Cleaning these up removes low-value pages from the index and tightens internal linking around categories that actually convert.

Sibling cards merchants should reference together

CardWhy pair it with Empty Categories
Disabled ProductsThe usual cause. Mass-disabling products empties the categories they belonged to.
Out-of-Stock ProductsA category whose products are all out of stock can look empty to shoppers even when products technically exist.
Total ProductsThe catalogue size context. A growing catalogue with empty categories means structure has drifted from content.
Products Missing SKU / ModelCatalogue-hygiene sibling. Both signal that the catalogue needs a tidy.
Total ProductsPair to see whether new products are being filed into real categories or left uncategorised.
Total CustomersIndirect: dead navigation hurts conversion, which shows up downstream in customer growth.

Reconciling against OpenCart

Where to look in the OpenCart admin: Catalog → Categories shows the full category tree. OpenCart core does not show a per-category product count in this list, so the usual way to verify is to open a category on the storefront (or filter Catalog → Products by category) and see whether any enabled products appear. Reports do not surface empty categories directly, which is exactly the gap this card fills. OpenCart admin views that look like the same number but aren’t:
  • Catalog → Categories count is the total number of categories, not the empty subset.
  • The storefront category menu hides disabled categories and may hide empty ones depending on theme, so it can under-report empties that still exist in the admin.
  • Filtering Catalog → Products by category shows products in a category but counting “zero results” category by category is the manual version of this card.
Why our number may legitimately differ from the OpenCart admin:
ReasonDirection of divergence
Enabled-only definition. This card treats a category full of disabled products as empty. An admin product-by-category filter that includes disabled products will show it as non-empty.Card higher
Subcategory rollup. Whether a parent counts as empty depends on whether you roll up child products. The card counts direct enabled products of the category.Either direction
Multi-store layout. A category empty on one store’s layout but populated on another is store-dependent. The card counts categories empty of enabled products overall.Either direction
Timezone. Not a factor for a live count, but a very recent re-map can appear at a slightly shifted time due to UTC vs store timezone.Cosmetic timing
API / DB sync lag. A category emptied seconds ago may not yet be reflected.Self-resolves at next sync
Cross-connector note: if a category page is also a landing page for paid traffic or email, an empty category means you may be paying to send shoppers to a blank page. Cross-check against any ad-spend or campaign view to make sure spend is not pointing at a dead path.

Known limitations / merchant FAQs

Why does the alert fire at the very first empty category? Because a clean catalogue should have none, and each empty category is a live dead-end for shoppers. The > 0 trigger keeps the standard tight: any empty category is worth a glance, even if the action is “yes, that one is intentionally empty, dismiss”. A category is full of products but the card calls it empty, why? Almost always because every product in it is disabled or out of catalogue. This card counts enabled products. To a shopper, a category with only disabled products is empty, which is the view that matters. Check Disabled Products. Should I delete empty categories or just disable them? Disable if the category is seasonal or will be refilled soon; delete if it is genuinely retired. Disabling removes it from navigation without losing the structure; deleting removes it entirely. Either fixes the dead-path problem; the choice depends on whether you will use it again. Do empty categories hurt SEO? They can. Search engines that crawl a content-less category URL see a thin page, and the link equity spent reaching it is wasted. Cleaning empties up tightens your internal linking and removes low-value pages from the index. My parent category has products only in its subcategories, is it counted as empty? It depends on whether the parent has any direct enabled products of its own. OpenCart categories are hierarchical; a parent with no direct products but populated children is a normal pattern and is generally not what this card is flagging. The card targets categories with no enabled products to land on. An import created a batch of placeholder categories, can I bulk-remove them? Yes, via Catalog → Categories (or a bulk-management extension). The card will reflect the reduced count once the empties are deleted or filled. The durable fix is to avoid creating categories ahead of the products that belong in them. Why is an enabled empty category worse than a disabled one? Because shoppers can actually reach an enabled empty category from navigation and search, so it wastes real clicks. A disabled empty category is invisible and harmless. When triaging, fix the enabled empties first.

Tracked live in Vortex IQ Nerve Centre

Empty Categories (0 products) is one of hundreds of KPI pulses Vortex IQ tracks across OpenCart and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.