Ahosting Logo
Knowledge Base

How to Structure WooCommerce Categories and Navigation

The distinction that prevents most catalogue messA category is where something lives· somewhere a browsing customer would look for it· one product belongs in one or two· and the tree stays shallowAn attribute is what something is· size, colour, material, brand· used for filtering and for variations· and a product can have manyThe mess this avoidsCategories named after attributes: a Red category, a Large category, and a product filed in nineplaces nobody browses.

Category structure decides whether people find things. It also decides what search engines index, and a badly organised catalogue produces hundreds of thin pages competing with each other.

Both problems come from the same source: treating categories as labels rather than as navigation.

Categories are the shelf, attributes are the filter

The distinction that prevents most catalogue mess.

A category is where something lives; a customer browsing would look for it there. A product attribute is a property they filter by: size, colour, material.

Creating a category for every colour produces a hundred near-empty pages, none of which anyone searched for. Making colour an attribute gives you a filter on one page instead, and only global attributes can be used in layered navigation, which is a reason to define them properly from the start. How to Set Up Product Variations in WooCommerce sets out global versus per-product.

Keep the tree shallow

Two levels covers most shops. Three is the practical limit.

Every additional level is a click between the customer and the product, and a page that has to justify existing. A category holding two products is not a category; it is a filter that has been promoted by mistake.

The test: could a customer describe what they want using your category names? If they would say "a blue medium t-shirt", then t-shirts is the category and the rest are attributes.

One primary category per product

A product can sit in several, and doing that widely produces duplicate-feeling pages and an unclear URL.

Assign one primary category and use tags or attributes for the cross-cutting relationships. It also makes reporting comprehensible, revenue by category means nothing when everything is in three categories.

Write something on the category page

A category page with nothing but a product grid has no content of its own, and it is competing with every other shop's identical grid.

A short description, what is in this category, how to choose between the options, what people usually ask, makes it a page worth landing on. Two paragraphs is enough.

Put it above the products if it helps the customer choose, and below if it is mainly for search. Do not write six paragraphs of keyword text under the grid; nobody reads it and it does not work.

Pagination and the "show all" trap

Long categories paginate. That is correct, and two things are worth setting deliberately.

Products per page: enough to browse, few enough to load. On a shop with heavy product images, a page of sixty is slow in exactly the place speed converts. There is more on reducing the weight in WooCommerce Speed Optimization Tips.

And avoid a "show all" option on a large catalogue. It generates one enormous page that times out for the customers on the slowest connections. The ones least able to wait for it.

Sorting and filters change the URL

Every sort order and filter combination produces a different address for the same products. On a catalogue with several filters that is thousands of URLs holding the same content.

The canonical tag on those pages should point at the clean category URL, which most shop plugins handle, check yours rather than assuming, because the alternative is a large number of near-duplicate pages competing with the page you wanted. Addon Domains, Subdomains and Duplicate Content deals with the same problem at the domain level.

Out-of-stock products in a category

A decision worth making rather than defaulting into.

Hiding them keeps the browsing experience clean and removes pages that may have been earning traffic, and a product that returns has lost its standing.

Showing them, marked clearly, with a notification option, keeps the page and captures interest. That is usually the better answer for anything coming back into stock.

For products that are gone permanently, redirect the page to the closest alternative instead of leaving a 404. There is more in How to Redirect a Domain or Page.

Menus are not the category tree

Your navigation menu should show what customers look for, which is not necessarily every category you have.

Put the categories that sell in the menu, and let the rest be reachable from category pages and search. A menu with twenty items is a menu nobody reads.

Breadcrumbs matter more than they look on a shop, because a large share of visitors arrive on a product page from search rather than from the homepage. Breadcrumbs are how they discover you sell the rest of the range.

Do not restructure lightly

Changing a category slug changes every URL under it. On an established shop that means redirects for every affected product, and a period where rankings move.

If the structure is wrong, fix it: with redirects mapped page by page, planned in advance. If it is merely imperfect, the gain rarely covers the disruption.

Check it as a customer, on a phone

Find a product using only the navigation, starting from the homepage, on a phone.

That single exercise finds most structural problems: a category buried two levels too deep, a menu that does not fit, a filter that is unusable on a small screen, and it is the journey most of your customers actually take.

When browsing fails a customer, search is where they go. There is more on why the default one disappoints them in How to Improve WooCommerce Search and Filters.

Check the structure from a visitor's position

Category structures are designed by people who know the catalogue and used by people who do not. Ask somebody unfamiliar to find a specific product using only the navigation, and watch where they hesitate. The categories that make sense internally are frequently organised by how the business thinks rather than by how a customer searches, and the difference is only visible when somebody who does not share the assumptions tries to use it.