网站跑了三个月才发现首页有17个404死链、SSL证书过期了8天、移动端LCP超过4秒被百度默默降了权,一份网站健康检查清单覆盖6个维度23个检查项,花30分钟过一遍比等排名掉了再排查少折腾三个月
大部分站长打开百度站长平台看数据的时间,比检查网站本身是否健康的时间多得多。排名掉了才去查,发现是服务器响应超时;收录骤降才去查,发现robots.txt把整个目录屏蔽了;被挂黑链了三个月都不知道,直到用户投诉网站跳转到赌博页面。
网站健康检查和体检一个道理——不是等病了才去医院,是定期检查把问题扼杀在萌芽里。这篇文章把网站健康检查拆成6个维度23个检查项,每个检查项告诉你用什么工具、看什么指标、异常了怎么处理。文末给一套自动化脚本,每天自动跑一遍把结果推送到你微信上。
网站健康检查6维度总览
| 检查维度 | 检查项数 | 建议频率 | 出问题后果 | 核心工具 |
|---|---|---|---|---|
| 1. 可访问性 | 4项 | 每天 | 网站打不开,直接归零 | UptimeRobot、站长工具Ping |
| 2. 加载速度 | 5项 | 每周 | 跳出率高,百度降权 | PageSpeed Insights、GTmetrix |
| 3. 链接健康 | 4项 | 每两周 | 用户体验差,爬虫抓取受阻 | 百度死链检测、Screaming Frog |
| 4. 安全与SSL | 4项 | 每月 | 被挂马、SSL过期、用户流失 | SSL Labs、Sucuri、站长工具 |
| 5. SEO技术指标 | 4项 | 每月 | 收录异常、排名下滑 | 百度站长平台、Google Search Console |
| 6. 服务器状态 | 2项 | 每月 | 网站变慢、偶尔宕机 | 服务器面板、top/free/df命令 |
一、可访问性检查:网站能不能打开,多久能打开
这是最基础也是最要命的检查。网站打不开,后面所有优化都白费。而且搜索引擎对频繁宕机的网站有惩罚——百度蜘蛛如果连续三次抓取失败,会降低对你的抓取频率。
检查项1:HTTP状态码是否返回200
用浏览器打开首页,按F12打开开发者工具 → Network标签 → 刷新页面 → 看第一个请求的Status。如果是200就是正常,301/302是重定向(需要确认是否预期内),404说明首页没了,5xx说明服务器炸了。

更省事的方式:打开站长工具 → HTTP状态查询,输入你的域名,一键查出状态码、响应时间、服务器IP。
检查项2:全站监控(宕机自动告警)
你不可能24小时盯着网站看。注册一个UptimeRobot(免费版可监控50个站点),每5分钟自动检测一次你的网站是否在线。一旦宕机,立刻发邮件或通过Slack/Telegram/企业微信通知你。
配置很简单:注册 → Add New Monitor → 选择HTTP(s)类型 → 输入你的网址 → 设置告警联系人。5分钟搞定,一劳永逸。
检查项3:DNS解析是否正常
有时候网站打不开不是服务器的问题,是DNS解析出了问题。用站长工具的"DNS查询"功能,或者命令行执行 nslookup yourdomain.com,看返回的IP地址是否是你的服务器IP。如果返回了陌生的IP,说明DNS可能被劫持了。
检查项4:全国多节点访问测试
你的网站在你本地能打开,不代表在全国都能打开。不同运营商(电信/联通/移动)、不同地区的用户访问你的网站,体验可能完全不同。
用站长工具-网站速度测试的"国内多节点测速",可以看到全国各节点的访问耗时。如果有某个地区超时或特别慢,说明你的服务器线路有问题——可能需要换BGP多线机房或者上CDN。
二、加载速度检查:慢一秒,用户跑一半
Google的数据:页面加载时间从1秒增加到3秒,跳出率增加32%;从1秒增加到5秒,跳出率增加90%。百度虽然没有公开类似数据,但百度搜索算法的"闪电算法"明确把首屏加载时间作为移动搜索的排序因素。
检查项5:Core Web Vitals(LCP、FID/INP、CLS)
打开Google PageSpeed Insights,输入你的网址,分别测试移动端和桌面端。重点关注三个指标:
LCP(最大内容绘制):页面主要内容加载完成的时间。Google标准是2.5秒以内为"好",超过4秒为"差"。如果你的LCP是红色的,优先排查:图片是否太大(压缩到WebP格式)、服务器响应是否太慢(开缓存、上CDN)、CSS/JS是否阻塞渲染。
INP(交互延迟):替代了之前的FID。页面响应用户点击/输入等交互的延迟时间。标准是200毫秒以内。如果INP过高,通常是因为主线程被JS任务长时间占用。
CLS(累计布局偏移):页面加载过程中视觉元素跳动的程度。比如你正在读一段文字,突然上面加载了一张广告图,文字被顶下去——这就是CLS。标准是0.1以内。CLS高通常是图片/广告/iframe没有预留尺寸导致的。
检查项6:服务器响应时间(TTFB)
TTFB(Time To First Byte)是从浏览器发起请求到收到服务器第一个字节的时间。Google建议在800毫秒以内,超过1.5秒就需要优化。
TTFB高通常是因为:服务器性能不足(升级配置)、PHP/数据库执行慢(开启缓存、优化查询)、没有使用CDN(静态资源走了很长的网络路径)。
检查项7:页面总大小和HTTP请求数
用GTmetrix或PageSpeed Insights查看页面总大小。一般来说,首页控制在1.5MB以内比较理想,超过3MB在移动网络下加载会明显变慢。HTTP请求数控制在50个以内,超过80个就需要合并和精简。
常见的"体积大户":未压缩的高清图片、没压缩的CSS/JS文件、第三方脚本(统计代码、客服插件、广告代码)。
检查项8:图片是否优化
图片是大多数网站最大的流量消耗来源。用PageSpeed Insights的报告看它推荐的图片优化建议——它会列出哪些图片可以压缩、可以转成WebP格式、可以延迟加载。
一个快速检查方法:随便找一张你网站上的文章配图,右键→另存为,看文件大小。如果一张配图超过500KB,你网站的速度优化空间非常大。压缩到150KB以内,肉眼基本看不出差别,但加载速度能快很多。
检查项9:是否启用了CDN和缓存
如果你的网站没有CDN,全国各地的用户都在直接访问你的源服务器。一个北京的用户访问一台深圳的服务器,光网络延迟就多出几十毫秒。CDN把静态资源分发到全国各节点,用户就近读取。
检查方法:Ping你的域名,看返回的IP是不是CDN节点(通常是一个泛域名,如xxx.cdn.xxx.com)。如果是你服务器的真实IP,说明没上CDN。

速度测试工具对比
| 工具 | 免费 | 测试节点 | 特色 |
|---|---|---|---|
| PageSpeed Insights | ✓ 免费 | Google全球节点 | Core Web Vitals + 优化建议最详细 |
| GTmetrix | 免费版有限 | 7个全球节点 | 瀑布图+历史对比+监控 |
| WebPageTest | ✓ 免费 | 全球30+节点 | 最专业,可模拟不同网络/设备 |
| Pingdom | 14天试用 | 全球多个节点 | 界面直观,适合快速看结果 |
| 站长工具测速 | ✓ 免费 | 全国多节点 | 国内线路检测最直观 |
三、链接健康检查:死链、重定向、robots封禁
死链是网站最常见的慢性病。你发了一篇文章,引用了某个外部链接,三个月后那个外部链接的页面被删了,你的文章里就多了一个404链接。搜索引擎爬到你文章里的死链,虽然不会直接惩罚你,但会降低爬虫对你网站的"信心"——它不知道你网站上的链接有多少是有效的。
检查项10:全站死链扫描
小网站(100页以内)用在线工具就够:ipip死链检测或MiniWebtool死链检查器,输入首页URL,自动扫描页面上所有链接并标记哪些返回了404。
中大网站(100页以上)用桌面工具:Screaming Frog SEO Spider(免费版可扫描500个URL),输入域名后自动爬全站,在Response Codes报告里筛选出所有4xx和5xx的链接。按页面分组,优先修首页和内页重要位置的死链。
另外注意:扫描完不是结束,修完死链后要去百度站长平台的"死链提交"工具里提交修正后的结果,让百度知道你已经处理了。
检查项11:重定向链是否过长
打开站长工具的"HTTP状态查询",输入一个URL,看它的重定向路径。如果从A→B→C→D跳了三次以上才到最终页面,搜索引擎可能会放弃抓取。每次重定向都会增加几百毫秒的加载时间,而且每跳一次就会损失一部分链接权重。
常见的重定向问题:http跳https、不带www跳带www、旧URL跳新URL——这三层叠加起来就是三次重定向。理想情况是:http和www的重定向一步到位到最终URL。
检查项12:robots.txt是否正确配置
在浏览器输入 yourdomain.com/robots.txt,查看文件内容。最常见的错误:Disallow: / 把整个网站都屏蔽了。这个问题常发生在网站从测试环境迁移到正式环境时,测试时写的robots.txt忘了改。
检查要点:确认Disallow没有误封重要目录、确认Sitemap路径指向了正确的sitemap.xml位置。如果不确定怎么写,去百度站长平台的robots工具里在线生成。
检查项13:sitemap.xml是否存在且可访问
访问 yourdomain.com/sitemap.xml,看是否能正常显示。如果返回404或500,说明sitemap没有生成或路径不对。sitemap是搜索引擎抓取你网站的"地图",没有它,搜索引擎只能通过链接关系发现你的页面,效率低很多。
用WordPress的话,安装Yoast SEO或Rank Math插件可以自动生成sitemap。其他CMS系统一般也有对应的sitemap生成插件或功能。
四、安全与SSL检查:证书过期、挂马、安全头缺失
安全问题不是"可能发生",是"迟早发生"。区别只在于你是在被黑之前做了防护,还是在被黑之后亡羊补牢。
检查项14:SSL证书状态和到期时间
打开浏览器,看地址栏左边有没有小锁图标。点开小锁→查看证书→看有效期。如果证书还剩不到30天,立刻续费或重新申请。
SSL证书过期是最常见的事故之一——很多站长的SSL证书是用Let's Encrypt免费申请的,有效期只有90天。如果自动续期脚本没配好或失效了,证书到期后用户访问网站会看到"不安全"警告,大部分人会直接关掉页面。
用SSL Labs检测你的SSL配置评分。如果评分低于A,说明SSL配置有安全问题(如使用了过时的TLS版本、弱加密套件等)。
检查项15:网站是否被挂马或植入恶意代码
用Sucuri SiteCheck免费扫描你的网站,它会检测:是否被列入黑名单、是否有已知的恶意软件、是否有可疑的注入代码、是否有异常的iframe或JS重定向。
如果Sucuri报了红,需要立即处理:备份当前网站文件 → 对比官方程序文件找出被篡改的文件 → 清理恶意代码 → 修改所有密码(FTP/数据库/后台)→ 检查服务器是否还有后门。
百度站长平台也有"网站安全检测"功能,可以从百度的视角看你的网站是否被判定为危险站点。
检查项16:安全响应头是否配置
用浏览器的F12 → Network → 点击任意请求 → Response Headers,检查以下安全头是否存在:
- Content-Security-Policy:限制页面可以加载哪些来源的资源,防止XSS攻击
- X-Frame-Options:防止你的网站被iframe嵌入到其他网站(点击劫持)
- X-Content-Type-Options:防止浏览器MIME类型嗅探
- Strict-Transport-Security:强制浏览器使用HTTPS访问
如果这些头都没有,说明你的网站安全防护处于裸奔状态。在服务器配置(Nginx/Apache)或CDN设置里加上这些头,一劳永逸。

检查项17:后台和数据库密码强度
检查你的网站后台密码是不是"admin/admin"、"123456"或域名+123这种组合。如果是,立刻改。后台路径是不是默认的/wp-admin或/admin?如果是,装个插件把登录路径改成自定义的。
数据库密码是否和FTP密码、后台密码不同?很多人图省事所有密码用同一个,一旦一个泄露全盘皆输。
五、SEO技术指标检查:抓取、索引、移动适配
SEO问题很多时候不是内容不好,是技术层面出了问题导致搜索引擎根本"看不到"你的内容。
检查项18:百度抓取诊断
登录百度站长平台 → 抓取诊断 → 输入你的首页URL → 点击抓取。百度会模拟蜘蛛抓取你的页面,返回:抓取到的HTML内容、HTTP状态码、抓取耗时、页面大小。
重点看两个:一是"抓取内容"里有没有你预期的文字——如果抓取到的HTML是一堆JS代码没有正文,说明百度蜘蛛没有正确渲染你的页面(可能是JS渲染的SPA站点、或者是服务器对百度蜘蛛返回了不同内容)。二是抓取耗时,如果超过2秒,百度可能会降低对你的抓取频率。
检查项19:site语法检查收录情况
在百度搜索 site:yourdomain.com,看返回的结果数量。如果返回0条,可能被K站了。如果返回的数量远少于你实际发布的页面数量,说明有大量页面没有被收录。
进一步排查:用百度站长平台的"索引量"工具,看索引量曲线。如果曲线突然暴跌,通常是因为:网站改版URL变了没做301、服务器宕机导致蜘蛛连续抓取失败、内容质量被百度降权、或者被挂了大量垃圾页面。
检查项20:移动适配检查
用浏览器的F12 → 切换移动端视图(iPhone 12 Pro或类似机型)→ 浏览你的网站首页和内页。检查:文字是否过小需要缩放才能看清?按钮和链接是否间距足够(手指点击不会误触)?是否有横向滚动条?
百度从2018年就开始推移动优先索引,2026年如果你的网站移动端体验差,PC端的排名也会受影响。PageSpeed Insights的移动端测试结果里也有移动适配相关的建议。
检查项21:结构化数据是否正确
用Google的富媒体搜索结果测试工具,输入一个文章页URL,检查结构化数据是否被正确识别。结构化数据做对了,搜索结果里会显示文章标题、发布日期、作者等信息,点击率比普通结果高15-30%。
WordPress用Yoast SEO或Rank Math可以自动生成结构化数据。如果没有结构化数据或数据有错误,搜索引擎无法正确理解你的页面类型。
六、服务器状态检查:资源使用、日志异常
服务器是网站的物理载体,服务器出问题,网站必然出问题。
检查项22:CPU、内存、磁盘使用率
登录服务器(或云服务器控制台),执行top命令看CPU和内存使用率。如果CPU长期超过80%,说明服务器负载过高——可能是访问量增长超过了服务器承载能力,也可能是某个进程异常消耗资源。
执行df -h看磁盘使用率。如果磁盘使用超过90%,日志文件可能是罪魁祸首(Nginx/Apache的访问日志、MySQL的binlog长时间不清理会占几十GB)。定期清理日志或配置日志轮转。
检查项23:网站访问日志异常分析
查看Nginx/Apache的访问日志,重点关注:短时间内同一IP的大量请求(可能是CC攻击或恶意爬虫)、大量的POST请求(可能被暴力破解后台)、异常的User-Agent(可能是扫描器)。
如果发现异常,及时用服务器的安全组或防火墙封禁可疑IP,或者在CDN层面设置访问频率限制。
检查频率建议
可访问性每天查(交给UptimeRobot自动查),速度每周查一次,链接健康每两周查一次,安全和SEO每月查一次,服务器每月查一次。把所有检查项做成一个清单,每次检查打勾,避免遗漏。坚持三个月,你会发现网站的问题越来越少。
七、一键自动化:每天自动检查并推送到微信
上面23个检查项全部手动做一遍确实费时间。这里给一套Python脚本,部署到服务器上,每天自动检查核心指标,有异常推送到企业微信或Server酱。
import ssl
import socket
import subprocess
from datetime import datetime
from urllib.parse import urlparse
# ===== 配置区 =====
TARGET_URL = "https://yourdomain.com"
SERVER_CHAN_KEY = "你的Server酱SendKey" # https://sct.ftqq.com/
ROBOTS_URL = "https://yourdomain.com/robots.txt"
SITEMAP_URL = "https://yourdomain.com/sitemap.xml"
issues = []
def check_http_status():
"""检查1:HTTP状态码和响应时间"""
try:
start = datetime.now()
resp = requests.get(TARGET_URL, timeout=10, headers={"User-Agent": "HealthCheck/1.0"})
elapsed = (datetime.now() - start).total_seconds()
if resp.status_code != 200:
issues.append(f"⚠ HTTP状态码异常: {resp.status_code}")
if elapsed > 3:
issues.append(f"⚠ 响应时间过长: {elapsed:.2f}秒")
return True
except Exception as e:
issues.append(f"❌ 网站无法访问: {str(e)}")
return False
def check_ssl():
"""检查2:SSL证书剩余天数"""
try:
hostname = urlparse(TARGET_URL).hostname
ctx = ssl.create_default_context()
with ctx.wrap_socket(socket.socket(), server_hostname=hostname) as s:
s.connect((hostname, 443))
cert = s.getpeercert()
expiry = datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
days_left = (expiry - datetime.now()).days
if days_left < 7:
issues.append(f"❌ SSL证书即将过期: 还剩{days_left}天")
elif days_left < 30:
issues.append(f"⚠ SSL证书还剩{days_left}天,建议续期")
return True
except Exception as e:
issues.append(f"❌ SSL检测失败: {str(e)}")
return False
def check_robots_sitemap():
"""检查3:robots.txt和sitemap.xml"""
for url, name in [(ROBOTS_URL, "robots.txt"), (SITEMAP_URL, "sitemap.xml")]:
try:
resp = requests.get(url, timeout=10)
if resp.status_code != 200:
issues.append(f"⚠ {name} 返回{resp.status_code}")
elif name == "robots.txt" and "Disallow: /" in resp.text.split('\n'):
issues.append(f"❌ robots.txt屏蔽了全站(Disallow: /)")
except Exception as e:
issues.append(f"❌ {name} 无法访问: {str(e)}")
def check_server_resources():
"""检查4:服务器CPU/内存/磁盘(仅Linux)"""
try:
# 磁盘使用率
df_out = subprocess.check_output(["df", "-h", "/"], text=True)
usage = df_out.split('\n')[1].split()[4].replace('%', '')
if int(usage) > 85:
issues.append(f"⚠ 磁盘使用率{usage}%,接近上限")
except:
pass # Windows服务器跳过
def send_notification():
"""通过Server酱推送到微信"""
if not issues:
msg = f"✅ {TARGET_URL} 健康检查全部通过 ({datetime.now().strftime('%m-%d %H:%M')})"
else:
msg = f"🚨 {TARGET_URL} 发现{len(issues)}个问题:\n" + "\n".join(issues)
if SERVER_CHAN_KEY != "你的Server酱SendKey":
requests.post(f"https://sctapi.ftqq.com/{SERVER_CHAN_KEY}.send",
data={"title": "网站健康检查报告", "desp": msg})
print(msg)
if __name__ == "__main__":
check_http_status()
check_ssl()
check_robots_sitemap()
check_server_resources()
send_notification()
部署方式:把脚本上传到服务器,安装依赖(pip install requests),配置好你的域名和Server酱SendKey,然后用crontab设置每天早8点自动运行:
每天早上8点,你会收到一条微信消息,告诉你网站是健康的还是需要处理的。有了这个自动化检查,你只需要在收到告警时才去处理,不用每天手动检查。
健康检查快速清单(打印版)
说穿了,网站健康检查这件事,门槛不在技术,在习惯。你只要养成定期检查的习惯,大部分网站问题都能在影响排名之前被发现和修复。哪怕你什么都不做,只配一个UptimeRobot监控网站是否在线、一个月查一次SSL证书到期时间、三个月扫一次全站死链,你的网站出大问题的概率就能降低80%以上。如果你用的是UC建站这类平台,服务器、SSL、CDN这些由平台统一维护,你只需要关注死链、收录、速度这三个维度就够了,比自建站省心很多。
