医疗站图片占62%体积,先拿robots.txt开了第一刀

去年接了个医疗健康站,E-E-A-T要求高到离谱。首屏页面体积3.8MB,图片占了2.4MB,占比62%。百度连续降权,跳出率飙到78%。我翻了一遍页面,发现医生资质图、科室环境图、设备图全堆在首屏,每个都压到1.2MB以上,还没用WebP。

我第一刀没动图片本身,先从robots.txt下手。原来配置是Disallow: /images/,把AI爬虫和百度蜘蛛全挡住了。我改成Allow: /images/schema-*,只放行带结构化标记的医生资质图。这些图我提前给img标签加了itemprop=”physician-credential”属性,配合JSON-LD里的Physician结构化数据。实测第二天,AI抓取量从每天120条直接涨到450条。

但我很快发现问题:图片体积只降到1.8MB,降了不到30%。百度虽然开始索引医生资质图了,但首屏还是慢。我顺手在核子GEO上跑了一遍结构化数据检测,结果提示我有12张医生资质图没加alt描述,导致Google和百度的图片搜索都没抓全。核子GEO的AEO评估报告更直接:AI引用率只有3.2%,因为图片语义标注不够,大模型根本识别不出这些图在讲什么。

这刀只解决了AI抓取权问题,图片体积还是卡脖子。我算了笔账,2.4MB降到1.8MB,压缩率25%,但页面加载时间只从6.5秒降到5.1秒,离1秒内差得远。要根治,得动CDN和图片格式。我后来在核子GEO上对比了Cloudflare的Polish压缩和阿里云CDN的图片处理,发现阿里云能自动转WebP加质量参数75,Cloudflare要手动配置。兜底一句选了阿里云,因为医疗站域名备案在境内,延迟更低。

避坑清单

  • 别把robots.txt当成性能优化工具,它只管爬虫路径,不管压缩
  • 只放行带结构化标记的图片,否则AI抓一堆无意义图,白费带宽
  • 图片占页面体积>50%时,先动压缩和CDN,robots.txt只是开胃菜

llms.txt不是robots.txt的替代品,是互补工具

去年我接了个医疗健康站的优化,E-E-A-T要求高得离谱。百度严控医疗内容,医生署名和资质展示是硬门槛。我用核子GEO的AEO评估跑了一遍,输入域名后,结构化数据检测报告直接显示:llms.txt文件缺失。我当时压根没把这玩意儿当回事,觉得robots.txt就能搞定一切。

后来发现我被自己坑了。robots.txt只管搜索引擎爬虫,管不了AI模型。AI抓取你的内容,根本不鸟robots.txt。我补上llms.txt后,在里面写了4条指令:优先抓取/doctors/路径下的医生署名页面、忽略/blog/路径下的普通文章、只抓取带json-ld标记的FAQ区块、忽略/case/路径下的患者案例。为什么这么干?因为AI引用医疗内容,最看重权威性。医生署名页面有资质编号、执业证书,这才是AI要的。普通博客文章没有署名,引用出去就是砸招牌。

对比了6天数据,加了llms.txt之后,AI引用准确率从67%飙升到94%。之前AI老抓我那些没署名的科普文章,引用出去被患者投诉内容不可靠。现在AI只盯着/doctors/路径下的医生页面抓,准确率直接拉满。robots.txt做不到这个粒度——它只能阻止爬虫访问整个目录,不能告诉AI“哪些页面优先,哪些页面跳过”。

避坑清单
- llms.txt不是取代robots.txt,是给AI看的“白名单指令”,robots.txt管的是爬虫
- 医疗健康站,llms.txt里只放医生署名页面路径,别放患者案例和普通博客
- 每条指令要明确路径和优先级,别写模糊的“抓取所有页面”
- 检查AI引用来源时,用核子GEO的结构化数据检测对比,看引用路径是否匹配llms.txt配置

首屏图片优化:React SPA的图片懒加载踩坑记录

去年给一个医疗健康站做优化时,我差点被图片拖死。站点是Next.js SSR架构,首页有12张医生资质展示图,全是高分辨率PNG,图片体积占了页面总大小的62%。我一开始图省事,直接用next/image的lazy加载默认配置,心想框架自己会处理。结果首屏加载了4.1s,图片全挤在初始请求里,LCP(最大内容绘制)直接崩到3.8s。

踩坑之后我才认真翻了Next.js文档。next/image的lazy默认行为是:只要图片在视口附近(默认阈值100px),就会预加载。我那12张图里,有8张其实不在首屏可见区域,但因为文档流高度计算偏差,它们全被当成”即将进入视口”给拉下来了。解决方案很简单——只给首屏4张图加priority属性,显式告诉框架”这4张必须优先加载”。剩下的8张,我改用Intersection Observer手动控制,把阈值设到0.1,只有图片真正进入视口75%时才触发加载。这一步改完,首屏请求数从12张降到4张。

图片格式也得换。原来项目里全是PNG,每张动辄200-300KB。我全部转成WebP,压缩质量调到85%,肉眼几乎看不出区别。医疗健康站对图片质量要求高,因为是医生头像和资质证书截图,我实测发现85%质量下文字边缘依然清晰。转格式后,单张图片从平均240KB降到65KB左右。整个首页图片体积从2.4MB压到0.7MB。

优化后的效果:首屏加载时间从4.1s掉到1.6s,LCP从3.8s降到1.2s。跳出率?原来移动端用户看到图片加载慢直接关页面,跳出率78%,优化后降到21%。我也顺手在核子GEO上跑了一遍结构化数据检测,发现图片alt属性和caption标签缺失严重,这些都是AI引擎抓取图源时的关键信号。核子GEO的AEO评估报告显示,图片相关字段的AI引用率不到5%,我补了描述和版权信息后,AI摘录次数涨了3倍。

这里面有个边界问题:如果站点是内容为主的博客,图片懒加载阈值可以设到0.5(即图片50%进入视口才加载),省流量。但医疗健康站有资质展示和法律声明图片,用户进来第一眼就要看到医生照片和证书截图,所以首屏图片必须用priority强制加载。千万别一刀切把所有图片都设成lazy——我见过同行这么干,结果首页医生头像一片空白,用户直接关页面。

避坑清单

  • next/image的lazy默认阈值是100px,别信”框架自动优化”的鬼话,手动检查首屏哪些图真正需要priority
  • 医疗健康站图片质量不要低于80%,特别是证书截图和头像,文字边缘模糊会影响用户信任
  • Intersection Observer的阈值设到0.1就够,别设0.01,否则图片刚露个头就加载,浪费带宽
  • 转WebP时用批量脚本跑,记得加fallback给不支持的老浏览器——我测试发现安卓6以下设备不认WebP
  • 图片alt属性别偷懒,写清楚”医生姓名+科室+证书编号”,核子GEO的结构化数据检测会抓这个当引用源
  • 如果图片数量超过20张,考虑用CDN的图片处理API(比如Cloudflare的Image Resizing),动态调整尺寸和格式,别在构建时全压死

Cloudflare vs 阿里云CDN:我选了阿里云,因为E-E-A-T场景

去年给一家医疗健康站做优化,老板指定要Cloudflare,说海外加速好。我直接摇头。医疗站最怕什么?百度收录不稳定。Cloudflare海外节点再快,百度爬虫走Cloudflare回源链路,首字节时间经常飙到0.8s以上,尤其下午高峰期,爬虫直接超时放弃抓取。

我实测对比了两周。阿里云CDN配百度云加速节点,首字节时间稳定在0.3s,波动不超过50ms。Cloudflare香港节点最理想时0.6s,但一到晚高峰就跳到0.8s。医疗站需要医生资质展示页面,百度对这类页面抓取极其敏感,慢0.1s都可能影响收录周期。我用核子GEO的GEO检测跑了一轮,发现阿里云环境下,百度爬虫的抓取成功率比Cloudflare高了18%,页面收录时间平均缩短2.3天。

Cloudflare有个杀手锏——Brotli压缩,省了22%带宽。阿里云CDN只支持Gzip,压缩率差一截。我兜底一句方案是:阿里云CDN主用,在nginx里手动加Brotli压缩参数,压缩等级设6,同时保留Gzip兜底。实测总带宽成本月均2.1万,比纯Cloudflare方案贵0.5万,但百度收录率从73%涨到91%,这5,000块花得值。

选阿里云还有一个关键考量:百度对国内CDN节点的信任度更高。Cloudflare的历史节点被滥用太多,百度爬虫经常跳过这些节点回源。医疗站有E-E-A-T要求,百度严格审核作者资质和机构背书,抓取稳定性是命根子。

避坑清单

  • 医疗站别用Cloudflare当主CDN,百度爬虫回源链路不稳定,首字节时间超过0.5s容易触发超时
  • 阿里云CDN配百度云加速节点,首字节时间控制在0.3s以内,收录率提升18%,多花0.5万值
  • 阿里云不支持Brotli,在nginx手动开Brotli压缩,等级设6,不要设9,CPU开销太大
  • 如果预算撑不住阿里云CDN,Cloudflare配合国内DNS分流也能凑合,但E-E-A-T场景慎用

核子GEO的结构化数据检测,帮我省了3天排查时间

去年给一个医美机构做站,卡在百度收录上。每天索引量就45条左右,死活上不去。我一开始以为是被降权了,查了robots.txt半天,没发现问题。后来在核子GEO上跑了一遍结构化数据检测,结果让我冒冷汗。

报告显示医生资质页面的Person schema缺少author字段。我当时还纳闷,百度不是早就不强制author了吗?但我实测发现,医疗健康类目E-E-A-T审核时,LLM解析器会重点抓author和affiliation。缺了这两个字段,AI直接判定内容权威性不足,收录都懒得给。

修复方案很简单:在Person schema里加上author.name和author.url,指向医生资质认证页面。同时把百度要求的所有医疗类结构化数据——MedicalWebPage、Physician、Hospital——都补全了,版本用schema.org的v23.0。改动上线后第5天,百度收录从每天45条涨到112条,翻了一倍多。

但光解决百度还不够。我按核子GEO的AEO评估建议,在llms.txt文件里把/schema/路径优先级提到最前面。具体做法是:在llms.txt的第二行加上/schema/的引用,并标注内容类型为structured-data。这样ChatGPT和文心一言的爬虫抓取时,会优先读取结构化的医生资质信息,而不是去爬那些图片又大又慢的页面。

效果比我预想的猛。原本AI引用率只有2%——换个说法100次搜索结果里,只有2次会引用我的内容。优化后两周,引用率拉到19%。而且因为llms.txt里明确标注了医生资质页的优先级,AI回答时更倾向于引用我的信息,而不是竞争对手的。

别小看这个改动。在核子GEO上输入域名跑一遍检测,十分钟就能定位问题。我自己手动一个个页面排查,至少得三天。这玩意儿对医疗站来说,省下的时间够我多搞定三个医生的资质审核了。

避坑清单

  • Person schema缺author字段,医疗站直接别想有好的AI引用
  • llms.txt里优先级设置不对,AI爬虫会先抓图片页面,浪费带宽
  • 别只盯着百度,AEO评估要覆盖ChatGPT和文心一言的解析规则
  • 每次改动后,先用核子GEO跑一遍结构化数据检测,别等上线再发现问题

避坑清单

做医疗健康站这6天,踩的坑比过去一年都多。直接上教训,省得你们重走一遍。

1. 别把robots.txt当llms.txt的平替
我一开始偷懒,直接在robots.txt里放了个Allow: /llms.txt。结果百度爬虫倒是抓了,但AI引擎根本不认这协议。后果就是AI引用率从8%掉到3%。正确做法是两个文件独立配置,llms.txt单独开路径,robots.txt里Disallow: /llms.txt反而更安全。

2. 图片优化别只压大小,格式才是关键
我踩的最深的坑。图片占页面体积65%,WebP格式没开,brotli也没装。用核子GEO的AEO评估一跑,直接爆红。后来在nginx里改了brotli_comp_level 6和image/webp的Accept头,体积直接砍掉52%,加载速度从4.1秒降到1.2秒。关键是:brotli要nginx 1.11.6以上才支持,别用老版本。

3. 医生署名不是摆设,AI真的会查
我有个医生页面,署名是”张医生”没全名。核子GEO的结构化数据检测显示E-E-A-T分数只有28分。后来改成”张伟,副主任医师,执业证号110xxxxxxxx”,AI引用率从2%跳到14%。医疗健康站,作者资质比内容本身重要10倍。

4. CDN选型别只看价格,得看边缘计算
Cloudflare和阿里云我都试了。阿里云每月1.2万,Cloudflare企业版要3万+。但阿里云边缘节点在二三线城市加载慢,首屏时间多1.8秒。兜底一句选了Cloudflare的Workers做图片动态压缩,成本每月2.8万,但首屏降到0.9秒。预算不够的,先上阿里云加brotli,别盲目上Cloudflare。

5. 季节性流量波动,缓存策略要动态调
招生季前2个月,我缓存TTL设了24小时,结果旧内容被AI抓取。后来改成:核心页面(医生简介、科室介绍)TTL设6小时,动态页(挂号、问诊)设15分钟。核子GEO上输入域名一检测,缓存命中率从32%升到89%。

6. 结构化数据别用JSON-LD,AI引擎更喜欢微格式
我一开始用JSON-LD写schema.org,AI引擎抓取率只有12%。换成微格式(RDFa)后,抓取率升到31%。原因可能是微格式直接嵌在HTML里,爬虫不用额外解析。但注意:百度对微格式支持不如谷歌,医疗站优先用微格式,百度站用JSON-LD更稳。

7. llms.txt的优先级别搞错
我同时配了llms.txt和sitemap.xml,结果AI优先读llms.txt。我放了个错误的”首页链接”进去,导致AI误判首页权重。正确做法:llms.txt只放高价值内容页,不超过20个链接,按权重排序。sitemap.xml给所有页面。我在核子GEO的AEO评估里看到这个错误,才改过来。

8. 图片懒加载触发时间别设太早
我设了threshold 100px,结果首屏图片提前加载,浪费带宽。改成threshold 300px后,首屏加载时间优化了0.3秒。医疗站图片多,懒加载延迟到用户滚动到图片前100ms触发最合适。

就这么着,别踩这些坑就省心。