如何处理WordPress网站404状态死链

网站404报错

如果网站存在大量的404状态码的URL地址(即所谓的死链),这将是对网站SEO优化是一个致命的打击,严重影响网站搜索引擎站点评级,不利于网站页面的搜索引擎收录及排名。

那么对网站自身的404数据-网站死链,我们应该如何处理?下面,我们将详细说明网站404状态码,如何进行404数据检测及如何处理网站死链数据。

  1. 什么是404状态码?
  2. 如何检测网站404数据?
  3. 如何处理网站死链数据?

什么是404状态码?

每当访客访浏览你的网站时,浏览器就会向Web服务器发送请求,并接收包括HTTP标头的数据。HTTP标头包含HTTP状态代码,用于解释请求“发生了什么”。

在大多数情况下,请求可以正常运行,并且您实际上不会看到HTTP状态代码(除非通过开发者工具查看)。但是,如果出现问题,您的网络浏览器通常会显示一条带有HTTP状态代码的消息,以指示确切的问题。

就像其他错误消息(500错误,502错误,504错误等)一样,Error 404 Not Found消息也是该过程的结果。

404报错实际意味着什么?

基本上,这意味着客户端(访客Web浏览器)能够成功连接到主机(网站服务器),但无法找到所请求的实际资源(例如,特定的URL或文件名))。

例如,如果有人尝试访问,yoursite.com/post-name 但网站并没有 post-name 这个子目录。那么,访客就会看到404报错,因为即使Web服务器正常运行,所请求的资源也不存在。

这不仅是文章或页面,任何网站数据丢失都可能在服务器上产生404错误,例如图像文件丢失,JavaScript丢失,CSS丢失等。

是什么导致404报错产生?

如果访问网站所有内容上均看到此错误,则通常是由于WordPress网站的固定链接出现问题。但是,如果仅在单个内容上看到它,则最有可能是因为您在不设置重定向的情况下更改了目录内容。

此外,404错误并不总是一件坏事– 仅在干扰可用性时才是

例如,有时一个人可能只是在其地址栏中输入了错误的URL。在这种情况下,他们仍然会看到404错误,但网站的配置没有实际问题。这实际上是所需的响应,您可以创建自己的自定义404页面来帮助将访问者引导到正确的位置。

一样404报错不同的名称

由于不同的浏览器以不同的方式显示错误消息,因此对于此错误,您可能会看到不同的消息。其他常见的变化包括:

  • “Error 404”
  • “404 Not Found”
  • “HTTP Error 404”
  • “Not Found”
  • “Page Not Found”
  • “The requested URL was not found on this server.”
  • “The page cannot be found”
  • “We can’t find the page you’re looking for.”
  • “The requested URL /~ was not found on this server.

google-404-error-page-1

Google浏览器的404报错通知页面

404报错通知页面还可能是个性化的,因为许多站点实际上会创建一个自定义404错误页面,而不是显示上面的消息之一。默认情况下,某些WordPress主题还包括自定义404页面。因此,您实际上可能根本看不到404错误消息,因为许多网站将改用有趣或富有创意的404页面

funny-404-page

有趣的404错误页面示例

以下是闪电博网站的404报错页面的示例。没有更多的内容,仅仅一个搜索框。或者我们应该在下一个版本加上我们的热门主题和插件,及最近更新的博客文章,以帮助访客更快地找到适合的内容。

如何处理WordPress网站404状态死链插图3

闪电博404页面

如何检测网站404数据?

上面我们了解清楚什么是404报错及为什么会产生404错误,下面我们来看看,我们可以通过什么方式来发现这类错误。

  • 找出那些坏链(Broken URL),这些链接可能是内部链接,也可能是其他站点的外部链接。然后,尽可能地修复这些链接。
  • 通过百度搜索资源平台抓取异常查找404错误URL地址。然后,弄清楚为什么搜索引擎尝试抓取不存在的页面并在需要时设置重定向。
  • 对404错误相关的问题进行故障排除。

选项1 – 百度搜索推送管理插件+蜘蛛分析插件

利用我们开发的百度搜索推送管理插件蜘蛛分析插件( Spider Analyser ),可以实现网站404错误URL链接监测及死链数据列表下载。

其中蜘蛛分析插件可以实时检测搜索引擎爬虫踪迹,对所有搜索引擎蜘蛛爬取网站URL的数据进行统计,包括爬取链接、状态码及蜘蛛名称等。

然后通过百度搜索推送管理插件的死链检测功能,将状态码为404的搜索引擎蜘蛛爬取链接数据整理至插件的死链提交清单,以便于站长对死链进一步处理。后面我们会详细介绍关于网站死链的处理办法。

选项2 – 重定向插件检测

Redirection插件可以帮助您监控404错误。

选项3 – 通过百度搜索资源平台查找404错误链接

通过百度搜索资源平台的数据统计-抓取异常,选择“找不到页面”选项卡,我们也可以找到404错误链接清单。

如何处理WordPress网站404状态死链插图4

选项4 – Google Analytics(分析)

如果您使用Google Analytics(分析),则可以设置自定义报告以跟踪来自外部链接的404错误。国外博主Rebelytics专门写了相关教程

选项5 – Google Search Console

最后,可以在Google Search Console(类似于百度搜索资源平台)中跟踪Google蜘蛛爬取网站页面时遇到的404错误。访问Google Search Console并验证你的网站,通过 Crawl → Crawl Errors → Not found,即可查看谷歌搜索引擎蜘蛛遇到404错误链接列表。

google-search-console-404-errors

谷歌站长工具404错误列表

上述五种方式均可以帮助你发现网站日常遇到的404错误数据,至于哪种方式更适合你,则因人而异。

如果你希望实时发现网站死链数据,则建议通过安装插件的方式来统计网站死链数据;如果你无需实时发现,则百度搜索资源平台、谷歌分析及谷歌站长工具即可满足你的需求。

如何处理网站死链数据?

下面,我们将介绍几种不同的方法来修复404错误链接,具体取决于它是在网站范围内发生还是在特定内容上发生。

更新WordPress网站的固定链接

如果您尝试访问内容时遇到站点范围内的404错误,则最可能的原因是固定链接。解决此问题的最简单方法是通过WordPress仪表板更新您的固定链接设置。所需要做的就是转到“设置”→“固定链接”,然后单击“保存更改”。

save-permalinks

重新生成WordPress中的永固定链接

但如果你使用自定义链接,需要让WordPress实现伪静态URL,则可能需要对服务器进行URL重写规则配置,具体操作如下:

如果你使用的是LNMP环境,一般情况下你在配置host的时候,若已经选择WordPress作为网站程序,理论上lnmp已经帮你配置好了网站伪静态。

但如果你在使用/%post_id%.html格式作为固定链接时发生链接无法访问,可以尝试手动配置Nginx或者Apache,配置参考如下:

Nginx伪静态配置

一般目录为/usr/local/nginx/…,找到网站的conf或者rewrite规则的conf,添加以下代码行:

location /
{
try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

Apache伪静态配置

一般目录为/www/wwwroot/www.yourdomain.com,修改.htaccess文件添加以下代码行:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

为移动或重命名的内容设置301重定向

如果您在特定内容上遇到404错误,则可能是您遇到以下问题:

  • 更改了该内容的URL地址。
  • 手动移动该内容,例如删除现有文章并将其粘贴到新文章中。

解决此问题的最佳方法是将尝试访问旧链接的访客自动重定向到新链接。这对于用户体验或者SEO优化,都积极的。如果在不添加重定向的情况下移动页面内容或重命名页面URL地址名称,则会丢失指向该页面的反向链接的所有域名带来的权重。

WordPress默认情况下将尝试重定向更改或者移动的内容。但这并不总是有效,不建议依赖WordPress来实现此功能。但是不用担心,有几种简单的方法可以在WordPress中设置重定向:

(1)使用插件设置301重定向

首先,您可以使用前面提到的Redirection重定向插件来实现URL重定向(我们也准备在Smart SEO Tool插件加入URL重定向功能,以便于做WP的SEO优化)。安装并启用插件后,转到工具→Redirection,然后在“Source URL”框中输入404报错页面URL,并在“Target URL”框中输入内容的新链接:

wordpress-404-error-page-4

使用Redirection插件设置重定向

(2)宝塔面板添加301重定向

如果您使用宝塔面板进行服务器管理,则通过宝塔面板创建重定向规则实现301重定向跳转来解决404错误页面问题(前提是有新的内容可以替代旧链接页面内容)。

进入宝塔面板,点击左侧“网站”菜单在网站列表中选择你需要设置重定向规则的网站,点击“设置”,点击界面左侧菜单“重定向(测试版)”,选择“添加重定向”:

  • 重定向类型选择为路径;
  • 重定向方式选择301;
  • 重定向路径-即源URL,即移动或删除的URL;
  • 目标URL-即旧内容的新URL链接。

宝塔面板301跳转重定向设置

宝塔面板301跳转重定向设置

(3)Nginx或者Apache配置301重定向

当然,如果你对插件设置301重定向,又或者不使用宝塔面板管理服务器,你还可以直接修改Nginx或者APache配置文件来实现301重定向跳转。

如果你的服务器使用的是Nginx,则可以参考下面的代码来编写301重定向跳转:

#Source-URL指源链接,旧链接;Target-URL指目标链接。
#请注意替换你的URL地址。
#若存在多个需要301重定向链接,则添加多条类似规则即可。
#若301重定向链接存在规律,可以尝试通过表达式来设置301重定向,此处不展开说明。
rewrite ^Source-URL(.*) Target-URL$1 permanent;

如果你的服务器使用的是Apache,则可以参考下面的代码编写301重定向跳转:

#Source-URL指源链接,旧链接;Target-URL指目标链接。 
#请注意替换你的URL地址。 
#若存在多个需要301重定向链接,则添加多条RewriteRule规则即可。 
#若301重定向链接存在规律,可以尝试通过表达式来设置301重定向,此处不展开说明。 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^Source-URL(.*)$ /Target-URL$1 [R=301,L]
</IfModule>

提交404数据删除

但如果这些404死链数据,都没有新的内容可代替怎么办?

是的,如果检测到的404死链数据均没有可代替的内容,则不需要考虑301重定向跳转规则设置,而应该将这些死链数据提交给百度搜索引擎,告知搜索引擎删除,以免这些旧数据影响到网站的评级。

如果你有安装百度推送管理插件和蜘蛛分析插件,则可以快速实现404死链数据列表下载,然后提交至百度搜索资源平台,具体如下:

Step 1 -安装并启用Spider Analyser蜘蛛分析插件,插件就会实时检测搜索引擎蜘蛛爬取网站页面行为,并发现统计所有状态码的URL地址(注意,应该保持该插件启用以统计URL状态码数据)。

搜索引擎蜘蛛日志

搜索引擎蜘蛛日志

Step 2 -下载并安装启用百度推送管理插件BSL,通过设置-百度搜索推送管理,在插件界面右侧菜单“插件设置-死链检测设置”,点击“启用”。

Step 3 -点击插件设置界面的右侧菜单“数据统计-死链提交清单”,进入网站死链数据列表,即可查看当前已经发现的所有死链数据(404报错URL地址)。

若确保当前列表的所有死链数据均无可替代的URL地址,即可点击生成列表

 

Step 4 -然后登录你的百度搜索资源平台,在“搜索服务-站点资源-死链提交”,将复制好的死链文件地址粘贴到下方截图中死链文件地址,更新周期可以根据自己的实际情况来填写,建议为7天、14天或者30天,最后点击“提交”即可。

温馨提示:提交死链文件地址前,请务必对404死链进行刷新状态,以确保URL的最新状态码。此外,尽可能在提交死链前,对死链进行301跳转处理(如有可代替的URL地址)。

百度搜索资源平台死链提交

百度搜索资源平台死链提交

小结

网站404死链无论是对访客还是搜索引擎蜘蛛均不好有,站长应该及时对此类链接进行处理。

针对404死链的处理步骤应该是,先使用蜘蛛分析或者重定向插件,站长工具等检测查找到这类链接;然后尽可能通过301重定向死链(如果能够有替代的页面);最后才是去百度搜索资源平台提交死链文件地址。

为了保证网站的搜索引擎评级,提升搜索引擎蜘蛛爬取的效率及积极性,确保站点死链得到正确有效的处理。

评论留言

回复 主题镇 取消回复

唇枪舌剑(4)

  • 蓝鸢梦想的头像

    蓝鸢梦想

    2021.11.18 10:11

    请问:如果是数据丢失导致文章重新发布,之前的404变成了200,插件是否帮忙进行检测并自动删除已记录在404-list.txt文件里的地址?

    回复
    • WBOLT_COM

      2021.11.18 11:11

      不会,404只是依据爬虫的数据。如果恢复正常,则无需理会此404,过段时间就会没有了。
      或者你可以点击忽略来跳过此404.

  • 主题镇的头像

    主题镇

    2021.5.12 20:05

    提交死链提示:Xml解析失败该如何解决。
    使用的是:选项1 – 百度搜索推送管理插件+蜘蛛分析插件

    回复
    • wbolt的头像

      wbolt

      2021.5.13 14:05

      提交工单看看报错截图是什么?另外是否用海外服务器。