# SEO & Catalog 增强审查报告

**项目路径：** /data/sme-omnistore-p0-remediated-20260509
**审查时间：** 2026-05-09
**审查范围：** 商品发现、品牌页、分类页、SEO 公开接口

---

## 一、测试结果汇总

| 检查项 | 状态 | 说明 |
|--------|------|------|
| 商品列表 API 筛选参数 | ⚠️ 部分 | keyword / category / sort / page / page_size ✅；brand ❌；min_price / max_price ❌ |
| 商品详情返回字段 | ✅ | 品牌、分类、图片、SKU、价格、SEO 字段均返回 |
| 品牌公开 API | ✅ | /store/brands（列表）+ /store/brands/{slug}（详情）均存在 |
| 品牌页前端 | ❌ 缺失 | 无 /brands 列表页、无 /brands/[slug] 详情页、无品牌商品过滤入口 |
| 分类公开 API | ⚠️ 部分 | /store/categories 返回 name 列表，但无详情 + 子分类 + 分类商品 接口 |
| 分类页前端 | ⚠️ 缺失 | 无独立分类详情页（产品列表页靠 query param 过滤，无分类元信息页） |
| SEO meta（商品详情） | ✅ | useSeoMeta() + JSON-LD <script> 已实现 |
| SEO meta（商品列表/品牌/分类） | ❌ 缺失 | 这些页面无针对性 meta |
| sitemap.xml | ✅ | 已实现，按租户隔离，含商品/分类/品牌 |
| robots.txt | ✅ | 已实现 |
| 商品 SEO 公开 API | ✅ | /store/seo/product/{slug} 返回 meta + JSON-LD |
| 测试通过 | ✅ | 17 passed, 1 warning |

---

## 二、API 层详细分析

### 2.1 商品列表 GET /api/store/products

已有参数：
- keyword — 商品名/SKU 模糊搜索 ✅
- category — 按分类 name 精确过滤 ✅
- sort — popular / newest / price_asc / price_desc ✅
- page / page_size — 分页 ✅

缺失参数：
- brand — 按品牌 slug 或 id 过滤 ❌
- min_price / max_price — 价格区间过滤 ❌

影响：前端价格区间筛选器无法真正工作，品牌页无法按品牌过滤商品。

### 2.2 品牌 GET /api/store/brands

- ✅ 品牌列表：返回 is_active=1 的品牌，含 slug / name / logo / description / is_featured
- ✅ 品牌详情：/store/brands/{slug}
- ❌ 无品牌商品列表接口 — 需要在 products 表按 brand_id 过滤，但 products API 不接受 brand 参数

### 2.3 分类 GET /api/store/categories

- ✅ 返回激活分类 name 列表（无子分类嵌套）
- ❌ 无分类详情接口（含 description / meta / subcategories）
- ❌ 无分类商品列表接口（products API 的 category 参数按 name 而非 slug 工作，逻辑可行但未文档化）

### 2.4 SEO 接口

| 接口 | 状态 | 说明 |
|------|------|------|
| GET /store/seo/product/{slug} | ✅ | 返回 meta_title / meta_description / og_image / json_ld |
| GET /robots.txt | ✅ | 正确禁止敏感路径 |
| GET /sitemap.xml | ✅ | 含商品/分类/品牌 URL，租户隔离 |

---

## 三、前端页面分析

### 3.1 商品列表页 /products ✅

- 左侧分类筛选器（调用 /store/categories）✅
- 价格区间筛选器（UI 存在，但 API 不支持 min_price / max_price，实际不工作）⚠️
- 排序按钮（热销/最新/价格↑/价格↓）✅
- 搜索框 keyword 搜索 ✅
- 分页 ✅
- useSeoMeta 有但仅基础标题，无分类特定 SEO ❌

### 3.2 商品详情页 /products/[slug] ✅

- 商品图片多图展示 ✅
- 分类面包屑 ✅
- 品牌信息未单独展示（合并在 category 字段中）⚠️
- useSeoMeta() + JSON-LD ✅（title / description / og:type / og:image / schema.org Product）
- 评分、销量、库存 ✅
- 规格选择、加入购物车、立即购买 ✅
- 相关推荐 ✅

### 3.3 品牌页 ❌ 缺失

无以下页面：
- /brands — 品牌列表页
- /brands/[slug] — 品牌详情 + 品牌商品列表

缺失影响：用户无法通过品牌入口发现商品，搜索引擎无品牌页面索引。

### 3.4 分类页 ❌ 缺失

无以下页面：
- /category/[slug] — 分类详情页（含分类描述、SEO meta、子分类、分类商品）

现状：产品列表页通过 ?category=xxx query 参数过滤，但无独立分类信息页。

---

## 四、需增强项清单

### 优先级：高

1. products API 增加 brand 参数 — 支持 ?brand=xxx 过滤
2. products API 增加 min_price / max_price 参数 — 让价格区间筛选真正生效
3. 新增品牌商品列表接口 — GET /store/brands/{slug}/products，或在 products API 支持 brand 过滤
4. 新增前台分类详情接口 — GET /store/categories/{slug} 返回分类信息 + 子分类 + 商品
5. 新增品牌页前端 — /brands 列表页 + /brands/[slug] 详情页（含品牌商品）
6. 新增分类详情页前端 — /category/[slug] 页（含分类描述、SEO meta、子分类、分类商品）
7. 商品列表页 useSeoMeta 增强 — 按筛选的分类/品牌动态生成标题描述

### 优先级：中

8. 商品详情页品牌展示 — 目前 brand 合并在 category 字段，建议独立显示品牌名和 logo
9. brand 页面 SEO — 品牌页独立 useSeoMeta + JSON-LD（Brand schema）
10. category 页面 SEO — 分类页独立 useSeoMeta + JSON-LD（Category schema）

---

## 五、现有功能优势

- ✅ 测试全部通过（17 passed），后端逻辑稳健
- ✅ 多租户隔离正确（tenant_id 贯穿）
- ✅ Sitemap 和 robots.txt 完整
- ✅ 商品详情 SEO + JSON-LD 实现规范
- ✅ 产品列表筛选 UI 完善（分类/排序/搜索）

---

## 六、结论

商品和分类的基础发现路径已具备，但品牌和分类的完整浏览体验缺失（无前端页面 + 部分 API 未完成）。商品列表的价格区间和品牌过滤能力也未开放。建议按第四章优先级逐步完善。
