在字节跳动负责TikTok内部SEO仪表板时,我以为做一个SEO工具会很容易。
结果我几乎所有判断都错了。
但首年做到40万美元营收后,我学到了什么有效。这篇文章分享完整方案——技术架构、数据策略和真正有效的变现方法。
三种SEO工具类型
写代码之前,先搞清楚你在做什么:
类型1:排名追踪器 – 随时间监控关键词位置
- 市场:有现有SEO项目的成熟企业
- 定价:每月¥340-3400,取决于追踪关键词数
- 护城河:数据留存和报表功能
类型2:关键词研究工具 – 找机会
- 市场:SEO代理和顾问
- 定价:每月¥680-2040
- 护城河:独特数据源和智能层
类型3:竞品情报 – 监视竞品
- 市场:科技公司的内部SEO团队
- 定价:每月¥1360-6800
- 护城河:竞品追踪广度
大多数成功产品结合了全部三个,但你应该先做好一个核心功能。
架构:我今天会这样搭
技术栈
尝试各种方案后,2025年我会用这个:
后端:
- Python + FastAPI(API服务器)
- PostgreSQL(关键词数据、历史排名)
- Redis(缓存、作业队列)
- Celery(后台任务)
前端:
- Next.js + React(仪表板)
- TailwindCSS(样式)
- Recharts(图表)
数据层:
- 主要:SearchCans或SerpPost获取SERP数据
- 补充:Google Keyword Planner API获取搜索量
- 存储:TimescaleDB用于时序数据
基础设施:
- 阿里云ECS用于容器
- RDS用于数据库
- Redis云服务
- OSS用于导出和备份
这个栈舒服地处理每天10万API请求,且只需最小改动就能扩展到百万级。
数据模型
核心模式比你想的简单:
-- 项目(客户可以有多个)
CREATE TABLE projects (
id UUID PRIMARY KEY,
user_id UUID NOT NULL,
domain VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
-- 要追踪的关键词
CREATE TABLE keywords (
id UUID PRIMARY KEY,
project_id UUID REFERENCES projects(id),
keyword TEXT NOT NULL,
search_engine VARCHAR(20) DEFAULT 'google',
location VARCHAR(100) DEFAULT 'China',
created_at TIMESTAMP DEFAULT NOW()
);
-- 每日排名数据(时序)
CREATE TABLE rankings (
keyword_id UUID REFERENCES keywords(id),
rank INTEGER,
url TEXT,
checked_at TIMESTAMP NOT NULL,
PRIMARY KEY (keyword_id, checked_at)
);
-- 转换为TimescaleDB超表以提升性能
SELECT create_hypertable('rankings', 'checked_at');
这就是你数据模型的90%。其他都是衍生的。
检查系统:正确获取排名
这是大多数人搞砸的地方。你不能随机查询SERP API。需要一个智能调度器。
from datetime import datetime, time
from celery import Celery
import requests
celery = Celery('tasks', broker='redis://localhost:6379/0')
@celery.task
def check_keyword_rank(keyword_id, keyword, domain):
"""检查单个关键词的排名"""
# 调用SERP API
response = requests.post(
'https://searchcans.youxikuang.cn/api/search',
headers={'Authorization': f'Bearer {API_KEY}'},
json={
's': keyword,
't': 'google',
'num': 100 # 检查前100个结果
}
)
results = response.json()
rank = None
url = None
# 在结果中找我们的域名
for idx, result in enumerate(results.get('organic_results', []), 1):
if domain in result['link']:
rank = idx
url = result['link']
break
# 存到数据库
save_ranking(keyword_id, rank, url, datetime.now())
return {'keyword_id': keyword_id, 'rank': rank}
def schedule_daily_checks():
"""智能调度,分散API负载"""
keywords = get_all_tracked_keywords()
# 在24小时内分散检查
interval = 86400 / len(keywords) # 一天的秒数
for i, kw in enumerate(keywords):
# 在不同时间调度每个关键词检查
check_keyword_rank.apply_async(
args=[kw.id, kw.keyword, kw.domain],
countdown=int(i * interval)
)
这个方法:
- 全天均匀分散API调用
- 避免触及速率限制
- 在24小时内检查所有关键词
- 成本高效(每个关键词每天一次API调用)
智能层:价值所在
原始排名是商品数据。价值在洞察中。
def generate_insights(project_id, timeframe_days=30):
"""从排名数据生成可执行洞察"""
rankings = get_rankings(project_id, days=timeframe_days)
insights = []
# 赢家:排名改进最大的关键词
for kw in rankings:
rank_change = kw.current_rank - kw.first_rank
if rank_change < -5: # 提升了5+位
insights.append({
'type': 'winner',
'keyword': kw.keyword,
'movement': rank_change,
'message': f'📈 {kw.keyword} 跃升了 {abs(rank_change)} 位!'
})
# 输家:下降的关键词
for kw in rankings:
rank_change = kw.current_rank - kw.first_rank
if rank_change > 10: # 下降了10+位
insights.append({
'type': 'loser',
'keyword': kw.keyword,
'movement': rank_change,
'message': f'📉 {kw.keyword} 掉了 {rank_change} 位。需要调查?'
})
# 机会:排名11-30的关键词(第二页)
page_two = [kw for kw in rankings if 11 <= kw.current_rank <= 30]
if page_two:
insights.append({
'type': 'opportunity',
'count': len(page_two),
'message': f'💡 {len(page_two)} 个关键词在第二页。推上第一页!'
})
return insights
这种分析是客户真正付费的东西。他们在哪儿都能看排名——他们付钱给你是因为你告诉他们该怎么做。
成本经济学:真实数字
让我们为排名追踪工具建模经济性:
每客户成本(追踪100个关键词):
- SERP API:100关键词 × 30天 = 3,000 API调用/月
- SearchCans成本:3,000 × ¥3.4/1K = ¥10.2/月
- 基础设施:规模化后约¥3.4/客户/月
- 总COGS:¥13.6/客户/月
定价层级:
- 入门版:50关键词,¥198/月(COGS:¥7,毛利:96%)
- 专业版:200关键词,¥538/月(COGS:¥27,毛利:95%)
- 代理版:1000关键词,¥2038/月(COGS:¥136,毛利:93%)
相比大多数SaaS,这些利润率疯了。杠杆来自使用API而非管理基础设施。
变现:四个收入流
1. 核心订阅(60%收入)
显而易见的一个。但定价策略重要:
有效的:基于追踪关键词数锚定
- 客户更容易理解
- 与使用成本一致
- 自然的升级路径(客户总想追踪更多)
失败的:按域名定价
- 客户通过在一个域名追踪所有关键词来作弊
- 不随我们的成本扩展
- 难以证明涨价合理
2. 白标授权(25%收入)
这让我惊讶。SEO代理想为客户提供排名追踪但不想自己建。
协议:每月¥3400-6800的白标版本
- 他们可以将工具重新品牌为自己的
- 包含在他们的服务套餐中
- 我们处理所有技术基础设施
仅一个代理客户就每年付我们8万多。他们向客户收每月¥340的"排名追踪"费,在我们平台管理30多个客户。
3. API访问(10%收入)
有些客户想建自己的仪表板但需要数据。
定价:每次关键词检查¥0.68(高于我们成本,低于他们自建)
这主要是有特定需求的企业客户。量不大但利润高。
4. 报告和导出(5%收入)
客户演示用的PDF报告。我们收¥34-68每份报告。
看起来小,但代理每月生成几百份报告。积少成多。
有效的发布策略
第1个月:构建核心排名追踪器
就排名追踪。没花哨功能。我们支持:
- 添加关键词
- 每日检查
- 显示当前排名和历史
- 基础图表
在Product Hunt上发布。获得200个注册。8个转为付费(¥198/月)。
收入:¥1,584/月
第2个月:添加关键词研究
使用SERP API数据构建简单的关键词研究工具:
- 搜索一个词
- 显示来自"大家还在问"和"相关搜索"的相关关键词
- 显示竞争水平(基于结果数量)
这将转化率从4%提升到12%。人们为排名追踪注册但看到关键词研究时转化。
收入:¥11,424/月(12个客户)
第3个月:白标MVP
构建最基础的白标功能:自定义logo和域名。
联系了50家SEO代理。3家以¥3,400/月签约。
收入:¥21,627/月
第6个月:首个7万元月
此时我们有:
- 85个月度订阅者(平均¥320/月)
- 6个白标客户(¥3,400/月)
- 2个企业客户的API访问
收入:¥68,281/月
关键是抵制功能膨胀。我们对90%的功能请求说"不",专注于让排名追踪做到优秀。
技术陷阱要避免
陷阱1:检查排名过于频繁
我最初每6小时检查每个关键词一次。客户喜欢但:
- API成本高4倍
- 排名实际上不会变那么快
- 产生了太多噪音数据
每天一次足够。节省API预算用于增长客户数。
陷阱2:不处理排名波动
Google排名会波动。一个关键词可能上午9点排第7,下午3点排第11。
解决方案:每天同一时间检查。存储检查时间。在UI中标注波动,客户就不会恐慌。
陷阱3:试图追踪所有东西
有些客户想要功能如:
- 外链监控
- 网站速度追踪
- 技术SEO审计
这些是不同的产品。保持专注。做好一件事比五件事做得平庸要好。
市场定位:与老牌竞争
SEO工具市场看起来拥挤——Ahrefs、SEMrush、Moz都存在。但如果你:
1. 专注一个细分领域
我们专注本地SEO代理。我们的基于位置的追踪比大玩家好10倍,因为我们使用支持精确地理定位的SERP API。
2. 价格竞争
Ahrefs起价¥680/月。我们起价¥198/月。对小企业和自由职业者,这个3倍差异很重要。
3. 现代UI/UX
大多数SEO工具看起来像2010年的。用React构建的干净现代界面足以脱颖而出。
4. 更好的客户支持
大公司把你引到文档。我们2小时内回复每封支持邮件。小规模时这是巨大优势。
竞争格局
如果你在这个领域构建,了解你的替代品:
企业级:
- Ahrefs(¥680-6800/月)- 最好的外链数据
- SEMrush(¥810-3060/月)- 最多功能
- Moz(¥680-4080/月)- 品牌认知度
中端市场:
- Serpstat(¥470-3400/月)- 好价值
- Mangools(¥198-878/月)- 初学者友好
- SERPPost – 新玩家,有竞争力的定价
我们的定位:比Mangools更好的UX,比SEMrush更实惠,专注代理。
构建者的下一步
如果你想建SEO工具:
第1周:为一个搜索引擎(Google)构建基础排名追踪器。先别担心Bing。
第2周:添加关键词管理UI。让用户轻松添加/删除关键词。
第3周:构建历史数据的图表视图。这是卖产品的东西。
第4周:发布。获得10个用户。他们的反馈会告诉你接下来构建什么。
别花6个月构建没人要的功能。早发布,快迭代。
钱的问题
"2025年建SEO工具是不是太晚了?"
不是。但你不能建通用排名追踪器然后跟Ahrefs竞争。
你需要:
- 服务他们忽略的特定细分市场(本地SEO、电商等)
- 以相当功能进行价格竞争
- 在UI/UX上显著创新
SERP API基础设施让构建这些工具比以往更容易。5年前需要数百万基础设施的数据访问现在每月只需¥3,400。
如果执行得好,机会是真实的。
关于作者:朴大卫是字节跳动TikTok SEO系统的高级工程师。他离开后构建SEO SaaS工具,现在运营一家盈利的SEO软件公司。
想构建自己的SEO工具?从SearchCans免费额度开始 – 1000次免费API调用实验。