这是一篇偏工程化的复盘:我们如何在一套代码结构里完成中英文两套工具站,落地部署、SEO 与统计,并解决各种线上细节问题。
背景与目标
目标很清晰:
- 做一个英文工具站(
tools.devstorex.top),以 SEO + 工具聚合为主。 - 在同一工程中再做中文站(
tools-cn.devstorex.top),按中文关键词序列逐个实现。 - 后端只保留少量必要接口,尽量前端本地 完成计算。
- 完成部署、统计、站点地图与基础 SEO。
工程结构
统一工程目录是关键,避免维护两套仓库:
| |
前端是静态页面,后端只承担确实需要的接口(如端口扫描、手机号归属地等)。
工具批量实现:从关键词列表驱动
中文站的工具不是"想到做什么就做什么",而是严格按 doc/keywords-cn.md 的顺序推进。这样做有两个好处:
- 任务拆解清晰,可控、可追踪。
- SEO 关键词覆盖完整,不容易遗漏高价值条目。
实现上采用统一页面模板 + 每页 page.css / page.js 的方式,保证样式一致、迭代成本低。
每个工具页面都保留:
- Hero 区域:标题、说明、标签
- 表单区:输入/操作
- 结果区:卡片或列表
- FAQ / 说明区(必要时)
后端策略:只做必须的接口
坚持"能前端就前端"的原则。只有这类工具才走后端:
- 端口扫描
- Ping / 网络延迟(需要系统命令)
- 手机号码归属地(本地 sqlite 数据库)
- 身份证/行政区划等数据型查询
Go 后端统一 /api/* 路由映射,避免每个 API 都写一条 Nginx 配置。
部署设计
采用单脚本自动部署:
- 生成 linux 可执行文件
- 打包
site/、site-cn/、server/data/ - 上传到服务器
/opt/devstorex/tools - systemd 重启后端
- Nginx reload
部署脚本:deploy_tools.sh
这套流程简化了发布动作,并保证站点与后端一体更新。
SEO 与统计落地
SEO 是工具站成败的分水岭,主要做了这些:
- 全站 canonical 修正(英文站与中文站分域名)
- OpenGraph / Twitter Meta 补齐
- JSON‑LD(WebApplication)注入
- sitemap.xml 自动生成
- robots.txt 明确允许 + sitemap
- Bing 站点验证
- GA 统计接入(中文站)
此外,为了提升页面内部链接结构,给所有工具页加入了"相关工具推荐"模块,避免孤立页面。
线上问题与修复
一些真实踩坑:
robots.txt被 CDN 缓存成首页:通过 Nginxno-store+ Cloudflare 清缓存解决。- JSON/文本工具的样式问题:统一按钮与结果区布局后稳定。
- 文件上传组件在 MCP 浏览器不可用:真实浏览器可用,最终保留现有方案。
- PDF 拆分报错:修正为
copyPages方式处理。
这些问题不复杂,但如果没有系统化复盘,很容易一遍遍踩。
得到的经验
- 关键词驱动的生产力很高:能避免"永远在做首页"。
- 统一模板是救命的:否则 100 个工具会变成 100 套样式。
- SEO 要先搭框架:否则后期补救工作量极大。
- 部署一定要脚本化:人工操作一定会出错。
结语
这套中英文工具站并不复杂,但能跑起来、可维护、可扩展,并且有清晰的 SEO 路径。
后续如果要扩展更多站点(如日文/西班牙文),可以直接复用当前结构。
如果你也在做工具站,希望这篇复盘能让你少踩一些坑。
