导语
今天把三个关键动作串起来了:确定方向与需求 → 关键词调研与站点定位 → 搭建可持续更新的前端站点。中间踩了不少技术坑,也总结出一套可复用的流程,记录如下。
1)需求与定位:做“第三方指南 + 工具”的垂直站
- 目标:用内容 + 轻量工具吃到增长中的 3D 打印平台相关长尾搜索流量,通过 Google AdSense 变现。
- 定位:不做“官方”,避免品牌冲突,采用中立域名xxxxx.com,把 MakerWorld 放在站内专题路径 /makerworld/。
- 收益方式:仅广告(AdSense),不接数据库、不做登录注册,前端工具本地计算、隐私友好。
2)关键词策略:避开品牌主词,吃信息/研究意图的长尾
- 结论:“makerworld”是强导航词,不抢主词位,转做长尾:
- 规则/教程:makerworld 规则 / 上传 / 下载 / 版权 / 常见问题
- 机制专题:积分(+计算器)、众筹(规则/费用/案例)
- 对比与替代:makerworld vs thingiverse / vs printables / alternatives
- 榜单与导购:热门模型/创作者周榜、适配的打印机/耗材
- 首批内容地图:20+ 篇页面 + 2 个工具(积分/收益估算器)。
3)信息架构与设计:多语言、可持续更新、SEO 友好
- 路由规范:/{lang}/{slug}(EN/中文),同一篇文章的 slug 相同,语言不同。
- 专题枢纽页:/makerworld/ 作为主题入口,聚合规则/积分/众筹/对比/榜单/设备等子页。
- 页面模板:HowTo(含步骤与 FAQ)、Compare(对比表+结论)、List(榜单+方法论)、Tool(前端计算+JSON-LD)。
- SEO:sitemap.xml / robots.txt / canonical / hreflang,模板内置 HowTo / FAQPage / ItemList / SoftwareApplication / Product 结构化数据占位。
- 广告:组件化 <AdSlot/>,预留高度避免 CLS,控制密度(文章 ≤ 3,工具页侧栏 1)。
4)开发与部署:Next.js + MDX,无数据库
技术栈:Next.js 14 App Router + Tailwind + Contentlayer(MDX)+ TypeScript
部署:Vercel(站点) + Cloudflare(DNS/HTTPS)
已完成内容:
- 起步项目:首页、MakerWorld 枢纽页、动态内容页 /{lang}/{slug} 支持。
- 多语言内容目录:content/en/** 与 content/zh/**,Front-matter 统一。
- 脚本:new:post 一键生成 EN/中文双文件;gen:sitemap 自动构建站点地图。
- 基础页面:About/Privacy/Terms/Disclaimer(含“非官方”声明),/tools /learn /reviews 占位。
- 重写与兼容:/makerworld/xxx 自动重写到 /en/makerworld/xxx,防止 404。
5)踩坑与修复(关键问题与解决方案)
- 缺包报错:rehype-pretty-code / shiki 未安装
- 解决:pnpm add rehype-pretty-code shiki,清 .contentlayer 重启。
- ESM/CJS 冲突:postcss.config.js 在 "type": "module" 下用 CJS 写法
- 解决:改成 ESM:
- export default { plugins: { tailwindcss: {}, autoprefixer: {} } }
- contentlayer/generated 找不到(模块导出/alias 问题)
- package.json 增加:"predev": "contentlayer build","build": "contentlayer build && next build"
- next.config.mjs 显式 alias:
- 解决:
- config.resolve.alias['contentlayer/generated'] = path.join(process.cwd(), '.contentlayer/generated')
- Node 22 与 Contentlayer 退出码冲突(已生成却报错)
- 解决:切回 Node 20 LTS;或临时把 predev 改成 contentlayer build || true。
- 访问 404:无语言前缀导致内容页 404
- 解决:生成对应 MDX,并用 middleware.ts 把无前缀路径重写到默认语言(en)。
6)今天的实际产出
- 站点基本骨架上线(本地与 Vercel 同步)。
- 内容通路打通:content/en/** & content/zh/**,示例文章 MakerWorld Points(中/英)。
- 枢纽页 /makerworld、工具/教程/评测频道占位页就绪。
- 广告与 SEO:<AdSlot/> 占位、robots.txt、sitemap.xml、hreflang 方案明确。
- 脚本化:new:post、gen:sitemap,支持本地生成 → 推送上线的工作流。
7)明天/本周计划
- 内容:优先写 10 篇长尾(规则/积分/众筹/对比/上传/下载等),中英双版本。
- 工具:完成“积分计算器(前端)”,结果卡 + 可分享链接。
- 广告:申请 AdSense,替换 ads.txt,待审核后注入全局脚本。
- 索引:GSC 提交站点地图,手动检索关键 URL;A/B 调整标题与描述。
- 外链:3D 打印论坛/目录站/开源 README 获得首批 5–10 个相关 RD。
- KPI:2–3 周内目标长尾进入 Top 20,完成度达标后冲 Top 10。
8)复用清单(命令合集)
# 安装 & 本地开发
pnpm i
pnpm dev
# 生成双语文章
pnpm new:post makerworld/crowdfunding "MakerWorld Crowdfunding: Complete Guide"
# 生成站点地图
pnpm gen:sitemap
# 解决常见缓存/编译问题
rm -rf .contentlayer .next
pnpm dev
# 版本与构建(建议 Node 20 LTS)
node -v
pnpm build && pnpm start
结语
今天把“选题→选词→搭站”的闭环跑通了。接下来关键是稳定输出内容 + 工具化,并用 AdSense 做轻量变现。长期来看,主题权威 + 长尾覆盖 + 结构化数据会让这个站持续拿到稳定的自然流量。你也可以把这套流程复用到其他垂直主题上。

