WooCommerce Brands - WordPress Plugin
Create, assign and list brands for products, and allow customers to view by brand.

Plugin Features
The brands extension for WooCommerce allows you to create brands for your shop; each brand can be named, described and assigned an image. Brands can then be:
- Listed, indexed, on a page using a special A-Z shortcode
- Displayed as thumbnails on a page using a shortcode
- Displayed in the sidebar using a widget
- Assigned to a product
- Used to view products using a dedicated layered nav widget
After assigning brands to products, the layered nav widget allows customers to view products by brand in addition to attribute filters. The archive template can optionally show the brand description, or you can use a widget instead.
Specifications:
| Release date: | 12-07-2019 | |
| Last updated: | 08-11-2024 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | e-Commerce Specific for WooCommerce | |
| Compatibility: | W5.x W6.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | WooCommerce Plugins | |
| Rating: | ||
Share with your friends!
How to Use and Configure WooCommerce Brands
WooCommerce Brands is not just for adding an attractive logo to a product page. Its main practical purpose is to turn a brand into a dedicated catalog attribute with a name, URL, image, product archive, shortcodes, widgets, filtering, import support, and data that can be reused across other parts of the store.
This guide explains how to work with WooCommerce Brands in the way store owners and web administrators typically need to use it: what to check before installation, where to create brands, how to assign them to products, how to display a brand list on a page, how to test archives, how to work with shortcodes, widgets, and imports, and which issues most often appear after updates, theme changes, or a move away from a third-party solution.
There is one important detail: WooCommerce Brands is no longer developed as a regular WooCommerce.com extension because brand functionality has been moved into WooCommerce core. For that reason, this article focuses on using an existing product safely, keeping older workflows compatible with the new built-in feature, and running the checks that prevent you from confusing a brand with a category, attribute, or custom label.
This guide does not replace the official documentation, but it helps you work through the entire process without unnecessary guesswork: from your first brand taxonomy to an "All Brands" page, brand filtering, displaying a logo on a product, and diagnosing cases where a brand exists but shoppers cannot see it.
What Store Brands Actually Solve in WooCommerce
WooCommerce already includes categories, tags, attributes, and custom fields. That is why store owners often ask a reasonable question: why create a separate brand section when you can make a "Nike" category or a "Manufacturer" attribute? The answer depends on how shoppers look for products and how you plan to maintain the catalog.
A category usually describes a product group: sneakers, backpacks, laptops, coffee makers, or supplies. An attribute describes a characteristic: size, color, material, storage capacity, screen size, or compatibility. A brand sits between them, but it is not the same as either one. It answers the question "who makes, releases, or represents this product", rather than "what kind of product is it?" or "which property does it have?"
If your store is small and sells products from a single manufacturer, a separate brand taxonomy may be unnecessary. But once the catalog contains dozens of manufacturers, product lines, sub-brands, marketplace sellers, or collections, a brand becomes a navigation hub. Shoppers can open a specific brand page, see all related products, follow a logo link, filter listings, or compare products from the same brand within a category.
When a Brand Works Better Than a Category
Use a brand as a separate attribute when the same manufacturer appears across multiple categories. For example, a brand may sell shoes, bags, accessories, and apparel. If you make it a category, it begins competing with your real product sections, and the catalog tree quickly becomes confusing. With WooCommerce Brands, categories remain part of the product structure while the brand becomes an independent way to browse the catalog.
This approach is especially useful for electronics stores, sporting goods retailers, auto-parts shops, cosmetics stores, apparel stores, professional equipment suppliers, and any catalog where users often arrive with a manufacturer preference already in mind. For those shoppers, a brand link is not decoration. It is a shortcut to products they trust.
When a Brand Works Better Than an Attribute
A "Brand" attribute can work as a simple filter, but it has limitations. It does not always provide a dedicated brand page with a description and image, it is not always convenient for branded lists, and it can become mixed in with technical specifications. WooCommerce Brands creates a separate product_brand taxonomy, so a brand can be displayed as an independent element in an archive, shortcode, widget, API response, or product page.
This does not mean attributes are no longer useful. On the contrary, in a well-organized catalog, brands and attributes complement one another. A brand identifies the manufacturer, while attributes identify product properties. Problems begin when a brand is treated as a category and a category is treated as a brand. The shopper can no longer understand the catalog structure, and the administrator has to maintain the same names in several places.
Practical rule: if an attribute needs its own page, logo, description, product list, and a role in manufacturer navigation, create it as a brand. If it is only needed to select a variation or filter by a product property, keep it as an attribute.
What Changed When Brands Moved into WooCommerce Core
Historically, WooCommerce Brands was a separate extension. The original WooCommerce.com product page now redirects to a retired product page, and the documentation states that the product is no longer available as a separate purchase and remains available for existing users. At the same time, WooCommerce maintains separate Product brands documentation because brand functionality is now included in WooCommerce core.
For a store owner, this changes support strategy more than daily configuration. If you already have a store using the older WooCommerce Brands extension, do not install several brand solutions in parallel without checking them first. If you have a new WooCommerce installation, start by checking Products > Brands. If that section is available, you may not need the legacy extension archive.
Why the Legacy Plugin Still Matters
Many sites continue to use legacy workflows, shortcodes, and template inserts. WooCommerce Brands documentation describes the [product_brand], [brand_products], [product_brand_list], [product_brand_thumbnails], and [product_brand_thumbnails_description] shortcodes, as well as examples for displaying a brand logo through a WooCommerce hook. These items matter when migrating a store, auditing an older theme, or restoring a "Brands" page created years ago.
On newer stores, the same ideas often work through the built-in taxonomy and current Product brands documentation. For that reason, this guide uses a cautious approach: if the feature is available in your WooCommerce version, use it as the native mechanism; if you maintain an older site using WooCommerce Brands, verify shortcodes and snippets against the actual version installed on the store.
What to Check When Moving from the Legacy Extension
The primary risk during a transition is not losing products, but creating confusion between taxonomies, duplicate menu items, and template inserts. WooCommerce uses the product_brand taxonomy. If your site already used a third-party brand plugin, a custom ACF taxonomy, custom code, or the legacy WooCommerce Brands archive, you need to identify exactly where the "product - brand" relationships are stored.
- Check whether the admin area has one brand section or several similar items under
Products. - Open several products and make sure the brand is selected in the correct panel, not in an old attribute or a third-party label.
- Open a brand page and confirm that it displays products rather than redirecting back to a product page or an empty archive.
- Check pages containing legacy shortcodes, especially if they hide empty brands or use manual sorting.
- Create a backup before disabling the old solution if the site contains custom code related to brands.
Do not remove the old extension immediately after updating a live store unless you have tested brand pages, the brand list, filters, and the product template on a copy of the site. In most cases, data should move predictably, but third-party customizations may depend on an old file path, function name, or display method.
Who WooCommerce Brands Is For, and When Another Approach Is Better
WooCommerce Brands is especially useful for stores where a brand helps shoppers make a decision. If users choose not simply a "25-liter backpack," but an "Osprey backpack," not simply a "smartphone," but a "Samsung," and not simply "cooking oil," but a specific brand, the brand should be visible and clickable. It then serves as navigation, a trust signal, and a way to collect products from the same manufacturer in a dedicated archive.
However, not every store benefits from a separate brand system. If the catalog consists of original products from one manufacturer, if brand does not matter to the buying decision, if the store only has a few products, or if all navigation is built around collections, a separate taxonomy may simply add administrative work. Brands need maintenance: names must remain consistent, logos need to be added, slugs need monitoring, duplicates must be avoided, and archives must be checked.
Good Use Cases
WooCommerce Brands has the strongest effect when a brand can serve as an independent entry point into the catalog. This does not require a large marketplace. Even a mid-sized store selling power tools, cosmetics, or sports equipment benefits when visitors can quickly open a manufacturer page, view its products, filter a category by brand, and move to related items.
- A multi-brand catalog where one manufacturer appears in several categories.
- A store with repeat purchases, where shoppers return to brands they already know.
- A catalog with filters where brand needs to work alongside price, category, size, or other attributes.
- SEO-focused brand pages that need descriptions, logos, product archives, and clean URLs.
- Integrations with product feeds where the brand field must be sent as a separate product attribute.
- A store that imports products in batches and needs to keep brands in a predictable CSV column.
Cases Where You Should Keep Things Simple
If the store has only one in-house brand, a separate brand page may feel artificial. In that case, it is better to strengthen the "About the Brand" page, product pages, categories, and filters based on real product characteristics. You can leave WooCommerce Brands disabled or avoid using it in the storefront so you do not create an empty layer of navigation.
Caution is also needed in complex catalogs where brand data has been stored as an attribute for years and filters, feeds, and SEO templates depend on that attribute. Moving to product_brand can be useful, but first map the dependencies: which pages receive traffic, which feeds use the attribute, which filters are configured in the theme or a separate plugin, and which URLs are already indexed.
What to Check Before Installing or Enabling Brands
Preparation matters because a brand becomes part of the catalog structure. Errors in slugs, duplicates, or legacy taxonomies may not become visible immediately. They can surface after indexing, importing new products, or configuring a filter. Before enabling WooCommerce Brands, run a brief audit, especially if the store is already live and has an established history.
Check the Version and Feature Source
In current WooCommerce versions, Product brands may be part of core. In older projects, it may have been provided by the separate WooCommerce Brands extension. On third-party projects, brands may have been created through YITH, Perfect Brands, Premmerce, BeRocket, ACF, or custom code. For an administrator, the important question is not "what is the menu item called?" but which taxonomy is actually being used and which tool displays the brand on the site.
The most practical method is to open several products and inspect the brand panel, then open the taxonomy list in the admin area and check the section URL. In code integrations and APIs, the key reference point for WooCommerce's native feature is product_brand. If a third-party solution uses a different key, do not expect an automatic match.
Build a Brand Dictionary Before Importing
Before configuring brands in bulk, prepare a single source of truth for names. Problems are more often caused by human-created duplicates than by the plugin itself: "HP," "Hewlett Packard," "Hewlett-Packard," "HP Inc.," and "hp." To a shopper, these are one brand. To WooCommerce, they are separate terms if they were created separately.
- Select the official spelling for each brand and use it in the
Namefield. - Plan the
Slugin advance if the brand contains special characters, Cyrillic text, or spaces. - Prepare logos with consistent proportions so the brand grid does not look random.
- Decide whether child brands are needed. Hierarchy is not always useful, and unnecessary nesting complicates URLs and filters.
- Agree on the brand description: a short overview, product range, warranty terms, or navigation-only text.
Check the Theme, Filters, and Cache
The brand archive is rendered by the theme or store templates. If the theme supports WooCommerce properly, the basic product list usually opens without additional configuration. However, the appearance of the brand description, logo, breadcrumbs, filter, and widgets may depend on the theme, blocks, store templates, and cache.
If you use a block theme, check where the product archive template is configured and whether the brand taxonomy can be displayed through blocks or a shortcode. If you use a classic theme, check Appearance > Widgets and sidebar areas. If page caching is enabled, configure the brand first on a site copy or in a private environment, then clear the cache and verify the result in a private browsing window.
Quick pre-launch check: one test brand, one test product, one brand archive, one page with a brand list, and one sidebar filter provide more useful information than trying to import hundreds of terms immediately.
Installation, Activation, and the First Check
If you are working with current WooCommerce, begin by checking the native Products > Brands section. If it is available, installing WooCommerce Brands separately is usually unnecessary. If you maintain an older store that uses the extension archive, installation follows the standard WordPress plugin process: use Plugins > Add New, upload the ZIP file, select Install Now, and then Activate. In either case, the goal of the first launch is the same: confirm that you can create a brand, assign it to a product, and see it on the site.
Do not begin with a bulk import. First, create one demo brand and assign it to one product. This test immediately shows where the brand panel is located, how the theme renders the archive, whether the URL works, whether the logo appears, and whether caching interferes.
Create Your First Brand
Open Products > Brands. The interface resembles WordPress categories and tags: the creation form is on the left, while the list of existing brands is on the right. Enter a Name, set a Slug if necessary, choose a parent brand, add a description, and upload a thumbnail. The image field is optional, but a logo is almost always needed for a public brand grid.
If the brand needs to be part of a hierarchy, use Parent brand carefully. Hierarchy is appropriate when there is a real relationship such as "parent company - product line" or "brand - sub-brand." Do not use it in place of categories: a child brand should not turn into a product type.
Assign a Brand to a Product
Open Products > All Products, select a product, and find the Brands panel in the product editor. Select the appropriate brand and click Update or Publish. For the first test, use a published simple product that is definitely visible in the store and not hidden by stock settings.
After saving, open the product in the storefront. Depending on the theme, the brand may appear automatically, through a template, block, shortcode, or separate snippet. If the brand is not visible on the product page, that does not necessarily mean the relationship was not saved. First check the brand archive and the term list in the admin area.
Verify the First Result
Open the brand page from Products > Brands or follow the link generated by WooCommerce. The archive should contain the products assigned to that brand. If the archive is empty, check three things: the product is published, the product is not excluded from the catalog, and the brand was assigned in the Brands panel rather than through a similar attribute.
Then create a standard page and insert a short shortcode such as [product_brand_list show_empty_brands="true"]. This shows whether WooCommerce can see the brands you created in a list. If the list appears but the archive has no products, the problem is most likely product assignment, product visibility, or an archive-template conflict.
Detailed Configuration After Installation
Configuring WooCommerce Brands is not a matter of changing settings on one screen. It involves several decisions: how brands should be named, which logos to use, how archive URLs should be built, where the brand should appear on a product page, which lists and filters to display, how imports should work, and how to avoid breaking a catalog that already works. The larger the store, the more important it is to make these decisions in the right order.
Names, Slugs, and Hierarchy
Start with names. The Name field should be clear to shoppers and match the way the brand is normally written on the manufacturer's site or in your own documentation. The Slug field affects the brand page URL. If you leave it empty, WordPress creates the URL automatically, but for international brands, Cyrillic text, and complex names, it is better to control the slug manually.
Do not change a slug after publication without a reason. If the brand URL already appears in internal links or search results, changing it creates a need for redirects and renewed checks. If you do need to change the slug, do it first on a test copy, refresh permalinks through Settings > Permalinks, and check both the old and new URLs.
When to Use a Parent Brand
A parent brand is useful when you have a genuine structure. For example, a large company may own several product lines, and shoppers may search for either the parent brand or an individual line. But if the hierarchy is only intended to make the admin list look tidy, a flat list is better. A flat list is easier to import, filter, and maintain.
Brand Description and Thumbnail
A brand description may appear in the archive if the theme or template displays it. Do not write a lengthy company history if the brand page is meant for navigation. A useful description answers these questions: what the brand is known for, which products from the brand are available in the store, why the page is useful to shoppers, and what they should consider when choosing.
A brand thumbnail is most often used in grids, shortcodes, widgets, and product pages. Prepare logos according to a consistent design approach: a transparent background or matching light background, similar height, and no unnecessary padding. If one logo is square, another is horizontal, and a third is uploaded as an oversized banner, the brand grid will look uneven even when its configuration is correct.
Permalinks and the Brand Base
The current WooCommerce Product brands documentation describes a setting for the brand archive base in Settings > Permalinks. There, you can change Product brand base. This affects the URLs of brand pages. For example, instead of the default segment, you can use a value that better fits your catalog structure.
After changing permalinks, click Save Changes and check two URLs: the brand archive and a product page. If you use %product_brand% in the product URL structure, remember that this element should not be the entire product base by itself. An additional segment is required, otherwise the URL structure becomes ambiguous.
Verification: after editing a permalink, open the brand in a private browsing window, then open a product assigned to that brand. If either URL returns an error, restore the previous base, save permalinks, and check whether the new
slugconflicts with an existing page, category, or third-party taxonomy.
Shortcodes for Brand Pages
Shortcodes are useful when you need to display brands on a custom page, inside an editor block, or in an older template. In the block editor, add a Shortcode block and insert the required shortcode. Do not place complex shortcodes in random areas of the theme until you have tested them on a standard page.
| Shortcode | What It Displays | Where It Is Useful | What to Check |
|---|---|---|---|
[product_brand] |
The logo of the current or specified product brand, linked to its archive | Product page, short description, product template | Whether the product has a brand assigned and whether a thumbnail has been uploaded |
[brand_products brand="slug"] |
Products from the selected brand | Brand landing page, manufacturer collection | Whether the slug is correct and whether products are visible in the catalog |
[product_brand_list] |
An alphabetical brand list | An "All Brands" page | Whether empty brands are needed and whether alphabet navigation links are enabled |
[product_brand_thumbnails] |
A grid of brand logos | Store homepage, brand catalog, sidebar | Logo size, column count, and whether empty brands are hidden |
[product_brand_thumbnails_description] |
Logos with descriptions | A brand reference page or navigation section | Whether the block turns into an overly long, crowded list |
If a shortcode does not display the expected output, simplify it first to the minimum version. For example, temporarily remove show_empty="false", number, orderby, and nonstandard values. This makes it easier to determine whether the problem lies in the data, parameters, or a post-update conflict.
Widgets and Classic Theme Areas
For classic themes, the documentation describes widgets for the current brand description, brand navigation, and brand thumbnails. You will usually find them under Appearance > Widgets. The WooCommerce Brand Layered Nav widget is particularly useful on the shop page because it works alongside other WooCommerce filters.
In block themes, classic widgets may not be the primary display method. In that case, use blocks, store templates, or shortcode pages. Do not mix every option at once: if the brand is already displayed in the product template, do not add an identical logo through a shortcode in the description, or shoppers will see duplicates.
Importing and Exporting Brands
Current Product brands documentation states that the built-in product importer and exporter support brands through the Brands column. Multiple brands are separated by commas, hierarchy can be passed as Parent > Child, and a comma within a brand name must be escaped as \,. Older WooCommerce Brands documentation may use a different approach involving Product CSV Import Suite and the tax:product_brand column, so always verify which mechanism is installed on your site before importing.
For a safe import, first export one test product with a brand and see how WooCommerce formats the column. Then prepare a small CSV containing 3-5 products and test the import on a copy of the site. Bulk uploads without testing often create duplicate brands because of extra spaces, different capitalization, commas in names, and inconsistent slugs.
Brand Archives, SEO, and Page URLs
A brand page can be a useful landing page, but only when it is not an empty archive with no context. WooCommerce creates an archive for each brand, while its appearance is controlled by the theme or store templates. This means that simply creating a brand does not guarantee an effective SEO page. You need to check the heading, description, product list, breadcrumbs, pagination, indexing, and internal links.
What a Good Brand Page Should Include
A minimally useful brand archive includes a name, a brief description, a logo or image, a product list, and clear navigation back to a category or the catalog. If the theme displays only a product grid without a description, shoppers may not understand how the page differs from a regular category. If the description is too long and pushes products far down the page, the page becomes inconvenient for shopping.
The best approach is usually a short introductory block at the top, followed by products, filters, and additional details only where they genuinely help. For major brands, you can add category-based collections, but do not turn every brand into a standalone promotional article. A brand page should help visitors choose products, not replace product pages.
How to Avoid Breaking URLs and Indexing
The Product brand base setting in permalinks may look simple, but it affects every brand page. Avoid slugs that are already used by pages, categories, or custom post types. If you choose an overly general segment, such as brand, it may conflict with an older page, a theme translation, or a third-party plugin.
After changing the base, check the following:
- The brand archive opens without an error and displays the correct products.
- The old link either redirects to the new one or is no longer used in internal navigation.
- Breadcrumbs do not lead to a nonexistent intermediate page.
- Store filters do not create uncontrolled combinations that can be indexed indefinitely.
- Your sitemap and SEO plugin handle the new taxonomy correctly.
Do not assume that "search engines will figure it out." If a brand page matters for traffic, check internal links, the sitemap, canonical URLs, and redirects with your site's built-in tools and SEO plugin after changing URLs.
Schema and Brand Data on Product Pages
Legacy WooCommerce Brands documentation states that assigning a brand to a product adds brand name Schema to the product page. Current WooCommerce code also includes functionality that builds brand data for product markup when a product has an associated product_brand. This is useful for structured data, but it does not guarantee a rich result or better rankings.
The practical conclusion is straightforward: the brand must be assigned correctly, the logo must be available, and the product page must remain valid. Check markup with structured-data testing tools, but do not treat WooCommerce Brands as an "SEO button." Its value begins with a well-organized catalog, while structured data is an additional benefit of clean product information.
Displaying Brands on Products, in Lists, and Through Shortcodes
The most common practical task after creating brands is to show them where shoppers make decisions. That usually means product pages, product grids, a dedicated "All Brands" page, the shop sidebar, and landing pages for individual manufacturers. WooCommerce Brands offers several display methods, but you should choose them based on placement rather than trying to "turn everything on."
Logo on a Product Page
The [product_brand] shortcode displays a brand image linked to its archive. Legacy WooCommerce Brands documentation states that it works on a specific product page, rather than as a universal list for an arbitrary page. This is an important limitation. If you place it on a standard page with no product context, it may not know which brand to display unless post_id is specified.
For an individual product, you can insert the shortcode in the description or short-description area. For example:
[product_brand width="64px" height="64px" class="alignright"]
This is convenient for a quick test. However, if the logo must appear automatically on all products, it is better to use a template or a safe snippet through a child theme or Code Snippets. First check whether your theme already does this. Duplicate logos on a product page look like an error.
List of All Brands
The [product_brand_list] and [product_brand_thumbnails] shortcodes are suitable for an "All Brands" page. The first option works well as an alphabetical directory, especially when there are many brands. The second works better as a logo grid. If brands do not have thumbnails, the grid will be weak. If there are hundreds of brands, one huge grid may become slow and difficult to use.
Start with a simple version:
[product_brand_list show_empty_brands="false"]
If you need to display logos, use:
[product_brand_thumbnails number="24" show_empty="false" columns="6"]
The show_empty or show_empty_brands parameter controls whether brands with no products are displayed. In a live catalog, it is usually better to hide empty brands so shoppers do not land on empty archives. When preparing a new store, you can temporarily show empty brands so content managers can see the complete brand dictionary.
Products from a Specific Brand on a Landing Page
The [brand_products] shortcode is useful when you want to assemble products from a specific brand on a separate page. For example, on a manufacturer page, you can display a description, banner, benefits, and a product block connected to the brand through its slug:
[brand_products brand="alpine-outfitters" per_page="12" columns="4"]
If the block is empty, do not check the brand name first. Check the slug. Also make sure the products are published, visible in the catalog, and not hidden by visibility settings. For variable products, verify that the parent product itself is visible and assigned to the brand, rather than only variations having a similar label.
Brand Filtering in the Sidebar
The classic brand navigation widget is useful in stores where shoppers frequently narrow a category by manufacturer. It should work alongside price, attribute, and category filters. However, if the theme uses block templates or a separate filtering plugin, the classic widget may not be the best option.
In that case, there are two safe paths: use the theme's native blocks and templates if they support brand taxonomies, or connect a filter that can work with product_brand. Do not describe a third-party filter as an official integration unless its developer confirms that relationship. It is simply a combination of a WooCommerce taxonomy and a filtering mechanism.
Practical Example: an "All Brands" Page and Product Page Verification
Let us look at a working example for a sports equipment store. The goal is to add a brand, assign it to several products, show its logo on product pages, create an "All Brands" page, and confirm that shoppers can move from the brand list to the archive and its products.
Goal
You need clear manufacturer navigation: the brand is visible on the product page, a separate page contains a brand list, and clicking a brand opens an archive with products from that brand. This is a basic workflow after which you can add filters, SEO descriptions, imports, and integrations.
Preparation
Before configuring anything, select 2-3 published products from the same brand. Prepare a brand logo in a format that looks good against a light background. You do not need to disable site caching entirely, but after saving settings, you should clear page cache and verify the result in a private browsing window.
- Open
Products > Brandsand create a brand with a clearName. - Check the
Slug. For a Latin-character brand name, use a short, readableslugwithout spaces. - Add a 2-4 sentence description explaining what the brand is and which products are available in the store.
- Upload the brand thumbnail. If the logo is very wide, prepare a separate version for the grid.
- Open each product and select the brand in the
Brandspanel. - Click
Updateand open the product in the storefront.
Brand List Page
Create a page, for example, "All Brands." In the block editor, add a Shortcode block. For the initial version, use an alphabetical list:
[product_brand_list show_empty_brands="false"]
If the brands have well-prepared logos and there are not too many of them, you can add a grid below or instead of the list:
[product_brand_thumbnails number="24" show_empty="false" columns="6"]
Do not add both versions immediately if they repeat the same information. For a large catalog, an alphabetical list is usually better, while a logo grid can be reserved for featured brands on the homepage or in a separate collection.
Verify the Storefront
Open the "All Brands" page and check that the brand you created is visible. Follow the brand link. The archive should display the products you assigned. Then open one product from the archive and make sure the shopper can return to the brand or see the logo on the product page if that is supported by the theme or shortcode.
Common issue: if the brand appears on the "All Brands" page but the archive is empty, the shortcode is usually not the problem. Check the brand assignment on the product, the product's publication status, catalog visibility, and cache. If the brand list itself is missing, simplify the shortcode and temporarily allow empty brands to be displayed.
What Counts as a Successful Setup
You can consider the workflow configured successfully when the brand appears in the admin area, can be assigned to a product, has its own archive, appears on the "All Brands" page, and does not create duplicates on the product page. You can then move on to bulk work: importing brands, adding logos, configuring filters, and refining the appearance.
Large-Catalog Workflows: Imports, Filters, and Product Feeds
In a small store, brands can be maintained manually. In a large catalog, manual entry quickly becomes a source of errors. It is more important to agree in advance on import rules, filter integration, and how brands are passed to external channels. WooCommerce Brands is useful precisely because it stores a brand as a separate taxonomy rather than arbitrary text in a product description.
Bulk Brand Imports
If products arrive from CSV files, an ERP, inventory software, or a supplier, the brand should be placed in a dedicated column. Current Product brands documentation uses the Brands column for the built-in importer. Legacy WooCommerce Brands documentation may use the tax:product_brand column through Product CSV Import Suite. Do not mix these rules: export a test product from your own system and follow the actual format it produces.
A practical order for safe imports:
- Create 3 test brands manually, including one brand with a space or a complex name.
- Assign the brands to 3 products and export those products.
- Open the CSV in an editor that does not break character encoding and inspect the brand-column name.
- Prepare a small import containing 5 products and verify whether new brands are created or existing ones are linked.
- Fix spaces, capitalization, commas, and hierarchy before the bulk upload.
- After importing, recalculate and check several brand archives.
If a brand contains a comma in its official name, follow CSV escaping rules. Otherwise, the importer may split one name into two brands. If hierarchy is used, the Parent > Child format must be consistent in every row.
Brand Filters
A brand filter should shorten the shopper's path, not overwhelm the page. If a category contains only 4 products and 2 brands, a separate filter is optional. If a category contains 400 products and 60 brands, filtering becomes an important part of search.
For classic themes, you can begin with the brand widget. Modern stores often use separate WooCommerce filtering tools that can work with taxonomies. In that arrangement, WooCommerce Brands stores the clean product_brand taxonomy, while the filter provides a convenient selection interface. Conflicts usually arise when the same brand is stored both as an attribute and as a brand taxonomy, while the filter reads from the wrong source.
Google for WooCommerce and Product Data
Product brands documentation states that Google for WooCommerce can map the WooCommerce brand to the Google Brand attribute using a mapping rule based on the existing Taxonomies - Brands field. This does not mean all product listings automatically become valid. Brand is only one part of product data, alongside the title, image, price, availability, identifiers, and category requirements.
If your store sends products to external channels, check not only the product page after configuring brands, but also the feed. Make sure the brand appears in Merchant Center or another channel where it is needed. If the brand is not being sent, check the mapping rule, whether the product has a brand, and the synchronization status. Do not change the brand structure on a live store without understanding which external systems already receive this data.
REST API and Automation
Brand API support matters to developers. WooCommerce Store API documentation describes the /products/brands endpoint for retrieving brands, while the product REST API includes brand properties for a product. Legacy WooCommerce Brands documentation also describes creating, viewing, updating, and deleting brands through the API, as well as assigning brands to a product through the brands field.
If you are building an integration, do not rely only on whether a brand appears in the admin area. Check the API response for a product and the separate brand list. If the store runs a WooCommerce version where brands are not yet available as a core feature, the code should disable dependent capabilities cleanly or require a compatible version. This is especially important for SaaS integrations, importers, and mobile apps.
How to Connect Brands to Real Store Navigation
Creating brands is technically straightforward. Making shoppers actually use them is harder. Brand navigation should be built into the product-selection journey, not left on a separate page that no one opens. In WooCommerce, that means a brand should appear where it helps narrow choices, reinforces trust in a product, or leads to similar items.
Start by mapping the user journey. A shopper may enter the store through a category, search, product page, advertising page, brand page, or filter. Brand serves a different purpose at each entry point. In a category, it narrows the list. On a product page, it confirms the manufacturer and leads to other products from the brand. On a dedicated brand page, it collects the assortment in one archive. In a product feed, it becomes a technical attribute for an external channel.
Category Plus Brand
The clearest workflow is a "Sneakers" category with a brand filter. The shopper chooses the product type first and then narrows the selection by manufacturer. Here, the brand should not replace the category. It should be visible as a filter, but it does not need to occupy a place in the top-level menu. If every brand is placed in the top menu, it quickly becomes long and unhelpful.
Test this workflow in a real category. Open a category with many products, select a brand, and check whether the heading remains clear, pagination still works, and price and attribute filters do not conflict. If the page feels empty or unclear after selecting a brand, add a short description, improve the order of filters, or limit brand display to places where brands actually exist.
Product Page Plus Brand Archive
On a product page, a brand should work as a trust signal and a link to similar products. When shoppers view a specific model, the brand logo or name helps clarify the context: an official manufacturer, product line, collection, or seller. However, the brand should not distract from the price, availability, specifications, and purchase button.
The right placement for the brand depends on the theme. In one store, a logo may fit beside the short description; in another, below the title; in a third, inside a specifications block. If you add a brand through a snippet, do not choose a position blindly. Compare several WooCommerce hooks on a copy of the site and keep the option where the brand is visible without disrupting the product page.
An "All Brands" Page as a Directory, Not a Logo Dump
An "All Brands" page is not necessary for every store, but it can become a useful directory for a large catalog. The mistake is displaying hundreds of logos without alphabetical navigation, descriptions, or order. Shoppers should not have to scroll through a long wall of images to find one brand.
If there are many brands, start with [product_brand_list]. An alphabetical directory is usually more useful than a large grid. If there is a moderate number of brands and logos are carefully prepared, you can use [product_brand_thumbnails]. Add short descriptions or separate landing pages for key manufacturers, but do not inflate every brand page with the same text.
Brand Search
Native WooCommerce and WordPress search does not always search taxonomies the way shoppers expect. Therefore, having a brand in product_brand does not guarantee that searching for a brand name will find all of its products. Search is a separate concern. If users frequently type manufacturer names into your store search box, test this manually.
Enter a brand name into store search and review the results. If products are not found, you can consider a search plugin that supports taxonomies or an additional configuration for your existing search. In this workflow, WooCommerce Brands provides clean data, but the search system must know how to use it. Do not replace this with duplicate categories created solely for search purposes, or the catalog structure will become messy.
Migrating from Third-Party Solutions and Legacy Attributes
Many stores started managing brands before WooCommerce core included a native mechanism. Some used a "Brand" attribute, some used a second-level category, and others used YITH, Perfect Brands, Premmerce, BeRocket, or a custom taxonomy. When moving to WooCommerce Brands, the main goal is not to lose the meaning of the data or create two parallel systems that look identical to administrators but behave differently in code.
Identify the Source of Truth First
The source of truth is where brand data will be stored after the migration. If you choose the native product_brand taxonomy, all filters, pages, imports, and snippets should gradually move to it. If you retain a third-party plugin, you need to understand why it remains necessary: perhaps it provides a carousel, banners, advanced widgets, or integration with another product. A mixed setup is acceptable only temporarily and only with a clear plan.
Before migrating, create a simple table containing the old field, new brand, number of products, old URL, new URL, where it is used on the site, and which filter or feed depends on that field. The table may seem tedious, but it prevents the most expensive mistake: unnoticed duplicates and lost relationships across hundreds of products.
Migrating from a "Brand" Attribute
If brand data was stored as an attribute, do not remove the attribute immediately. First check which products use it for variations, filters, SEO templates, or feeds. The "Brand" attribute may have started as a simple text label, but in some stores filters and imports depend on it. Removing it without checking can break navigation.
A safe order is to export products containing the attribute, prepare a brand column in the format supported by your importer, upload a small test set, check archives and filters, and then decide whether to keep the old attribute as a temporary fallback. After the migration is complete, you can hide the old attribute from the storefront or remove it only after creating a backup and checking redirects.
Migrating from a Third-Party Plugin
Third-party plugins may store brands as their own taxonomy, use custom metadata, add banners, links, logo settings, and widgets. As a result, disabling such a plugin directly may remove not only an admin panel but also storefront blocks, styles, carousels, SEO fields, and shortcodes.
If the third-party solution provides an export, use it for analysis, but do not assume it is an automatic migration to product_brand. Compare the structure: where the logo is stored, where the description is stored, how the slug is built, whether hierarchy exists, and which products are assigned. If the data set is large, migrate through a test CSV or a small developer script rather than manually inside a live admin area.
Post-Migration Checks
After migration, do not check only the first 5 products. Use different cases: a product with no brand, a product with one brand, a product with multiple brands, a product from an old brand category, a product from a popular category, and a product included in an external feed. This shows where data was preserved and where old dependencies remain.
Also check pages containing legacy shortcodes. If they use something like [yith_wcbr_product_brand] or another plugin's shortcode, WooCommerce Brands is not required to understand them. Replace those pages with current shortcodes, blocks, or template inserts. If you leave an old shortcode after disabling its plugin, shoppers will see an empty block or the shortcode text itself.
Safe Improvements to Brand Appearance and Display
WooCommerce Brands does not always display a brand in the exact location and style a particular store needs. Sometimes configuring the theme or shortcode is enough. Sometimes a small snippet is needed. The important point is not to edit WooCommerce, the legacy plugin, or theme files directly. Use a child theme, Code Snippets, or native template mechanisms so updates do not erase your changes.
Display the Brand Name in Product Lists
If the theme does not show the brand in a product grid, you can add a small PHP snippet. It is based on the fact that WooCommerce uses the product_brand taxonomy and provides the wc_get_brands() function in the current implementation. Before using it, verify on a copy of the site that the function exists and that the output does not duplicate an existing theme block.
Add the code through Code Snippets or the child theme's functions.php file:
<?php
add_action( 'woocommerce_after_shop_loop_item_title', 'jf_show_product_brand_in_loop', 6 );
function jf_show_product_brand_in_loop() {
if ( ! function_exists( 'wc_get_brands' ) ) {
return;
}
global $product;
if ( ! $product instanceof WC_Product ) {
return;
}
$brands = wc_get_brands( $product->get_id(), ', ', '', '' );
if ( empty( $brands ) ) {
return;
}
echo '<div class="product-loop-brand">' . wp_kses_post( $brands ) . '</div>';
}
After enabling it, open a product category. A brand line should appear below the product title. If the line appears twice, disable the snippet and find the theme's native setting. If the line does not appear, check that the product has a brand assigned and that wc_get_brands is available in your WooCommerce version.
A Clean CSS Adjustment for Logos
If the logo grid looks uneven, start with CSS instead of editing PHP. The goal is to align logo heights, preserve spacing around them, and avoid stretching images. The class may differ in your theme, so inspect the block HTML in your browser before applying anything. The example below provides safe styling for a custom container that you can use around a brand page or adapt to the class you find.
.brand-logo-grid img,
.product-loop-brand img {
max-height: 72px;
width: auto;
object-fit: contain;
display: inline-block;
vertical-align: middle;
}
.product-loop-brand {
margin-top: 0.35rem;
font-size: 0.875rem;
line-height: 1.35;
}
The check is simple: open the brand list page, a category, and one product. Logos should not stretch, and brand text should not break the product-card height. If the theme uses its own classes and the rule does not apply, do not force CSS with random !important declarations. First identify the real selector responsible for the output.
Change the Brand Base Without PHP When a Setting Is Available
Older documentation includes a snippet for changing the slug through the register_taxonomy_product_brand filter. In current Product brands documentation, a standard store should preferably begin with Settings > Permalinks and the Product brand base field. This is safer because the setting is visible to administrators and is not tied to hidden code.
A code-based option makes sense only where a developer-managed structure is required and you understand the URL consequences. For most stores, the native permalink setting, saving changes, and checking archives are enough.
How to Verify the Setup After Configuration
Verification should cover more than the visible brand block. It should cover the shopper's entire path. A brand is configured correctly when its data is saved in the admin area, displayed where needed, opens the correct archive, participates in filtering, and does not create duplicates or empty pages.
Administrator Checklist
- Open
Products > Brandsand confirm that the brand exists only once, with no duplicates or name errors. - Open a product and make sure the brand is selected in the
Brandspanel. - Open the product in the storefront and check where the brand appears.
- Go to the brand archive and confirm that it contains products.
- Open the page containing the brand-list shortcode and check that the brand appears in the correct order.
- Check the brand filter if the store uses one.
- Clear the cache and repeat the check in a private browsing window.
Shopper Test
Ask someone who did not configure the site to find a product from a particular brand. Give them a task without hints: "find all products from brand X" or "filter sneakers by brand Y." If they do not understand where to click, the problem is not WooCommerce Brands. It is the navigation, filter placement, link text, or visual prominence of the logo.
A good brand page should be understandable without instructions. The shopper sees the name, recognizes the logo, clicks it, reaches a product list, and can narrow the selection by category, price, or attributes. If the path requires an administrator to explain it, it needs to be simplified.
Checks After Updates
After updating WooCommerce, the theme, or a filtering plugin, check brands through a short route: one product, one archive, one list page, and one filter. WooCommerce has had issues with shortcode display under certain parameters, so pages containing shortcodes should be included in the store's regression testing.
If an update changes the appearance, first identify the scope: did only the logo grid break, a specific shortcode, brand archives, the filter widget, or the admin panel itself? This saves time and avoids dangerously disabling all of WooCommerce because of one CSS issue.
Diagnosing and Fixing Common Problems
Most WooCommerce Brands issues fall into four groups: the brand is not assigned to a product, the archive does not open because of permalinks, the shortcode does not display the expected data, or the theme or filter does not support the required display method. The guidance below helps you diagnose these issues without taking risky actions.
The Brand Exists but Is Not Visible on the Product
Symptom: the brand appears in Products > Brands, but shoppers cannot see it on the product page. Possible causes include the theme not displaying brands automatically, no brand being assigned to the product, the brand having no image, or a legacy shortcode being placed in the wrong context.
What to Check
- Open the product in the admin area and make sure the brand is selected in the
Brandspanel. - Check the brand archive. If the product appears there, the relationship has been saved correctly.
- Check whether the theme displays the brand only through a separate setting or template.
- If you use
[product_brand], make sure it is on a product page or receives a validpost_id.
How to fix it: enable the theme's native output, add the shortcode in the correct product area, or use a safe snippet through a child theme. If the brand is not needed on the product page, do not force a logo into the layout. In some cases, an archive and filter are enough.
The Brand Archive Is Empty or Opens in the Wrong Place
Symptom: the brand page opens but has no products, or the link leads back to a product, category, or error page. Possible causes include a product hidden from the catalog, a brand assigned to the wrong object, unsaved permalinks, a slug conflict with another page, or cache serving an old URL.
What to Check
- Product status: it must be published and visible in the catalog.
- Brand assignment: make sure the actual brand is selected, not a similar attribute or category.
- The
Settings > Permalinkssetting and theProduct brand basevalue. - Whether a page, category, or third-party taxonomy uses the same
slug.
How to fix it: save permalinks, change the conflicting slug, clear the cache, and check the archive in a private browsing window. If the problem appeared after migrating from a third-party plugin, compare the old and new taxonomies.
The Brand List Shortcode Displays Nothing
Symptom: the brand-list page is empty even though brands exist. WooCommerce has previously had issues with certain shortcodes and the parameter for hiding empty brands, so begin diagnosis by simplifying the shortcode.
What to Check
- Temporarily use the minimal shortcode
[product_brand_list show_empty_brands="true"]. - Check whether brands contain products if you hide empty brands.
- Remove
number, customorderby, and complex parameters. - Check whether the shortcode was inserted somewhere that the editor or builder escapes it as regular text.
How to fix it: first get the minimal list to display, then restore parameters one at a time. If the problem appeared immediately after a WooCommerce update, check the changelog and issue tracker before rebuilding the page.
Two Brands Items Appear in the Products Menu
Symptom: two similar brand items appear under Products in the admin area. A possible cause is that WooCommerce's built-in brands and a third-party plugin or legacy taxonomy are active at the same time. The state is not inherently dangerous, but a content manager may assign brands in one section while the theme displays the other.
How to fix it: do not remove data immediately. First identify which item is connected to product_brand, which products are already tagged, which pages use shortcodes, and which filters are configured. Then choose the primary mechanism and prepare a migration plan. If brands already exist in two places, merge the data through a test import or a developer, not manually in a live catalog.
Duplicate Brands Appeared After an Import
Symptom: the brand list contains similar terms such as "Sony," "sony," "Sony ", and "Sony Europe." Possible causes include different CSV values, spaces, capitalization, incorrect hierarchy, or importing into a different taxonomy.
How to fix it: stop the bulk import, export the problematic rows, clean up the brand dictionary, and repeat the test with a small data set. It is better to fix duplicates before they reach filters, URLs, and external feeds. If duplicates are already indexed, you will need careful redirects and internal-link updates.
The Brand Filter Does Not Affect Products
Symptom: the filter is displayed, but selecting a brand does not change the product list. Causes can vary: the filter reads an attribute while products are tagged with the product_brand taxonomy; the AJAX filter conflicts with the theme; page cache serves outdated listings; or products are hidden by visibility settings.
How to fix it: check which taxonomy the filter uses. If it supports custom taxonomies, select product_brand. Then disable AJAX mode temporarily, clear the cache, and test a normal page reload. If standard filtering works but AJAX does not, the problem is in the interaction between the filter and the theme.
Limitations and Debatable Choices
WooCommerce Brands does not solve every manufacturer-related or navigation-related task. It provides a brand structure, but it does not replace a full-featured filter, SEO plugin, bulk-editing system, redirect manager, or product feed. The best outcome comes when every part of the system handles its own responsibility.
A Brand Carousel Is Not a Core Promise
In WooCommerce discussions, users often ask about carousels, advanced lists, brand display below a product thumbnail, and other design formats. The built-in feature and legacy documentation provide shortcodes, widgets, and basic display methods, but you should not treat every complex promotional block as a required part of WooCommerce Brands.
If you need a logo carousel, advanced appearance settings, or a sophisticated brand-page builder, you may need a theme, blocks, a separate plugin, or custom development. The important part is avoiding duplicate brand storage. Ideally, the visual tool should work with product_brand rather than creating a parallel entity.
Brands Do Not Replace Well-Structured Categories
After enabling brands, store owners sometimes try to simplify the entire category tree by keeping only manufacturers and moving product types into attributes. For most stores, this is a poor approach. Categories are still needed for assortment structure, menus, landing pages, and shopper behavior. Brand is an additional way to browse, not a replacement for the catalog.
Third-Party Filters and Themes Require Testing
Even when WooCommerce stores brand data correctly, a theme or filter may not display it automatically. That is normal: not every theme supports new WooCommerce elements in the same way. Before choosing a theme or filter, check support for the product_brand taxonomy, the appearance of the brand archive, compatibility with block templates, and cache behavior.
If a theme developer promises "brand support," clarify which brands they mean: built-in Product brands, legacy WooCommerce Brands, the theme's own system, or a third-party plugin. These options look similar to users, but differ in imports, URLs, and templates.
When WooCommerce Brands Is the Right Choice
WooCommerce Brands is a good choice when you need a clear, maintainable brand structure within WooCommerce: brand creation, product assignments, archives, shortcodes, widgets, imports, APIs, and connections to product data. For new stores, check the built-in Product brands feature in WooCommerce core first. For older stores using the legacy extension, review compatibility and the migration plan.
If you now understand which brands your catalog needs, where they should appear, and how you will verify the outcome, you can move on to a practical test. Configure one brand on a copy of the site first, then check the archive, product page, brand list, and filter. After a successful test, you can download the ZIP archive or use the native WooCommerce mechanism available in your installation if it already includes Product brands.
The main point is not to treat brands as decorative labels. They are part of product data. When configured carefully, they help shoppers find familiar brands faster, make the catalog easier for administrators to maintain, and provide external systems with cleaner product information.
WooCommerce Brands Questions Before Implementation
Do I Need to Install a Separate WooCommerce Brands Plugin on a New Store?
First check whether your WooCommerce installation includes the native Products > Brands section. Brand functionality has moved into WooCommerce core, while the old WooCommerce Brands product page is marked as retired. A separate archive may only be needed to support an older compatible installation or a transition workflow, but do not start with it before checking.
Can I Use Brands Instead of Categories?
Usually, no. Categories describe product groups, while brands identify a manufacturer or label. If you replace categories with brands, shoppers will have a harder time finding products by type. It is better to use brands as additional navigation on top of a well-structured category system.
Why Is the Brand Not Displayed on the Product Page?
Check whether the brand is assigned to the product, whether the brand has a thumbnail, whether the theme displays the brand automatically, and whether a shortcode or template insert is required. If the brand archive displays the product, the relationship is saved. The problem is then with display rather than data.
How Do I Create an "All Brands" Page?
Create a standard page and insert a shortcode in a Shortcode block. For an alphabetical list, use [product_brand_list show_empty_brands="false"]; for a logo grid, use [product_brand_thumbnails number="24" show_empty="false" columns="6"]. After publishing, make sure clicking a brand opens an archive containing products.
What Should I Do If Duplicate Brands Appear After an Import?
Stop the import, prepare a single brand-name dictionary, and check the CSV for extra spaces, different capitalization, and different spellings of the same brand. Then test a small import. It is better to correct duplicates before connecting filters and external feeds, otherwise the issue spreads throughout the store.
Do Brands Work with Google for WooCommerce?
Product brands documentation describes mapping a brand to the Google Brand attribute through the Taxonomies - Brands field. After configuration, check the feed and product statuses in Google for WooCommerce. Assigning a brand alone does not guarantee that every external-channel requirement has been met.
Can I Display a Brand Below the Product Title in a Category?
Yes, if the theme supports that display or if you use a safe snippet through a child theme or Code Snippets. In the current implementation, you can rely on the wc_get_brands() function, but first verify that it is available and that your theme does not create duplicates.
When Is a Third-Party Brand Plugin a Better Choice?
A third-party solution makes sense when you need advanced design settings, carousels, banners, nonstandard widgets, integration with a specific developer's ecosystem, or specialized imports. But if the native taxonomy, archives, shortcodes, and basic filtering are enough, WooCommerce Brands or built-in Product brands are usually easier to maintain.


