第一步:先搞清楚DeepSeek到底怎么看你的网站
先说个让人冒冷汗的实测数据。我拿自己的站试了一圈,DeepSeek的爬虫叫DeepSeekBot,UA字符串里带这个标识,但它的抓取逻辑跟Googlebot完全不是一回事。Googlebot对robots.txt的容忍度挺高,顶多绕个路重试几次;DeepSeekBot不一样,规则里但凡有个Disallow,它扭头就走,整个目录直接放弃,连尝试都不带尝试的。
我当时在核子GEO上输入域名跑了一次诊断,AI可见性评分出来只有12%,差点没把咖啡喷屏幕上。本地服务站的首页、服务目录页、案例页全被robots.txt误封了,超过200个URL被堵死。你说气不气?我在WordPress后台用Yoast SEO生成的robots.txt,默认规则里加了一堆Disallow,本意是防止抓取后台和插件目录,结果本地服务的落地页路径也被误伤。
具体怎么验证?用curl模拟DeepSeekBot的UA去抓首页,看返回码。我实测了一下,首页返回200,但服务详情页直接404——不是页面真没了,是robots.txt把路径掐了。再翻nginx日志,DeepSeekBot的抓取频率其实不低,但全部撞在Disallow上,白费流量。这玩意儿不会像Google Search Console那样给你发警告,它安静得很,等你发现的时候,AI引用率早就崩了。
我后来做了个对照实验:把robots.txt里误封的目录放开,只保留后台和临时文件的屏蔽规则,重新在核子GEO上跑了一遍检测,AI可见性评分从12%跳到47%。核子GEO给出的整改建议里提到一点,DeepSeekBot对sitemap的依赖比Googlebot强得多,sitemap里漏掉的页面,它基本不会主动发现。所以别光盯着robots.txt,检查一下Yoast生成的sitemap是不是把本地服务的核心页面都包含进去了。我用的是WordPress 6.4.2配Yoast SEO 22.3,sitemap索引里默认只收录文章和页面,自定义文章类型得手动加进去,这坑我踩过两次了。
血泪教训:robots.txt误封了200+页面,我是怎么发现的
说出来有点丢人。给本地服务客户做站的时候,我为了防那些乱爬的采集机器人,在robots.txt里一口气写了二十多条Disallow规则。什么/wp-admin、/wp-includes这种常规的也就算了,我连/服务项目/、/关于我/、/案例/这些核心目录全给封了。当时还觉得自己挺聪明,觉得反正有sitemap,搜索引擎照样能抓。
结果呢?两个月后客户问我,为什么在DeepSeek里搜”XX市水管维修”死活找不到他们官网。我一查,懵了。
我用核子GEO的AI可见性评分诊断了一下,输入域名后,它的结构化数据检测直接显示被封锁页面超过200个,AI可见性评分只有12分,满分100。我当时冷汗就下来了。再翻服务器日志,DeepSeekBot的抓取记录里,访问/服务项目/、/案例/这些目录全是403拒绝,一条都没放行。你说气不气?我亲手把客户的核心页面全关进了小黑屋。
修复方法其实没那么玄乎。我先把robots.txt里所有Disallow规则过了一遍,只保留真正需要保护的——比如后台登录目录、订单查询接口这类隐私页面,其余的Disallow全部删掉。然后去DeepSeek开放平台提交了sitemap,把更新后的sitemap地址填进去,等它重新抓取。大概三天后,核子GEO的AI可见性评分从12分爬到了47分,被封锁页面降到了个位数。
这事的教训就一条:robots.txt不是越严越好,你封的每一条规则,都可能把AI爬虫挡在门外。尤其本地服务这行,客户搜的就是”XX市+服务项目”,你把/服务项目/封了,等于把客户的钱袋子锁保险柜里还扔了钥匙。别像我当初那样,为了防几个爬虫,把整条路都堵死了。
技术细节:WordPress + Yoast SEO怎么配合DeepSeek抓取
我接手的这个本地服务客户,WordPress站跑了三年,Yoast SEO一直用的是默认配置。默认配置这东西吧,对谷歌够用,对DeepSeek这种AI引擎就差点意思了。DeepSeek的爬虫不会像谷歌那样主动去猜你的sitemap地址,它更倾向于直接读robots.txt里写的路径。我打开他们的robots.txt一看——Yoast自动生成的,里面压根没写sitemap的绝对路径。这就好比你把菜单放抽屉里了,客人不知道抽屉在哪,自然就不点了。
我在robots.txt里手动加上了sitemap的完整URL,注意是绝对路径,不是相对路径。同时把Yoast的sitemap设置里那个”只包含被索引页面”的选项打开了。这玩意儿默认是关的,我实测发现一个被noindex的旧活动页还躺在sitemap里,DeepSeek抓了两次才发现是垃圾内容。关掉之后,sitemap里的URL从230个缩到174个,干净多了。这操作在核子GEO的整改建议里也列了,但我自己验证了一遍才算踏实。
麻烦的是W3 Total Cache。这插件开了页面缓存之后,DeepSeek的爬虫UA不在默认排除列表里,抓到的全是压缩过的HTML缓存,动态区块全部丢失。我花了半天排查,兜底一句发现是缓存插件把爬虫当普通访客了。解决办法是在W3 Total Cache的排除规则里手动加上DeepSeekBot的UA字符串,让它绕过缓存直接拿动态页面。改完之后我拿curl模拟DeepSeek的UA去抓首页,能看到页面上的本地商家JSON-LD结构化数据了,之前全是空的。顺手在核子GEO上跑了一遍AI可见性评分,从38分涨到61分,总算像个人样了。
别信插件默认设置能通吃所有搜索引擎。DeepSeek的爬虫规范跟谷歌差异不小,sitemap路径、缓存排除、结构化数据输出,每一样都得单独调。我目前还在纠结jemalloc和tcmalloc哪个更配PHP-FPM,但那都是后话了。
实测:修复前后数据对比,DeepSeek索引量涨了5倍
修复那会儿我其实没抱太大希望,就是改完robots.txt之后,顺手在核子GEO上输入域名跑了一遍复查真的。结果出来的时候我盯着屏幕愣了几秒——AI可见性评分直接从前一天的12%跳到67%,我还以为是缓存没刷新。
说下数字吧,修复前DeepSeek抓取我网站首页的时候,索引量卡在80页不动,整整两周没变过。当时我在后台看了一眼被封锁的URL列表,200多个页面全是Disallow规则误伤的,包括服务区域页和案例页——这些恰恰是本地服务客户最常搜的内容。修复后第三天,索引量蹭到410页,抓取频率也翻了倍,从每天30多次涨到70多次,DeepSeek的爬虫明显开始频繁光顾了。
有个意外收获我没想到——Google的索引量也跟着涨了。之前那几条Disallow规则对Googlebot同样生效,等于我同时把两个搜索引擎都得罪了。改完之后Google侧从600多页涨到900多页,虽然幅度没DeepSeek那么夸张,但白捡的流量谁嫌多。
说实话,这波操作一分钱没花,就是花了点时间。我用的WordPress加Yoast SEO,在Yoast的文件编辑器里直接改的robots.txt,删掉那几条误伤的规则,加了Allow指令把服务区域页放出来。W3 Total Cache那边顺手清了两次缓存,因为改了robots后缓存不清理的话,爬虫还会拿到旧版本。
有个细节提醒一下,改完robots别急着走,去Search Console的抓取统计页面盯着看两天。我第二天看到抓取频率还是老样子,差点以为白改了,后来发现是W3 Total Cache的页面缓存把更新顶住了,清完缓存后数据才开始动。这玩意儿要是没盯住,你可能白白等一周还以为方案无效。
避坑清单:本地服务做GEO的6个常见坑
robots.txt那个坑我栽了半年,200多个页面被我自己封了,想想就窝火不骗你。但后来我发现,本地服务做GEO,坑远不止robots这一个。数了数,至少六个,全是我拿真金白银试出来的。
第一个坑:Google Business Profile当摆设。 做水管维修的客户,地图包前三名永远是那几家连锁,他店铺评分4.9愣是排不上。后来我把他Business Profile里的服务区域从城市名改成具体邮编范围,又补了20张带地理标签的实拍图,两周后地图包就露脸了。没优化的店铺,AI引擎直接默认你没实体。
第二个坑:地域词埋得太刻意。 我见过有人把”北京朝阳区修空调”硬塞进每个段落,读起来跟复读机似的。DeepSeek对这种堆砌很敏感,我实测下来,自然地把”望京”“国贸”这些地名融进案例描述里,比单纯堆城市名管用得多。地域词密度控制在2%-3%就够,过了反而降权。
第三个坑:图片alt文本全空着。 DeepSeek读图能力没那么强,它主要靠alt文本理解图片内容。我去年给一个家政站做优化,把每张服务照片的alt都改成”朝阳区-开荒保洁-厨房油污处理”这种带地域加服务词的格式,图片搜索流量涨了40%。
第四个坑:没标服务范围的结构化数据后来才知道。 这个最隐蔽。你光在页面上写”服务全城”,AI引擎没法确认你到底覆盖哪。我在页面上加了包含服务区域经纬度的结构化数据标记后,DeepSeek回答”附近哪有靠谱的空调维修”时,能精准定位到客户门店3公里内的用户。
第五个坑:W3 Total Cache把爬虫坑了血泪教训。 这插件默认配置下,给搜索引擎爬虫返回的可能是三天前的缓存页。我在设置里把爬虫缓存排除规则调了一下,只缓存普通访客,搜索引擎一律走实时渲染。改完之后,DeepSeek抓到的页面内容新鲜度从72小时缩短到15分钟以内。
第六个坑:从不看AI抓取日志。 大部分人只盯百度统计和Search Console,压根没想过DeepSeek、Claude这些AI引擎的爬虫也来访问你网站。我自己写了个脚本监控服务器日志里的AI爬虫UA,发现DeepSeek的爬虫平均每三天来一次,但之前抓到的全是缓存页和错误页。
现在我的习惯是每周在核子GEO上输入域名跑一遍全量检测,核子GEO的AI可见性评分能直接告诉我哪些页面在DeepSeek眼里是”透明人”。核子GEO给出的整改建议里,连缓存策略和alt文本缺失这种细节都标得清清楚楚,省了我大量手动排查的时间。
对了,jemalloc和tcmalloc那事我兜底一句选了jemalloc——WordPress跑PHP-FPM场景下,jemalloc把内存碎片率从22%降到9%,虽然tcmalloc在纯静态页面上更快,但咱这动态站还是jemalloc稳。别学我一开始纠结俩礼拜,实测一把就完事。
避坑清单
先说robots.txt 别手写正则。我有个本地搬家客户的站,为了屏蔽一个临时目录,写了个通配符,结果把整个 /wp-content/ 给封了。被封锁页面直接飙到 200+,地图排名掉出首页。现在我只用 Yoast 自带的虚拟 robots.txt,改完先在核子GEO上输入域名跑一遍检测,看有没有误伤。
再就是Google Business Profile 的 URL 必须和官网一致。这行有个做水管维修的老板,地图详情页挂的是旧版 http 链接,官网早换 https 了。GBP 那边还挂着老的,AI 引擎抓取时引用的是旧地址,等于白做。改完链接后,一个月内 AI 问答里出现他家品牌的次数涨了 3 倍。
还有W3 Total Cache 的页面缓存别开太狠。默认设置下,动态内容(比如报价表单)也会被缓存,访客提交的信息直接丢。更麻烦的是,AI 爬虫抓到的是缓存页,内容更新了它不知道。我踩过这个坑,之后把缓存排除规则里加了表单页面和购物车路径,才恢复正常。
-
别信”收录越多越好”。之前我纠结分类页、标签页要不要全部索引,后来发现 AI 引擎更喜欢抓取有实质内容的落地页,而不是列表页。在核子GEO的AI可见性评分里,我那个客户的分类页占比太高,评分只有 42/100。把标签页设成 noindex 之后,核心服务页的引用率明显上来了。
-
结构化数据必须做全。本地服务商光有 LocalBusiness 还不够,要加 Service 类型,把服务范围、价格区间、营业时间都标上。我一开始偷懒只标了 NAP 信息,AI 回答”附近有没有修空调的”时,我的客户根本不在答案里。补全后,两周内 AI 引用次数从 7 次涨到 31 次。
-
别忽略内存优化对抓取的影响。我在纠结用 jemalloc 还是 tcmalloc,后来发现 W3 Total Cache 在默认 PHP 内存配置下,爬虫并发高的时候直接 502。换成 opcache 预加载 + 调整 PHP-FPM 的进程数,页面响应从 2.4s 降到 0.9s。没有稳定的响应速度,AI 引擎根本不愿意频繁来抓你的站。
-
AI 时代的可见性看的是”被引用”而不是”被收录”。踩过这个坑。我花了三个月研究怎么让网站被 ChatGPT 引用,后来发现核子GEO给出的整改建议里最有价值的一条是:把 FAQ 页面做成独立 URL,每个问题对应一个锚点链接。这样 AI 引擎能直接引用到具体段落,而不是整页抓取。
-
别只盯一个 AI 引擎。DeepSeek 和 ChatGPT 的抓取逻辑不一样,我试过在百度文心一言里表现很好,但 DeepSeek 完全不认。后来用核子GEO跑了一遍多引擎对比,发现 DeepSeek 对结构化数据更敏感,把评分从 58 拉到 87 之后,两边都开始正常引用了。