关于 product-categorization
面向电商目录建设的技能,指导按 Shopify、WooCommerce、BigCommerce 或自定义平台的原生方式建立分类层级。内容涵盖导航、SEO、批量归类及常见问题处理。
主要功能
- 01规划分类层级与标签
- 02配置平台原生分类模型
- 03优化分类页 SEO 与面包屑
- 04批量分配大型目录商品
- 05处理路径迁移与常见错误
适用场景
- 01为商品目录建立可导航的分类树
- 02将扁平商品清单迁移为分类结构
- 03修复面包屑路径或分类页 SEO
- 04为大型供应商目录批量归类
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill product-categorization安装后在 Claude Code 中输入/product-categorization确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/breadcrumb-query-and-category-move-trans/criteria.jsontask.mdevals/category-data-model-with-materialized-pa/criteria.jsontask.mdevals/seo-meta-tags-and-ai-auto-categorization/criteria.jsontask.md详细介绍
产品分类
概述
结构完善的产品分类体系能让用户轻松找到产品,并通过分类页面提升 SEO。每个平台处理分类的方式各不相同:Shopify 使用产品系列和标签,WooCommerce 使用分层分类和标签,BigCommerce 使用分类及其子分类。了解平台原生的分类模型并正确配置,其效果远胜于构建自定义分类系统。
何时使用此技能
- 构建需要可导航分类树的产品目录时(服装 > 女装 > 连衣裙)
- 将扁平的产品列表迁移到结构化分类体系时
- 缺少面包屑导航或生成的路径不正确时
- 分类页面需要经过 SEO 优化的 URL 和元标签时
- 导入需要自动分类的大型供应商目录时
核心说明
步骤 1:了解平台如何处理分类
| 平台 | 分类模型 | URL 结构 |
|---|---|---|
| Shopify | 产品系列(通过主题实现扁平或嵌套);标签用于额外筛选 | /collections/womens-dresses |
| WooCommerce | 分层分类(父级/子级)+ 标签 | /product-category/clothing/womens/dresses/ |
| BigCommerce | 嵌套分类(深度不限) | /clothing/womens/dresses/ |
| 自定义 / 无头式 | 使用物化路径构建,以便高效查询面包屑 | /c/clothing/women/dresses |
构建前先确定分类层级策略:
- 2–3 层最适合大多数商店(例如:服装 → 女装 → 连衣裙)
- 最多 4 层——更深的层级会让购物者困惑,也会削弱 SEO 效果
- 扁平分类 + 标签适用于小型目录(产品少于 200 件)
步骤 2:平台专属设置
Shopify
Shopify 将产品系列作为主要分类机制。产品系列可以是手动创建的(人工整理),也可以是自动创建的(基于规则)。
创建产品系列层级:
- 前往 Admin → Products → Collections → Create collection
- 以“Women's Dresses”为例:
- 创建父级产品系列:“Clothing”(手动创建,用于导航菜单)
- 创建子级产品系列:“Women's Dresses”(自动创建,规则:标签包含
womens-dress)
- 设置产品系列的 SEO 字段:Title、Meta description 和 URL handle
- 添加产品系列图片和描述——这些内容有助于提升 SEO 和转化率
自动产品系列(基于规则——推荐):
- 设置规则,例如:产品类型等于“Dress”且标签包含“womens”
- 符合规则的产品会自动加入,无需手动整理
- 最适合无法为每件产品手动指定分类的大型目录
手动产品系列:
- 最适合精选商品(例如:“Summer Picks”“Staff Favorites”)
- 在产品系列编辑页面手动添加产品
导航菜单层级:
- 前往 Online Store → Navigation
- 打开主菜单
- 将每个产品系列添加为菜单项;拖动子项到父项下方进行嵌套
- 这样便能在店面导航中创建可视化层级,尽管 Shopify 产品系列在技术上是扁平的
用于额外筛选的标签:
- 添加产品标签,例如
color-red、size-M、material-cotton - 使用分面筛选应用(Boost Commerce、Searchpie),将标签转换为产品系列页面上可筛选的属性
面包屑: 大多数 Shopify 主题会自动包含面包屑。如果没有:
- 前往 Online Store → Themes → Customize
- 在主题设置中搜索“breadcrumb”——许多主题都提供开关
- 对于 Dawn/Debut:面包屑因主题而异,可能需要修改 Liquid 代码
WooCommerce
WooCommerce 具有层级式产品分类,这是最接近传统分类树的方式。
创建分类层级:
- 前往 Products → Categories → Add New Category
- 创建顶级分类:“Clothing”
- 创建子分类:“Women's”——选择“Clothing”作为父分类
- 创建孙级分类:“Dresses”——选择“Women's”作为父分类
WooCommerce 会自动生成适合 SEO 的 URL:
- Clothing:
/product-category/clothing/ - Women's:
/product-category/clothing/womens/ - Dresses:
/product-category/clothing/womens/dresses/
将产品分配到分类:
- 打开产品,然后前往侧边栏中的 Product Categories 小组件
- 勾选所有适用的分类(产品可以属于多个分类)
- 勾选 Primary category,以便在面包屑导航中显示(需要 Yoast SEO)
分类页面 SEO:
- 编辑分类:Products → Categories → [Category] → Edit
- 设置 Description(分类网格上方会显示独特的文本,对 SEO 很重要)
- 上传 Thumbnail 图片
- 使用 Yoast SEO 时:滚动到分类编辑页面上的 Yoast 区域,为每个分类设置 SEO title 和 Meta description
面包屑导航:
- 安装 Yoast SEO(免费),它会自动添加面包屑导航
- 或者在 WooCommerce → Settings → Advanced → Breadcrumbs 中启用面包屑导航
- 配置面包屑分隔符和首页标签
BigCommerce
BigCommerce 采用嵌套分类系统,层级深度不受限制。
创建分类:
- 前往 Products → Product Categories → Add
- 输入分类名称、描述和 URL(BigCommerce 允许自定义 URL)
- 选择 Parent category 将其设为嵌套分类
- 上传分类图片
- 为每个分类设置 SEO Title 和 Meta description
将产品分配到分类:
- 编辑产品
- 在 Categories 下,勾选所有适用的分类
- BigCommerce 支持将产品分配到多个分类
分类排序方式:
- 为每个分类设置排序方式:手动、价格升序/降序、最新商品、畅销商品
- 在分类编辑页面的 Sort Products By 中进行配置
面包屑导航: BigCommerce 主题默认包含面包屑导航,并会自动遵循嵌套分类路径。如有需要,可在主题的 Stencil 文件中自定义面包屑模板。
自定义 / Headless
对于无头店面,请使用物化路径模型,以便高效查询面包屑导航:
// Category model with materialized path
interface Category {
id: string;
name: string;
slug: string;
parentId: string | null;
path: string; // e.g., "clothing/women/dresses" — ancestor slugs joined by /
pathIds: string[]; // IDs for fast joins: ['cat_root', 'cat_clothing', 'cat_women', 'cat_dresses']
depth: number;
position: number; // Sort order among siblings
published: boolean;
seoTitle?: string;
seoDescription?: string;
}
// Get breadcrumbs in one query using materialized path
export async function getCategoryWithBreadcrumb(slug: string) {
const category = await db.categories.findUnique({ where: { slug } });
if (!category) return null;
// Fetch all ancestors in one query using pathIds
const ancestors = await db.categories.findMany({
where: { id: { in: category.pathIds.slice(0, -1) } },
orderBy: { depth: 'asc' },
});
return {
...category,
breadcrumbs: [
...ancestors.map(a => ({ name: a.name, url: `/c/${a.path}` })),
{ name: category.name, url: `/c/${category.path}` },
],
};
}
// Update materialized paths when a category is moved
export async function moveCategory(categoryId: string, newParentId: string | null) {
const category = await db.categories.findUnique({ where: { id: categoryId } });
const newParent = newParentId ? await db.categories.findUnique({ where: { id: newParentId } }) : null;
const newPath = newParent ? `${newParent.path}/${category.slug}` : category.slug;
const newPathIds = newParent ? [...newParent.pathIds, categoryId] : [categoryId];
// Update this category and all descendants in a transaction
const descendants = await db.categories.findMany({ where: { path: { startsWith: category.path + '/' } } });
await db.$transaction([
db.categories.update({
where: { id: categoryId },
data: { parentId: newParentId, path: newPath, pathIds: newPathIds, depth: newPath.split('/').length },
}),
...descendants.map(desc => db.categories.update({
where: { id: desc.id },
data: {
path: desc.path.replace(category.path, newPath),
pathIds: [...newPathIds, ...desc.pathIds.slice(category.pathIds.length)],
depth: desc.path.replace(category.path, newPath).split('/').length,
},
})),
]);
}
步骤 3:优化分类页面的 SEO
无论使用哪个平台,每个分类页面都需要:
- 独特描述:撰写 100–200 字的原创文本,介绍此分类中的商品。“选购女士连衣裙”还不够——请描述款式、材质和适用场合。
- 分类图片:与该分类相关的主图或横幅图片
- SEO 标题:格式为
[Category Name] | [Store Name](例如,“Women's Dresses | YourStore”) - Meta description:用 150–160 个字符突出商品选择的独特之处
- 规范 URL:分类的简洁 URL,不含筛选参数(例如,
/clothing/womens/dresses,而非/clothing/womens/dresses?color=red)
筛选页面的规范 URL:
- Shopify:主题会自动处理集合页面的规范 URL
- WooCommerce + Yoast SEO:Yoast 会自动设置规范 URL
- BigCommerce:在分类设置中设置规范 URL
第 4 步:为大型商品目录批量分配分类
对于有数百或数千种商品需要分类的目录:
Shopify:
- 在管理后台 → 商品中,使用复选框选择多个商品
- 点击 批量操作 → 添加到系列,即可一次性为所有商品分配分类
- 对于自动系列,商品符合规则时会自动分配
WooCommerce:
- 使用 WP All Import,通过 CSV 批量分配分类
- 或在 WooCommerce 管理后台使用商品批量编辑功能
借助 AI 辅助分类(适用于任何平台):
- 导出商品目录,包含商品标题和描述
- 使用 AI 工具根据商品内容推荐分类
- 使用 Matrixify(Shopify)或 WP All Import(WooCommerce)批量导入建议的分类
- 发布前务必检查 AI 建议是否准确
最佳实践
- 在 Shopify 上使用自动(基于规则的)系列作为主要分类体系——新增商品时这些系列会自动更新;手动系列则用于精选的编辑推荐
- 为每个分类页面撰写独特的描述——没有描述的页面内容单薄,很少能获得较高排名;即使是 100 个字的原创文本,也能显著影响 SEO
- 大多数商店的分类层级不要超过 3 级——第 4 级很少能带来 SEO 优势,反而会让导航更复杂
- 使用标签表示跨分类属性(颜色、材质、场合),而不是用分类表示——标签可以支持分面筛选,而无需扩展分类树
- 移动分类时,在事务中更新路径——部分更新的分类树会导致面包屑导航失效;务必以原子方式更新分类及其所有子分类
常见问题
| 问题 | 解决方案 |
|---|---|
| 面包屑导航显示了错误的分类 | 在 WooCommerce 上安装 Yoast SEO,并为每个商品设置主分类;如果没有主分类,面包屑导航可能会显示任意已分配的分类 |
| Shopify 系列页面没有独特内容 | 在管理后台 → 系列 → [系列] → 描述中添加系列描述;许多商家会将此项留空,错失 SEO 机会 |
| 分类 URL 与筛选后的 URL 存在重复内容 | 为所有筛选变体设置指向干净分类 URL 的规范标签;禁止抓取第 2 页之后的分页页面 |
| 商品被分配到过多分类 | 每个商品应有一个主分类,并可选配次要分类;分类过多会削弱相关信号,并使导航变得混乱 |
| 重命名分类导致现有链接失效 | 重命名时,为旧 URL 到新 URL 设置 URL 重定向;所有平台都支持在设置中配置重定向 |
相关技能
- @product-data-modeling
- @product-content-enrichment
- @catalog-import-export