type
status
date
slug
summary
tags
category
icon
password
AI summary
前言
先贴一下优化效果,整个评测基于ahref,从最初的34分优化到了100分。下面分享整个优化过程

主题一定要配置在环境变量里
主题一定要配置在环境变量里!
主题一定要配置在环境变量里!
主题一定要配置在环境变量里!
重要的事情说三遍!
之前我的主题是配在notion的配置文件里的,导致编译的时候还是用的默认主题simple。用simple主题会导致页面上几乎没有静态html元素,所以扫描出来很多问题。比如几乎所有页面都会被标记为
Orphan page (has no incoming internal links)
和Page has no outgoing links
,这两个都是ERROR级别的问题,对于评分影响严重。
Orphan page (has no incoming internal links)
:孤立页面,指的是除了sitemap,网站没有内部链接指向此页面
Page has no outgoing links
:指的是页面上没有指向外部的链接
https页面里引用了http链接
这块主要是最早之前不小心使用了http协议的图片链接,批量改成https协议就可以了。不过一篇篇手动去改效率太低了,并且notion改图片链接也不是很方便。于是想着通过AI来实现,最初的想法是通过
notion-mcp-server
来自动操作,但是试了一下发现效果并不是很理想:我先尝试让它找出所有包含http链接的文章,发现很难找全,不知道是不是涉及到的MCP调用量太大了。因为notion的文章结构是一块一块blocks组成的,所以要获取到整篇文章其实要调很多次接口,文章也有大几十篇,感觉有可能是这个因素导致的。于是换了一种思路,让AI写代码,通过调用notion的官方api来实现批量修改,并且还可以基于这一套流程做更多的事情,比如:文章结构优化、自动生成摘要、自动生成封面图等等
meta-description过短优化
这个meta-description其实就是文章的摘要,每次写文章的时候其实手动写摘要还是挺麻烦的,所以大多文章的摘要我都留空了,这也会影响到SEO评分。我继续让AI在上文代码的基础上做了扩展,通过调用大模型接口自动生成摘要,并通过Notion的API更新
h1标签优化
最开始也是因为simple主题的问题,导致没有h1标签。切换到其他主题(medium/hexo)之后就有h1标签了。不过medium和hexo的表现也不太一样。
- medium主题的文章页面会有2个h1,一个是文章的标题,另一个是在footer里的固定标题h1——xxx的技术博客
- hexo主题的文章页面只有一个在footer里的固定标题h1——xxx的技术博客
两个主题对于h1的处理都不太好,都需要优化。这里以hexo主题为例:
- 修改
PostHero.js
文件,给文章页的标题包裹上h1标签

- 修改
Footer.js
文件,对于文章页不渲染h1标签

优化翻页器,不渲染page_0和page_(最大页码+1)
默认的文章翻页器会渲染出
page_0
和page_(最大页码+1)
这两个超链接,并设置成invisible
,但是对于搜索引擎来说,也会抓取到这两个链接,但是访问之后报404,为了优化SEO,这里直接修改PaginationNumber.js
文件,改造成如果页面不存在,不渲染DOM节点。
search页面
由于search页面是通过js脚本来跳转的,但是在sitemap里会出现,所以在ahref扫描的时候会报孤立页面。我们直接把它从sitemap里移除

总结
从最开始ahref给出低分的时候的无从下手,到最后优化到一个还不错的评分,整个过程还是比较磨人的。最花时间的地方就是把主题配置到了环境变量里这一步骤。往后的过程还算顺利,其中也借鉴了不少大佬的文章,推荐deeprouter.org。我的博客整体的访问速度和它的还相差甚远,后续还需要继续优化。加油~
附录代码
参考
- Author:黑微狗
- URL:https://blog.hwgzhu.com/article/notion-next-seo-optimazation
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!