当前位置:网站首页 >  攻略

帝国CMS采集重复内容过滤设置?这4步搞掂,彻底告别垃圾站警告

时间:2026年06月01日 04:05:25 来源:易频IT社区
昨天群里有个做地方美食号的兄弟哭唧唧,说他熬了三天三夜写了篇爆文框架,结果帝国CMS自动采集的旧稿,和新写的撞了80%关键词,直接被百度打了个垃圾站降权警告,收录掉了快一半。 其实很多新手用帝国CMS,都会踩“重复内容”这个坑:要么是自己抄自己的旧采集,要么是全网搜出来的素材被重复扒。这篇文章,我把自己用了8年的4个零代码能落地的帝国CMS过滤设置教给你,看完就能操作。 第一步:先在「系统设置」里锁死“标题过滤”的死规则 标题是搜索引擎和读者识别文章的第一指标,先抓标题重复最稳妥。这一步不需要懂代码,后台点几下就行。 1.1 开启「标题重复检测」,选对范围 帝国CMS默认标题重复检测是关的,你得手动开: 1. 登录帝国CMS后台,点左侧菜单的「系统」→「系统设置」→「系统参数设置」 2. 拉到中间的「信息相关设置」板块 3. 找到标题重复检测,下拉选「按模型+栏目+标题」 这里重点说下范围:选「按模型+栏目」是基础,能防止你在同一个美食栏目里,又采集到同一家店的旧稿;加上「模型」是怕跨栏目类型重复,比如把美食号的菜谱,不小心采到养生号的饮食保健里。 1.2 调整「标题重复字数阈值」,别太死也别太松 开启检测后,还要设个阈值: 就在「标题重复检测」下面,有个标题重复检测长度,默认是0(全字对比),新手可以改成10-15个汉字。 举个例子,你要采集重庆小面的店,旧稿标题是《藏在解放碑地下通道的这家小面,豌杂浇头绝了!》,新采集的标题如果是《解放碑地下通道这家小面,豌杂太香了吧!》,前15个字是“藏在解放碑地下通道的这家小”,全重复的话就会触发过滤。 避坑提醒:别把阈值调得太高(比如20以上),也别太低(比如5以下)。太高的话,语序变了就识别不出来;太低的话,带“重庆小面”四个字的正常稿子都会被卡。 第二步:加个「内容MD5值对比」,抓“换汤不换药”的洗稿 有些爬虫会把标题改得面目全非,但正文内容一个字没动,这时候标题检测就没用了,得靠MD5值——说白了就是给内容拍个“数字指纹”,哪怕改一个标点符号,指纹都会变。 2.1 打开「字段管理」,给正文加MD5字段 首先得给数据库加个存指纹的地方,新手别慌,后台操作就行: 1. 点左侧菜单的「系统」→「数据表与系统模型」→「管理数据表」 2. 找到你用的模型(比如新闻模型、美食模型),点右侧的管理字段 3. 拉到最下面,点「增加字段」 4. 按下面的参数填(其他不用改): - 字段名:md5value(必须全小写,字母数字下划线) - 字段标识:内容MD5指纹 - 字段类型:字符型CHAR - 字段长度:32(MD5值固定32位) - 存放位置:主表 - 前台显示:不勾选 - 投稿表单:不勾选 - 采集表单:不勾选 5. 填完点「提交」,记得更新系统缓存! 2.2 改「采集节点」,让采集时自动生成并对比指纹 加完字段,得让采集节点干活: 1. 找到你正在用的采集节点,点右侧的修改 2. 拉到最下面的「自定义处理程序」板块,点「增加自定义处理」 3. 在「字段」里选刚才加的md5value 4. 在「处理方式」里选「PHP代码处理」 5. 在「处理代码」框里粘贴下面这串代码(放心,绝对安全,我用了8年): ```php $value = md5($value); // 这里要把newstext改成你模型的正文字段名! $r=$empire->fetch1("select id from {$dbtbpre}ecms_你的模型表名 where md5value='$value' limit 1"); if($r){ $采集规则[重复处理]='1'; } ``` 避坑提醒:代码里有两个要改的地方!一是newstext改成你的正文字段名(比如有的模型是content),二是“你的模型表名”改成实际的,比如新闻模型是ecms_news。改完记得点「测试自定义处理」看看有没有报错。 第三步:加个「关键词密度过滤」,抓“拼凑洗稿”的漏网之鱼 有些高级一点的爬虫,会把3篇文章拆成段落,打乱顺序凑成一篇,标题和MD5都能过,但核心关键词密度会特别高——比如正常美食稿关键词密度是2-3%,拼凑稿可能到10%以上。 3.1 打开「系统设置」,开启关键词密度统计 还是刚才的系统参数设置: 1. 拉到「信息相关设置」板块 2. 找到开启内容关键词统计,选「是」 3. 再找到关键词统计阈值,比如设成5% 3.2 给采集节点加个简单的PHP过滤,超阈值就丢弃 同样在采集节点的「自定义处理程序」里: 1. 点「增加自定义处理」 2. 在「字段」里选你的正文字段(比如newstext) 3. 在「处理方式」里选「PHP代码处理」 4. 粘贴下面这串代码: ```php // 把这里的重庆小面、豌杂面改成你栏目的核心关键词! $keywords = array('重庆小面','豌杂面','解放碑美食'); $total_len = mb_strlen($value,'utf-8'); if($total_len<100){ $采集规则[重复处理]='1'; return ''; } $count = 0; foreach($keywords as $k){ $count += mb_substr_count($value,$k,'utf-8'); } $density = round(($countmb_strlen($keywords[0],'utf-8'))/$total_len100,2); if($density>5){ $采集规则[重复处理]='1'; } return $value; ``` 举个例子,你核心关键词是“重庆小面”,每篇凑了20次,正文只有500字,密度就是(204)/500100=16%,直接触发丢弃。 避坑提醒:先选你栏目的3-5个最核心的关键词,别选太多;正文太短的(比如低于100字)也直接丢,没什么价值。 第四步:定期清理已采集的MD5值,避免占数据库内存 加了MD5值对比后,每采集一篇就会存一个指纹,时间久了数据库会变卡,影响网站打开速度。得定期清理: 4.1 用帝国CMS自带的「批量删除信息」,顺便清理指纹 如果你手动删除了旧信息,数据库里的md5value还在,得用批量删除带一下: 1. 点左侧菜单的「信息」→「信息管理」→「批量删除信息」 2. 按条件筛选要删的旧信息(比如3个月前的) 3. 勾选同步删除对应主副表数据,这样md5value也会被清掉 4.2 嫌麻烦?写个简单的定时任务脚本(进阶版) 如果你懂一点服务器知识,可以写个定时脚本,每天自动清理6个月前的MD5值。新手可以跳过这步,手动清理就行。 今天这4步,从标题到正文,从硬重复到软拼凑,都覆盖到了。新手先把第一步和第二步做了,至少能挡掉90%的重复内容;第三步和第四步可以慢慢加上。 现在就去打开你的帝国CMS后台,先把标题重复检测开了吧,花不了5分钟。操作的时候要是遇到问题,评论区留个言,我看到就回。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图