批量清理404死链并提交谷歌搜索引擎收录脚本

如果你的网站存在大量404死链,不仅影响用户体验,还会拖累搜索引擎对网站的评价。
手动逐个检查和提交效率极低,今天我来分享一套批量检测、清理死链并自动提交谷歌收录的脚本方案,零基础也能照着操作。

为什么需要批量处理404死链

谷歌会定期抓取站点内的链接,如果发现太多返回404的页面,可能降低对网站的信任度,甚至减少有效页面的收录。
及时清理死链,并把正常的链接重新提交,有助于保持站点健康度。
另外,如果旧页面已失效,最好在服务器端做301跳转或删除链接,而不是放任404累积。

前置准备:你需要的东西

  • 一台Linux服务器(或本地电脑已安装Python 3环境)
  • 网站根目录下的日志文件或站点地图(用于获取URL列表)
  • 谷歌搜索控制台(Search Console)的API权限(用于自动提交)
  • 基本的命令行操作知识(会复制粘贴命令即可)

如果你还没有谷歌Search Console的账号,先去 search.google.com/search-console 验证你的网站所有权,并获取API密钥。

核心脚本:检测+提交二合一

我们使用Python编写两个功能:

  1. 遍历URL列表,检测每个链接的状态码,记录404。
  2. 将状态正常的URL批量提交到谷歌索引。

安装依赖

pip install requests google-api-python-client google-auth-httplib2 google-auth-oauthlib

脚本代码(保存为 clean_and_submit.py)

import requests
import json
import os

# ---------- 配置区域 ----------
SITEMAP_URL = "https://example.com/sitemap.xml"  # 站点地图地址,也可以改成自己准备的URL列表文件
GOOGLE_API_KEY = "your-google-api-key"  # 在Google Cloud Console中创建
SITE_URL = "sc:https://example.com/"  # Search Console中看到的网站地址
EXPORT_FILE = "dead_links.txt"  # 输出死链文件
# ----------------------------

def check_url(url):
    try:
        resp = requests.get(url, timeout=10, allow_redirects=False)
        if resp.status_code == 404:
            return False
        if resp.status_code >= 400:
            return False
        return True
    except:
        return False

def submit_to_google(url_list):
    from google.oauth2 import service_account
    from googleapiclient.discovery import build
    credentials = service_account.Credentials.from_service_account_file(
        'service_account.json',
        scopes=['https://www.googleapis.com/auth/webmasters']
    )
    service = build('webmasters', 'v3', credentials=credentials)
    for url in url_list:
        request = {
            'url': url
        }
        service.urlInspection().index().inspect(
            siteUrl=SITE_URL,
            body={'inspectionUrl': url, 'languageCode': 'en-US'}
        ).execute()
        # 更常用的方法是使用 Indexing API 提交,但需要额外配置
        # 这里简化演示,实际提交可使用 indexing API
        print(f"Submitted: {url}")

# ---------- 主流程 ----------
# 获取所有URL(这里假设从sitemap解析,实际可用库)
import xml.etree.ElementTree as ET
resp = requests.get(SITEMAP_URL)
root = ET.fromstring(resp.content)
namespace = {'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'}
urls = [loc.text for loc in root.findall('.//ns:loc', namespace)]

good_urls = []
bad_urls = []
for url in urls:
    print(f"Checking {url}")
    if check_url(url):
        good_urls.append(url)
    else:
        bad_urls.append(url)

# 写出死链列表
with open(EXPORT_FILE, 'w') as f:
    for u in bad_urls:
        f.write(u + '\n')

print(f"发现 {len(bad_urls)} 个死链,已保存到 {EXPORT_FILE}")

# 提交有效的URL(建议每次只提交少量,避免触发频率限制)
submit_list = good_urls[:20]  # 示例每次只提交前20个
submit_to_google(submit_list)
注意:上面的提交函数使用了URL Inspection API做演示,实际批量提交更推荐 Indexing API,需要申请 quota。你可以自行搜索“Google Indexing API Python”获得完整代码。

运行脚本

python3 clean_and_submit.py

避坑指南

  • 不要一次性提交过多URL:谷歌有速率限制,建议每次提交不超过50个,间隔1天以上。
  • 死链处理建议:对于重要的旧链接,最好在服务器上做301跳转到新页面,而非简单删除。
  • API密钥安全:service_account.json 文件不要上传到公开仓库。
  • URL列表来源:除了sitemap,你也可以从网站日志中提取最近报404的链接,更精准。
  • 404页面的处理:如果网站框架本身返回软404(状态码200但内容提示错误),脚本无法准确判断,需要在代码中增加内容检测逻辑。

效果验证

  • 在谷歌Search Console中查看“页面索引”报告,确认提交的URL是否已被收录。
  • 重新运行脚本,检查死链列表是否减少。
  • 使用在线工具(如 Screaming Frog)再次扫描全站,对比死链数量。

常见问题解答

Q:我用的是Windows,能运行这个脚本吗?
A:可以,Windows下安装Python 3,同样执行 pip install requests,但需要自己处理文件路径和中文编码问题。

Q:生成的死链文件怎么用?
A:你可以手动在网站后台删除这些链接,或者批量设置301跳转。也可以将文件导入到其他工具进一步分析。

Q:提交后多久能收录?
A:谷歌不会承诺时间,通常1-7天可能有结果。建议隔一周再检查。

Q:我的网站没有sitemap怎么办?
A:你可以自己准备一个文本文件,每行一个URL,然后修改脚本读取这个文件即可。

如果你正在解决网站死链问题,建议先完整执行上述流程,再根据实际环境调整提交频率和死链处理策略。
遇到异常时,优先检查API密钥权限和网络连通性。

(全文完)

分享到:
上一篇
权重传递完整Nginx配置修复收录流失问题实操
下一篇
负载均衡多节点分发海外访客请求流量压力完整配置
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意