现代SEO深度解析:原理、算法与实战
0. 引言
SEO,也就是Search Engine Optimization,它是一整套技术策略,目的是让搜索引擎更容易理解和索引你的网站,最终为用户提供更好的搜索结果
SEO是一个长期的过程,需要根据搜索引擎的规则和算法来不断调整和优化
本篇与《现代搜索引擎深度解析:从原理、算法到高效检索实践》是互补的关系,强烈建议您了解前作,>点击跳转
1. 抓取 Crawling
抓取是搜索引擎认识一个网站的第一步,爬虫程序会通过链接逐一访问网页并获取网页内容
你的网站页面必须能够被抓取,才能被搜索引擎索引并显示在搜索结果中
1.1 抓取队列 & URL发现
搜索引擎依赖一个叫做Crawl Frontier(抓取队列)的系统。
抓取队列是一个管理URL的列表,爬虫会依照队列中的URL来抓取页面。
URL的发现主要有四种方式:
- 内部链接
Internal Links:爬虫通过已经抓取的页面中的<a>标签来发现新页面。比如你的 Arch Linux安装指南 中有链接指向 GRUB引导配置详解 ,爬虫会通过这个链接发现后一个页面 - 外部链接
Backlinks:其他网站指向你网站的链接也是一个重要的发现途径。例如,如果一个音游社区在盘点作曲家xi的文章中,链接到你的 xi在舞萌DX中的曲目有哪些,那这就是一个外部链接
关于外链的SEO参见PageRank讲解 - 站点地图
Sitemap:站长提供一个sitemap.xml,列出网站的所有重要页面。搜索引擎可以通过这个文件快速知道你站点下的内容物并索引 - 历史数据和预测
History & Prediction:基于之前的抓取数据,搜索引擎会预测新的URL。例如,假设你的URL结构是/chongxi/1/,那么爬虫可能会推测到可能存在/chongxi/2/,并继续抓取
1.2 抓取策略:BFS & 优先级 & 自适应调度
面对海量的URL,爬虫需要有效管理抓取顺序
以下内容可能你已经在上一篇搜索引擎详解看过了,这里就简单讲讲,当复习了
广度优先搜索
BFS:最基础的抓取策略。它从起始页面开始,优先抓取离当前页面较近的页面(链接层级少)优先级调度
Priority Scheduling:现代爬虫会根据多种信号动态调整优先级,例如:1.PageRank:如果你的
舞萌DX入坑指南被很多高质量网站链接,爬虫可能认为这个页面更重要,会优先抓取和更新它,但是PageRank早已成为过去时,更替为了更先进的权威评估,详见3.32.更新频率:比如一个
实时更新舞萌DX出勤记录的页面,可能会被更频繁地抓取3.用户需求:如果OpenWrt新版本编译成为热门搜索,相关的教程页面可能被优先抓取
1.3 抓取预算 Crawl Budget
抓取预算Crawl Budget是指搜索引擎对网站进行抓取的时间和资源限制。它由两部分组成:
- 抓取率限制
Crawl Rate Limit:指搜索引擎对你服务器的抓取频率限制。如果你的网站服务器响应很快,没有大量的404或5xx错误,爬虫就会抓取得更频繁 - 抓取需求
Crawl Demand:指搜索引擎认为一个页面的抓取价值。例如,如果你的页面很有价值,或者页面内容经常更新如频繁更新的舞萌DX曲目列表,爬虫会更频繁地抓取它
1.4 抓取控制协议的层级与逻辑
站长可以通过多种方式来控制爬虫
- robots.txt 文件:位于网站的根目录下,告诉爬虫哪些路径不可以访问
配置示例:
1 | User-agent: * |
<meta name="robots">:页面级别的控制,放在HTML的<head>部分
配置示例:
1 | <meta name="robots" content="noindex"> |
表示此页面可抓取,但不要在搜索结果中显示
X-Robots-Tag:通过HTTP响应头控制抓取和索引,适用于非HTML文件(如PDF、图片等)
2.索引 Indexing
索引是搜索引擎将网页内容转换成可查询、可检索的结构化数据的过程
2.1 文本预处理流水线
抓取到的网页内容会经过一系列处理:
- 内容提取:剥离广告、侧边栏、页脚等模板化内容,专注于核心正文
- 分词
Tokenization:将文章内容分解成一个个单独的词元token。例如,中文小米路由器刷openwrt会被分割为小米,路由器,刷入,openwrt - 标准化:包括转小写、词形还原(如”running”到”run”)、去除停用词(如”的”,”了”)
2.2 核心数据结构 I:倒排索引 Inverted Index
倒排索引是搜索引擎的核心数据结构之一,它建立词元 → 包含该词元的文档ID列表的映射,允许快速查找
EXAMPLE
假设你的blog上有以下三篇文章:
- 文章1
ID: 1:标题 在Arch Linux上优化Steam Proton性能的终极指南 - 文章2
ID: 2:标题 Arch Linux安装与配置i3wm - 文章3
ID: 3:标题 推荐几款能在Linux上流畅运行的Steam独立游戏
经过文本预处理分词、标准化后,搜索引擎会为一些关键的词元Token建立如下的倒排索引表Posting List:
词元 Token |
包含该词元的文档ID列表 Posting List |
|---|---|
arch |
[1, 2] |
linux |
[1, 2, 3] |
steam |
[1, 3] |
指南 |
[1] |
游戏 |
[3] |
安装 |
[2] |
现在,我们来看当用户进行不同搜索时,倒排索引是如何工作的:
场景一:简单查询
当用户搜索Arch时,搜索引擎直接访问arch的倒排列表,瞬间返回 [文档1, 文档2]
场景二:布尔查询
当用户搜索Arch Linux Steam时,搜索引擎会执行以下高效的交集运算:
1. 取出arch的列表:[1, 2]
2. 取出linux的列表:[1, 2, 3]
3. 取出steam的列表:[1, 3]
接下来,对这些已排序的列表进行合并求交集操作:
1 | - [1, 2] AND [1, 2, 3] => [1, 2] |
至此,搜索引擎在数毫秒内就精确地锁定了唯一相关的文章1,而完全不需要去扫描那数以亿计的、与查询无关的文档
2.3 核心数据结构 II:向量索引 Vector Index & 语义空间
现代搜索引擎引入了向量索引,以理解查询的语义。通过深度学习技术,将每个词或文档转换为一个高维的向量
EXAMPLE
你的两篇文章 OpenWrt如何搭建家庭云存储 和 如何用OpenWrt搭VPN服务器,虽然关键词不完全相同,但内容主题相关。
通过向量索引,搜索引擎能将它们的语义关系转化为向量空间中的距离,知道它们都属于OpenWrt高级配置这个主题。因此,当用户搜索OpenWrt VPN,搜索引擎也可能推荐OpenWrt家庭云存储的文章
2.4 内容去重与规范化
互联网充满了重复内容,搜索引擎采用如 SimHash 等去重算法来识别相似内容,并只索引一个权威版本
EXAMPLE
- 文章A:如何在 OpenWRT 上安装 OpenClash 服务
- 文章B:OpenWrt OpenClash 安装配置指南
如果内容高度相似,搜索引擎会认为它们是重复内容。此时,rel="canonical"标签就起到了作用,它可以明确告诉搜索引擎哪一篇是主要的版本,其他重复内容的权重会被归并到主版本中
3.排序算法与信号解构 Ranking Algorithms & Signals
排序是搜索引擎将从索引库中召回的成千上万个相关文档,按优先级展示给用户的过程。这个过程涉及多个阶段的筛选与打分
3.1 排序的多阶段漏斗模型
以下内容在前文已提及,这里作简单概述
排序过程可以看作一个漏斗模型,逐步筛选和精化结果:
- 召回
Recall:通过倒排索引和向量索引,从亿万文档中找到几千个最相关的候选文档 - 初排
Coarse Ranking:使用计算开销较低的算法(如 BM25)对候选文档进行初步评分,筛选出几百个最有潜力的结果 - 精排
Fine-grained Ranking:使用复杂的机器学习模型,综合数百个信号对候选文档进行进一步的精准排序 - 重排
Re-ranking:在精排基础上,根据用户的个性化需求、时效性等因素对结果进行最后的微调
3.2 初排核心算法:BM25
BM25 是搜索引擎常用的一种初排算法,它基于概率模型来估算文档与查询之间的相关性,是TF-IDF的改进版
EXAMPLE
查询:OpenWrt 配置代理服务
文档A:如何在 OpenWrt 上配置代理服务,1500字,关键词”OpenWrt”、”代理服务”出现了10次
文档B:OpenWrt 基础设置指南,篇幅8000字,也提到了”代理服务”几次,但更多篇幅在讲DHCP、DNS等
BM25如何评分:
- 词频 (TF):文档A中关键词频率更高,得分会更高。
- 文档长度:BM25会惩罚过长的文档。文档B虽然也包含关键词,但因为它篇幅太长,主题不够集中,其分数会因此被拉低,避免了长文档因包含更多杂乱关键词而获得不公平的优势
- 词频饱和度:文档A即使把”代理服务”重复100次,其得分也不会无限增长,有效防止了关键词堆砌
3.3 链接权威性模型:PageRank的暴死 & 现代权威模型
PageRank是Google早期的革命性算法,它第一次将互联网上杂乱无章的链接,变成了一张巨大的、可计算的信任投票网络
一个网页的权威性,部分继承自链接到它的其他网页的权威性。一个链接,就是一张推荐票
EXAMPLE
假设你写了一篇关于 曲师xi的BMS时代名曲考据 的文章
- 情况一:这篇文章只发布在你的个人博客上
- 情况二:这篇文章被
BEMANI WIKI以及一些资深乐评的blog引用
从传统PageRank的视角来看:在情况二中,每一个指向你文章的链接都是一张信任票。来自BEMANI WIKI这个专家的权重,远高于100个普通论坛签名链接的权重。因此,情况二的文章会被赋予高得多的PageRank值,被认为是更权威、更值得信赖的资源
你说的对但是
那个0-10分的公开PageRank评分,早在2013年底就已停止更新,并于2016年被Google正式死刑宣判!
为何暴死?
它的公开性和简单性,催生了一个巨大的、扭曲的链接交易市场。黑帽SEO们不再专注于创造高质量内容,而是痴迷于购买和交换高PR值的链接,试图操纵这个投票系统
这就像一场选举中,出现了大规模的贿选和假票,导致选举结果不再可信。公开的PageRank,从一个衡量权威的指标,异化成了一个可被直接攻击和利用的漏洞,污染了整个搜索生态
为了维护搜索结果的公正性,Google不得不亲手处决了这个曾经的王牌算法的公开形态(好似喵)
PageRank转世的现代权威模型
PR已死,但通过链接分析来计算权威性这个核心思想,非但没有消失,反而以一种更复杂、更智能、更无法被轻易操纵的形式,融入了现代搜索引擎数百个排名信号的汪洋大海之中
我们可以将现代的权威模型,理解为PageRank-ADVANCED。它不再只关心谁投了票,更关心:
- 投票的上下文相关性
Topical Relevance
现代模型如何思考:一个链接的价值,很大程度上取决于它所在的页面的主题
EXAMPLE
一个来自 Arch Linux中文维基 页面上指向你 Arch Linux安装指南 的链接,其价值远高于一个来自 美食博客大全 的链接,即使后者的传统意义上PR值可能更高
因为前者可以告诉Google:一个Linux领域的权威,推荐了另一个Linux领域的资源
这是一个高度相关的且专业的背书
- 链接周围的环境
Surrounding Context
现代模型如何思考:链接周围的文本,这个链接是编辑精心放置在正文中的,还是藏在网站页脚的一堆链接?
EXAMPLE
高价值:
在一篇评测OpenWrt路由器的文章正文中,作者写道:关于旁路由的详细配置,我强烈推荐大家参考不良林上的这篇 OpenWrt旁路由超详细配置指南(链接),他把所有坑都讲清楚了这不是接广
低价值:
在你朋友博客的页脚友链区域,有一个简单的锚文本链接Chongxi的blog
前者的上下文清晰地解释了为什么要推荐你,这是一个强烈的编辑推荐信号
- 链接的用户行为
User Behavior
现代模型如何思考:这个链接,真有人看吗?用户点击后,是长时间停留,还是立刻返回
EXAMPLE
Google可以通过Chrome浏览器、Android系统等多种渠道,获取匿名的用户行为数据。如果一个指向你《舞萌DX定数表》的链接被大量用户点击,并且用户在你页面上平均停留了5分钟,这就在事实上验证了这个链接的真实价值
今天的链接权威性,综合了相关性、上下文、编辑价值和用户真实反馈的复杂评分。它远比PageRank更难被操纵,但也因此,对那些真正创造高质量、专业内容的创作者更加公平,希望各位看到这段后,不再去试图以各种途径来和SEO斗智斗勇,酒香不怕巷子深,把内容质量写好才是第一位
3.4 现代排序核心:学习排序 Learning to Rank
LTR是现代搜索引擎精排阶段的关键技术。它把排序问题转化为机器学习问题,依靠大量特征和训练模型来决定页面排名。
常见的LTR模型有基于树的模型(如Gradient Boosting Decision Trees, GBDT)和神经网络模型
EXAMPLE
查询:Arch Linux 安装后要做什么
LTR模型会考量哪些特征(简单举例):
- BM25得分:衡量页面内容和查询的字面匹配度
- 外链特征:页面是否有来自Arch Linux官方论坛、知名技术博客的外部链接?这些链接的锚文本是什么?
- 用户行为信号:当这篇文章出现在搜索结果中时,它的历史点击率是多少?用户点击进来后,平均停留了多长时间?是很快就返回(
Pogo-sticking),还是看完了再走(Long Click) - 内容质量特征:文章是否详细、有深度?是否提供了清晰的代码示例?是否图文并茂?是否体现了作者的真实经验
E-E-A-T?
工作机制:
LTR模型通过学习海量的查询-文档-用户反馈数据,自动为这数百个特征分配权重,最终输出一个综合相关性分数
它能理解,对于这个查询,用户可能更看重提供具体解决方案这个特征,而不是外链数量
3.5 神经重排 Neural Re-ranking
这是最先进的技术之一,使用深度学习模型(如Transformer, BERT)来进行更精细的语义匹配,超越了简单的关键词匹配
EXAMPLE
查询:舞萌DX怎么快速提升Rating
神经重排如何理解:
传统方法:可能会寻找包含”舞萌DX”、”快速”、”提升”、”Rating”这些词的文章
神经模型:它能理解这个查询的深层意图是”寻找高效的上分技巧”
因此,它不仅会返回标题匹配的文章,还会高度评价一篇标题为 舞萌水歌吃分推荐 的文章,即使这篇文章里压根没出现”快速提升”这四个字。因为它从语义层面理解了”水歌吃分”就是对”快速提升Rating”这个问题的绝佳答案
4. 排名算法
除了上述模型,还有一些经典算法族系值得了解,它们共同构成了搜索引擎的算法核武库
4.1 经典算法:BM25 & TF-IDF
已在3.2节详细介绍,TF-IDF是BM25的基础,核心思想是通过词频和逆文档频率来评估词语重要性
4.2 HITS
Hyperlink-Induced Topic Search与PageRank不同,HITS是查询相关的。它将页面分为两类:
- 汇聚点
Hub:一个高质量的Hub页面,是链接到多个相关权威页面的资源列表页 - 权威点
Authority:一个高质量的Authority页面,是被多个相关Hub页面链接的官方或最终内容页
EXAMPLE
查询:OpenWrt 固件下载
权威页:OpenWrt官方固件下载页面
Hub页 (Hub):一篇 OpenWrt从入门到精通 的博客文章,其中一部分列出并链接了官方固件下载页、LEDE固件下载页、以及几个知名的第三方编译固件的GitHub页面,那么此文章就是一个高质量的Hub页
4.3 LTR
已在3.4节作为现代排序核心详细介绍
4.4 深度学习
已在3.5节作为语义匹配前沿技术详细介绍,其核心是利用BERT等模型进行深层语义理解
5. 结果展示
一个好的搜索结果展示能极大提升点击率
5.1 标题
EXAMPLE
差:OpenWrt
爆赞:[2025] OpenWrt路由器超详细配置指南
5.2 摘要
摘要是显示在标题下方的简短描述。搜索引擎会自动抓取它认为最相关的部分。
5.3 URL 和面包屑导航 Breadcrumb Navigation
清晰的URL结构和面包屑导航能帮助用户和搜索引擎理解页面在网站中的位置
EXAMPLE
- URL:
.../guides/openwrt/openclash/ - 面包屑:
首页 > 指南 > OpenWrt > OpenClash配置教程
建议使用
BreadcrumbListSchema.org结构化数据来标记你的面包屑导航,有机会让它直接显示在搜索结果中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 {
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "指南",
"item": "https://blog.chongxi.us/guides"
},{
"@type": "ListItem",
"position": 2,
"name": "OpenWrt",
"item": "https://blog.chongxi.us/guides/openwrt"
}]
}
6. 技术性SEO
技术性SEO旨在优化网站的技术结构,确保搜索引擎能够顺利地抓取、渲染和索引,优化用户体验
6.1 抓取与索引优化指南
6.1.1 robots.txt 审计
定期审计robots.txt文件,确保没有误阻止重要内容的抓取。
EXAMPLE
假设你的网站是用React或Vue构建的SPA应用,JS文件至关重要。如果你在robots.txt中错误地加入了Disallow: /assets/js/,那么爬虫将无法加载和渲染你的页面,导致只能看到一个空白页
6.1.2 noindex 标签的精确使用
对低质量页面(如搜索结果页、重复内容页、标签聚合页等)使用noindex,可以集中抓取预算和页面权重
EXAMPLE
你的博客可能有很多标签页,比如/tags/openwrt。如果这个页面只是简单地列出相关文章的标题,而没有独特的原创内容,它就属于低质量页面。
为这类页面添加<meta name="robots" content="noindex, follow">,意味着告诉Google:别索引这个列表页,但你可以顺着它上面的链接去抓取那些有价值的文章
6.1.3 站点地图的维护
确保站点地图是动态生成的,并且只包含你希望被抓取的规范化URL
EXAMPLE
当你发布一篇 浅谈xi的World Fragment专辑 后,你的站点地图生成脚本应能自动将这个新URL加入sitemap.xml,并更新<lastmod>时间。
然后,你可以通过Google Search Console的站点地图功能,主动通知Google有新的内容需要抓取
6.1.4 监控抓取统计报告
在Google Search Console中定期查看设置 > 抓取统计信息报告,关注404错误和5xx服务器错误
EXAMPLE
如果你在报告中发现服务器连接错误的提醒,这表明你的服务器可能存在性能问题或炸了。你应立即排查服务器问题,因为持续的报错会导致Google降低对你网站的抓取频率
6.2 网站性能优化 Core Web Vitals
Largest Contentful Paint / LCP
衡量页面主要可见内容加载的时间。
EXAMPLE
你的Arch Linux教程文章中,通常最大的元素是顶部的头图或截图。你需要确保这张图片被压缩,并且没有被其他CSS或JS文件阻塞加载。可以考虑为这张关键图片使用<link rel="preload">来提升加载优先级
可以考虑把图片压缩为Webp/avif来显著降低大小以优化加载速度
INP / Interaction to Next Paint
测量用户与页面交互的响应时间。
INP已于2024年3月正式取代FID
EXAMPLE
你的网站有一个复杂的、用JavaScript实现的曲目搜索筛选器。当用户点击一个筛选按钮时,如果JS需要进行大量计算导致页面卡顿超过200毫秒,INP指标就会变差
优化方法包括:将长任务拆分成小块、对筛选逻辑进行算法优化(视你的实际情况而定)
CLS / Cumulative Layout Shift
测量页面内容的视觉稳定性
EXAMPLE
你的文章页面在加载过程中,顶部加载一个广告横幅,但是他的加载速度比正文慢。当广告加载出来时,会将下方的正文内容推下去,导致用户正在阅读的文字位置发生跳动。
这就是典型的CLS问题。解决方案是:在广告位容器上预先设置明确的width和height属性,即使广告还没加载,也先占好位置
6.3 结构化数据 Schema Markup
通过使用Schema.org标准,可以帮助搜索引擎更好地理解你的网页内容
- 基础部署:为文章、博客、组织信息等添加标记
- 争取富媒体摘要
EXAMPLE
在 OpenWrt配置指南 文末,有FAQ部分
1 | { |
部署后,搜索结果下方有可能直接出现这个问答,吸引用户点击
6.4 精通 nofollow, sponsored, ugc
引流当然重要,但同样重要的是,我们也需要一个阀门来精确控制我们网站的权重如何流出,以及如何向搜索引擎表明我们与其他网站链接的性质
这就是rel属性中nofollow、sponsored和ugc这三个值的用武之地
6.4.1 Link Relationship Attributes
最初只有rel="nofollow"主要是为了解决博客评论区的垃圾链接泛滥问题。站长们用它来告诉搜索引擎:”不要追踪这个链接,不要将我的页面权重传递给它,我不对这个链接的内容背书“
然而,一个简单的nofollow无法区分链接的动机。因此,在2019年,Google引入了两个更具体的属性,将nofollow的职责细分了:
rel="sponsored":明确用于标记付费链接,如广告、赞助商内容rel="ugc":明确用于标记用户生成内容User Generated Content,如博客评论、论坛帖子rel="nofollow":现在作为一种通用的、当你不想为某个链接背书,但它又不属于sponsored或ugc类别时的备用选项
Google现在将这三个属性视为提示而非指令
这意味着,在某些情况下(比如为了更好地发现内容),Google可能会选择追踪一个nofollow链接,但它仍然不会传递排名权重 PageRank
防止评论区被滥用,防止外链污染
你的 Arch Linux安装指南 下方开放了评论区。很快,一些垃圾账号开始发布评论,内容是”非常好文章!看看我的”,并附上了指向低质量、甚至博彩网站的链接
如果你不加处理,你的高质量页面就相当于在投票给这些垃圾网站。这不仅会稀释你自身的页面权重,还可能因为链接到不良邻居而受到搜索引擎的惩罚,这就是外链污染
这里可能会有不仔细看的人会问啊:啊Chongxi你不是说PageRank被弃用了吗。对,传统意义上的PageRank确实弃用了,但是他的思想被传承下来了,这种投票机制依旧存在,不过算法更加严格
解决方案
为所有评论区用户提交的链接,自动添加rel="ugc"
1 | <!-- 用户在评论中留下的链接 --> |
这通常由你的后端或CMS系统(如WordPress)在渲染用户评论时自动完成。你需要确保你的系统有这个功能。对于自己开发博客的你来说,就是在处理用户输入的Markdown或HTML并将其渲染到前端时,用一个过滤器给所有的
<a>标签加上rel="ugc"
ugc和nofollow可以组合使用:
为了兼容其他可能不完全理解ugc的搜索引擎,最佳实践是同时使用两者:
1 | <a href="http://spam-site.blog.chongxi.us" rel="ugc nofollow">非常好文章,即使是我也感到心潮澎湃</a> |
建立商业诚信,标明付费链接
一家知名的路由器硬件厂商联系你,希望在你的 出厂OpenWrt硬件推荐 一文中,付费购买一个指向他们最新款路由器的链接
根据Google的网站管理员指南,任何以影响搜索排名为目的的付费链接,都必须明确声明。如果你收了钱,却让这个链接看起来像一个自然的编辑推荐链接(即没有rel属性的”dofollow”链接),一旦被Google发现,你的网站可能会受到严厉的**手动操作惩罚 **,导致排名暴跌甚至从搜索结果中消失
解决方案:为这个付费链接添加rel="sponsored"
1 | <a href="http://yoanshen.com/ganshenme" rel="sponsored">点击购买最新最热路由器</a> |
这不仅仅是一个SEO技术问题,而是一个商业诚信问题。明确标记付费合作,既遵守了搜索引擎的规则,也维护了你和读者之间的信任
精细化你的内部链接策略
观前提醒,这个比较有争议性
你的博客侧边栏有一个登录/注册页面的链接。这个链接会出现在你网站的每一个页面上
一些SEO专家过去认为,像”登录”、”关于我们”、”隐私政策”这类对排名没有帮助的页面,不应该从你的高质量文章中获得权重。因此,他们会给这些内部链接加上rel="nofollow",试图将权重雕刻或引导到更重要的产品或文章页面
1
2
<!-- 传统做法,现在已不推荐 -->
<a href="/login" rel="nofollow">登录</a>
这种做法现在已经过时且无效了,Google已经明确表示,当一个页面上的链接被加上nofollow后,它对应的PageRank会直接蒸发,而不会被重新分配给该页面上其他”dofollow”的链接
正确做法:
- 不要对内部链接使用
nofollow来试图控制权重流向。这只会浪费你本应在站内循环的权重 - 对于那些你认为不重要、不希望被索引的内部页面(如登录页、复杂的筛选结果页),正确的做法是使用
robots.txt阻止抓取,或者使用<meta name="robots" content="noindex">来阻止索引
何时使用,如何选择
| 属性组合 | 使用场景 | 核心目的 |
|---|---|---|
rel="sponsored" |
广告、赞助文章、付费评测等任何你因金钱交易而放置的链接 | 保持商业诚信。 |
rel="ugc" |
博客评论、论坛帖子、用户签名等所有由用户生成的内容中的链接 | 防止链接污染,保护网站声誉 |
rel="nofollow" |
当你链接到一个网站,但完全不想为之背书,且它不属于sponsored或ugc时。这是个通用备选项。 |
声明中立,不传递PageRank |
| 不使用任何属性 | (默认的”dofollow”链接) 当你真心实意地推荐一个高质量、相关的外部资源时 | 传递权重,为互联网贡献价值,建立关系 |
7.内容优化 Content Optimization
7.1 关键词研究与主题建模
7.1.1 从关键词转向主题
围绕一个核心主题,构建支柱页面 + 集群内容的网状结构
7.1.2 分析搜索意图
通过查看SERP,分析用户搜索某个词时,是想找教程(信息型),还是想找官方网站(导航型)
7.2 E-E-A-T
E-E-A-T代表
Experience - 经验
Expertise - 专业性
Authoritativeness - 权威性
Trustworthiness - 可信度
7.2.1 作者身份展示 E-T
在文章旁或文末提供作者简介,链接到作者的GitHub、技术博客或社交媒体,展示其在相关领域的经验
7.2.2 经验具象化 E
EXAMPLE
写一篇关于 评价舞萌DX中xi的Glorious Crown 的文章。与其只用文字描述,不如:
- 嵌入你自己录制在视频网站上的手元视频链接
- 贴上你自己的成绩图
- 分享一个别人没提过的冷知识:”其实这首曲目在maimai中标的BPM不对,准确应该是225.555555555,这也解释了为什么这首曲目DX分比较难抓,因为BPM不准确导致了偏移,个人猜测可能是xi作曲时编曲器BPM有误差”
7.2.3 权威性与可信度的构建 A-T
引用权威来源:在你的Arch Linux教程中提到某个配置时,链接到Arch Wiki的对应页面
专家审阅:如果你的OpenWrt教程请了另一位网络领域大肘子审阅勘误,可以在文章开头注明:”本文由xx指导以确保技术准确性”
8.权威性建设
权威性的核心是通过外部链接Backlinks来提高网站的信誉度
8.1 现代链接建设策略
8.1.1 创作可链接资产 Linkable Assets:
EXAMPLE
你可以创建一个在线工具:”舞萌DX Rating 计算器“,用户输入相关信息来计算单曲Rating,这种实用工具是天然的链接磁石
8.1.2 数字公关 Digital PR
EXAMPLE
你写了一篇关于 Samsung One UI8使用评测,包含详尽的测试数据。你可以将这篇报告主动发给一些知名的科技媒体或极客,他们很可能会引用你的数据和文章
修复死链
EXAMPLE
你要把blog从Astro迁移到Hexo,但是迁移后发现根目录不对且搜索引擎仍引用旧链接,用户在搜索引擎中访问变成404。你需要设定301重定向把旧的链接301至新的,否则可能会因为大面积的404瘫痪导致SEO评分降低
8.2 站外声誉与品牌信号建设
8.2.1 建立品牌实体
确保你的品牌(你的博客名或你的名字)在主流知识平台和行业目录中有清晰、一致的条目
8.2.2 管理第三方评价
如果你的内容涉及到工具或服务,鼓励用户在相关平台发表积极评价
8.2.3 参与行业社群
在Reddit的r/openwrt或r/archlinux子版块,或者在V2EX等技术社区,积极回答他人问题,并在适当的时候附上你文章的链接作为参考
记住:先贡献价值,再推广内容
9. JavaScript SEO
对于现代前端框架的学习,JS SEO是必修课。一个在用户浏览器里看起来华丽的SPA,在搜索引擎爬虫眼里可能只是一个空白的<div>,我们需要学会确保我们的华丽能被机器正确理解
9.1 CSR & SSR & SSG
首先,我们要理解Google爬虫Googlebot是如何处理JavaScript的。它有一个叫做网页渲染服务Web Rendering Service 的组件,本质上是一个无头浏览器。抓取流程分为两波:
- 第一波:Googlebot抓取你的原始HTML,如果内容都在HTML里,它会立刻被送去索引
- 第二波:如果页面需要JS来生成内容,这个页面会被放入一个渲染队列。几天甚至几周后,WRS才会执行JS,渲染出最终的DOM,然后将渲染后的HTML送去索引
9.1.1 客户端渲染 Client-Side Rendering
服务器只返回一个几乎空白的HTML壳子和一个巨大的JS包。浏览器(或WRS)下载并执行JS,然后通过API请求数据,最终将内容渲染到页面上。这是create-react-app或vue-cli默认的模式
特性
- 索引延迟:你的内容需要排队等待第二波渲染,收录速度可能极慢。对于新闻或时效性强的内内容是致命的
- 渲染失败风险:如果你的JS代码有bug、网络请求超时、或者过于复杂导致WRS执行超时,渲染就会失败。结果就是,Google索引的是一个空白或不完整的页面
- 抓取预算消耗:渲染需要巨大的计算资源,这会消耗你的抓取预算。Google可能不愿意为一个需要复杂渲染的小网站投入太多资源
9.1.2 服务端渲染 Server-Side Rendering
用户的请求到达服务器后,服务器在后端执行React/Vue代码,获取数据,生成完整的HTML,然后将这个HTML返回给浏览器。浏览器接收到的是已经包含所有内容的页面。Next.js, Nuxt.js等框架的核心功能就是SSR
特性
- 即时索引:Googlebot在第一波抓取时,就能拿到包含所有内容的完整HTML,无需等待渲染,索引速度极快
- 高可靠性:避免了客户端环境的各种不确定性
- 更好的性能指标:通常有更快的FCP和LCP,对用户体验和Core Web Vitals友好
9.1.3 静态站点生成 Static Site Generation
在构建时,就预先为每个页面生成一个纯HTML文件。服务器要做的只是一个简单的文件服务。Gatsby, Astro, 以及Next.js/Nuxt.js的静态导出模式都属于SSG
特性
拥有SSR的所有优点,并且性能是三者中最好的,服务器响应极快
适用:博客、文档、作品集、营销网站等内容不频繁变动的网站。对于你的博客来说,SSG是技术和SEO上的最优解。
9.2 动态渲染 Dynamic Rendering
在服务器层面,通过识别请求的User-Agent,来决定返回什么内容
- 如果
User-Agent是普通用户浏览器,返回常规的CSR应用 - 如果
User-Agent是Googlebot或其他爬虫,服务器会通过一个中间件(如Rendertron),将你的JS应用渲染成静态HTML,然后返回这个HTML给爬虫
为何弃用
这曾经是Google推荐的方案,但现在已被视为一种过渡手段。它增加了系统复杂度和维护成本,并且有被误判为伪装(即给爬虫和用户看不同内容)的风险
除非你有一个无法重构的庞大CSR遗留项目,否则应该优先考虑SSR或SSG
9.3 JS SEO调试工具
如何确定Google到底看到了什么?不要猜,要用工具验证
- Google Search Console - 网址检查 (URL Inspection Tool)
操作过程
在GSC顶部输入你要检查的URL,然后点击”测试实际网址 (Test Live URL)“
测试完成后,点击”查看测试的网页 (View Tested Page)“。你会看到三个标签页:
- HTML:这是Googlebot抓取到的原始HTML
- 屏幕截图 (Screenshot):这是WRS渲染后的页面截图,是你网站的原始面貌。如果这里是空白或者内容不全,说明你的JS渲染出了严重问题
- 更多信息 (More Info):这里会显示页面资源(JS/CSS)是否加载失败、JS控制台有无错误等信息,是排查渲染失败的直接线索
- Chrome浏览器 - 移动设备友好性测试 (Mobile-Friendly Test)
这是一个公开的工具,即使不是站长也能用。它的底层渲染引擎和Googlebot是相同的。你可以在这里快速预览Google眼中的页面样子
9.4 编写对爬虫友好的JS代码
即使你选择了CSR,也可以通过一些最佳实践来降低渲染失败的风险
9.4.1 避免#号路由
传统的Hash路由(如blog.chongxi.us/#/page)中的#及之后的内容不会被发送到服务器,Googlebot可能不会很好地处理它。请始终使用History API的URL(如blog.chongxi.us/page),这也是所有现代前端框架的默认设置
9.4.2 提供真正的<a href="...">链接
不要用<div>或<span>加上onClick事件来模拟页面跳转。爬虫只能识别标准的<a>标签和href属性来发现新链接
1 | // ×××××错误××××× |
9.4.3 小心处理内容注入
不要在用户滚动或点击后才加载核心内容。确保页面的主要内容在onLoad事件后是可用的
9.4.4 处理好API错误
如果你的页面内容依赖API获取,确保当API请求失败时,你的代码能优雅地处理错误,而不是直接崩溃导致整个页面渲染失败。可以考虑在服务器端或构建时就获取关键数据,减少客户端API依赖
10.图片与视频SEO
在像blog这种以文本为核心的SEO世界里,图片和视频往往被忽视。然而,对于像舞萌DX手元这样的视觉内容,或者需要大量截图的风景图集,富媒体本身就是内容的核心,也是Google图片搜索和视频搜索这两个巨大流量池的入口
10.1. 图片SEO
搜索引擎不是人类,它无法真正看到一张图片的内容(虽然AI识图技术在进步,但远未到完全依赖的程度)它依赖你提供的元数据来理解图片
10.1.1 文件名 (File Name)
- 反例:
IMG_8888.jpg,screenshot-1.png - 爆赞:
maimai-dx-Xaleid_ScopiX-sssp-rank.webp
文件名是搜索引擎对图片内容的第一个,也是最直接的线索。使用简短、描述性强、用连字符
-分隔的英文单词。它应该清晰地说明这张图片是什么
10.1.2 Alt文本
alt属性是<img>标签中最重要的SEO元素。它的首要目的是为了可访问性 (Accessibility)
当图片加载失败或用户使用屏幕阅读器时,alt文本会被显示或朗读出来。搜索引擎则将其作为理解图片内容的核心依据
- 反例:
- 不写
alt属性。 <img src="..." alt="图片">- 关键词堆砌:
<img src="..." alt="舞萌DX maimai DX 谱面 XaleidscopiX xi">
- 爆赞:
<img src="..." alt="一名玩家正在游玩舞萌DX的谱面《Xaleid_ScopiX》并达成SSS+评价的结算画面">
用一句话,向一个看不见图片的人,清晰地描述这张图片的内容和上下文。 它应该自然地包含关键词,但绝不是堆砌
10.1.3. 图片尺寸与性能
巨大的图片是拖慢LCP的元凶
EXAMPLE
- 响应式图片
Responsive Images
使用<picture>标签或<img>的srcset和sizes属性,为不同屏幕尺寸和分辨率的设备提供不同大小的图片1
2
3
4
5
6<img srcset="openwrt-config-small.jpg 480w,
openwrt-config-large.jpg 1080w"
sizes="(max-width: 600px) 480px,
1080px"
src="openwto-config-large.jpg"
alt="OpenWrt防火墙配置的后台截图">
这能确保手机用户不会被迫下载桌面端的大图,极大提升移动端加载速度
新一代图片格式
尽可能使用WebP或AVIF格式。它们在同等视觉质量下,文件体积通常比JPEG或PNG小30%以上懒加载
对于非首屏的图片,使用原生的loading="lazy"属性。1
<img src="arch-linux-step-10.jpg" loading="lazy" alt="...">
这能让浏览器只在图片即将进入视口时才开始加载,极大提升初始页面加载速度
10.1.4. 图片站点地图 Image Sitemaps
如果图片是你网站的核心内容(比如一个摄影作品集),或者你的图片是通过JavaScript加载的,创建一个独立的图片站点地图可以帮助Google更好地发现和索引它们
在sitemap.xml中,为每个URL条目加入<image:image>标签,提供图片的URL、标题、说明等信息
10.2 视频SEO
视频结果在搜索页面上通常占据巨大空间,非常吸引眼球。优化得当的视频,是获取高点击率的利器
10.2.1 视频托管
- YouTube
YouTube本身就是巨大的流量来源,上传到YouTube的视频,在Google搜索中天然有更高的展示权重,无需担心带宽和播放体验 - bilibili等视频平台
更适合中国大陆的用户群体,无需担心带宽和播放体验 - 自托管:
完全控制,无广告,可以自定义播放器,但你需要自己处理视频托管、CDN分发、播放器兼容性,并且失去了YouTube/bilibili等带来的巨大流量和Google的排名优势
10.2.2. 视频结构化数据
这是视频SEO的核心。通过在你的网页上部署VideoObject Schema,你可以明确地告诉Google关于这个嵌入视频的一切
EXAMPLE
name: 视频标题(应具描述性,包含关键词)description: 视频描述(详细介绍视频内容)thumbnailUrl: 视频封面图的URL(一张吸引人的封面图至关重要)uploadDate: 上传日期。duration: 视频时长(ISO 8601格式,如PT1M30S表示1分30秒)
contentUrl: 视频文件本身的URL(如果自托管)embedUrl: 视频的嵌入播放器URL(如YouTube的嵌入URL)1
2
3
4
5
6
7
8
9
10{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "【maimai外部出力】PANDORA PARAODXXX 101%",
"description": "这是一位玩家游玩maimai时录制的PANDORA PARADOXXX 101%理论值的手元视频,提供了手元参考",
"thumbnailUrl": "https://cdn.chongxi.us/thumbnails/pandora101.jpg",
"uploadDate": "1919-08-10T11:45:14+08:00",
"duration": "PT2M28S",
"embedUrl": "https://www.youtube.com/embed/qwq"
}
10.2.3. Key Moments / Video Chapters
Key Moments 是Google在视频搜索结果中展示的、带有时间戳的章节导航。它能让用户直接跳转到视频中最感兴趣的部分,极大提升用户体验和点击率
EXAMPLE
在你的YouTube视频的描述区,按照
时间戳 + 章节标题的格式,写下你的视频章节必须从
00:00开始至少需要3个时间戳
1
2
3
4(0:00) intro
(0:52) 天苍苍野茫茫风吹草低见牛羊
(1:13) 我有玉米症
(2:12) 登神长阶
当用户在Google搜索相关内容时,你的视频结果下方可能会直接出现像登神长阶等可点击的章节链接
10.2.4. 视频站点地图 Video Sitemaps
与图片站点地图类似,如果你网站上有大量视频内容,创建一个视频站点地图可以帮助Google更全面地发现它们
11.品牌信号与实体
目前为止,我们所有的优化都还局限于字符串匹配的范畴
但搜索引擎的终极目标,是理解Things,而非Strings.
它致力于构建一个庞大的、关于真实世界万事万物的数据库,这就是知识图谱
11.1 什么是实体
字符串:”曲师xi”
实体:一个ID(比如
/m/114_514),这个ID关联着一系列属性和关系:
1 | - 名称: xi |
当Google能像这样理解xi时,它就能回答更复杂的用户查询,比如”xi有哪些被iidx收录的曲子?”。
我们的目标,就是帮助Google为你或你的互联网资产,也建立起这样一个实体档案
11.2 如何构建你的品牌实体
11.2.1 用Schema.org定义你自己
这是最直接、最可控的一步。通过结构化数据,你是在向Google提交一份关于你自己的实体声明
EXAMPLE
你应该在你的核心页面(如首页、关于我页面)部署这个Schema,而不是每一篇文章
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Chongxi", // 你的名字或网名
"url": "https://blog.chongxi.us/about", // 指向你"关于我"页面的URL
"sameAs": [ // 这是关键!用它来关联你在全网的其他身份
"https://github.com/ChongxiSama",
"https://twitter.com/@CEPATO",
"https://space.bilibili.com/500042199"
],
"description": "一位兴趣爱好十分广泛的个人开发者",
"knowsAbout": [ // 声明你的专业领域
"Linux",
"Web dev",
"Web3",
"Network Engineering"
]
}
sameAs属性至关重要。它像一个外键关联,帮助Google将你在不同平台上的身份碎片,整合到同一个实体之下- 确保
name在你所有的网络身份中保持高度一致
11.2.2 外部验证
Google不会只听你的一面之词。它需要从它已经信任的、中立的第三方数据源中,找到关于你的信息来交叉验证
- 寻找种子站点
Seed Sites
Google构建知识图谱的初始数据,很大一部分来自像Wikipedia、Wikidata、DBpedia这类大型、结构化的知识库
EXAMPLE
Wikipedia
如果你(或你的项目)的成就和知名度,已经达到了维基百科的关注度指引标准(例如,被多个独立的、可靠来源广泛报道),那么创建一个维基百科条目,是构建实体的最强信号。这是一个非常高的门槛,但威力巨大
行业权威目录
在你的领域内,是否存在公认的权威数据库或社区?
对于xi,他在各Wiki上的条目,就是强力的实体验证来源
对于一个开源项目,它在GitHub上的Repo、在SourceForge上的页面,就是它的证明
对于一个技术博主,你在Stack Overflow上的高声望个人资料、你在GitHub上贡献的项目,都是外部验证信号
你该怎么做:去这些你所在领域的权威第三方平台上,创建并完善你的个人资料或项目页面,确保信息(特别是你的名字/品牌名)与你网站上声明的一致
11.2.3 全网强化
当你的实体被初步建立后,Google会开始在全网范围内寻找关于你的对话
11.2.3.1 无链接品牌提及
当一个网站或论坛上,有人提到了你的名字或博客名(比如”我昨天看了Chongxi那个三星手机用Surfing打不了电话的解决方案,很有帮助”),即使没有附带任何链接,Google的自然语言处理模型也能识别出这是在讨论你的实体
Note
Google会分析提及你实体时的上下文和情感
- 积极上下文:如果你的名字经常和”推荐”、”感谢”、”解决了我的问题”、”好文”等词语一起出现
- 消极上下文:如果经常和”过时了”、”有错误”、”不推荐”等词语一起出现
这些信号会被汇总,作为评估你实体声望和影响力的依据
你可以:
鼓励讨论:在你的文章末尾,不要只说”欢迎评论”,可以说”如果你在配置中遇到任何问题,欢迎在下面的评论区或去V2EX/Reddit上带着我的blog URL提问
积极参与社群:以你的名义,去相关的技术社区贡献有价值的回答。你的每一次高质量的发言,都是在全网范围内强化你的个人品牌实体
监控你的品牌提及:使用Google Alerts或其他品牌监控工具,追踪全网提到你名字的地方。这不仅能帮你了解大家对你的看法,还能发现一些潜在的链接建设机会(比如,你可以联系提到你但没链接的站长,礼貌地请求加上链接)
传统的SEO让你思考如何让我的网页排名更高?
现在则让你思考一个更宏大的问题:如何让Google和全世界都认识到,我是Arch Linux这个领域里一个值得信赖的、权威的知识来源?
当你成功地将自己打造成一个实体后,你会发现你的排名会变得异常稳固,并且开始能在一些你甚至没有专门优化的相关查询上获得排名。因为Google不再是推荐你的一篇文章,而是在推荐你
12. 国际化SEO
国际化SEO是一套技术规范,旨在帮助你向搜索引擎清晰地说明:我的网站为哪些国家和/或语言的用户提供了内容,以及这些不同版本之间的对应关系是什么
做对这件事,可以避免内容因语言不同而被视为重复,并确保正确的语言版本出现在对应国家/地区的搜索结果中。做错则可能导致流量混乱,甚至排名受损
12.1 URL结构的选择
你迈向全球的第一步,也是最重要的架构决策。你有三种主要方式来组织你的多语言内容,每种方式都有其明确的技术优劣和信号强度
ccTLDs
结构:chongxi.jp (日文), chongxi.us (英文)
优点:
- 最强的地理定位信号:
.jp这个域名本身就在强烈地告诉Google和用户:“这个网站是专门为日本市场服务的。” 这对于获取本地排名极具优势 - 服务器地理位置灵活:你可以将
.jp的服务器放在东京,.de的服务器放在法兰克福,为本地用户提供最快的访问速度
缺点:
- 成本高昂:需要注册和管理多个域名。
- 权威性分散:每个域名都是一个独立的网站,你需要为
.jp和.de分别建立外链和权威性,它们之间不会自动继承
适用场景:拥有充足预算和本地运营团队的大型跨国品牌。对于个人博客,这通常不是首选
Subdirectories/Subfolders
结构:chongxi.us/ja/ (日文), chongxi.us/en/ (英文)
优点:
- 权威性集中:所有语言版本都在同一个主域名下,它们共享并共同贡献于
chongxi.us这个域名的整体权威性。你为英文版获取的外链,其权重也会流向日文版,反之亦然。这是最大的优势。 - 维护成本低:只需管理一个网站、一个主机账户、一个SSL证书
- 设置简单:在技术上最容易实现。
缺点:
- 地理定位信号相对较弱(但可以通过GSC设置来弥补)
适用场景:对于绝大多数网站,这是最被推荐、也是最强大的方案
Subdomains
结构:ja.chongxi.us, en.chongxi.us
介于前两者之间。Google官方表示,他们现在能很好地处理子域名的权重传递,但SEO行业普遍认为,其权威性集中的效果仍然略逊于子目录
适用场景:当不同语言版本的网站在内容、设计甚至功能上有巨大差异,需要技术上完全隔离开时,可以考虑。例如,一个主站是电商,而日文站是一个纯内容博客
12.2 核心技术实现
hreflang 是一个HTML <link> 标签属性,它的作用是向Google精确地声明:这个页面的德语版本在这里,日语版本在那里,而这个版本是默认的英文版
特性
- 解决重复内容问题:
避免Google将你的《Arch Linux Installation Guide》的英文版和日文翻译版视为内容抄袭 - 提供正确的搜索结果:
确保日本用户在google.co.jp上搜索时,能看到你的日文版文章,而不是英文版
实现规则
以下实现极其严格,错一不可
- 相互引用
Reciprocal:
如果页面A链接到页面B,那么页面B也必须链接回页面A - 自引用
Self-referential:
每个页面都必须有一个指向自己的hreflang标签 - 包含
x-default:
你应该指定一个默认或后备版本,当用户的语言或地区与你提供的任何版本都不匹配时,他们会被导向这个版本
EXAMPLE
假设文章有三个版本:
- 英文版 (默认):
https://blog.chongxi.us/en/music/xi - 日文版:
https://blog.chongxi.us/ja/music/xi - 简体中文版:
https://blog.chongxi.us/zh-hans/music/xi
那么,在这三个页面的HTML <head>区域,都必须包含完全相同的以下代码块:
1
2
3
4
<link rel="alternate" hreflang="en" href="https://blog.chongxi.us/en/music/xi" />
<link rel="alternate" hreflang="ja" href="https://blog.chongxi.us/ja/music/xi" />
<link rel="alternate" hreflang="zh-Hans" href="https://blog.chongxi.us/zh-hans/music/xi" />
<link rel="alternate" hreflang="x-default" href="https://blog.chongxi.us/en/music/xi" />
语言和地区代码:
- 必须使用 ISO 639-1 格式表示语言(如
en,ja,zh) - 可以追加 ISO 3166-1 Alpha 2 格式表示地区(如
en-GB表示英国英语,en-US表示美国英语) - 注意:
zh-Hans和zh-Hant是例外,它们是脚本代码
部署方式:
- HTML
<head>:最常用,如上例 - HTTP 响应头:适用于非HTML文件(如PDF)
- XML站点地图:当页面数量巨大时,这是最高效、最推荐的管理方式
12.3 内容与服务器
技术标签只是基础,内容和体验才是决定成败的关键
内容本地化,而非机翻:
- 不要简单地用Google翻译你的 OpenWrt旁路由教程 你需要一个真正懂技术也懂目标语言的人来做本地化
本地化意味着:
将文章中的界面截图换成对应语言的版本、使用当地技术圈的惯用术语、甚至根据当地用户的网络环境(如ISP特点)提供特定的建议
服务器地理位置:
- 虽然CDN在很大程度上解决了全球访问速度问题,但将你的服务器托管在你的主要目标用户所在的地区,仍然是一个积极的排名信号
Google Search Console 地理位置定位:
- 对于使用gTLD(如
.com,.net,.org)并采用子目录或子域名方案的网站,你可以在GSC的旧版工具中找到International Targeting去report - 你可以明确告诉Google:
/ja/子目录下的内容,是专门面向日本用户的,这可以弥补gTLD在地理定位信号上的不足
国际化SEO非常精密,它要求你在URL架构上做出战略决策,在技术实现上严格遵守
hreflang规范,并在内容层面真正做到为本地用户着想。做好了,你就能真正地放眼全球;做错了,则可能导致一场混乱的SEO灾难,比如Google把你的各个翻译版本当作抄袭内容全给你干掉
13. 本地SEO
Local SEO 是一系列旨在提升你的业务或网站在特定地理区域的搜索结果中可见性的优化策略。对于拥有实体店面、提供区域性服务的企业,或者希望吸引特定城市用户的本地社区博客来说,本地SEO是生死线
它的核心逻辑是:当用户的搜索查询带有明确(如广州 舞萌DX机厅)或隐含(如在广州打开手机搜索 附近的舞萌机厅 )的本地意图时,搜索引擎的排名算法会引入一组全新的、权重极高的本地排名因素
13.1 本地SEO三大核心
13.1.1 邻近性 Proximity
这是最简单粗暴,也是权重最高的因素
用户搜索时,离他物理位置越近的业务,排名越有优势。这一点我们几乎无法优化,它是物理意义上的定律
13.1.2 相关性 Relevance
你的业务与用户的搜索查询有多匹配。这与我们之前讨论的传统SEO原则类似,但更侧重于本地化的内容和服务,你搜菜馆是绝对不可能弹出舞萌机厅的搜索结果的
13.1.2 知名度/权威性 Prominence
你的业务在本地有多出名、多受好评、多被信任。这部分是我们优化的重点
13.2 Google Business Profile 的深度优化
Google Business Profile(曾用名Google My Business)是本地SEO的绝对核心,是你在Google地图和本地搜索结果包中的官方名片。你必须像对待你的网站一样,精细化地优化它
- 信息的准确与一致性
- NAP 指的是 Name, Address, Phone
这三个信息,必须在你全网所有的商业信息中,保持100%的、字符级的完全一致
EXAMPLE
你的GBP名称、官网联系页、本地行业网站上的公司名,是否完全一样?
- XX科技 和 XX科技有限公司 在算法眼里就是两个不同的实体
地址的写法是否统一?
- 人民路123号 & 人民路123号
电话号码格式是否一致?
NAP的全局一致性,是Google用来验证你业务真实性的核心信号。任何不一致都会让它对你的实体信息产生怀疑
- GBP分类
- 如果你有一个主要类别和多个次要类别。主要类别应选择最能代表你核心业务的那个
EXAMPLE
- 一个主要卖openwrt路由器技术支持服务的公司,主要类别应是 IT顾问 或 计算机支持与服务
- 一个舞萌DX机厅,主要类别是 游乐中心 或 电玩城
尽可能详细地选择所有与你业务相关的次要类别
- 评论
评论的数量、星级评分、以及评论内容中出现的关键词,都是强烈的排名信号
EXAMPLE
- 主动索要评论:在服务完成后,通过邮件或短信,礼貌地邀请满意的客户留下评论,并可以直接提供你的GBP评论链接
- 回复每一条评论:无论是好评还是差评,都要专业、及时地回复。这向Google和用户展示了你的积极和负责。在回复中,可以自然地再次提及你的服务或产品名称
- Google Posts Q&A
- Google Posts:相当于GBP上的一个迷你博客。你可以用它来发布最新活动、产品介绍、优惠信息。帖子有时效性,需要持续更新
- Q&A:用户可以在你的GBP上提问。你应该主动在这里发布一些常见问题并自己回答, preemptively地解决用户疑虑
13.3 站内本地化优化
你需要让你的网站内容也充满本地信号
本地着陆页
- 如果你在多个城市提供服务,你应该为每个城市创建一个独立的、内容独特的着陆页
EXAMPLE
chongxi.us/openwrt-support/Tokyo
这个页面上应包含:
- 标题和H1中明确包含城市名(如东京OpenWrt上门配置服务)
- 页面正文中详细描述你在Tokyo地区的服务特色
- 嵌入该地区办公室的Google地图
- 展示来自Tokyo本地客户的评价。
- 提供本地的电话号码
LocalBusiness Schema
- 在你网站的联系页或页脚,部署
LocalBusinessSchema,用结构化的方式告诉搜索引擎你的NAP、营业时间等信息
13.4 本地引用
就是指在互联网上任何一个地方,提及了你的业务的NAP信息,即使没有链接到你的网站
来源一般是:本地商会网站、行业协会目录、在线地图(如高德、百度地图)、大众点评等
与GBP一样,保持NAP信息在所有引用来源中的100%一致性
建议高强度自搜你自己的品牌,检查并修正那些不一致的引用信息
14. 对话AI SEO
语音搜索代表了搜索行为的一种演变:从关键词到自然语言问句。用户不再敲 OpenWrt adguardhome dns ,而是直接问智能音箱:嘿Google,怎么在OpenWrt上设置AdGuard Home来过滤DNS?
为语音搜索优化,本质上是更好地回答问题
14.1 理解语音搜索查询的特点
- 更长、更口语化:语音查询平均更长,通常是完整的问句
- 意图更明确:通常是寻求一个直接、简洁的答案
- 本地属性强:大量语音搜索与“附近的…”相关
14.2 精选摘要
精选摘要是出现在Google搜索结果最顶部的、一个直接回答用户问题的特殊信息框。语音助手(如Google Assistant)在回答问题时,通常会直接朗读精选摘要的内容。 因此,赢得精选摘要,就等于赢得了语音搜索
EXAMPLE
- 识别问题类查询:用GSC或第三方工具,找出你的网站已经排在第一页的、以“如何”、“是什么”、“为什么”开头的查询
- 提供简洁、直接的答案:在你的文章中,紧跟着问题标题(H2/H3),用一段话(通常在40-60个词之间)直接、清晰地回答这个问题
比如
H2:
<h2>什么是OpenWrt的旁路由模式?</h2>
紧随其后的段落:<p>OpenWrt的旁路由模式,指的是在不改变现有主网络结构的前提下,将一台运行OpenWrt系统的设备作为旁路网关接入局域网。它不负责主要的路由和DHCP功能,而是专门处理特定任务,如广告过滤、科学上网或网络加速,实现对全屋设备的透明代理
这个段落的结构和长度,就是精选摘要的完美候选者
- 使用有序/无序列表:对于步骤或列表类问题,使用
<ol>或<ul>标签来组织内容 - 利用FAQPage Schema:为页面上的问答内容部署
FAQPageSchema,可以增加你被选为精选摘要的几率
14.3 让内容更具对话性
写作风格:在写作时,想象你是在直接回答一个朋友的问题。使用更自然、更口语化的语言
内容结构:多使用问答式的结构来组织你的文章
当然,注意受众,如果你的网站不需要对话式AI,那就没必要做此部分优化
15. 监控与优化
15.1 Google Search Console
GSC是Google直接提供给你的免费工具,是所有SEO工作的起点和终点。它告诉你Google如何看待你的网站
15.1.1 GSC基本设置
基本设置
验证你的网站所有权:
登录GSC,添加你的网站域名。Google会提供多种验证方式。对于技术人员,最推荐的是DNS记录验证。你需要登录你的域名提供商(如Cloudflare),添加一条Google提供的TXT记录
这种方式一次验证,你的域名下所有的子域名和协议(http/https)都会被覆盖,一劳永逸提交你的Sitemap:
- 左侧菜单栏 > 索引 > 站点地图 (Sitemaps)
- 在“添加新的站点地图”输入框中,填入你站点地图的URL(比如
https://blog.chongxi.us/sitemap.xml),然后点击提交 - 这相当于你主动给Google递上了一份你网站的最新内容清单。当你发布新内容后,只要你的站点地图更新了,就可以来这里重新提交一次(或者等Google自己来抓取)。这会加快新内容的发现速度。提交后,你可以看到Google是否成功处理了你的站点地图,以及发现了多少个URL。如果状态显示“有错误”,你必须点进去查看详情并修复它
15.1.2 解读Performance
这是你最常访问的报告。它告诉你,用户在Google上搜了什么,看到了你几次,点击了你几次,以及你排在第几
EXAMPLE
- 总点击次数 (Total clicks):用户从Google搜索结果点击进入你网站的次数
- 总展示次数 (Total impressions):你的网页出现在用户搜索结果屏幕上的次数。只要出现就算,不一定被用户看到或点击
- 平均点击率 (Average CTR):
点击次数 / 展示次数。这是衡量你的搜索结果吸引力的核心指标 - 平均排名 (Average position):你的网页在搜索结果中的平均位置
实战分析 I
进入“效果”报告。在下方的表格中,点击“查询 ”标签页。点击筛选器按钮(三条横线),设置
排名 小于 10.1(筛选出排在第一页的结果)。然后,点击表格头部的“展示次数”进行降序排列寻找那些展示次数很高,但CTR明显低于其所在位置应有水平的关键词
排名第1的CTR约25-30%,第3约10-15%,第5约5-8%,第10约1-2%
你发现你的查询“Arch Linux i3wm 配置”每月有20000次展示,平均排名是4.5,但CTR只有2%
这意味着你的内容质量足够好,Google愿意把它排在首页靠前的位置。但是,当用户看到你的搜索结果时,他们没有选择点击你。问题99%出在你的门面上,你的
<title>标签和<meta name="description">
4.立即去Google搜索这个词,看看排在你前面和后面的竞争对手的标题是怎么写的。他们是不是用了[终极指南]、[附完整配置文件]、等更吸引人的字眼?
重写你的标题和描述。不要只是Arch Linux i3wm 配置。尝试改成:从零开始的Arch Linux i3wm美化指南 (附Polybar/Rofi/Picom完整配置)
提交URL以供重新索引:修改完代码后,复制这个页面的URL,粘贴到GSC顶部的“检查任何网址”输入框中,回车。在检查结果页面,点击“请求编入索引 (Request Indexing)”。这会告诉Google你更新了页面,主动请求索引
持续追踪:在接下来的一两周内,每天回到这个报告,筛选出这个关键词,观察它的CTR是否有了显著提升
实战分析 II
在“效果”报告中,设置筛选器
排名 大于 10.1且排名 小于 30.1这里列出的,就是所有排在Google第二、三页的关键词。这些就是潜力股
你发现“OpenWrt DNS泄露”这个查询,你排在第18位
这说明Google已经认可了你页面的相关性,但还不足以让它登上首页。你需要给它临门一脚让他飞起来
打开你对应的文章。你是否只讲了基础配置?你能不能补充一节,专门讲如何通过iptables规则来强制接管所有设备的DNS请求,来尝试杜绝DNS泄露?你能不能加入一段关于DoH/DoT的对比和配置方法?
在你网站其他高权重的相关文章里(比如你的《OpenWrt旁路由配置指南》),找到合适的锚文本(比如“防止DNS泄露”),链接到你这篇排在第18位的文章。这相当于用你站内的明星页面给这个潜力页面投了一张信任票
如果可能的话,去相关的技术论坛(如恩山、V2EX),看看有没有人在讨论DNS泄露问题,你可以提供专业的解答,并在签名或回答中自然地附上你的文章链接
15.1.3 解读Indexing
路径:左侧菜单栏 > 索引 > 网页 (Pages)
核心关注:
报告分为“已编入索引”和“未编入索引”两部分。你需要重点关注“未编入索引”的原因
EXAMPLE
你在“未编入索引”的原因列表中,看到“已发现 - 当前未编入索引 (Discovered - currently not indexed)”下面有50个网址
诊断:这是个坏消息。意思是Google的爬虫已经发现了这些URL(通过站点地图或链接),但它认为这些页面的质量太低,以至于连进入它索引库的初审资格都没有。这可能是因为内容太单薄、与其他页面高度重复,或者是新网站权威性太低,Google不愿意分配索引配额给你
你应当
- 逐个审查这些URL。它们是不是你自动生成的、没有什么实质内容的标签页或归档页?如果是,让它们
noindex掉 - 如果这些是你用心写的好文章,那问题就出在内容质量或网站权威性上。你需要:把文章写得更深入、更有见地,也可以为这些页面从站内和站外获取更多高质量的链接
15.2 Google Analytics 4
GA4告诉你用户进入你的网站后都做了什么。它能帮你判断你的内容是否真的满足了用户需求
实战分析 I
识别叫好不叫座的内容
路径:报告 > 互动度 > 着陆页 (Landing pages)
这个报告列出了用户进入你网站的第一个页面。默认按“用户数”排序。现在,点击表头的“平均互动时长 (Average engagement time)”进行升序排列
你发现你的《舞萌DX全曲目列表》页面,虽然带来了很多用户(用户数列前茅),但平均互动时长只有15秒
诊断:用户来了,但马上就走了
这通常意味着:
- 你的页面加载太慢
- 页面设计混乱,用户找不到想要的信息
- 内容虽然全面,但呈现方式很差(比如就是一个巨大的、无法搜索和筛选的HTML表格)
优化页面体验:为这个曲目列表加入客户端搜索、排序和筛选功能。让用户可以按难度、按版本、按作曲家(比如xi)快速找到他们想要的曲子
提升加载速度:如果列表包含大量图片(封面),确保它们都经过压缩并使用了懒加载
实战分析 II
追踪转化,找到你的现金牛
你需要先在GA4中设置“转化 (Conversions)”。转化不一定是指金钱交易。对于博客,一个转化可以定义为“用户成功复制代码块”、“用户下载了你的OpenWrt配置文件”或“用户在教程页面停留超过5分钟”
路径:流量获取 > 流量获取 (Traffic acquisition)
数据解读:查看报告,将主要维度设置为“着陆页 (Landing Page)”,并查看每个着陆页带来的“转化次数”
发现案例:你发现你的《Arch Linux安装后十大必装软件》这篇文章,带来的“复制代码块”转化次数遥遥领先,远超其他文章
诊断:这篇文章精准地抓住了用户的行动意图。用户看完这篇文章后,会立刻动手操作。这是一篇极具价值的行动指南
抄作业型内容围绕这个成功模式,创作更多类似的内容。比如 Arch Linux下最佳的5款终端模拟器配置
流将这篇高转化文章,放在你网站更显眼的位置(如首页推荐),并从其他文章中多链接到它
16. 历史遗留问题说明
16.1 meta name="keywords"
这是一个曾位于HTML <head>区域的元标签,允许网站管理员主动告诉搜索引擎,这个页面与哪些关键词相关
1 | <meta name="keywords" content="舞萌DX, maimai DX, 谱面, 攻略, xi, 白系"> |
在搜索引擎的蛮荒时代,算法还无法精准地通过分析页面内容来判断其主题。因此,它需要网站管理员提供这样一份自我介绍
但这个标签的设计存在一个致命缺陷:它完全依赖于网站管理员的诚信。很快,黑帽SEO们开始疯狂地滥用它,在其中堆砌大量热门但不相关的关键词来骗取流量(比如在一个Arch Linux教程页面里加入免费电影下载)
这种行为严重污染了搜索结果,导致用户体验急剧下降。为了自救,搜索引擎被迫进行算法革命,学会了依靠自己的能力去理解内容,而不是轻信网站的自白
这是防君子不防小人的典型案例
死刑宣判
Google在2009年就已公开宣布,在排名算法中完全忽略meta name="keywords"标签
Bing等其他主流搜索引擎也已明确表示,这个标签几乎没有任何价值
- 对于新站长,完全不必要使用这个标签
- 对于老站长,如果你的网站还留有这个标签,也不需要浪费时间去删除它。它无益也基本无害。就让它安靜地躺在那里,作为互联网发展史的一块化石吧
这就是为什么,全篇下来我没有提到meta keyword的任何事情,如果一篇2025年的SEO教程还在教你如何优化
meta keywords,你可以释怀地笑了,作者知识体系至少落后了15年
16.2 传统PageRank评分
这是一个曾经在Google工具栏上显示的,从0到10的整数评分,用来表示一个网页的链接权威性
在长达十多年的时间里,PR值是整个SEO行业最直观、最可量化的权威性指标,直接催生了庞大的链接交易市场
为何暴死?
(我们在3.3节已经详细拆解了)它的公开性导致了大规模的算法操纵,破坏了搜索生态的公平性
死刑宣判
2013年,PageRank被隐藏
2016年,被Google彻底移除
任何声称可以查询你网站“PR值”的第三方工具,显示的都是毫无意义的、过时的数据,或者是一个他们自己发明的、与Google无关的指标(如Ahrefs的DR, Moz的DA)
忘掉PR值这个概念吧,不要再问我的网站PR值是多少了
将你的精力投入到获取主题相关、上下文合理、能带来真实流量的高质量链接上,而不是去追求一个早已不存在的虚幻分数,这才是现代的Rank
16.3 其他历史遗留观念
16.3.1 “关键词密度必须达到X%”
过去,一些人认为页面中某个关键词的占比(如2-5%)是影响排名的关键
这是一个极其过时的观念。现代搜索引擎使用BM25和NLP模型,更关注关键词的位置(标题、H1)、上下文、同义词和语义相关性。自然地写作,让关键词和相关主题词合理地出现在它们应该出现的地方即可。刻意追求某个密度,只会让你的文章变得语句不通,反而有害
16.3.2 “域名年龄越老越好”
过去人们普遍认为老域名有排名优势。
Google的John Mueller已多次澄清,域名年龄本身不是一个排名因素。老域名之所以看起来有优势,是因为它们有更长的时间去积累内容和高质量的外链。一个全新的域名,如果能快速地构建出卓越的内容和权威性,完全可以超越一个内容停滞多年的老域名。重要的是域名的历史记录,而非年龄本身
17. SEO anti
17.1 付费外链
骗子话术一般为
“我们手上有数千个高权重网站资源,可以为你发布带有链接的文章”
“只需XXX元,即可获得一条来自DA 50+(或其他自创指标)网站的dofollow外链”
解构一下就是
Private Blog Network:这是最常见的一种。骗子们会去购买一堆过期但曾经有过一点权重的域名,然后用模板化的程序快速建立大量看起来“正常”的博客。这些博客的存在只有一个目的——出售链接。它们内容质量低下、主题混乱、互相链接,形成一个虚假的“权重网络”
被黑的网站:更恶劣的情况是,他们利用漏洞黑进一些正常的网站,然后在这些网站上偷偷地添加指向客户的链接
低质量的客座博客:他们会在一些允许任何人付费发布文章的低质量新闻源或博客上,发布一篇由AI生成的、语句不通的垃圾文章,并在其中插入你的链接
Google如何把它们送上绞刑架
Google的反作弊团队拥有极其复杂的算法和人工审核流程来识别这些非自然链接
Link Graph Analysis:Google能分析整个互联网的链接拓扑。PBN网络中的网站,其链接模式通常极不自然(比如,只出链不入链,或者只在特定的小圈子里互相链接),很容易被算法识别为链接农场
锚文本滥用检测:如果一个新网站在短时间内,突然获得了大量指向它的、锚文本完全相同的(比如都是“OpenWrt路由器推荐”)外链,这是一个极其危险的信号。自然的链接,其锚文本应该是多样化的
网站质量评估:Google会评估发布链接的网站本身的质量。一个正常的网站,其内容应该是有主题、有规律更新、有真实用户访问的。而PBN上的网站,通常内容杂乱、更新停滞、没有任何自然流量
人工举报与审核:你的竞争对手,或者任何一个懂SEO的人,都可以通过Google的“举报付费链接”工具,将可疑的链接交易报告给Google
- 一旦Google的算法或人工审核员确认你的网站参与了大规模的链接操纵,你的Google Search Console就会收到一条“不自然的外部链接”手动操作惩罚通知
- 你的网站排名会断崖式下跌,甚至从Google的索引中被彻底移除
- 你需要手动找出所有购买的垃圾链接,联系对方站长请求移除(通常会被忽略或勒索),然后使用GSC的“Disavow Tool(拒绝链接工具)”向Google提交一份你不承认的垃圾链接列表,并写一份Reconsideration Request,请求Google的原谅。整个过程可能持续数月,且不保证成功
各位站长最好也放下投机的念头,酒香不怕巷子深。回顾前文,真正的权威性,来自于创作出值得被链接的“可链接资产”,通过数字公关和社群贡献,让高质量的链接自然地发生。这很难,很慢,但这才是唯一正确的、可持续的道路
17.2 关键词堆砌
骗子话术:“你的页面关键词密度不够,我们需要帮你优化到5%”
如我们在第十六章所述,这是一个石器时代的观念。现代NLP算法会认为这是在降低内容可读性,反而可能给予负面评价
17.3 “提交到XXX个搜索引擎”服务
骗子话术:“我们能把你的网站一次性提交到全球500个搜索引擎”
99.99%的搜索流量来自Google, Bing, 百度等少数几个巨头。这些巨头不需要你手动提交,它们的爬虫会自动发现你的网站。这项服务提交的,是几百个你从未听说过的、毫无流量的垃圾搜索引擎,纯属心理安慰,毫无价值
17.4 购买社交媒体信号
骗子话术:“购买10000个Twitter转发,能提升你的SEO排名”
Google已明确表示,社交媒体上的“点赞”、“分享”数量不是直接的排名因素。虽然广泛的社交分享可能带来间接好处(如品牌曝光、引流,从而可能带来自然外链),但购买虚假的、来自机器人账号的信号是完全无效的,只会被算法轻易识破
18. 结语
本文的目的很简单,让每一个现代站长,都能理解现代搜索引擎和SEO,我一直强调的都是现代。我在各大论坛看到的很多关于SEO的优化都充斥着毫无意义的洗稿,现在已经是2025年了,仍有自称SEO专家还在教堆砌关键词、外链购买等操作,此篇文章就是为了极其锐利地打烂他们所谓专家的脸面
本篇与《现代搜索引擎深度解析:从原理、算法到高效检索实践》是互补的关系,强烈建议您了解前作,>点击跳转
毕竟是个人编写,精力有限,欢迎指出错误。转载请标明出处,感激不尽
- 标题: 现代SEO深度解析:原理、算法与实战
- 作者: Chongxi
- 创建于 : 2025-11-09 22:02:03
- 更新于 : 2026-01-03 03:01:44
- 链接: https://blog.chongxi.us/2025/11/09/modernSEO/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。