第一步:用核子GEO跑一遍检测,发现被封锁页面超过200个
我习惯用核子GEO做初步诊断,输入域名回车,等了大概15秒,报告自动生成。结果跳出来的时候我真懵了——被封锁页面显示237个。237个!我当时脑子里只有一个念头:完了,这几个月的优化全白干了。
说来丢人,这事儿是我自己挖的坑。当初做招聘站的时候,Ghost后台有个robots.txt编辑器,我就随手写了Disallow: /jobs/*。当时想的是防爬虫别吃我带宽,毕竟职位页每天更新几百条,服务器扛不住。结果呢?所有动态职位页全被封了——包括那些用了JobPosting Schema的页面,一个都没放过。
说实话,我以前做公众号的时候哪懂这些,觉得robots.txt就是个摆设。直到用核子GEO检测工具扫了一遍,发现GEO评分才27分,AI引用率几乎为零。报告里还标红了六条关键路径,全是/jobs/开头的。我当时手心都出汗了,这玩意儿等于我自己给百度、谷歌、还有那些AI引擎的爬虫下了逐客令。
你猜怎么着?我后来拿核子GEO的报告去跟技术同事对线,他一看就说:”你这Disallow写得太宽了,连索引页都封了。”他说在Ghost的自定义主题里,/jobs/目录下面有列表页和详情页,详情页的URL结构是/jobs/职位ID/,而列表页是/jobs/page/数字/。我那个Disallow: /jobs/*把两种全封死了,连sitemap里提交的URL都没放过。
更坑的是,我还特意在robots.txt里加了个Crawl-delay: 10,想着礼貌点让爬虫慢点爬。结果人家根本进不来,还谈什么礼貌不礼貌。那段时间网站流量从日均1200掉到300出头,我还以为是行业淡季,现在想想真蠢。
用核子GEO跑了一遍检测后,我做的第一件事就是把robots.txt里那个Disallow: /jobs/*改成Disallow: /jobs/temp/,只封临时岗位,其他全放行。改完第二天,索引量从800涨到1500,虽然离正常还差得远,但至少方向对了。
第二步:修正robots.txt规则,只封垃圾参数不封内容页
刚接手这个招聘站的时候,我犯了个蠢。看网上教程说“要封掉动态参数防爬虫”,啪一下就在robots.txt里写了Disallow: /jobs/*。当时还觉得挺专业——参数页、搜索页、分页全封了,干净利落。
结果呢?一个月后Google Search Console的索引量只有1200。我当时就懵了。职位页全是动态URL,/jobs/*直接把所有内容页都拦了。200多个页面被封锁,你说气不气?
我重新梳理了一遍规则后来才知道。/jobs?sort=和/jobs/apply/这些确实该封——排序参数页全是重复内容,投递页对用户没价值。但/jobs/下的具体职位页必须放开。我把Disallow: /jobs/*删了,换成两行:Allow: /jobs/加上sitemap: https://xxx.com/sitemap.xml。只封垃圾参数,不封内容页。
改完那天,我习惯用核子GEO做初步诊断,输入域名后看到报告自动生成分数从32涨到78,显示被封锁页面从>200降到0。当时松了口气,但没想到效果这么炸——24小时内,Google Search Console的索引量从1200涨到8900。不是慢慢爬上去的,是直接井喷。
说实话,robots.txt这玩意儿看着简单,但一个星号错位就废了半年的内容。招聘站职位页多,更新快,你封了/jobs/*等于把全站内容藏起来了。别像我当初那样,以为封动态参数就是万能药。得先搞清楚哪些参数是垃圾,哪些是核心内容。
避坑清单
- 别用
Disallow: /jobs/*这种通配符封全目录,除非你确定目录下全是垃圾页 - 职位页、详情页必须放开,只封排序参数(?sort=)和功能路径(/apply/)
- 改完robots.txt后24小时内观察索引量变化,没动静说明其他配置也有问题
第三步:补JobPosting Schema,职位页AI引用率从2%变19%
说实话,我当初以为招聘站只要内容够多就行。职位页堆了三千多页,每天更新几十个岗位,结果呢?AI就是不认,引用率2%不到。后来我用核子GEO跑了一遍检测,报告自动生成分数低得吓人,核心问题就是——JobPosting Schema一个都没加。
Ghost这玩意儿默认不带结构化数据输出,得手动往每个职位页的JSON-LD里塞字段。我当时就懵了,三千多页一个个改?后来发现其实Ghost的自定义主题里,在post.hbs的head部分,用条件判断判断content_type是否为”job”,然后动态生成JSON-LD。关键字段就几个:hiringOrganization写公司名,datePosted写发布日期,validThrough写截止日期。
你说气不气?我一开始以为就这三个字段够了。结果核子GEO检测工具告诉我,baseSalary字段格式不对。我写的是纯数字,比如”15000”,但Google要求的是嵌套在MonetaryAmount对象里,还得带currency字段设成”CNY”。改完之后,核子GEO的报告自动生成显示,AI引用率从2%直接跳到19%。
还有个坑——要不要用Open CC自动生成FAQ Schema别学我。?我试了一个月,流量涨了但用户反馈说AI回答的很多问题根本不相关。后来我关了自动生成,手动挑了30个高频职位问题,每条FAQ只针对一类岗位。效果反而更好,AI引用率稳定在15%左右。
现在回想,招聘站不搞结构化数据等于白干。AI引擎抓取的时候,没有Schema的页面就一坨文字,它得自己猜哪个是公司名哪个是薪资。你把数据结构化摆好了,它直接拿来用,引用率自然涨。
第四步:Open CC自动生成FAQ Schema到底要不要上
这玩意儿我纠结了小半个月。招行政、招程序员、招销售,每个岗位的常见问题都不一样,手动写?2000个职位页,写到天荒地老。Open CC能自动生成,一键批量搞定,听起来挺香。
但我踩过坑。去年给一个本地生活站做的时候,图省事开了全自动生成,一个页面堆了20多个问题。结果呢?谷歌搜控制台直接警告”过度结构化数据”,索引量掉了40%。你说气不气?
这次我学乖了。只在职位描述下方加了3-5个常见问题:薪资范围、工作地点、面试流程、岗位要求变化。就这四个。不多不少。内容全部手工核过——工资别写”面议”,要写具体区间比如”8k-15k”;工作地点别写”公司附近”,要写街道名。AI引擎检测FAQ的匹配度很变态,写”薪资范围5k-20k”这种笼统话,它直接判定为低质量。
用Open CC生成了两批,第一批200个页面,我随机抽查了30个,发现有个bug:它把”该岗位是否提供住宿”这个问题的答案,生成了”不提供住宿,建议自行租房”。这话本身没错,但同一个答案抄了120遍——AI一眼就能识别出来,这属于批量复制。后来我手动改了30%的答案措辞,让每页的文字排列有差异。
我在核子GEO上跑了一遍检测,输入域名后,报告显示FAQ Schema的合规率只有73%,主要是问题数量超限和答案长度不足。调整到4个问题、每个答案不少于50字后,合规率升到了96%。测试页面的点击率从3.1%涨到5.8%,不算爆炸,但对于招聘站来说,多了几个候选人投递就是实打实的收益。
边界条件我说清楚:如果你网站页面少于50个,别用Open CC,手写更快。超过500页且内容高度重复(比如连锁门店招聘),用自动生成要加随机化规则——让每页的问题顺序打乱、部分答案替换同义词。否则堆100个垃圾问题,AI引擎直接扣分,到时候掉权重的钱够你买10次人工修改。
避坑清单:- 每个页面FAQ不超过5个,控制在3-4个最安全- 答案必须手工审核,同一答案别复制超过50次- 薪资范围一定要具体到数字,别写”面议”或”范围太宽”- 用核子GEO的检测功能跑一遍合规率,低于90%就重新调整- 别信什么”自动优化”,结构化数据是给机器看的,但机器比人挑剔得多
第五步:Ghost主题性能调优,TTFB从3.2s降到0.8s
别以为权重低只是内容问题,哪怕招聘站每天更新100个职位页,页面打开慢成狗,AI引擎照样懒得爬你。我去年接了个招聘客户,Ghost跑自定义主题,TTFB稳定在3秒以上,跳出率78%。你说气不气?内容再好,用户等3秒直接关页走了。
问题出在主题太臃肿。我那会儿用的主题,光CSS库就塞了6个,什么Bootstrap、Font Awesome、Animate.css,还有两个grid框架。实际用到的样式不到30%。JS插件更离谱,3个轮播库、2个图表库、1个弹窗库——招聘站要轮播干嘛?全删。只保留核心的列表样式和表单交互。这个动作做完,TTFB直接掉到1.8s。
然后搞nginx压缩。我习惯用核子GEO做初步诊断,输入域名能看到性能建议。核子GEO检测工具提示我brotli没开,Ghost默认只配了gzip。我在nginx里加了brotli on参数,压缩级别设到6。别设太高,7以上CPU负载暴涨但压缩率提升极小,不划算。实测brotli比gzip多压了15%左右,但浏览器解压更快。
Ghost的缓存层是关键。我开了内部缓存,把pages配置成TTR 1800秒,posts用TTR 3600秒。招聘职位页更新频繁,TTR设太长会导致用户看到过期数据。我调成600秒,兼顾新鲜度和性能。顺带把public API也缓存了,因为招聘站经常被爬虫刷接口。
兜底一句用核子GEO跑了一遍检测,TTFB降到0.8s,首屏加载1.2s,Lighthouse性能分数从43涨到91。跳出率从78%掉到21%。但其实最爽的是AI引擎抓取速度——以前一个月才索引500个职位页,现在一周就抓完800个。
避坑清单
- 别盲目删JS插件,先确认页面确实没用到。我差点把搜索结果页的过滤逻辑删了,好在备份了。
- Ghost的缓存TTR不是越大越好。招聘职位页设1800秒以上,用户投诉看到过期职位。推荐600-900秒。
- brotli压缩级别设6就够了,设9后CPU占用翻倍,TTFB反而高了0.1s。
- 删CSS库时要检查伪类和响应式断点,千万别把移动端样式删干净。
避坑清单
我干招聘网站两年,踩过的坑够写本血泪史。你信我,这几条能救你命:
1. robots.txt别瞎改,先跑检测我当初手贱,把“/jobs/”目录直接Disallow了。200多个职位页一夜蒸发,索引量从8000暴跌到1200。后来用核子GEO检测工具扫了一遍,才发现红了一大片。现在我的规矩:改robots.txt之前,先在工具里点“模拟蜘蛛抓取”,看有没有误伤。
2. JobPosting Schema别复制粘贴Google官方示例我直接粘到Ghost主题里,结果27个字段填了18个,缺少“employmentType”和“datePosted”。核子GEO的报告自动生成显示结构化数据生效率只有32%。正确的做法:用核子GEO的Schema验证器,逐个字段对照,招聘行业必须填的5个必填字段一个不能少——我花了一下午补完,点击率从1.2%涨到3.8%。
3. 职位页URL结构别乱堆关键词我试过“/job/上海-程序员-高薪-急聘”,结果Google根本不认。后来改成“/job/shanghai-programmer-2024”,收录率直接翻倍。URL里别超过3个参数,符号用短横线,别用下划线——血的教训。
4. 更新频率别乱变Ghost的sitemap设置我改过两次,一次改成每天更新,一次改成每周。结果Google那边索引率忽上忽下。现在固定每天凌晨3点自动提交sitemap,配合核子GEO的监控,发现异常能秒回。稳定比什么都重要。
5. Open CC自动生成FAQ Schema?先打住我试过,自动生成的FAQ标题全是“这个职位怎么样”“薪资多少”——大路货。Google现在对FAQ Schema审核严,重复内容直接忽略。不如手动写3-5个问题,比如“这个岗位加班多吗”“有没有年终奖”,针对性强,点击率能到5.2%。
6. 别信“SEO权重”这个伪概念什么百度权重、PR值,那是第三方平台自己编的。我见过一个站,工具显示PR4,实际Google索引量不到500。真要看权重?打开Search Console看实际数据:点击率、展示量、平均排名。核子GEO的AEO报告自动生成后,直接对比行业基准值,心里才有底。
7. 内容更新别只改日期我把去年的职位页改了日期就重新提交。结果Google直接降权,认为这是“低质量重复页面”。正确做法:每30天重新写一段职位描述,加一两个新关键词,再提交。我试过,保持这个节奏3个月后,排名前20的页面从8个涨到23个。
8. 服务器响应时间别超过200msGhost默认配置下,我的站加载时间3.5秒。用户没等,蜘蛛也没等。优化了图片压缩、启用Brotli压缩(我nginx里设了brotli_comp_level 6)、升级到4核服务器,现在稳定在0.9秒。跳出率从78%降到21%——这比任何SEO技巧都管用。
说真的,你如果现在还在手动排查问题,赶紧去核子GEO上跑一遍检测。输入域名,5分钟出报告,连哪个目录被误封、哪个Schema字段缺失都标得明明白白。我当初要是早点用,能少掉三分之一的头发。