今年年初我重新构建了自己的作品集网站。三个月后,谷歌Search Console面板上清清楚楚写着:展示量27,000次,点击46次。这个数字跟病毒式传播差得远,可对于一个开发者个人作品集来说,已经超出预期了。

27,000次搜索展示,意味着平均每天有300多次我的页面出现在用户眼前。而46次点击听起来很少,但放在个人博客上,每篇技术文章能吸引一个精准读者,这样的转化率其实挺健康的。我好奇的是——到底做对了哪些事,才让一个几乎只有品牌搜索流量的网站走到这一步?

打开网易新闻 查看精彩图片

我把三份数据重叠在一起看:Search Console后台的展示与点击趋势、Git提交记录,还有每篇文章的发布时间线。一层层叠上去之后,因果关系突然变得非常清晰。你的增长曲线和时间节点也许完全不同,但这些动作背后的模式或许值得参考。

先交代技术背景:网站前端基于Next.js,内容管理用的是Sanity CMS。在2026年2月之前,我已经有一个初版作品集,上面放了一些个人项目,还有从Medium导入过来的博客文章。当初选择在Medium写东西,理由很充分:编辑器顺手,自带读者社群,排版效果开箱即用,发布零摩擦。但这也意味着所有搜索引擎优化带来的权重,全都算在了Medium头上,我的个人域名下几乎什么都捞不着。

那时网站每天可能拿到一两个展示,而且几乎都是品牌词搜索,比如搜“snaijer”或者“de snaijer”。换言之,只有已经知道我名字的人才会通过搜索进来。那种状态下,网站更像一张电子名片,而不是一个能被陌生人发现的内容入口。

于是计划变得清晰起来:我要让自己的域名成为内容的第一栖息地。第一步,就是在Sanity CMS里重建一套写博客的基础设施。我特意把之前喜欢Medium的那些特性都复刻了过来——代码块带语法高亮、一键复制按钮、文章里能直接嵌入交互式演示。这样一来,我完全没有失去顺手写作的体验,只是把发布渠道换了个地方。

接着,我做了一个后来被证明极其关键的动作:给所有还在Medium上的原始文章设置了canonical链接,全部指向我自己网站对应的页面。就等于明明白白地告诉搜索引擎:“这篇文章的原生版本在这里,不是Medium。”

canonical标签在搜索引擎眼里是一种优先级声明。当两个页面内容高度重复时,谷歌会把大部分权重分配给canonical指向的那个网址,避免因为内容相同而稀释排名。换句话说,我过去在Medium积累的很多长尾关键词,慢慢都会回流到自己的域名上,而不是继续帮别人做嫁衣。

回顾整个过程,这个决定可以说是整条时间线上影响力最大的单点改动。它没有立刻带来流量的质变,但给后面的所有增长铺好了地基。

为了真正厘清哪些做法起了作用、哪些只是心理安慰,我一直在同时追踪三个维度的数据:Search Console里每天的展示量变化、git仓库里每一次功能提交的准确时间点,还有每篇内容的发布日期。把这些折线图和标注叠在一起,原因和结果就变得出人意料地明了。

一月下旬到整个二月,我发布了一连串结构性的改动。这类工作有个特点:它几乎不会立刻反映在流量曲线上,你埋头苦干一整周,Search Console依然是一条贴着地面的直线。但回头看,正是这些幕后工作让谷歌能正确理解站点的信息架构,给后续的内容索引建立了通道。

这些结构性更改包括重新梳理内部链接,确保每个页面都有合理的入站路径;优化了路由结构,让URL层级和站点导航保持一致;还花了不少时间清理旧导入文章产生的杂乱标签和分类体系。这些东西对访客来说完全不可见,但在搜索引擎爬虫眼里,等于从一个乱糟糟的仓库变成了一间门牌清晰、货架整齐的图书馆。

这整整一个月里,我总共获得了1次点击。整整1次。那个数字低到很容易让人怀疑自己做的是无用功。但现在回顾,没有一丁点儿是被浪费的。谷歌在这个阶段持续抓取新版网站,内部链接给了爬虫更多可访问的页面,爬取频率也在慢慢加快。那时候GSC里的索引覆盖率报告开始出现积极变化,被收录的页面数量在悄悄增加。

3月7日,我把全新的博客结构合并进主分支,完成了一次彻底的迁移部署。这才是真正的升级:所有文章都有了规范的元标签,标题、描述、关键词不再东拼西凑;URL结构经过统一设计,不再有日期混乱或层级过深的问题;标签页面也重新梳理,让同类内容能彼此关联。这些就是过去从Medium直接导入时完全缺失的搜索引擎优化基础设施。

这个部署很可能是我所做的单次最大改变。之后的数据增长和这个时间点呈现出非常强的相关性。流量曲线在3月7日之后开始稳定爬升,再也不是那种上上下下的随机波动。

同一天里,我还顺手修了一个看起来很小、但影响不小的问题:XML站点地图解析器在遇到特殊字符时会出错中断。站点地图是给爬虫提供的目录清单,如果解析出错,有些页面可能永远不被发现。这个修复让整张地图能完整生成,所有核心页面都被顺利地递送到了谷歌面前。

经过这次部署,博客彻底脱胎换骨,从之前那种结构松散的导入草稿变成了一组完全结构化的技术文章,其中有一篇讲的是如何在JavaScript里使用MediaPipe进行手部追踪和面部关键点检测。就是这一篇文章,后来单独贡献了我全部搜索展示量的85%。

那篇文章并不是随机热门起来的,它踩中了一个小而明确的需求缝隙:前端开发者想在浏览器里直接跑机器学习模型,但又不想花太多时间看文档。MediaPipe在浏览器里的实践资料当时还比较零散,而我的文章恰好把初始化、手部关键点识别到实时渲染的流程拆得清清楚楚。这种“刚好解答了一个具体问题”的内容,在搜索场景里很容易被持续发现。

转天,也就是3月8日,我又追加了几个重要模块: