Breadcrumbs, Categories and Tags on Affiliate Sites: The Structure Google Reads and the Pages It Shouldn't
WordPress gives a new site three ways to group posts (categories, tags, archives) and a URL structure, and it sets all four to defaults that suit a diary.
An affiliate site is a set of topics with guides under them, and the defaults produce dozens of thin archive pages competing with the guides, a category path in every URL, and no breadcrumbs. Half an hour before the first post sets it right; after a hundred posts it's a redirect project.
This post covers categories (one per post, built to match the hubs), why tags should be noindexed or absent, breadcrumbs and the markup that puts them in the result, the URL question, the archive pages that leak crawl attention, and the WordPress settings that fix each.
It's the taxonomy half of the site structure post, which covers hubs and silos; this is the plumbing under them.
The short answer
One category per post, matching the site's topics, with a hand-written hub as the category's page. No tags, or tags noindexed. Breadcrumbs on every post (Home → Topic → Post) with BreadcrumbList markup. Flat URLs without the category path. Noindex date, author, search and attachment pages. Thirty minutes in the SEO plugin and the permalink settings, done before the first post.
Categories: one per post, matching the hubs
A category on an affiliate site is a topic: bike lights, bike locks, bike computers. Each guide goes in exactly one, because a guide in two categories has two breadcrumb paths, two archive listings and an ambiguous place in the site.
The category's archive page is the one WordPress generates (a list of posts, newest first), and it's a poor page for a topic; the hub pages post covers writing the real one.
Two ways to reconcile them: make the hub the category page (some themes and SEO plugins let you put written content above the archive list, or assign a page as the category's landing), or keep the hub as a page, link it from the breadcrumb and the menu, and noindex the archive. Either works; what doesn't is a hub and a category archive both indexed for the same topic.
Tags: noindex or none
Every tag creates an archive page: /tag/usb-c/ listing three posts with a title and an excerpt each. On a diary that's navigation; on a product site it's a thin page targeting "usb-c" that competes with the guide that actually covers USB-C lights and loses, while using crawl attention a new site doesn't have. Fifty posts with five tags each is a hundred or more of these.
The fix is one setting in the SEO plugin (noindex tag archives) or the simpler one of not tagging at all. Internal links in body text do everything tags were supposed to, with anchor text you chose.
Breadcrumbs
Home → Bike lights → Best bike lights for commuting, at the top of every post. Three things they do: show the reader where they are, give Google the page's position in the hierarchy, and add one internal link to the hub from every post in the topic, which is a link the hub would otherwise have to earn post by post.
With BreadcrumbList markup (most SEO plugins add it when breadcrumbs are on), Google shows the path in the result instead of the URL, which reads better and tells the searcher the site has a topic, not just a page. Of all the markup an affiliate site can add, breadcrumbs give the most visible result for the least work.
The URL question
| Structure | Example | For | Against |
|---|---|---|---|
| Flat | /best-bike-lights-commuting/ | Short; survives a category move; one click from home | Hierarchy isn't in the URL (breadcrumbs cover it) |
| Category path | /bike-lights/best-bike-lights-commuting/ | Hierarchy visible in the URL | Longer; moving a post means a redirect; the default nobody turned off |
| Date path | /2026/10/best-bike-lights-commuting/ | Nothing | Dates the page forever; the WordPress default on some installs |
Flat, set in Settings → Permalinks to "Post name" before the first post. Changing it later means a redirect for every URL and a few weeks of wobble; the structure post covers the reasoning and it hasn't changed.
Archives that leak crawl
- Date archives (/2026/10/): a diary feature. Noindex or disable.
- Author archive on a one-author site: a duplicate of the blog index. Noindex, or make it the about page.
- Search result pages (/?s=): infinite, thin, and crawlable if linked. Noindex.
- Attachment pages: WordPress creates a page per uploaded image. Redirect to the parent post or disable; most SEO plugins have a switch.
- Paginated archives (/page/2/ and beyond): keep crawlable so posts are reachable, but let the SEO plugin handle them; indexing them adds nothing.
- Category archives where a hub exists: noindex the archive, index the hub.
On a new site these pages can outnumber the real ones, and the indexing post covers why that matters: Google's attention on a new domain is limited, and every thin archive it fetches is a guide it didn't.
The settings, in order
- Settings → Permalinks → Post name. Before the first post.
- SEO plugin → taxonomies: tags noindex (or delete the tags); category archives noindex if you're using hubs as pages.
- SEO plugin → archives: date and author noindex; search noindex; attachment pages redirect to parent.
- Theme or SEO plugin → breadcrumbs on, with markup; place them above the title.
- Create the categories to match the topic list; one per guide, assigned at publishing.
Doing it with AffSERP
AffSERP publishes each guide into one WordPress category you set per batch, so a batch of commuter-light guides lands under "Bike lights" with the breadcrumb and the category link in place, and adds no tags.
The flat URL comes from the slug it builds (the keyword, no year, no stop words), and the internal links it writes in body text do the cross-referencing that tags were meant to. The permalink and archive settings are the thirty minutes in WordPress above, done once.
FAQ
Should I use categories or tags on an affiliate site?
Categories, one per post, matching the site's topics. Tags create a thin archive page for every tag, and on a product site those pages compete with the guides for the same words while saying nothing. Either noindex tag archives in the SEO plugin or don't use tags at all. The same goes for date archives and the author archive on a one-author site.
Do breadcrumbs help SEO?
Modestly and reliably. Breadcrumbs with BreadcrumbList markup show in the result instead of the raw URL, give Google the page's place in the site, and add one internal link up to the category and the hub from every post. They don't move rankings on their own; they make the structure legible, which is what the rest of the structure work is for.
Should the category be in the URL?
No. A flat URL (site.com/best-bike-lights-commuting/) is shorter, survives a post moving between categories, and loses nothing Google can't get from breadcrumbs and internal links. The category path in the URL is a WordPress default worth turning off before the first post; after publishing, changing it means redirecting every post.
What pages should be noindexed on a WordPress affiliate site?
Tag archives, date archives, the author archive on a single-author site, search result pages, paginated archive pages beyond the first, attachment pages, and the category archive if a hand-written hub does its job. Keep indexed: the homepage, the hubs, every guide, review, comparison and informational post, the about page. The list is shorter than the exclusions.
AffSERP publishes each batch into the WordPress category you set, builds the slug from the keyword, and cross-references guides with body-text links instead of tags.
Start with free words