电商SEO专项实战
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read410 words

电商 SEO 专项实战

电商 SEO 的核心矛盾:数千个 SKU 页面需要差异化内容,但人力资源有限——解决方案是结构化 + 自动化。

电商 SEO 架构

graph TD HOME[首页] --> CAT[类目页] CAT --> SUBCAT[子类目] SUBCAT --> PDP[产品详情页] CAT --> LANDING[SEO 落地页] HOME --> BLOG[博客/内容中心] BLOG --> REVIEW[评测文章] BLOG --> GUIDE[购买指南] BLOG --> COMPARE[对比文章] REVIEW --> PDP GUIDE --> CAT COMPARE --> PDP style CAT fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style BLOG fill:#c8e6c9,stroke:#388e3c,stroke-width:2px

电商 SEO 核心工具套件

"""
电商 SEO 专项分析工具
"""
from dataclasses import dataclass, field
@dataclass
class ProductPage:
sku: str
name: str
category: str
url: str
title_tag: str
meta_description: str
h1: str
word_count: int
has_review_schema: bool
review_count: int
avg_rating: float
price: float
in_stock: bool
images_with_alt: int
images_total: int
organic_clicks_30d: int
conversion_rate: float      # %
class EcomSEOAuditor:
"""电商页面 SEO 批量审计"""
@staticmethod
def audit_product_page(p: ProductPage) -> dict:
issues = []
score = 100
# 标题优化
if len(p.title_tag) < 40:
issues.append("标题过短 — 建议格式:[产品名] + [核心特性] + [品牌]")
score -= 10
if p.price > 0 and str(int(p.price)) not in p.title_tag:
pass  # 价格可选加入标题
# Meta 描述
if not p.meta_description:
issues.append("缺少 Meta Description — 至少包含产品名、核心卖点、价格/折扣")
score -= 15
elif len(p.meta_description) > 160:
issues.append(f"Meta 过长 ({len(p.meta_description)} 字符)")
score -= 5
# 内容质量
if p.word_count < 200:
issues.append(f"产品描述字数不足 ({p.word_count} 字),建议 ≥ 300 字,包含使用场景")
score -= 15
elif p.word_count < 400:
issues.append(f"内容可进一步丰富({p.word_count} 字),添加技术规格、FAQ")
score -= 5
# 图片 Alt
if p.images_total > 0:
alt_rate = p.images_with_alt / p.images_total * 100
if alt_rate < 80:
issues.append(f"图片 Alt 覆盖率 {alt_rate:.0f}%,建议 100%(含关键词+产品名)")
score -= 10
# Schema 评分
if not p.has_review_schema and p.review_count > 0:
issues.append("有评价但未实现 Product/Review Schema,会失去星级摘要")
score -= 15
# 库存状态
if not p.in_stock:
issues.append("⚠️ 商品缺货 — 考虑保留页面(而非 404),添加到货通知")
return {
"SKU": p.sku,
"得分": max(score, 0),
"月点击": p.organic_clicks_30d,
"转化率": f"{p.conversion_rate:.1f}%",
"问题数": len(issues),
"问题详情": issues,
}
@classmethod
def batch_audit(cls, products: list[ProductPage]) -> dict:
results = [cls.audit_product_page(p) for p in products]
results.sort(key=lambda x: (x["问题数"], -x["月点击"]), reverse=True)
quick_wins = [r for r in results if r["月点击"] > 50 and r["得分"] < 80]
return {
"总页面数": len(results),
"平均得分": sum(r["得分"] for r in results) / len(results),
"快速见效页面": quick_wins[:5],
"详细结果": results,
}
class CategoryPageOptimizer:
"""类目页 SEO 优化策略"""
@staticmethod
def generate_category_content(
category_name: str,
product_count: int,
top_products: list[str],
target_keywords: list[str],
) -> dict:
"""生成类目页 SEO 内容框架"""
primary_kw = target_keywords[0] if target_keywords else category_name
return {
"H1": f"{category_name}({product_count}款精选)",
"面包屑": f"首页 > {category_name}",
"引导段落": (
f"精选 {product_count} 款{category_name},涵盖{top_products[0]}等热门款式。"
f"支持价格筛选、品牌筛选,找到最适合你的{primary_kw}。"
),
"筛选器 SEO": {
"说明": "筛选组合页需要单独处理,避免重复内容",
"推荐方案": "规范 URL + canonical 指向类目主页",
"例外": "流量大的筛选组合可考虑独立落地页",
},
"底部内容": (
f"## 如何选择{category_name}\n\n"
f"购买{primary_kw}时需考虑以下关键因素...\n\n"
f"## 常见问题\n\n"
f"**{primary_kw}哪个牌子好?** — 根据你的预算和需求...\n"
),
"内链策略": [
f"链接到 Top3 热销产品页",
f"链接到相关购买指南博客",
f"链接到相邻子类目",
],
}
@staticmethod
def handle_faceted_navigation() -> dict:
"""刻面导航(筛选器)SEO 处理方案"""
return {
"问题": "价格/颜色/尺码筛选产生数千个重复 URL,消耗爬取预算",
"方案对比": {
"robots.txt 屏蔽": "简单但彻底,丢失筛选页面的排名机会",
"noindex 标签": "允许爬取但不收录,消耗预算但不重复竞争",
"canonical 标签": "告知 Google 权威页,转移权重到主类目页",
"独立落地页": "高流量筛选组合创建专页,如 '红色连衣裙'",
},
"推荐": "canonical + 对高流量筛选组合创建独立落地页",
}
# 演示
products = [
ProductPage("SKU001", "无线蓝牙耳机 Pro", "耳机", "/products/bt-earphones-pro",
"无线蓝牙耳机", "高品质耳机,买就对了!", "无线蓝牙耳机 Pro",
180, True, 85, 4.6, 299, True, 4, 6, 320, 3.2),
ProductPage("SKU002", "降噪耳机 X200", "耳机", "/products/noise-cancel-x200",
"降噪耳机X200 | 主动降噪 | 30小时续航 | MyBrand",
"X200主动降噪耳机,30小时续航,适合差旅办公。现价¥499,限时优惠。",
"降噪耳机 X200 — 30小时续航主动降噪",
520, True, 162, 4.8, 499, True, 6, 6, 850, 4.1),
ProductPage("SKU003", "运动耳机 Sport", "耳机", "/products/sport-earphones",
"运动耳机", "", "运动耳机",
95, False, 0, 0.0, 189, False, 1, 4, 45, 1.8),
]
auditor = EcomSEOAuditor()
report = auditor.batch_audit(products)
print("=== 电商 SEO 批量审计 ===")
print(f"总页面: {report['总页面数']}  平均得分: {report['平均得分']:.0f}/100")
print("\n需优先优化的页面(有流量+得分低):")
for p in report["快速见效页面"]:
print(f"\n  [{p['得分']}/100] {p['SKU']} | 月点击 {p['月点击']} | 转化 {p['转化率']}")
for issue in p["问题详情"][:3]:
print(f"    → {issue}")
# 类目页示例
optimizer = CategoryPageOptimizer()
cat_content = optimizer.generate_category_content(
"无线耳机", 128, ["降噪耳机", "运动耳机", "游戏耳机"],
["无线耳机", "蓝牙耳机推荐", "降噪耳机"],
)
print(f"\n=== 类目页内容框架 ===")
print(f"  H1: {cat_content['H1']}")
print(f"  引导段: {cat_content['引导段落']}")
print(f"  筛选器处理: {cat_content['筛选器 SEO']['推荐方案']}")

电商 SEO 关键词类型

类型 示例 归因页面 搜索意图
品类词 无线耳机 类目页 浏览
产品词 AirPods Pro 多少钱 产品详情页 购买
对比词 AirPods vs 索尼降噪耳机 对比文章 决策
问题词 运动耳机怎么选 购买指南 信息
品牌词 [你的品牌]耳机好不好 品牌评测/PR 品牌验证

行动清单

下一节03-内容站从0到10万月流量案例 — 完整案例复盘:一个内容站 12 个月获得 10 万月均自然流量的真实路径。