收录状态运维管控
在帖子详情页标题下方展示本帖在各大搜索引擎的收录状态(已收录 / 未收录)
¥3.00抵扣
一次购买,永久使用
详情介绍
收录状态(SeoStatus)使用文档
作者:kuakeba.cn | 版本:1.0.0 | 适用于 Zsens Admin 3.0+(PHP 8.2+)
一、插件简介
在帖子详情页标题下方展示本帖在各大搜索引擎的收录状态(已收录 / 未收录):
- 支持百度、必应、360 搜索、搜狗、谷歌五个搜索引擎
- 检测结果缓存到数据库,避免每次访问都向搜索引擎发起探测
- 页面加载后异步补检过期结果,不阻塞正文渲染
- 插件配置中可自由开关需要在前台展示的搜索引擎
- 检测失败(反爬、网络不通等)时显示「检测中」,下次访问自动重试
二、环境要求
| 项目 | 要求 |
|---|---|
| Zsens Admin | 3.0+ |
| PHP | 8.2+,已开启 curl 扩展 |
| 社区插件(community) | 必须安装(帖子详情页宿主) |
| 服务器网络 | 需能访问对应搜索引擎站点(国内服务器谷歌通常不可达) |
三、安装步骤
- 将
SeoStatus目录放入plugins/下 - 进入后台 应用中心,找到「收录状态」,点击 安装(自动创建数据表
{prefix}seostatus_record并复制静态资源) - 进入 应用中心 → 收录状态 → 配置,勾选需要展示的搜索引擎
- 打开任意帖子详情页,标题下方即可看到收录状态栏
卸载插件时会自动删除数据表与静态资源。
四、配置项说明
后台 应用中心 → 收录状态 → 配置:
| 配置项 | 说明 |
|---|---|
| 启用收录状态 | 总开关,关闭后帖子详情页不再显示状态栏 |
| 展示的搜索引擎 | 多选:百度 / 必应 / 360 搜索 / 搜狗 / 谷歌,仅勾选的引擎会显示 |
| 检测缓存时长(小时) | 检测结果缓存多久后自动重新检测,建议 12~72;过短会增加对搜索引擎的请求 |
| 显示「收录」标签 | 开启后状态栏左侧显示「收录」前缀标签 |
五、状态说明
| 显示 | 含义 |
|---|---|
| 已收录(绿色) | 检测到该搜索引擎已收录本帖地址 |
| 未收录(灰色) | 检测到该搜索引擎未收录本帖地址 |
| 检测中(闪烁) | 尚未检测、缓存已过期或上次检测失败,页面加载后自动异步重试 |
六、工作原理
- 首次渲染:帖子详情页标题下方渲染状态栏;数据库无缓存或缓存过期时,各引擎先显示「检测中」
- 异步补检:前端 JS 向
POST /seostatus/check提交topic_id,服务端仅对过期/未检测的已启用引擎发起检测,结果写库并返回 - 原地更新:前端收到结果后直接更新页面状态,无需刷新
- 检测方式:向搜索引擎查询
site:<帖子完整地址>(必应用url:指令),解析结果页特征判断收录状态 - 缓存命中:缓存未过期且帖子地址未变化时,直接读库渲染,不发起任何外部请求
七、数据表
{prefix}seostatus_record:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int unsigned | 主键 |
| topic_id | int unsigned | 帖子 ID |
| engine | varchar(20) | 搜索引擎标识(baidu/bing/so/sogou/google) |
| status | tinyint | 0 待检测,1 已收录,2 未收录,3 检测失败 |
| url | varchar(500) | 被检测的帖子完整地址(变化时触发重检) |
| checked_time | int unsigned | 最近检测时间戳 |
唯一索引:(topic_id, engine)。
八、接口说明
POST /seostatus/check
页面加载后由前端自动调用,也可用于批量预热。
请求参数(form-urlencoded):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| topic_id | int | 是 | 帖子 ID |
响应示例:
{
"code": 1,
"msg": "ok",
"data": {
"results": {
"baidu": 1,
"bing": 2
}
}
}results 中仅包含确定的状态:1 已收录、2 未收录;检测失败的引擎不返回,前端保持「检测中」待下次重试。
九、常见问题
Q:某引擎一直显示「检测中」?
该引擎检测持续失败(常见于谷歌被墙、搜索引擎反爬拦截)。可在插件配置中取消勾选该引擎,或稍后访问自动重试。
Q:收录状态不准确?
检测依赖搜索引擎结果页特征解析,搜索引擎改版可能导致误判;可调小「检测缓存时长」强制重新检测。
Q:如何批量刷新所有帖子的收录状态?
清空数据表即可:TRUNCATE TABLE {prefix}seostatus_record;,之后各帖子将在被访问时自动重新检测。
Q:检测会对服务器造成压力吗?
结果有缓存(默认 24 小时),同一帖子同一引擎在缓存期内只检测一次;每次页面加载最多补检已启用引擎各一次。
更新记录 (1)
-
v1.0.0
2026-10-17
正式发布
QQ官方交流群