技术SEO优化

技术SEO是搜索引擎优化的基础。我指的并非它是最基础或最容易理解的概念,而是所有工作都建立在这个基础之上。我们并不期望它做到100%正确,但如果出错,可能会给你的网站带来隐患,毕竟你不知道下一次谷歌算

技术SEO是搜索引擎优化的基础。我指的并非它是最基础或最容易理解的概念,而是所有工作都建立在这个基础之上。我们并不期望它做到100%正确,但如果出错,可能会给你的网站带来隐患,毕竟你不知道下一次谷歌算法更新,某一项技术SEO因素会得到加强。

多数人忽视技术SEO的存在,而部分知道的人也大多置之不理,因为他们觉得WordPress SEO插件已经帮他们搞定了。由于这些都已经帮他们搞定了,他们根本不会去看Search Console的覆盖率报告,而这些报告会不断抛出错误,导致他们的索引排名暴跌,展示次数和点击量也开始下降。

什么是技术SEO?

技术SEO的核心在于如何控制搜索引擎运作的两个关键方面:

  • 爬行
  • 索引

这是我们主要关注的两件事。其他一切都是这两件事的子集,而且通常是同时涉及这两件事。它指的是分析网络爬虫如何抓取您的网站、哪些内容已被索引、哪些内容未被索引、查看服务器日志等等,目的是为了改进抓取和索引。

爬取

爬取——这指的是搜索引擎的“蜘蛛”(在网络上爬行的机器人)如何在你的网站上移动。它们会去哪里?它们能看到什么,看不到什么?“可发现性”是关键所在。​

抓取预算指的是谷歌在任何给定时间分配给抓取你网站的资源量。谷歌会为每个网站分配一个抓取预算。他们说小型网站无需担心这个问题。但也有证据表明,抓取频率和抓取深度与排名之间存在相关性。所以,仅仅因为你“无需担心”并不意味着你不应该担心。

大型网站和电商网站绝对需要重视这个问题。有很多方法会导致抓取预算出现问题,例如让爬虫陷入无限循环、无休止的dofollow和noindex跳转,以及浏览大量重复内容(例如电商网站的分面导航)。如果这个问题持续存在足够长的时间,谷歌会减少你的抓取预算,而不是浪费大量时间在你的混乱网站上。

小型网站则不能忽视这个问题。当网络爬虫抓取到你后台管理区域的大量内容,或者开始深入你的文件夹层级结构,并将这些内容暴露在索引中时,会发生什么?

你的首要任务是使用上面提到的爬虫工具之一,告诉它忽略外部链接和图片,然后从首页开始抓取你的网站。看看它抓取到了什么,确保它只抓取到你预期的内容,没有超出预期。记住,在这个简短的例子中,我们只关注网站的可发现性。

现在也有一些常见的 SaaS 服务提供爬虫功能,例如 Ahrefs、SEMRush 、Screamingfrog等。这些工具也会尝试找出你可能遇到的问题。

Ahrefs Site Audit

…简单介绍…

索引

索引——搜索引擎爬虫会尽可能地搜索并记录所有可能的内容,以便将其添加到搜索结果中。这意味着该页面可以出现在索引中。这就是索引过程。但是,所有内容都应该被索引吗?那些应该被索引但却没有被索引的内容又该如何处理呢?

这里举个实际🌰栗子

我使用 PHP 重定向和文本文件创建了一个联盟链接系统。我可以构建这样的链接:domain.com/walmart/automotive/product-name。在这个假设的例子中,我的网站根目录下有一个名为 `<your-affiliate-link-system-name>` 的文件夹,walmart其中包含多个子文件夹,其中一个名为 `<your-affiliate-link-system-name>` automotive。所有这些文件夹都包含 .htaccess 文件,以确保它们都被设置为 noindex。

文件夹内 automotive 有一个 .htaccess 文件和一个 .txt 文件。文本文件包含类似这样的行:product-name,https://walmart.com/product-name?aff=myID。这一层级的文件夹还包含一个 PHP 文件,用于创建重定向。它会扫描文本文件中的逗号product-name,匹配该行的开头,并将页面重定向到逗号后的 URL。

因此请注意,所有这些文件夹都设置为 noindex,并且 302 重定向到首页。正确的产品 302 重定向会跳转到相应商店的产品页面。此外,每次重定向都会发送 HTTP 标头,重申 noindex 指令,并为重定向中的所有链接添加 nofollow 属性。

那么问题出在哪里呢?所有文件夹和重定向都不应该被索引,并且都应该是 nofollow 的。

发生了两件事:

  1. 原来,nofollow HTTP 标头指令只适用于页面上的链接。由于页面上没有链接(因为根本没有页面,只有一个重定向),所以这些链接最终变成了 dofollow 链接。因此,我的网站上现在有了“激励链接”(也就是付费链接)。
  2. 我后来想“为什么还要让 Google 抓取这些文件夹”,于是使用 robots.txt 文件阻止 Google 抓取/walmart/文件夹中的任何内容。

第二点是我的致命错误。没过多久,谷歌就为每个联盟链接索引了近 800 个空白“页面”。这些页面没有标题标签、没有元描述、也没有内容。反正他们也读不出来。所以他们就把链接的锚文本当作标题标签,然后在搜索结果页面(SERP)上显示“由于 robots.txt 的限制,没有元描述”。

要知道,我的网站原本只有大约 300 个真正有内容的页面,现在却多了 800 个被索引的空白页面。你猜发生了什么?熊猫算法(Panda)开始惩罚我了。我的网站质量得分一路下滑,因为熊猫算法只分析索引中内容的累积质量。结果,每 3 个优质页面就有 3 个被索引的“空白”页面。这就是为什么索引如此重要。

我花了大约 6 个月的时间才把这些垃圾页面从索引中清除出去,即使我移除了 robots.txt 中针对该文件夹的禁止访问指令。即使我用了些小技巧,比如只添加包含这些链接的站点地图,也耗时太久了。

技术SEO审计中需要注意的常见问题

以下是一些常见问题:

  • 破碎的图像
  • YouTube嵌入视频失效
  • 失效的外部链接
  • 损坏的 CSS 和 JS 文件
  • 可追踪的联盟链接
  • 规范化的问题
  • 糟糕的模式
  • Hreflang 的问题
  • 网站提供多种访问版本(http 与 https,www 与非 www)
  • 混合内容错误(https 网站上存在 http 资源)
  • 重复的元标题
  • 重复的元描述
  • 重复页面
  • 搜索索引
  • 页面加载速度慢
  • 缺少网站地图
  • 重定向链
  • 缺少图像替代文字
  • 分面导航存在的问题

有些审核清单甚至会带你检查页面SEO,比如缺少H1标签之类的。我建议把这些留给专门针对页面的抓取任务。

上面列出的所有问题都很容易解决,你应该逐一检查,如果你不更改主题或架构,或许每年检查一次即可。容易解决并不意味着它们不重要。我相信其中很多问题都与信任度和质量得分有关,即使它们看起来简单常见。由于内容管理系统(CMS)的普及,这些问题变得更容易做好,也更容易出错。

记住,SEO的基础是抓取索引。谷歌希望快速抓取,不发现任何无效跳转,索引所有找到的内容,并且不抓取不应该被索引的内容。如果你能做到这一点,即使听起来很简单,你也比大多数人做得更好。

robots.txt(网站级别)

如果您想阻止搜索引擎爬虫抓取您网站的某些部分,但仍然允许人类访问,可以使用此文件。然而,这样做可能会引发严重的问题。robots.txt 绝不应该用于阻止那些原本可能被索引的页面被抓取。如果您阻止了这些页面,Google 将无法判断它们是否应该被索引,并会继续进行索引,因为请记住,除非您明确告知 Google 不要索引,否则 Google 的目标是索引所有它们能够发现的内容。如果您明确告知 Google 不要索引,但 Google 无法理解您的指示,那么这些页面最终还是会被索引。

Nofollow标签 和元标签(页面级别)

大多数你不希望被抓取的页面,例如你的后台管理区域,本来就无法被抓取,因为它们都设置了密码保护,而且大多数网站也不会链接到登录页面。99% 的情况下,抓取和索引问题都出现在网站的公开页面上,而不是你的文件夹或后台管理区域。你需要从页面级别处理这些问题。

如果你不希望搜索引擎爬虫抓取某个链接,只需rel=”nofollow”在页面的锚文本标签中添加 nofollow 属性即可。这样做也会限制页面排名的流量,所以不要试图通过在页脚的“关于我们”页面链接上添加 nofollow 属性来节省抓取预算。这样做会浪费页面排名并损害你的网站排名。让搜索引擎抓取该链接(它们会在抓取一次后自动添加 nofollow 属性,而不是反复抓取),然后添加指向其他你想提升排名的页面的内部链接。

例如:我的页面上有社交分享按钮。它们链接到 Facebook、Twitter(RIP Google+)、Reddit 等的 API URL。这些链接不仅对 Google 毫无用处,而且我也不认可这些页面作为编辑链接,我不想浪费抓取预算,也不想因为这些链接指向垃圾页面而降低 Google 对我抓取结果的信任度。因此,解决方案是修改我的 PHP 模板,为所有这些链接添加一个rel=”nofollow”属性。没错,我的页面排名会下降,但我获得了分享量。

也许你想要最干净的索引。你的爬虫(以及谷歌的爬虫)会找到数百个分页页面,例如你的分类或作者存档。这些页面都具有相同的标题标签和元描述,除了文章标题和摘要之外,没有任何独特的内容。尽管谷歌表示可以将它们保留在索引中,但你还是想删除它们,因为你并不完全相信谷歌的话。

分页页面被索引

你的所有类别、作者存档、日期存档和标签下都有成千上万个分页页面。您只想索引分类和作者列表的第一页,不希望其他页面被爬虫抓取,但仍然允许人类访问。

对于标签和日期,我将在 functions.php 模板中创建一个函数,在 `wp_head()` 钩子中插入一个 if 语句,该语句表示“如果这是一个标签或日期归档页面,则将元标签插入到 `<head>` 标签中”。对于分类和作者存档,我会对第 2 页到无穷大的所有页面都进行完全相同的操作,但我会检查 WordPress 使用的“paged”变量,以判断页面是否已分页到第 1 页之后。为了阻止爬虫抓取标签或日期存档,我会编辑这些小部件或其他相关内容(或者使用现有的函数),rel="nofollow"在小部件以及网站其他任何地方生成的所有链接中添加相应的代码。实际上,我最好还是完全移除标签和日期存档。

搜索页面被索引

当你发现搜索页面被索引了,这是某种意义上的一种基于SEO的过度优化攻击,它表现为随机创建链接 ?s=”search-term”,导致网站页面的索引量疯狂飙升。

我会在 functions.php 文件中使用一个函数,或者在 header.php 文件的 <head> 标签中使用一个 if 语句,仅在搜索结果页面上添加我们的 meta 标签。

爬虫抓取图片

图片抓取工具和其他各种网络爬虫正在消耗我的服务器带宽,它们不断抓取和下载我的全部内容。
/wp-contents/uploads/文件夹一直不停地被抓取。当用户(包括 Google)尝试访问网站时,都会出现 503 HTTP 错误。

我可以在 robots.txt 文件中禁止所有机器人抓取该文件夹,然后只允许 Google 的图片爬虫抓取。但是恶意机器人不会遵守这条指令,所以我需要使用 .htaccess 文件。我可以尝试捕获所有机器人的 IP 地址,然后延迟抓取或完全阻止它们访问网站,但它们的 IP 地址池非常庞大,所以我可以尝试捕获它们的用户代理,然后将它们重定向到其他地方或直接阻止它们。但是它们使用的是 Safari 和 Firefox 浏览器……所以我可以做的就是使用 .htaccess 代码阻止所有人查看这些文件夹的内容,或者在文件夹中放置一个 index.html 文件。现在至少恶意机器人必须逐页抓取我的网站才能获取图片,这会降低它们的抓取速度,也会减少带宽使用。而且谷歌的运作方式本来就是这样。

失效链接堆积

随着时间的推移,你文章中成千上万的链接现在都失效了,要么HTTP状态码不是200,要么变成了垃圾网站。谷歌正在失去对你外部链接的信任,这导致了你的相关性问题。我的抓取预算无疑也受到了影响。甚至一半的YouTube嵌入视频现在都失效了。

按“位置页面”对你的抓取链接列表进行排序,然后再按HTTP状态码排序。首先修复所有 404 错误。找到替代页面或直接删除链接。接下来,检查 200 状态码,查看目标页面的标题标签,确保它们仍然与您的网站相关,并且没有变成医药或赌场网站。现在,我会检查 301 重定向,并将它们替换为目标页面,特别是从 HTTP 重定向到 HTTPS 的情况,这样 Google 就知道您的用户始终处于安全状态。这会花费很长时间,但如果您一次性完成,然后每月抓取一次,就可以保持问题得到解决。

混合内容错误

您已将网站切换到符合 SSL 标准的 HTTPS 协议。您注意到某些页面显示警告,甚至可能无法加载,警告信息为“混合内容”。这意味着页面上的某些资源仍然通过 HTTP 加载,因此该页面不安全。要么安全,要么不安全。不存在“99%安全”这种说法。

如果你可以抓取该页面并获取页面上所有资源的 URL 列表,就可以查看哪些资源以“http://”开头,并将它们替换为“https://”。通常,这是文章内容或模板中硬编码的内容。例如,这可能是一个外链图片。修复它很容易,难的是找到它们。另一个解决方法是打开浏览器的开发者工具,查看控制台错误,其中可能会列出有问题的文件路径。

网站地图

你必须拥有一个网站地图。最好的做法是使用自动生成的XML网站地图,像Yoast、Rankmath这样的插件可以帮你完成这项工作。它们会自动将新文章添加到网站地图中,列出最后更新时间戳供谷歌查看等等。它们甚至会将网站地图拆分成多个,这样你就可以保持井然有序,避免一个网站地图中包含过多URL。

这一点之所以重要,是因为谷歌希望通过你的网站实现两个目标。他们希望抓取并索引新内容,并在旧内容发生更改时进行更新。如果他们必须实际抓取你的整个网站,并将缓存的文章与新版本进行比较,这会浪费他们的抓取预算和计算时间。他们会减少抓取频率和每次抓取的次数。

自动生成的站点地图可以告诉他们你何时发布了新文章以及何时更新了旧文章。问题就解决了。我百分之百相信,如果你像这样帮助谷歌,他们会将其视为信任和质量的信号。

你需要做的就是创建这个站点地图,并执行两项操作。

  1. 你需要将其添加到 robots.txt 文件中,并添加类似这样的行:以便爬虫可以找到它。
  2. 你需要将其直接提交到 Google Search Console。这样做有很多额外的好处,提交后你就会明白。

这是你与谷歌直接沟通的渠道。好好利用它。有时候,你的网站只需几秒钟就能被索引。

索引臃肿与质量

前面我已经讨论过索引臃肿的危害,但我想谈谈索引质量。假设你的网站没有索引臃肿,索引率达到 100%,这当然很好。但你的质量得分可能只有 60%。你可以把它看作是谷歌在惩罚你,只给了你实际应得排名权重的 60%。问题在于,谷歌可能认为很多索引的内容质量很低。

你最好的做法是:

  • 提高内容质量
  • 取消索引内容(但不要删除)
  • 删除内容(从而取消索引)
  • 301重定向到更好的页面

这其实是帮谷歌一个忙,不要用垃圾内容填满他们的索引。帮他们一个忙,他们也会给你带来好处。提高网站整体的熊猫算法质量得分,绝对能带来流量增长。

所以问题就变成了如何判断什么是低质量内容。通常这与内容长度有关。但同时,一个100字的页面对于“定义”意图的搜索结果来说,可能就是完美的高质量结果。因此,你也需要考虑用户意图。但事实上,并没有一个标准答案,每个网站的情况都不一样。想想以下几点:

  • 页面上有多少内容?这些内容是否为对话增添了价值?
  • 该页面从谷歌获得的自然流量是多少(谷歌是否重视这些流量)?
  • 这个页面有多少链接和社交分享(你的用户觉得它好吗?)
  • 它是否与我网站上的其他页面关联性过强?

基本上就是这样。如果您确定页面质量低下,请执行上述四种选项之一。除非您想无限期地耗费时间,否则您可能会选择删除该页面或将其 301 重定向到一个质量更好且更相关的页面。

如果您要删除大量内容,一个建议是保留一份 URL 列表,然后创建一个包含所有 404 页面的临时站点地图,并将其提交到 Google Search Console,以便 Google 重新抓取并快速将其从索引中移除。请记住删除该站点地图,以免 Google 对您的其他站点地图失去信任。

您大约需要等待 6 个月才能看到结果,但这一切都是值得的。

响应式设计错误

响应式设计现在已是不可或缺的。谷歌已经采用移动优先索引。这部分内容很简短。你只需在使用 Google Search Console 一个月左右后登录,它就会告诉你是否存在移动设计错误。

首先我要说明,他们的移动设计测试存在严重缺陷。它经常无法加载 CSS 文件,因此会误判存在大量问题。之后,它会加载 CSS 文件并移除所有错误。所以不要被误导,也没必要花大价钱聘请设计师。务必确保这些错误是真实存在的。你可以运行移动友好性测试来查看真实结果。

你会看到的错误主要包括:

  • 链接和按钮太小,而且靠得太近。
  • 字体太小,阅读起来很不舒服。
  • 页面上的元素延伸到屏幕外

第三点是指智能手机和平板电脑上的移动用户会看到水平滚动条。这些都是媒体查询相关的 CSS 问题,或者你也可以雇人来修复。

Join Our Email List

Sign up to receive the latest articles right in your inbox.

email address

*Replace this mock form with your preferred form plugin

Don't miss out on our latest articles

Sign up to receive the latest articles right in your inbox.