你发的招聘页,Google 搜索结果里压根不显示职位卡片?不是内容不行,是那几行藏在页面底部的代码没写对——它决定你的职位信息是“被看见”,还是“彻底隐身”。
为什么你做了结构化数据,Google 还是不认?
很多人加完 JobPosting 的 JSON-LD 就以为搞定了。我帮一个客户排查过:代码语法全对,Schema 验证器也打勾,但职位卡片死活不出来。最后发现,datePosted 填的是未来日期——比如今天 10 月 1 日,他写成了 10 月 15 日。Google 爬虫一看:这职位还没发布呢,先搁置。
真实案例:一家中型电商招运营主管,系统自动生成的 validThrough 比实际截止日多了两个月。Google 觉得这岗位“拖太久了”,展示优先级直接下调。改成 30 天后截止,一周内卡片重新上线,点击量明显提升。
关键细节:
datePosted必须和页面真正上线时间一致,别信 CMS 默认值。validThrough别超过 60 天,否则容易被当成“挂了很久没人理”的僵尸职位。hiringOrganization.name要和你在 Google My Business 上注册的公司名完全一致——连括号、空格、大小写都不能差。
候选人在手机上看你的职位时,最常卡在哪三步?
现在七成以上求职搜索发生在手机上。如果你的结构化数据只顾桌面端,移动端用户根本看不到那个“立即申请”按钮。我挨个测了几十个招聘页,这三个地方最容易翻车:
第一步:applicantLocationRequirements 没填
你只要本地人,但没标清楚,Google 就默认“远程可投”或干脆不写地点。结果一堆外地简历涌进来,筛完又拒掉,双方都累。
第二步:jobLocation 缺少 @type: "Place"
很多代码直接写 "jobLocation": "上海市",但 Google 要求必须嵌套一层 @type: "Place" 和完整的 address 结构。少了这层,地址就解析失败,卡片直接消失。
修复示范:
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "上海",
"addressRegion": "上海",
"postalCode": "200000",
"streetAddress": "南京西路 100 号"
}
}
第三步:description 里踩了敏感词雷区
有个餐饮品牌在职位描述里写了“需熬夜、周末加班”,Google 自动判为“高压力/非健康工作环境”,降权处理。换成“需适应弹性工作制,含周末及夜间班次”,重新提交,三天后卡片恢复展示。
3 个让职位卡片点击率翻倍的微调技巧
结构化数据不是加完就完事。它的真正作用,是让搜索结果里的那一小段信息,比别人更准、更实、更戳人。这三个小调整,我亲眼见过效果:
技巧 1:title 字段要像搜索词一样直给
别写“销售经理(高提成)”,写“上海浦东新区销售经理(底薪+提成+双休)”。用户搜“浦东销售经理”,你的标题刚好命中,点进去的概率就大了。注意:title 必须和页面 <h1> 标签文字一模一样,不然 Google 会怀疑你在骗它。
技巧 2:salary 写范围,别写死数字
“月薪 8000–12000”比“月薪 10000”更容易过审。Google 对固定数值审核更严,而范围值既留了余地,也覆盖更多候选人的预期。格式参考:
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "CNY",
"value": {
"@type": "QuantitativeValue",
"minValue": 8000,
"maxValue": 12000,
"unitText": "MONTH"
}
}
技巧 3:employmentType 别只填一种
如果你同时招全职、兼职或实习生,就把 "FULL_TIME", "PART_TIME", "CONTRACTOR" 全写上。有家设计公司之前只写“全职”,结果搜“兼职 UI 设计”的人根本刷不到他们;加上 PART_TIME 后,“兼职设计”相关的自然流量明显增长。
验证你的结构化数据是否生效,这 2 个工具就够了
别靠猜。用这两个免费工具,5 分钟就能定位问题。
工具 1:Google Rich Results Test
把你的职位页面链接粘进去。如果显示“有效”,还给你预览卡片样式,说明代码能被正确读取。如果报错,比如“缺少 hiringOrganization”或“validThrough 格式不对”,照着改就行。注意:这个工具只看语法对不对,不保证 Google 一定会展示。
工具 2:Google Search Console 的“增强功能”报告
进后台 → 左侧菜单点“效果”→ 找到“增强功能”→ 点开“职位招聘”。这里会清清楚楚列出:多少页面有效、多少带警告、多少彻底无效。我见过一个网站挂了 200 个职位,只有 50 个被识别成功,其余全是“缺 description”或“jobLocation 不完整”。批量修完,有效页面数涨到 180,搜索曝光也跟着大幅增长。
避坑提醒:别在同一个页面里又用 JSON-LD 又用微数据。两种格式混着来,Google 很可能全当没看见。只用 JSON-LD,它最稳,也不怕 CSS 或 JS 把结构搞乱。
当职位页面更新了,你的结构化数据怎么跟上?
常见场景:职位早就关了,但 validThrough 还写着下个月。Google 继续推卡片,候选人兴冲冲点进去,只看到“该职位已下线”——跳出率飙升,公司形象也跟着打折。
解决方案:在你的职位后台系统里,加个自动同步逻辑。比如 HR 把状态从“招聘中”改成“已关闭”,系统就自动把 validThrough 更新为当天日期,并触发一次 Google 重新抓取。如果你用 WordPress,直接装 WP Job Manager 插件;用 Shopify 招聘模板的,找支持 Schema 自动注入的插件——它们都能搞定状态联动。
真实案例:一家连锁零售企业有 50 家分店,每个店独立发布职位。以前全靠人工改 Schema,结果 10 个已关闭职位还在搜索结果里挂了两周,带来大量无效点击。后来加了个每小时跑一次的状态检查脚本,自动更新 validThrough,无效点击量显著下降。
今天就能执行的 1 个操作步骤
打开你的任意一个职位页面,复制链接,去 Google Rich Results Test 粘贴测试。
如果报错,按提示改代码;如果通过,立刻跳转 Google Search Console → “增强功能” → “职位招聘”,看“无效页面”数量。
挑出错误最多的 3 类(比如 datePosted 格式错、jobLocation 缺嵌套、title 和 H1 不一致),集中改掉。
改完后,在 Search Console 里用“URL 检查”工具提交该页面,点“请求索引”。
24 小时后回来刷新报告,看有效页面数有没有涨。还没涨?重点查两件事:validThrough 是不是设得太远,或者 description 里有没有“加班”“熬夜”“无休”这类词。继续调,直到有效数接近你真实的职位总数。