收录状态

收录状态运维管控

版本 v1.0.0· 胡思乱想 · 4 次获取 · 运维管控
在帖子详情页标题下方展示本帖在各大搜索引擎的收录状态(已收录 / 未收录)
¥3.00抵扣
一次购买,永久使用

详情介绍

收录状态(SeoStatus)使用文档

作者:kuakeba.cn | 版本:1.0.0 | 适用于 Zsens Admin 3.0+(PHP 8.2+)

一、插件简介

在帖子详情页标题下方展示本帖在各大搜索引擎的收录状态(已收录 / 未收录):

  • 支持百度、必应、360 搜索、搜狗、谷歌五个搜索引擎
  • 检测结果缓存到数据库,避免每次访问都向搜索引擎发起探测
  • 页面加载后异步补检过期结果,不阻塞正文渲染
  • 插件配置中可自由开关需要在前台展示的搜索引擎
  • 检测失败(反爬、网络不通等)时显示「检测中」,下次访问自动重试

二、环境要求

项目要求
Zsens Admin3.0+
PHP8.2+,已开启 curl 扩展
社区插件(community)必须安装(帖子详情页宿主)
服务器网络需能访问对应搜索引擎站点(国内服务器谷歌通常不可达)

三、安装步骤

  1. 将 SeoStatus 目录放入 plugins/ 下
  2. 进入后台 应用中心,找到「收录状态」,点击 安装(自动创建数据表 {prefix}seostatus_record 并复制静态资源)
  3. 进入 应用中心 → 收录状态 → 配置,勾选需要展示的搜索引擎
  4. 打开任意帖子详情页,标题下方即可看到收录状态栏

卸载插件时会自动删除数据表与静态资源。

四、配置项说明

后台 应用中心 → 收录状态 → 配置:

配置项说明
启用收录状态总开关,关闭后帖子详情页不再显示状态栏
展示的搜索引擎多选:百度 / 必应 / 360 搜索 / 搜狗 / 谷歌,仅勾选的引擎会显示
检测缓存时长(小时)检测结果缓存多久后自动重新检测,建议 12~72;过短会增加对搜索引擎的请求
显示「收录」标签开启后状态栏左侧显示「收录」前缀标签

五、状态说明

显示含义
已收录(绿色)检测到该搜索引擎已收录本帖地址
未收录(灰色)检测到该搜索引擎未收录本帖地址
检测中(闪烁)尚未检测、缓存已过期或上次检测失败,页面加载后自动异步重试

六、工作原理

  1. 首次渲染:帖子详情页标题下方渲染状态栏;数据库无缓存或缓存过期时,各引擎先显示「检测中」
  2. 异步补检:前端 JS 向 POST /seostatus/check 提交 topic_id,服务端仅对过期/未检测的已启用引擎发起检测,结果写库并返回
  3. 原地更新:前端收到结果后直接更新页面状态,无需刷新
  4. 检测方式:向搜索引擎查询 site:<帖子完整地址>(必应用 url: 指令),解析结果页特征判断收录状态
  5. 缓存命中:缓存未过期且帖子地址未变化时,直接读库渲染,不发起任何外部请求

七、数据表

{prefix}seostatus_record:

字段类型说明
idint unsigned主键
topic_idint unsigned帖子 ID
enginevarchar(20)搜索引擎标识(baidu/bing/so/sogou/google)
statustinyint0 待检测,1 已收录,2 未收录,3 检测失败
urlvarchar(500)被检测的帖子完整地址(变化时触发重检)
checked_timeint unsigned最近检测时间戳

唯一索引:(topic_id, engine)。

八、接口说明

POST /seostatus/check

页面加载后由前端自动调用,也可用于批量预热。

请求参数(form-urlencoded):

参数类型必填说明
topic_idint是帖子 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官方交流群 QQ官方交流群