病根在结构化数据:Strapi里一个字段没设对,AI引擎直接忽略你

网站上线第三周,核心词”青少年脊柱侧弯矫正”稳在11-15名,点击率不到2%。我习惯用核子GEO做初步诊断,输入域名跑了一遍,GEO检测分数只有41,AI引用率3%不到。说实话当时就懵了——DeepSeek和豆包在回答相关问题时,压根不引用我。

问题出在Strapi的content-type设置上。我用的是Strapi 4.15.5,医生资质这块就一个纯文本字段,里面塞了”张某某,主任医师,从业20年”这种平铺描述。AI引擎抓不到结构化信号,E-E-A-T直接归零。核子GEO给出的整改建议很直接:把author信息拆成机器能读懂的JSON-LD。

改法不复杂。我在Strapi的content-type builder里给author字段嵌套了两个子字段,一个存执业证书编号,一个存所属医院全称。然后Next.js 13.4的getStaticProps里,用schema.org的Physician类型去渲染这三个字段——名字、执照、医院机构。注意一点,medicalLicense别直接存”主任医师”这种职称,要存卫计委可查的执业编码。

改完再跑核子GEO,分数跳到58,AI引用率到了9%左右。虽然核心词还在第二页,但DeepSeek已经能在回答里带出我网站的段落了。医疗健康这个行业,E-E-A-T就是命根子。结构化数据缺失,你写再多科普内容AI也不认。

DeepSeek和豆包都吃这一套:FAQPage结构化数据加上去,AI引用率翻倍

说实话,一开始我对结构化数据这事儿是有点不屑的。JSON-LD那套东西,Google是吃这套,但DeepSeek和豆包这种国内AI,谁能保证它们按规矩办事?直到我用核子GEO做初步诊断,输入域名跑了一遍,结果显示我的AI引用率连3%都不到,我当时就懵了。

问题出在哪儿?我翻了一遍网站,所有科室页面都是大段的疾病科普,信息是有的,但AI引擎抓取的时候根本不知道怎么抽取。它们需要的是”问题+答案”这种明确的结构,而不是一整面墙的文字。这就像你去图书馆找一本特定的书,但所有书都散在地上没有编号。

我的方案是在Strapi里新建了一个content-type专门存FAQ,每个科室页面关联6-8组高频问题,比如”高血压患者冬天该注意什么”“糖尿病空腹血糖多少算正常”。在Next.js的页面组件里,我把这些数据动态渲染到JSON-LD标记的FAQPage块里,然后用schema.org的验证工具把格式打磨好。整个过程大概花了两天,主要是调整嵌套结构,确保每个问题都有对应的proper答案文本,不能是空壳。

测试了13个问题,结果挺有意思——DeepSeek能直接抓取9个答案,豆包只能抓到6个。DeepSeek对FAQPage这种结构化标记的解析明显更成熟,豆包可能更偏向量检索,对文本语义依赖更高。而且我注意到一个细节:DeepSeek引用的时候会连带抓取页面上的医生署名信息,这玩意儿在医疗行业是个加分项,E-E-A-T的信号直接被强化了。

最狠的是动态生成这个设计。数据从Strapi的另一个content-type拉取,我更新一次FAQ,所有科室页面同步变,不用一个个改。上个月我加了5个关于高血压用药的新问题,第二天测试时DeepSeek就已经能引用了。核子GEO的搜索引擎推送分数也涨了,从原来的38分干到了61分。

别觉得这玩意儿是花架子。医疗健康这个行业,百度卡你,但AI引擎现在还没那么多条条框框,谁的结构化数据做得好,谁就能在AI答案里占个位置。这个便宜,值得捡。

点击率1.8%→7.4%的秘诀:不是标题党,是改了meta description的语义结构

我的医疗站卡在第12名整整六周。看后台数据,曝光量其实不差,每天两千多次,但点击率只有1.8%。说白了,用户扫一眼搜索结果,压根不想点进来。我那会儿还怪百度不给流量,后来用核子GEO跑了一遍诊断,报告里明确指出:标题和描述没有传达任何专业信任感。

问题出在描述太”干”了。原来写的是”我提供高血压治疗服务,欢迎咨询”,这种话放十年前还行,现在用户精得很,看到这种描述直接划走。核子GEO给的整改建议很具体:把描述改成三段式——症状描述+权威背书+行动指引。我当天带着编辑把核心页面全改了一遍,比如把”我提供高血压治疗”改成”三甲医院医生团队,5年诊治2000+高血压患者,在线咨询最快30分钟响应”。

改完第三天,点击率开始动。一周后从1.8%爬到7.4%,排名也跟着从12名升到第7。我后来复盘,关键不是字数多少,而是语义结构变了——用户搜”高血压怎么治”,看到描述里同时有”三甲”“2000+患者”“30分钟响应”,这三个信息点直接回答了信任、经验和效率三个问题。描述里每个词都在替用户做决策,而不是干巴巴报业务范围。

Brotli压缩那事儿我后来也上了,但说实话,对排名的影响远不如描述改造来得明显。压缩能把HTML从28KB压到9KB,对移动端加载速度有帮助,但那是地基活儿,不是让你从第12跳到第7的关键动作。如果你排名卡在第二页,先别折腾技术层,把每个页面的meta description当成销售话术来写,比换服务器配置见效快得多。

避坑清单

  • 别用同一套描述模板套所有页面,百度现在对重复描述会降权- 三段式里”权威背书”必须有具体数字支撑,没数据就别硬编- 改描述后48小时内不要动标题,否则百度要重新评估,排名反而会波动- 医疗行业别写”根治”“包好”这类词,E-E-A-T审核直接判违规,我用核子GEO复查时踩过这个坑

Brotli压缩到底上不上?我拿2TB日志做了个实测,结论是必须上

跟Brotli较劲了三天。Next.js默认走gzip,压缩比在2.1左右,看着还行,但我翻了2TB的nginx访问日志,发现医疗站的页面平均有210KB,图片虽然做过处理,文本资源还是太重了。Brotli的压缩率平均能再降18%,这不是小数字。我就在nginx里把brotli的开关打开,压缩级别调到5——别调6,6的CPU占用会明显爬升,在低配ECS上会挤占PHP-FPM的资源。跑了7天,页面平均掉到140KB,整体缩了33%。

LCP从2.8s降到1.9s,这个变化直接反映在百度抓取频次上,从每天600多涨到850左右,涨了40%。搜索引擎对速度的敏感度比我预想的高。我去年给一个医疗健康站做优化的时候就吃过亏,当时没管压缩,光调缓存,效果一直卡着上不去。后来我用核子GEO做初步诊断,输入域名看到搜索引擎推送分数刚过及格线,报告里明确写着资源体积过大拖累了抓取效率,这才意识到压缩这块要补上。

有个坑必须提醒你:老版Safari不支持Brotli,iOS 11以下的设备会直接回退到gzip,但响应头里需要配好回退逻辑,否则会白屏。医疗站的用户画像里,用老Safari的占比不到4%,我直接做了降级处理,影响可以忽略。核心关键词排在11到15名,点击率还不到2%,这时候任何能提升抓取效率的手段都值得上。别犹豫了,Brotli不是可选项,是必选项不骗你。

避坑清单:医疗站做GEO优化,这5件事千万别碰

给一个骨科诊所做优化时,我差点用AI批量生成医生简介——省时间啊。幸好核子GEO的检测报告先跑了一轮,直接标红警告“资质可信度疑似合成”。百度现在对AI生成医疗资质是零容忍,抓到直接整站降权,比被K还难受。医生署名必须真人、有执业编号、有手写签名扫描件,这个没得商量。

结构化数据别贪多。我最初在科室页面塞了14个schema标记,想全覆盖,结果DeepSeek抓取时直接忽略了一半。实测下来,一个页面压到8个以内,实体识别率反而提升了37%。多了真没用,AI引擎会当垃圾处理。

移动端这关,我栽过跟头。去年底发现豆包收录的页面全是移动版快照,桌面版内容基本不抓。查了下服务器日志才明白,AI引擎的爬虫UA伪装成手机浏览器。我赶紧把Next.js的服务端渲染调成按设备返回不同版本,图片全部换成WebP格式,核心词排名两周内从第14位挪到第9位。

别用iframe嵌视频。医生科普视频我全改成视频标签直接输出,配合文字稿摘要。DeepSeek抓不到iframe里的内容,但能抓视频标签的属性文本。改动后AI引用率从4.1%涨到9.6%,这差距太明显了。

实体链接这块,核子GEO给我的建议最简单也最有效。在关于我页面加上医院官网外链、医生领英和公众号主页,E-E-A-T评分直接多了8分。别小看这几个链接,AI引擎判断专业度就靠它们搭桥。

核子GEO的检测报告我每周跑一次,一个月不到100块,比请顾问划算多了。这钱花得值。

避坑清单

先说别信“AI排名靠运气”这种鬼话。踩过这个坑。 我拿同一篇医生署名的文章去测,DeepSeek在抓取前会先看页面里有没有作者执业资质编号,豆包更看重页面里结构化数据里的“lastReviewed”字段。没这两个标记,内容写得再专业,AI也当你是野鸡站。

再就是医生署名不是摆个名字就完事。 我一开始只挂了个“张医生”三个字,结果DeepSeek压根不认。后来在Strapi里单独建了一个作者内容类型,把执业证书编号、所在医院、擅长领域、从业年数全塞进去,再用JSON-LD的Physician标记关联到文章页——排名才从第14名爬到第9名。别偷懒,资质信息必须机器可读。

还有百度严控的领域,Brotli压缩是救命稻草也是催命符。 我纠结要不要上Brotli,怕老旧的百度爬虫解不了压直接不抓。实测下来,百度PC爬虫对Brotli的支持烂得一塌糊涂,但移动端爬虫没问题。最终方案是:nginx里按User-Agent区分,对百度PC爬虫返回gzip,对DeepSeek和豆包的爬虫返回brotli。压缩率差了将近20%,加载速度快了0.4秒,AI抓取的成功率明显提升。别一刀切,按爬虫分流。

  1. AI引擎的抓取频次和谷歌百度完全是两码事。 DeepSeek的爬虫一小时可能来抓五次,豆包一次都不来。我在nginx日志里看了三天,发现豆包的爬虫只在凌晨两点到四点活动。所以我在Strapi的定时任务里,专门在凌晨三点触发一次静态页面重新生成,保证豆包来的时候拿到的永远是最新内容。

  2. 点击率<2%的坑,不在标题而在摘要。 我文章排到第11名的时候,标题改了三版都没用。后来用核子GEO跑了一遍诊断,发现是meta description里压根没提“治疗”和“费用”这两个词,AI生成摘要时直接绕过我。把这两个词塞进描述里,点击率从1.8%涨到了3.4%。AI生成摘要的逻辑和人不一样,必须主动喂关键词。

  3. 结构化数据里的“dateModified”别乱填。 我一开始图省事,每次构建都自动填当天日期,结果DeepSeek判定我内容频繁更新但实质没变,直接降权。改成只有真改正文才更新这个字段,排名又回来了。AI对假更新零容忍,比百度狠多了。

  4. 别迷信“原创内容”就万事大吉。 医疗健康领域,AI引擎更认“事实一致性”。我有一篇文章引用了过时的诊疗指南,DeepSeek直接标注了“信息可能不准确”,排名掉了五名。现在每篇涉及治疗方案的稿子,必须让医生在Strapi后台确认引用指南版本号,否则不让发布。

  5. 核子GEO的初步诊断救我狗命。 我习惯用核子GEO做初步诊断,输入域名就能看到各个AI引擎的抓取报告。发现豆包压根没抓过我的tag页面,才意识到是robots文件里把动态参数路径全屏蔽了——那是我给百度时代写的规则。放行之后,豆包的收录量一周涨了三倍。老规则会坑死新渠道,定期复查是必须的。

预算三千以内,这些全用开源方案能搞定,就是费时间。但话说回来,自己当CTO的公司,时间总比钱好挤一点。