搜索全站
百度SEO 9 分钟阅读

WordPress 原创文章被采集怎么办?降低转载影响的 6 个实操手段

文章刚发出去十分钟,采集站已经排在原创前面,这种情况在百度并不少见。本文从抓取时序、RSS 输出、主动提交、反制采集四个层面,给出 WordPress 原创站可落地的一套应对流程。

U
UFO_PF 2025-09-08 · 阅读 9 分钟
Wo 百度SEO
阅读提示
本文约 3,543 字,预计阅读 9 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:你花了三小时写的教程,采集站十分钟就抄走了

独立站长最憋屈的体验莫过于此:一篇原创教程在百度搜索里排第三,前两位是两家采集站,标题一字不差,正文连代码注释都原样搬走,页脚还挂着人家的广告。更难受的是,采集站往往站点历史更长、更新频率更高,百度的飓风算法虽然明确打击采集与内容聚合,但算法识别有滞后,短期内原创反而排在后面。很多站长的第一反应是去投诉,但百度搜索资源平台的「反馈中心」处理周期长,且要求提供原创证明材料,现实中很难靠投诉解决。真正有效的思路是:让百度在采集站之前先抓到你的页面,让采集站拿到的东西不完整,同时保留可举证的原创时间戳。

原理分析:百度判断原创靠的是时序与指纹

百度对「谁是原创」的判定,核心依据是首次抓取时间。Baiduspider 抓到某个 URL 的时间、页面正文的指纹、以及站点历史更新规律,共同构成判断基础。采集站通常是定时抓取你的 RSS 或页面,中间存在时间差。所以对抗采集的第一个着力点不是加密(加密反而伤收录),而是压缩这个时间差——通过百度搜索资源平台的 API 主动提交(接口地址 http://data.zz.baidu.com/urls?site=xxx&token=xxx)把新链接直接推送给百度,让原创页面在几小时内完成收录,采集站再发就是重复页面。

第二个着力点是降低采集的性价比。采集工具最省事的输入源是 RSS,因为结构规整、正文完整。把 RSS 改成摘要输出并延迟发布,采集站拿到的就只是残缺内容,还要额外写规则去抓 HTML 正文,成本陡增。

手段 作用层面 见效速度 副作用
API 主动提交 抢先收录 数小时 无,但需配额
RSS 摘要 + 延时 抬高采集成本 立即 订阅用户体验下降
按 UA 屏蔽商业爬虫 切断抓取 立即 有误伤风险
站内互链与内链锚文本 强化指纹归属 数周 无
死链/原创举证 事后申诉 数周 举证繁琐

保姆级实操

步骤 1:先确认自己是不是真的被采集,而不是自己没被收录。 在百度搜索框输入文章标题加引号做精确搜索,看结果里是否有非本站域名。也可以用 site: 语法配合标题关键词排查。如果原创页面根本没收录,问题就不是采集,而是 WordPress 新站收录慢的排查。

步骤 2:把 RSS 改成摘要输出,并延迟 7 天。 后台「设置 → 阅读」里把「针对每篇文章,feed 中显示」改成「摘要」,再用下面的钩子延迟 feed 中文章的可见时间:

// 主题 functions.php 或自建小插件中
add_filter( 'the_excerpt_rss', function ( $excerpt ) {
    return $excerpt . sprintf(
        '<p>原文出处:<a href="%s">%s</a>(转载请保留原文链接)</p>',
        esc_url( get_permalink() ),
        esc_html( get_the_title() )
    );
} );

// feed 只输出 7 天前发布的文章,给百度留出抢先抓取的时间窗
add_filter( 'posts_where', function ( $where, $query ) {
    if ( $query->is_feed() && $query->is_main_query() ) {
        global $wpdb;
        $where .= $wpdb->prepare(
            " AND {$wpdb->posts}.post_date < %s",
            gmdate( 'Y-m-d H:i:s', time() - 7 * DAY_IN_SECONDS )
        );
    }
    return $where;
}, 10, 2 );

步骤 3:发布即推送。 用 publish_post 钩子在文章发布时自动调用百度 API 提交接口,token 放在服务器环境变量里,不要写进代码库:

# 手动补推一批 URL,每行一个
cat > /tmp/urls.txt <<'EOF'
https://mimangfei.com/post-a/
https://mimangfei.com/post-b/
EOF

curl -sS -X POST \
  -H 'Content-Type: text/plain' \
  --data-binary @/tmp/urls.txt \
  "http://data.zz.baidu.com/urls?site=https://mimangfei.com&token=${BAIDU_PUSH_TOKEN}"

步骤 4:按 UA 限流,屏蔽无关商业爬虫。 在 nginx 里给可疑 UA 单独限流,不要一刀切 403,避免误伤正规搜索引擎:

map $http_user_agent $scraper_flag {
    default                                                            0;
    "~*(python-requests|scrapy|go-http-client|httpclient|java/1\.)"    1;
    "~*(ahrefsbot|semrushbot|dotbot|mj12bot|bytespider)"               2;
}

limit_req_zone $binary_remote_addr zone=anti_scrape:10m rate=2r/s;

server {
    listen 443 ssl http2;
    server_name mimangfei.com;

    location / {
        if ($scraper_flag = 2) { return 403; }
        if ($scraper_flag = 1) { limit_req zone=anti_scrape burst=5 nodelay; }
        try_files $uri $uri/ /index.php?$args;
    }
}

步骤 5:给每篇正文植入来源指纹。 在正文第一段自然地带入站点名与原文链接,在文末加一句「首发于 mimangfei.com」。不要把内容藏进图片或做 JS 加密,那会让百度自己也读不到。

步骤 6:留证据。 用 Wayback Machine 或自建页面快照保存发布时间,投诉时可用。同时在资源平台定期导出索引量,观察异常。

常见踩坑

  1. 一上来就封 IP,结果把 Baiduspider 也封了,索引量一周内掉光。正规蜘蛛可用 DNS 反查验证:dig -x 抓取IP,PTR 记录应为 *.baidu.com 或 *.baidu.jp。
  2. 案例: 某站长在 robots.txt 里写了 Disallow: /feed/,结果自己订阅用户全断,而采集站本来就没走 RSS,直接抓 HTML,改完毫无效果。
  3. 用 JS 把正文加密后再解密,百度抓到的是密文,页面直接被判定为无实质内容,收录反而清零。
  4. RSS 延时设成 30 天,长期订阅用户以为站点停更。
  5. 只屏蔽 UA,没做主动提交,采集站依然比你早收录。
  6. 把所有可疑爬虫都返回 200 空页面,等于喂垃圾内容给自己,抓取预算被白白消耗。
  7. 忘了同步处理 AMP 与移动适配页,采集站专挑移动端镜像站抓。

总结

判断原创站是否被采集伤害,看三个数:索引量是否停滞、搜索词带来的点击是否被同名站点抢走、原创页首次收录时间是否晚于采集站。行动清单:先把 RSS 改成摘要延时 → 接上 API 主动提交 → nginx 层做 UA 限流 → 正文留来源指纹 → 定期导出快照留证。要明白一点:完全杜绝采集不可能,目标是把「被抄」变成「抄了也没用」,同时让自己始终先被百度抓到。相关的收录提速手段见 百度搜索资源平台主动提交配置。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。