# Manufacturer Pages — Reasoning & Recommendations

**Companion to:** [feature-design-guidelines.md](feature-design-guidelines.md), [USAClean_IA_Search_Roadmap.md](USAClean_IA_Search_Roadmap.md), [USAClean_Sitemap_Recommendations.md](USAClean_Sitemap_Recommendations.md), [model-landing-concepts.md](model-landing-concepts.md), [search-experience-concepts.md](search-experience-concepts.md)
**Live preview:** [A · Machine-first](../v2/brand-tennant-a.html) · [B · Parts-first](../v2/brand-tennant-b.html) · [C · Brand hub](../v2/brand-tennant-c.html) · [Review deck](../reviews/brand-pages.html)
**Decision of record:** (pending — no client decision yet; see [decisions.md](decisions.md))
**Date:** September 2026 (live audit 2026-09-29)

This document lays out three directions for the manufacturer category pages, with Tennant as the worked example (`/parts-and-supplies/tennant/`). Each direction is split into quick wins, near-term updates and future possibilities, and every move is classed as BigCommerce out of the box (OOTB), a Marketplace app, or custom development.

---

## TL;DR

The manufacturer page today is a machine directory stacked on top of a product list.

- On the Tennant page, 252 machine tiles, plus the same 252 models again in the sidebar, come before any part. The first part sits **11,870px down on a desktop and 26,645px down on a phone (33 screens)**.
- Price is the only filter.
- Browsing stops at 10,000 products.
- Every one of the ~399 manufacturer pages uses the same template; Nilfisk-Advance renders 782 tiles.

Three directions, each one template for every brand:

| Direction | The page's job | Above the fold | Serves best | Scales with |
|---|---|---|---|---|
| **A · Machine-first** | Route to the model page | "Which Tennant do you have?" finder, popular machines | Techs who know their machine, the dominant behavior | The number of models: about 245 rows to tag for Tennant |
| **B · Parts-first** | Find the part on this page | Search within the brand, part-type chips, results with filters | Restockers and part-number shoppers | The catalog: attributes on 10,000+ Tennant parts |
| **C · Brand hub** | Orient, then route | Brand header and three doors: machine, part type, documents | First-time and Google visitors | The number of brands: content per brand |

**Recommendation: A as the base layout, with C's documentation and service strip grafted on, and B's filters arriving in two steps.**
- **Step 1:** native Category and in-stock filters as quick wins.
- **Step 2:** HawkSearch landing pages, once dashboard access arrives.

A and C scale with models and brands, so they can ship in weeks. B scales with the catalog. This is the same reasoning as [PD-008](decisions.md).

| Phase | What ships on the recommended path | Class |
|---|---|---|
| **Quick wins** | The fix-first list, category sort order, native Category and in-stock filters, search within the brand at the top, the live finder pre-set to the brand, and document and service links in the description | OOTB, plus two small custom edits |
| **Near-term** | One brand template (machine types, popular models, collapsed older models) with C's documentation and service strip, for the top 20 brands; HawkSearch landing pages for filtering | Custom template, plus an app already paid for |
| **Future** | Serial and photo lookup; "your machines first"; OEM-to-aftermarket cross-reference; interactive diagrams | Custom, app, or Catalyst |

**Before and after**, measured at 1440x900 and 375x812:

| Page | Desktop | Phone |
|---|---|---|
| Today (live): first part | 11,870px down | 26,645px down |
| A: the finder | 443px (inside the first screen) | 609px |
| B: first product card | 479px | 663px |
| C: the three doors | end at 872px | first door at 777px |

## Current state

Measured on the live site on 2026-09-29, at 1440x900 and 375x812.

### The Tennant page today

| Measure | Value |
|---|---|
| Machine tiles before any part | 252, each 178x178px; the same 252 models repeat as a sidebar list |
| First part | 11,870px down on a desktop; 26,645px down on a phone, 32.8 screens |
| Model order | Sorted as text: 1000, 1040S, 110, 1100, 1120... |
| Duplicates | T1-B and T1B; V BP 10, V-BP 10 and V-BP-10 (three URLs); V BP 6 and V-BP-6; V-WA 30 and V-WA-30 |
| Not a model | "36V BATT CHARGR" (a charger) sits in the model list |
| Off-brand tile | "355" on the Tennant page links into Atlas Material Handling's tree (`/parts-and-supplies/atlas-material-handling/355/`) |
| Filters | Product Filtering is on; Price is the only filter; the label renders "Browse by & Price" |
| Labels | 5 of the first 20 cards are titled "Aftermarket" but flagged "OEM" |
| Pagination | Stops at exactly 10,000 products (500 pages of 20, or 100 of 100); parts past that cannot be reached from this page |
| The heading's promise | "Tennant - Parts, diagrams, manuals, and support". The page offers no diagrams, manuals or support entry. |
| Search within the brand | Exists (a theme feature), but sits below all 252 tiles |

### The same template on every manufacturer page

| Brand page | Machine tiles | Filters |
|---|---|---|
| Nilfisk-Advance | 782 | Price only |
| Minuteman | 318 | Price only |
| Tennant | 252 | Price only |
| TASKI by Diversey | 171 | Price only |
| Floorcare.biz | 14 | Price only |

### What the rest of the site already does

| Surface | What it does today | What these directions reuse |
|---|---|---|
| Homepage finder | Searchable manufacturer, then model, across 292 manufacturers; 248 Tennant models | Direction A's finder, once its routing is fixed |
| Model pages (T500E) | Machine photo, expert contacts, 713 parts, 52 diagram links, manuals, bulletins and brochures | The destination Direction A routes to. Much of the model-landing Phase 1 idea is already live here. |
| `/parts-and-supplies/` | A-Z quick links, letter-by-letter lists, a top-brands logo rail | The jump-list pattern for the older models |
| `/diagrams/` | A documentation library searchable by manufacturer; most viewed includes Tennant 5680, T7 and T3 | Direction C's documentation door |
| Search (HawkSearch) | Works; filters are Category, Price, Condition and Sale Price only | Direction B's near-term engine |

The finder's lists and the category tree do not match (292 manufacturers against about 399 brand pages; 248 Tennant models against 252 tiles), so reconciling them belongs with the finder fix.

### Fix first (any direction)

These are defects, not design choices. They go to the theme developer and the merch team now, whichever direction is picked.

1. **The homepage finder builds its links from display names.** Tennant Company plus T500E goes to `/parts-and-supplies/Tennant-Company/T500E/`, which returns 404.
   - The real page, `/parts-and-supplies/tennant/t500e/`, works. A near-empty "Tennant Company" category (1 model, 0 products) makes the brand-level link resolve while the model-level one fails.
   - Of 11 other manufacturer names checked, 8 return 404 the same way, including Floorcare.biz (promoted beside the finder on the homepage), Clarke (Alto), and APA and Kent (Nilfisk-Advance). 50 of the 292 finder names don't match a brand address.
   - **Fix:** link to the category the shopper picked (each option already carries its id), and retire the stray category.
2. **Clean up the model list:**
   - merge the duplicates, with 301 redirects: T1-B to T1B; V BP 10 and V-BP 10 to V-BP-10; V BP 6 to V-BP-6; V-WA 30 to V-WA-30
   - move the charger out of the list, and re-point or remove the off-brand "355" tile
3. **Make the OEM flag agree with the "Aftermarket" names.**
4. **Fix the "Browse by & Price" label and the "Tennat" logo alt text.**

### Who lands here

From the Clarity data in the [IA roadmap](USAClean_IA_Search_Roadmap.md) (March 2026):
- Tennant is the top non-search page (119 sessions).
- **100% of organic browse sessions go brand to model.**
- 25.6% of sessions end in a quick back.
- 37% of traffic is mobile.
- Search is 32% of sessions.

A manufacturer page serves six visitors:
1. **Knows the machine:** gets to the model page in one step. This is the dominant job.
2. **Knows the brand but not the model:** recognizes the machine by type or photo, finds the model plate, or asks.
3. **Has a part number:** searches within the brand.
4. **Restocks consumables across several machines:** shops by part type, and chooses OEM or aftermarket.
5. **Wants documents or service:** diagrams, manuals, a technician. This is what the heading promises.
6. **Arrives from Google on "Tennant parts":** needs to see what the store has for the brand and where to go next.

## References

Three parts sellers with the same brand-page problem, checked live on 2026-09-29.

**Parts Town, Hobart page (foodservice equipment parts).** A filterable parts listing with brand content on top:
- a Model filter, and a searchable Part Category filter with counts
- a "How to find your Hobart model and serial number" link
- a brand-and-model "Partpredictor", and search by serial number in the header
- list rows showing the maker's part number, their own part number, "In Stock, Ships today", a quantity box and add to cart

The closest to B with a slice of C.

**Repair Clinic, Amana page (appliance parts).** Search first:
- one large field for "part number, model number or problem", and a "Help me find my model number" link
- above the results: "Multiple models matched. Select your model to confirm fit"
- 70,813 results with search within and category filters; cards say "Genuine OEM Part #"

Direction B with A's fit prompt.

**Sweepscrub, Tennant page (floor-care parts, a direct competitor).** A directory:
- an intro paragraph that names popular Tennant models by machine type ("Rider Sweepers like the S20 & S30")
- a grid of model cards with no filters; the page runs 7,460px tall
- its navigation labels models by type ("Tennant S20 Ride on Floor Sweepers")

Direction A without the finder.

**The pattern across all three:** each page names the model-number problem out loud, with a help link or type labels, and none makes the visitor scroll a model grid to reach a part.

USA Clean's own `/parts-and-supplies/` A-Z brand index is the cleanest browse page on the site, and the pattern Direction A borrows for its older models.

## What BigCommerce Stencil gives us

- **Category sort order.** Every subcategory has a `sort_order`, set by drag order in the control panel or through the Catalog API. It puts popular and current models first with no code.
- **Product Filtering** (Pro and Enterprise plans).
  - Filter types: Category, Brand, Price, Rating, Product Options, Custom Fields, and "Other" (in stock, free shipping, featured).
  - Already switched on for this store, with Price as the only filter configured.
- **The Contextual Filters API** (`/v3/settings/search/filters/contexts`). A different filter set per category (category pages only, default channel). This is how the Tennant page gets "fits model" (the Category filter over its model subcategories) and an in-stock filter without touching other categories.
- **Custom category templates** (`templates/pages/custom/category/*.html`), assigned per category. One `brand.html` serves every manufacturer page.
- **Category metafields**, read through GraphQL in the template's front matter. They hold a model's `machine_type` and `era`, and a brand's popular-models list.
- **Page Builder** widgets in regions the theme defines. Whether the Supermarket theme defines a region on category pages is still to verify.
- **The URL redirect manager**, with CSV import, for the merged duplicate models.
- **The theme's search within category**, already on every brand and model page.

## Stencil limitations

- **No model-search box.** The finder is custom, and it's already built on the homepage.
- **No grouping of subcategories by an attribute.** Subcategories render as one flat list in sort order; type sections need the custom template.
- **No searchable filter for 250 values.** The native Category filter lists values with "show more"; a model search that sets the filter is custom.
- **Custom-field filters may need Enterprise.** Older BigCommerce documentation limits them to that plan; confirm USA Clean's plan.
- **Pagination stops at 10,000 products** (measured), and BigCommerce advises staying under 10,000 per category. Filtering, or HawkSearch landing pages, is the way past it.
- **Page Builder works only where the theme defines regions.**
- **No FAQ block or FAQ markup natively.** The content goes in the description; the markup goes in the template.

## App marketplace shortlist

| App | What it does | Price | Verdict |
|---|---|---|---|
| **HawkSearch landing pages** (already installed) | Powers category and brand pages with Hawk's filters, merchandising (pin, boost, bury) and banners; needs a category sync and a `category.html` change | Already paid | **Use for B's near-term.** Blocked on Hawk dashboard access. |
| **PartFinder** | Fitment search with custom fields and bulk-imported mappings | $49.95 a month | **Skip.** The category tree already maps brand to model and the finder is built. Fixing the finder is a one-time small build; the app is about $600 a year, every year. |
| **EasySearch** (NexusMedia) | Make, model and year search | About $15 a month (third-party comparison; confirm on the listing) | **Skip**, for the same reason. |
| **Convermax Year Make Model** | Fitment search built for automotive catalogs | $250 to $850 a month | **Skip.** An automotive data model, and it replaces search we already pay for. |
| **Product Part Diagrams** (PapaThemes) | Clickable diagram hotspots that add to cart, with no theme edits | $1,200 a year, 7-day trial | **Future: evaluate on the top 10 models.** Same vendor as the live theme; no reviews yet. |
| **ARI PartStream** | Interactive parts lookup built on manufacturer diagram data, with cart integration | Quote | **Future.** Depends on manufacturer data; USA Clean's diagrams live in its own documentation system. |
| Searchspring, Klevu, Algolia | Replace the search engine | Subscription | **Skip**, per the [search brief](search-experience-concepts.md): the engine isn't the problem. |
| Page builders (Shogun and similar) | Drag-and-drop landing pages | Subscription | **Skip.** The design drifts away from Caster; the [model-landing brief](model-landing-concepts.md) reached the same call. |

## Caster impact

All new CSS stays inside each prototype page (rule 7). The patterns below are marked `SHARED CANDIDATE` in the source and move into Caster when the client picks a direction, as the equipment set did.

- **Shared by all three pages:**
  - `.model-tile` and the machine directory (`.md`), in `js/brand-page-ui.js`
  - the model-search box `.machine-combobox`, in `js/machine-combobox.js`
  - `.product-card__label`, the OEM / aftermarket / other-brand label on part cards
- **Second use of existing patterns:**
  - Direction B reuses the search page's filter group, removable filter chip and filter drawer.
  - Direction C reuses the model-landing `.doc-card`, `.service-block` and `.section-head`.
  - A second use is the rule-7 trigger for promotion. `.section-head` carries its fix: the row stacks below 640px.
- **Page-specific:**
  - A: `.brand-head`, `.finder`, `.popular`
  - B: `.b-head`, `.brand-search`, `.ptype`, `.b-toolbar`
  - C: `.brand-hero`, `.door`, `.faq`, `.c-row`

No token changes and no cache-bust.

## Phased recommendation

**Decision of record:** (pending — no client decision yet; see [decisions.md](decisions.md))

### A · Machine-first

| Phase | Move | Class |
|---|---|---|
| Quick wins | Category sort order puts current and popular models first | OOTB |
| | Stop rendering the model list twice: a theme setting if one exists, otherwise a one-line template change | OOTB or small custom |
| | Put the live finder at the top, pre-set to the brand (after the finder fix) | Small custom |
| Near-term | Brand template: model search with photos, models grouped by machine type, a popular row, older models collapsed, "Where's my model number?" help | Custom |
| | Content: a `machine_type` and `era` tag per model category (about 245 rows for Tennant, 780 for Nilfisk-Advance; top 20 brands first) | OOTB data |
| Future | Serial-number lookup (the T500E parts manual already splits by serial range) | Custom and manufacturer data |
| | Identify the machine from a photo of its data label ([AI Parts Finder](parts-finder-feasibility.html): plate reading is the reliable tier, about 2 cents a search) | Custom |
| | Signed-in "your machines first" (with the fleet phase, [PD-003](decisions.md)) | Custom |
| | Move to the sitemap's `/parts/by-brand/` and `/parts/by-machine/` addresses with bulk 301s | OOTB |

**Graduate to near-term** when, over 30 days after the quick wins, the finder or a model tile is the first click on most brand-page visits, **and** the brand-page quick-back rate is still above the site-wide 25.6%.

**Graduate to future** when "Where's my model number?" is opened on 5% or more of visits, or the AI Parts Finder's half-day evaluation passes.

### B · Parts-first

| Phase | Move | Class |
|---|---|---|
| Quick wins | Category filter (the model subcategories, a first "fits model"), in-stock and free-shipping filters, price, all through the Contextual Filters API | OOTB |
| | OEM-or-aftermarket and part-type filters (only if a part-type field already exists in the catalog) from product custom fields (confirm the plan tier) | OOTB, if the plan allows |
| | Search within the brand and the sort bar move to the top; the tile grid stops rendering | OOTB or small custom |
| Near-term | HawkSearch landing pages power the page (category sync plus a `category.html` change; the theme already includes Hawk's templates, and the search brief's Caster styling applies) | App, already paid |
| | Part-type chips backed by one normalized part-type field, seeded from the Parts by Category tree | Custom and data |
| | Add to cart and quantity on result cards | OOTB setting or custom |
| Future | "Fits my machines" for signed-in fleets; OEM-to-aftermarket cross-reference (the live cards already carry "Matches:" part numbers); bought-before first; Hawk's headless toolkit on Catalyst | Custom or Catalyst |

**Graduate to near-term** when all three hold:
- search within the brand or filter use reaches at least one in ten brand-page visits
- Hawk dashboard access is granted
- a part-type value exists on 80% or more of the brand's parts

**Graduate to future** when the fleet phase enters scope.

### C · Brand hub

| Phase | Move | Class |
|---|---|---|
| Quick wins | Rewrite the category description into the three doors, a service line and a short FAQ | OOTB |
| | Page Builder rows for popular models and top consumables, if the theme has a category region | OOTB |
| | Link the brand's most-viewed diagrams and the manuals library | OOTB |
| Near-term | One brand-hub template fed by category metafields, filled for the top 20 brands; it reuses the model-landing components | Custom |
| Future | A personalized hub: your machines, buy again, parts coming due | Custom or Catalyst |
| | Clickable parts diagrams: the PapaThemes app, ARI PartStream, or a custom build on Catalyst | App or custom |

**Graduate to near-term** when organic search is the largest entry source for brand pages (the GA4 landing-page report).

**Graduate to future** when a policy for discontinued and superseded parts is agreed and signed-in visits are a material share of brand-page traffic.

### The recommended path

1. **Quick wins, all brands, in weeks:**
   - the fix-first list
   - category sort order
   - the native Category and in-stock filters
   - search within the brand at the top
   - the live finder pre-set to the brand
   - document and service links in the description
2. **Near-term, top 20 brands first:**
   - one brand template on Direction A, with C's documentation and service strip
   - HawkSearch landing pages for filtering, when access lands
3. **Future:** the Direction B and C future items, as their triggers arrive.

## Implementation notes

- **Tagging job.** A `machine_type` and `era` per model category: about 245 rows for Tennant and about 780 for Nilfisk-Advance. It is spreadsheet work that finishes, unlike part-level tagging.
- **Redirects.** The four duplicate groups above. Their slugs are recorded in the prototype data (`merged`), ready for a CSV import.
- **Finder fix.** Link to the chosen category's own address; each option already carries an id.
- **Analytics.** Instrument from day one:
  - finder selection
  - type-chip clicks
  - model-tile clicks
  - search within the brand
  - filter applied
  - door clicks (C)
  - FAQ opens (C)
  - quick-back rate on brand pages
- **Accessibility:**
  - The model search follows the ARIA combobox pattern: arrow keys, Home, End, Enter, Escape, and the active option announced.
  - Chips are toggle buttons with `aria-pressed`.
  - The phone filter drawer traps focus, closes on Escape and returns focus to its button.
- **Performance.** Never render 782 tiles. Tagged groups show images; the models without a machine type yet are a plain list; images load lazily.
- **Search engines and AI answers.** The machine list is rendered by the server in the template, never only by script. The FAQ is written to be quotable, which is Stage 1 of the [GEO/AEO plan](geo-aeo-audit.html).
- **Prototype data.**
  - **Live values:** model names, addresses and images; part names, SKUs, prices, images and flags, captured 2026-09-29.
  - **Illustrative:** machine types, eras, popular flags and part types.
  - **Real fitment:** each sampled part's "fits" list is real category membership among the four sampled models (T500E, T7, T3, S20).

> **Flags for the client (not directions).**
> 1. **Fitment may already exist.** The model categories record which parts fit which machine: T500E alone lists 713 parts. The briefs treat part-to-model mapping as a two-to-three-month tagging job that holds back [PD-004](decisions.md) and three Phase 2s. If these assignments are trustworthy, that gate may be much closer.
> 2. **Catalog size disagrees across documents:** about 12k in the model-landing brief, 140,000 in the parts-finder brief, and 268,597 in Hawk's count on 2026-09-29.
> 3. **Plan tier:** confirm Pro or Enterprise, which decides custom-field filters.
> 4. **HawkSearch dashboard access:** still outstanding, and Direction B's near-term depends on it.

## Catalyst / replatform candidacy

**Directions A and C ship entirely in Stencil.** They need native sort order and filters, a custom category template, and category metafields. Nothing in them is hard for Stencil.

**Direction B's near-term also ships in Stencil**, through HawkSearch landing pages.

**B's future adds to the case without making it.** Personalized ordering and instant filtering across 10,000+ parts is the same headless-toolkit case as search Phase 3.

**Class: accumulating evidence.** Not a reason to replatform on its own; the verdict is recorded in [Platform strategy](platform-strategy.md).

## Sources

- Live site, 2026-09-29:
  - [Tennant brand page](https://shop.usaclean.com/parts-and-supplies/tennant/)
  - [T500E model page](https://shop.usaclean.com/parts-and-supplies/tennant/t500e/)
  - [homepage finder](https://shop.usaclean.com/)
  - [brand index](https://shop.usaclean.com/parts-and-supplies/)
  - [diagrams library](https://shop.usaclean.com/diagrams/)
  - [Nilfisk-Advance](https://shop.usaclean.com/parts-and-supplies/nilfisk-advance/)
- BigCommerce:
  - [Contextual Filters](https://docs.bigcommerce.com/developer/docs/admin/catalog-and-inventory/contextual-filters)
  - [Custom Fields](https://support.bigcommerce.com/s/article/Custom-Fields?language=en_US)
  - [products per category](https://support.bigcommerce.com/s/question/0D51B00004oNPcjSAG/how-do-i-display-all-products-on-a-category-page?language=en_US)
- HawkSearch:
  - [BigCommerce app overview](https://developerdocs.hawksearch.com/docs/bigcommerce-installation)
  - [landing pages](https://userguide.hawksearch.com/docs/landing-pages-1)
- Apps:
  - [Product Part Diagrams](https://www.bigcommerce.com/apps/product-part-diagrams/)
  - [PartFinder](https://partfinder.app/)
  - [Convermax Year Make Model](https://www.bigcommerce.com/apps/convermax-year-make-model/)
  - [EasySearch price (third-party comparison)](https://www.x-cart.com/blog/best-ymm-search-tools.html)
  - [ARI PartStream](https://arinet.com/oem/data-authoring-publishing/partstream/)
- References:
  - [Parts Town, Hobart](https://www.partstown.com/b/hobart)
  - [Repair Clinic, Amana](https://www.repairclinic.com/Shop-For-Parts/b1/Amana-Parts)
  - [Sweepscrub, Tennant](https://www.sweepscrub.com/collections/tennant-oem-parts)
- In this repo:
  - [IA roadmap](USAClean_IA_Search_Roadmap.md)
  - [sitemap recommendations](USAClean_Sitemap_Recommendations.md)
  - [model landing](model-landing-concepts.md) (PD-008)
  - [search experience](search-experience-concepts.md)
  - [megamenu](megamenu-concepts.md)
  - [platform strategy](platform-strategy.md)
  - [AI Parts Finder](parts-finder-feasibility.md)
  - [feature design guidelines](feature-design-guidelines.md)
