WP Search Analytics-搜索关键词统计与分析插件

一、插件简介

WP Search Analytics 是一款专为 WordPress 网站设计的搜索关键词统计与分析插件。它能帮助网站管理员深入了解访客的搜索行为,通过直观的数据可视化、详细的搜索词记录和强大的分析功能,轻松掌握用户最关心的内容,从而优化网站内容策略,提升用户体验。

插件基于 WordPress 标准开发规范构建,轻量、高效,与绝大多数主题和插件兼容,无需修改主题文件即可自动追踪所有原生搜索请求。


二、主要功能

1. 全面的搜索数据统计

  • 总搜索次数:记录全站所有搜索请求的总次数。

  • 唯一搜索词:统计不同关键词的独立数量,反映用户需求的广度。

  • 今日搜索量:实时展示当天的搜索活跃度,方便监控突发流量。

2. 趋势图表分析

  • 可视化趋势图:使用 Chart.js 绘制搜索量随时间变化的折线图。

  • 多时间维度:支持按 7天 / 30天 / 90天 / 1年 快速切换,直观了解搜索高峰期和低谷期。

3. 热门搜索词排行

  • 按搜索次数排序:列出最受欢迎的关键词。

  • 显示最后搜索时间:了解每个关键词的最近活跃情况。

  • 结果状态标识:清晰标注每个关键词是否搜索到内容,以及平均搜索结果数量。

  • 关键词筛选:支持快速搜索特定关键词,方便定位分析。

4. 数据管理工具

  • 导出 CSV:一键导出所有关键词的统计数据(搜索次数、平均结果数、最后搜索时间),便于离线分析或制作报表。

  • 清理旧数据:可自定义天数(如 90 天),删除过旧的搜索记录,保持数据库轻量和高效。

5. 美观的仪表盘

  • 后台仪表盘小工具:在 WordPress 首页概览核心指标(总搜索、唯一词、今日搜索)。

  • 独立管理页面:提供完整的统计面板,包含卡片指标、趋势图、关键词列表,界面清爽,适配移动设备。


三、技术架构概览

1. 文件目录结构

text
wp-search-analytics/
├── wp-search-analytics.php          # 主插件文件(定义常量、激活钩子、加载类)
├── uninstall.php                    # 卸载时删除数据库表
├── includes/
│   ├── class-database.php           # 数据库操作(建表、增删查改、统计查询)
│   ├── class-search-tracker.php     # 搜索追踪(拦截搜索、写入记录、AJAX追踪)
│   ├── class-admin.php              # 管理界面(菜单、页面渲染、仪表盘小工具、导出/清理)
│   └── class-ajax-handler.php       # AJAX请求处理(趋势数据、热门词列表)
├── templates/
│   └── admin-page.php               # 管理页面模板(HTML结构)
└── assets/
    ├── css/
    │   └── admin.css                # 管理后台样式
    └── js/
        └── admin.js                 # 管理后台脚本(Chart.js图表、AJAX交互)

2. 核心类设计

类名 职责 关键方法
WPSA_Database 数据库操作 create_tables()insert_search()get_total_searches()get_trend_data()get_popular_terms()clean_old_data()export_all_data()
WPSA_Search_Tracker 搜索事件追踪 init() 注册钩子、track_on_wp() 捕获原生搜索、track_ajax_search() 支持 AJAX 搜索
WPSA_Admin 后台管理界面与工具 add_admin_menu()enqueue_assets()render_dashboard()handle_clean_old_data()handle_export_csv()
WPSA_Ajax_Handler AJAX 接口 get_trend_data()get_popular_terms()

3. 数据库设计

采用两张表,以平衡实时写入和查询性能:

主表 wp_search_analytics

存储每一条搜索记录,用于明细查询和实时统计。

字段 类型 说明
id BIGINT 自增主键
search_term VARCHAR(255) 用户输入的关键词
search_term_hash VARCHAR(64) 关键词的 SHA256 哈希,用于快速去重统计
result_count INT 搜索结果数量(0 表示无结果)
user_id BIGINT 用户 ID(0 为访客)
user_ip VARCHAR(45) 用户 IP(可选,用于分析)
user_agent TEXT 浏览器 UA
referer VARCHAR(500) 来源页面
search_date DATETIME 搜索时间(默认当前)

索引search_term_hashsearch_dateresult_count 确保查询效率。

汇总表 wp_search_analytics_daily

按“关键词 + 日期”聚合,提高趋势分析和排行榜查询速度。

字段 类型 说明
id BIGINT 自增主键
search_term VARCHAR(255) 关键词原文(用于展示)
search_term_hash VARCHAR(64) 哈希
search_date DATE 统计日期
total_searches INT 当日搜索次数
total_results INT 当日搜索结果总数(用于计算平均)
last_search_time DATETIME 当日最后一次搜索时间

唯一索引(search_term_hash, search_date) 避免重复汇总。

4. 关键钩子与流程

搜索追踪流程

  1. 原生搜索:插件监听 wp 钩子,在页面加载时检查是否为搜索页面,获取 get_search_query() 和全局 $wp_query->found_posts,然后调用 WPSA_Database::insert_search() 写入数据库。

  2. AJAX 搜索:主题若使用 AJAX 搜索,可通过调用 wp_ajax_nopriv_wpsa_track_ajax_search 和 wp_ajax_wpsa_track_ajax_search 接口,传递 search_term 和 result_count 参数(同时携带 nonce 安全校验)。

管理界面数据加载

  • 仪表盘页面加载时,通过 PHP 直接查询数据库获取总搜索数、唯一词数、今日搜索量。

  • 趋势图和热门词列表则通过前端 AJAX 异步加载,避免页面阻塞。图表使用 Chart.js 渲染,切换时间段时重新请求数据。

数据清理与导出

  • 清理操作通过 admin_post_wpsa_clean_old_data 处理,根据指定天数删除主表中的旧记录(汇总表通过触发器或定期重建,当前版本暂不清理汇总表,未来可扩展)。

  • 导出功能直接生成 CSV 文件,通过 HTTP 流式下载。

5. 安全与性能优化

  • 权限控制:所有管理功能仅限 manage_options 权限用户(管理员)。

  • Nonce 校验:所有 AJAX 和表单提交均使用 WordPress Nonce 防止 CSRF。

  • SQL 注入防护:所有数据库查询均使用 $wpdb->prepare 参数化查询。

  • 哈希索引:使用 search_term_hash 作为去重和统计依据,避免长文本索引性能问题。

  • 汇总表:利用每日汇总表减少趋势查询的实时计算开销,支持高并发站点。

  • 异步写入(可选):当前为同步写入,若担心性能可扩展为 wp_schedule_single_event 异步处理。

6. 兼容性与依赖

  • WordPress:要求 5.0 及以上版本(推荐 6.0+)。

  • PHP:7.4 及以上(已测试 8.0、8.1、8.2)。

  • JavaScript:依赖 Chart.js v4.4.0(通过 CDN 或本地文件),以及 jQuery(WordPress 内置)。

  • 数据库:MySQL 5.7 或 MariaDB 10.2+,支持 InnoDB 和 utf8mb4。

7. 扩展性与未来规划

  • 预留钩子:可在 WPSA_Search_Tracker::track_on_wp() 中插入 do_action 以便其他插件扩展。

  • 统计维度扩展:可增加按分类、标签、作者等过滤搜索记录。

  • 缓存机制:未来可引入对象缓存(Transient API)缓存热门词和趋势数据。

  • 隐私增强:可添加 IP 匿名化选项,符合 GDPR 要求。


四、数据流程图


五、部署与使用建议

  1. 上传安装:通过 WordPress 后台插件上传功能或 FTP 上传至 /wp-content/plugins/

  2. 激活:激活后自动创建数据库表。

  3. 配置:无需额外配置,开箱即用。

  4. 数据查看:后台左侧菜单“搜索分析”进入仪表盘,也可在首页仪表盘小工具中快速浏览。

  5. 数据维护:建议定期清理旧数据(如每季度),或通过“数据管理”子菜单手动清理;导出 CSV 可用于外部报表工具。


六、总结

WP Search Analytics 以简洁、高效、功能完备为设计目标,为 WordPress 站长提供了专业级的搜索行为分析工具。其技术选型注重性能与可维护性,同时保持了良好的扩展潜力,能够满足从个人博客到企业站点的分析需求。

如果您有任何定制需求或建议,欢迎与我们联系,我们将持续迭代优化。

七、下载

我用夸克网盘给你分享了「wp-search-analytics.zip」,点击链接或复制整段内容,打开「夸克网盘APP」即可获取。
/~d38d3ZaY4c~:/
链接:https://pan.quark.cn/s/7d05f163a45a

上一篇 AeroCore Free 主题文章默认图片居中