残留死链并非宝塔面板引起,而是用户HTML硬链接、Nginx残留配置或网站程序数据库未清理所致;需依次检查Nginx配置文件、重定向插件表及CDN缓存。

确认残留死链是否真由网站卸载引起
宝塔面板本身不会主动保留已删除网站的“死链数据”——它不记录或缓存外部访问过的 URL。所谓“死链”,通常是以下三类情况之一:
用户自己写的 HTML 页面里还留着指向旧域名或旧路径的 <a href="/old-page.html"></a>;
Nginx 配置中残留了已删站点的 server 块或 rewrite 规则;
网站程序(如 WordPress、Typecho)数据库里未清理的 post_meta、options 或重定向插件配置。
检查 Nginx 配置中是否残留 server 块或 rewrite 规则
这是最常见、也最容易被忽略的死链来源。即使你在面板里点“删除网站”,宝塔默认只删 /www/wwwroot/xxx.com 目录和数据库,但不会自动删对应的 Nginx 配置文件。
执行以下操作确认:
- 进入配置目录:
ls /www/server/panel/vhost/nginx/,查看是否存在已删除域名的xxx.com.conf文件 - 用
grep -r "return 301" /www/server/panel/vhost/nginx/检查是否有残留跳转规则 - 若发现多余配置,直接
rm -f /www/server/panel/vhost/nginx/xxx.com.conf - 重载 Nginx:
bt reload或nginx -s reload
清理网站程序数据库里的冗余链接数据
如果你删的是 WordPress 类站点,且之前装过 Redirection、Rank Math 等插件,它们会在数据库里建表存重定向规则,卸载插件 ≠ 清空表。
典型残留表名包括:wp_redirection_404、wp_redirection_logs、wp_options 中的 redirection_modules 字段等。
安全清理建议:
- 先备份数据库:
mysqldump -u root -p database_name > backup.sql - 登录 phpMyAdmin 或用命令行进库:
mysql -u root -p database_name - 删表(仅限确认不再需要):
DROP TABLE IF EXISTS wp_redirection_404, wp_redirection_logs; - 清空 option 表中插件残留项:
DELETE FROM wp_options WHERE option_name LIKE '%redirection%';
扫描并定位真实死链来源(非宝塔责任,但必须做)
宝塔不生成也不管理“外部访问链接”,所以你看到的 404 日志、SEO 工具报的死链,源头一定在别处。别指望删宝塔就能解决。
快速定位方法:
- 查 Nginx 访问日志中最常 404 的路径:
tail -1000 /www/wwwlogs/xxx.com.log | grep " 404 " | awk '{print $7}' | sort | uniq -c | sort -nr | head -20 - 检查站点 HTML 源码是否硬编码了旧路径:
grep -r "href=\"/old" /www/wwwroot/(注意:此命令需在仍有其他网站存活时运行) - 若用 CDN,确认 CDN 缓存没刷新,死链可能来自边缘节点缓存而非源站
真正难清理的,从来不是宝塔删不干净,而是你忘了自己写过哪些静态链接、插件存过哪些重定向、CDN 还挂着半年前的缓存。这些,得靠人工比对和日志溯源,没有一键脚本。

















