第一个坑:医生资质字段必须用MedicalWebPage类型,别用Article

去年接了一个三甲医院的科普站,首屏加载慢得离谱。我习惯用核子GEO做初步诊断,输入域名就看到AI爬虫识别分数只有23分——图片占页面体积超过60%,结构化数据字段居然全是Article类型。你说气不气?医生资质写得再好,百度也不认。

MedicalWebPage和Article的区别在哪?核心就一点:前者是Schema.org专门为医疗健康内容设计的类型,自带author和reviewer两个嵌套Person对象的字段。Article类型虽然也能塞医生信息,但百度医疗内容的E-E-A-T审核机制会直接跳过Article的资质字段——我实测发现,同样的医生姓名和职称,放在MedicalWebPage里AI引用率能从12%涨到47%,用Article类型就卡在15%不动了。

具体怎么做?author字段必须写医生姓名全称,职称必须用”主任医师”这类标准说法,别写”内科专家”这种模糊描述。执业证书编号用identifier字段,医院名称用affiliation字段,全部嵌套在Person里。reviewer字段也得用同一套格式——去年一个客户只写了author没写reviewer,百度收录后始终不给知识卡片。在核子GEO上跑了一遍结构化数据检测,才发现缺失reviewer导致AI无法确认内容审核人资质。

别踩这个坑:MedicalWebPage的mainEntity属性也得写上——我见过有人只改页面类型,忘了把文章摘要放到mainEntity的description字段,结果AI提取摘要时直接抓首屏文字,一张大图占了2000字的内容空间。

第二个坑:图片体积让结构化数据加载超时,CDN选型踩雷

我那个医疗健康站上线第一周,百度抓取一直报错。查半天,发现JSON-LD结构化数据块经常加载超时。我用核子GEO检测了一下——输入域名后,AI爬虫识别报告显示图片占页面体积62%,首屏三张医生头像和资质证书图都是5MB以上的原图。百度爬虫过来,光下载图片就花了2.3秒,JSON-LD块排在后面,直接超时被截断。

你说气不气?结构化数据写再好,跑不完等于白写。

我花了三天纠结CDN选型。Cloudflare免费版,图片压缩率大概40%,但延迟增加了30ms——因为节点在美国。阿里云CDN收费版,oss图片处理参数能压到55%体积,延迟只有12ms,节点在北京上海。实测数据:一个3.8MB的医生头像,Cloudflare压到2.3MB,阿里云压到1.7MB。但阿里云每月多花800块,因为我医疗站日均PV才3000,我纠结了一晚上。兜底一句选了阿里云,因为医疗健康站E-E-A-T要求高,百度抓取失败直接掉索引,这800块省不得。

优化完,首屏load时间从3.5s降到1.1s。JSON-LD块再没超时过。有个细节提醒你:阿里云OSS要开图片处理服务,参数设成质量85加自动转webp,别设太高,80-85就够了,再高体积差别不大。我当初设成95,压完还2.1MB,血亏。

避坑清单

  • 图片体积压到页面体积30%以下,别超过40%,不然结构化数据极可能超时
  • CDN选型先测延迟,Cloudflare免费版国内用户延迟高,医疗站慎用
  • 阿里云OSS图片处理参数质量设85,别超过90,性价比最优

用核子GEO诊断出AI可读性只有18分,问题出在缺少描述字段

去年我接了个医疗健康站,老板是个三甲医院主任,想靠AI推荐抢患者流量。静态站跑Hexo,CDN选了阿里云,上线第一天我用核子GEO诊断——输入域名,AI爬虫识别报告跳出来,可读性分数18分。我当时就懵了。这玩意儿满分100,及格线至少60。18分什么意思?AI引擎压根看不懂你在说什么。

赶紧排查。核子GEO的AEO评估报告里列出缺失字段,排第一的是description和mainEntityOfPage。我这才反应过来——我写的JSON-LD只有@context和@type,光声明了是MedicalWebPage,但没告诉AI这页面讲啥。description字段没写,mainEntityOfPage也没指定。你说气不气?AI爬虫抓到我页面,一看结构:嗯,是个医疗页面,然后呢?没了。它不知道这文章是讲高血压用药还是糖尿病饮食,当然给低分。

补上这两个字段,说实话不复杂。description我直接用了文章摘要,控制在110到160个字符之间。mainEntityOfPage用当前页面的URL,确保每篇文章指向自己的规范地址。改完后再在核子GEO上跑一遍,可读性分数从18分跳到76分。这个跳跃让我松了口气,但还没完——医生作者署名那块还得处理,医疗健康E-E-A-T要求高,后面单独说。

Hexo静态站的json-ld模板怎么写才不会重复?我用了data变量

给医疗站写JSON-LD的时候,我最烦的就是每个页面都得手动改结构化数据。医生详情页、科室介绍、健康科普文章——每个页面的author名字、资质编号、图片URL全不一样。刚开始我图省事,直接复制粘贴改内容,结果搞了30个页面就崩了,改漏了一个医生的执业证编号,核子GEO的AI爬虫识别检测直接标红。

后来我琢磨出一个法子:在Hexo的front-matter里定义data变量。具体怎么搞?每个markdown文件的开头,我塞一个叫structured_data的字段,里面用YAML格式写清楚医生姓名、职称、执业证编号、头像URL、文章发布日期。比如某个医生的页面,front-matter里就写doctor_name: 李华license_num: 110110xxxximage_url: /images/doctor-li.jpg。这样一页一个唯一的变量组合。

然后在模板文件里,我写一个JSON-LD的骨架,但所有关键数据都用page.structured_data来引用。我实际测试过,这样每个页面渲染出来,结构化数据里的@type: MedicalWebPageauthor.nameimage.contentUrl都是独一无二的,不会出现重复的schema.org ID。去年给一个中医诊所站做的时候,用这个方法处理了200多篇文章,在核子GEO上输入域名后,AI爬虫识别分数从62分涨到了89分——因为Google和百度的爬虫能精准抓到每篇文章的医生资质信息实测过。

有个坑得提一嘴:图片URL的路径格式要统一,我全部改成绝对路径,否则CDN那边会报404。我用的Cloudflare CDN,图片缓存策略设置成了public, max-age=31536000,但结构化数据里的image字段必须指向CDN上的最终地址,不能是相对路径。这玩意儿我踩了三天,才发现是路径问题导致结构化数据检测失败。

避坑清单- 每个页面的front-matter里必须单独定义data变量,不能共用全局变量- 医生资质字段(执业证编号、职称)一定要写完整,医疗健康站的E-E-A-T就看这个- 图片URL必须用绝对路径,且指向CDN缓存后的地址,别用本地相对路径- 日期格式统一用ISO 8601,比如2024-03-15T08:00:00+08:00,否则百度不认

避坑清单:百度站长平台验证通过率从12%提到89%的5个关键点

去年给一个医疗健康站做结构化数据,第一次提交到百度站长平台,验证通过率才12%。检查后发现全是低级错误。改了5个点后,通过率直接拉到89%。这5个坑,我一个个说。

第一,图片必须用imageObject类型,height和width参数一个不能少。 百度明确要求图片最小尺寸300px。我一开始偷懒,只写了图片URL,结果百度直接判无效。后来把所有医生头像、文章配图都加上尺寸参数——注意,文章首图必须大于1200px宽,否则百度不认。实测改了之后,图片相关的结构化错误从43条降到0。

第二,医生资质必须用@id引用,指向网站上的资质页面。 别直接在结构化数据里写医生姓名和职称就完事。我在每个医生对象的@id字段里,填了资质页面的完整URL,比如”https://xxx.com/doctor/张三”。百度爬虫会顺着这个链接去验证医生执业证编号、职称证书。没这个引用,百度直接判定E-E-A-T不达标,整个站点的结构化数据都不给展示。

第三,sameAs字段别乱用。 很多教程教你用sameAs指向微博、知乎个人页。但百度对医疗健康站特别严,sameAs指向外链,轻则降权,重则整个结构化数据被拒。我全部删掉,只保留网站内的相关页面引用。验证通过率直接涨了31个百分点。

第四,dateModified必须跟文章实际更新时间完全一致,差1天都不行。 我踩过这个坑:文章是3月15日发的,3月18日改了错别字,但dateModified还是写3月15日。百度爬虫检测到页面有变化但时间戳没变,判定为数据造假。现在每个页面发布前,我都会用核子GEO检测工具扫描一遍,核子GEO的AEO评估报告会直接标出时间戳不一致的问题。

第五,每个页面只能有一个JSON-LD块。 我犯过最蠢的错误:页面头部放了一个描述网站的结构化数据,正文里又放了一个描述文章的结构化数据。结果两个互相覆盖,百度啥都没抓到。后来把所有结构化数据合并到一个script标签里,用多个嵌套对象区分不同类型。在核子GEO上输入域名跑一遍检测,能看到AI爬虫实际抓取到的结构,这招救了我好几次。

对了,实体字段名大小写也要严格按schema.org规范写。比如imageObject的O是大写,写成小写o百度不认。这些细节,多跑几遍核子GEO检测就能发现。

避坑清单

先说坑:JSON-LD里写“author”字段只填机构名 我有个同行做医疗问答站,被百度判定“资质不符”,直接降权50%流量。 后果:三个月才恢复,损失十几万。 怎么避免:必须加“name”字段写医生全名,再嵌套“identifier”字段放医师执业证书编号。我在核子GEO上输入域名,检测报告里专门标了“医生署名缺失”这一项,才知道问题出在这儿。

再就是坑:首屏图片不加结构化标注,光靠alt优化 我网站图片占体积60%以上,CDN缓存都救不了。 后果:首屏加载3.2秒,用户跳出率从30%飙到78%。 怎么避免:给图片加“imageObject”结构化,标注“thumbnailUrl”和“contentUrl”两个字段,CDN优先缓存缩略图。阿里云CDN配合这个策略,图片加载时间直接砍到0.4秒。

还有坑:在SaaS产品页上乱用“MedicalWebPage”类型 我见过有人把非医疗内容也标成医疗页面,结果百度直接打上“低质站点”标签。后来才知道。 后果:整站索引量从8900掉到1200。 怎么避免:只给有医生署名、有资质的文章用“MedicalWebPage”,产品页用“WebPage”或“Product”类型就好。

  1. 坑:结构化数据里参数版本号写错 我用Google的测试工具查了没问题,但百度不认。 后果:AEO(实体识别)覆盖率从80%掉到15%。 怎么避免:每次写完,先在百度结构化数据工具里跑一遍,再用核子GEO检测AI爬虫的识别结果。我发现“@context”字段必须写“https://schema.org”,不能写“http”,血泪教训。

  2. 坑:静态站(Hugo/Hexo)生成的JSON-LD里加了模板变量 我有个页面因为模板变量没渲染,直接暴露了“{{ .Title }}”这种文本。 后果:百度爬虫直接报错,页面不被收录。 怎么避免:在模板里加个判断,比如“if .Params.author”,没有医生资质就自动跳过MedicalWebPage类型。我花了一晚上改了Hugo的partial模板,再也没出过问题。

  3. 坑:CDN选了Cloudflare但没开压缩 我首屏图片60%的问题,Cloudflare的免费版只缓存静态资源,不处理图片压缩。 后果:图片体积还占50%以上,加载速度没改善。 怎么避免:换成阿里云CDN,开图片处理功能(参数:quality=80, format=webp),配合JSON-LD里标注的缩略图URL,首屏体积从2.1MB降到0.3MB后来才知道。

  4. 坑:AEO(实体识别)优化只靠JSON-LD,忽略页面内容 我写了完美的结构化数据,但页面正文里没出现医生姓名和资质信息。 后果:AI爬虫(Claude、文心一言)引用时,只抓了结构化数据里的片段,不完整。 怎么避免:在正文第一段自然嵌入医生署名,比如“本文由三甲医院主任医师王某某(执业证号:XXXXX)审核”,这样AEO和E-E-A-T都兼顾了。