直接答案:在同一批 30 家装备企业里,25 个首页可分析,其中 21 个在静态 HTML 中给出同源联系入口;20 个联系页抓取成功,但只有 9 个含可识别的询盘表单,11 个放了 tel 链接、8 个放了 mailto、5 个有隐私说明,没有 1 个使用 ContactPage / ContactPoint 结构化数据。这是 pilot,不是行业基准。
上一期我们写验收条款时,第 7 条要求“首页到询盘页 ≤2 次点击、静态表单或 mailto/tel、附近有隐私说明”。当时这条只有项目经验,没有样本。这一期用同一名单补上观察:条款不变,但每一条现在都能对上具体计数。
方法:怎么取到这 25 个首页
样本框沿用第 4 期:2024 年常州市首台(套)重大装备名单第 71–100 位共 30 家企业,官网按“企业全称 + 官网/首页”检索识别。30 家中 4 家未识别到官网,1 家 robots.txt 不可达按保守规则跳过,25 家有可用首页原始 HTML。
本期不重新抓首页,直接使用同日已保存的首页 HTML;只对“首页第一个联系/询盘链接”抓 1 次。抓取前沿用同日的 robots 判定(UA LingyiResearchBot/1.0,own_bot=allowed 才抓),站间间隔 6 秒、20 秒超时、不执行 JS、不提交表单。原始 HTML 只存站外目录,不公开。
| 字段 | 判定规则 |
|---|---|
| contact_link | 首页静态 HTML 中存在指向同源联系/询盘页的 <a href>;是/否 |
| 入口优先级 | href 命中 contact / lianxi / lxwm = 3 分;链接文本命中“联系我们/contact” = 2 分;询盘/报价/留言/inquiry = 1 分;取最高分,同分取文档顺序 |
| inquiry_form | 表单同时含 email/tel/textarea 之一,且有 submit 或 text 字段 |
| privacy_link | 页面任一链接的 href 或文本含 privacy / 隐私 |
| jsonld_contact | JSON-LD 出现 ContactPage 或 ContactPoint |
只认首页静态 HTML 里的链接,不猜 URL、不执行 JS;同源按 host 判定,http/https 视为同站。
结果一:入口普遍有,但不是默认有
| 首页情况 | 数量 | 说明 |
|---|---|---|
| 有同源联系入口 | 21 / 25 | 12 个靠 URL 命中,9 个只靠链接文本命中 |
| 无联系入口 | 4 / 25 | 3 个首页静态 HTML 没有任何 <a> 标签,其中 1 个正文仅 11 字符;另 1 个有 99 个 <a>,但没有联系/询盘入口 |
| 入口页抓取失败 | 1 / 21 | 目标页连接不可达;入口存在不等于页面可用 |
“入口靠文本命中”的 9 个值得注意:它们的链接地址里没有 contact/lianxi 这类词,只能从“联系我们”“联系方式”这类可见文字判断。如果只按 URL 规则做自动化检查,这 9 个会被误判为“没有入口”。反过来,如果只用文本规则,又会被页脚里指向别处的“联系我们”骗到。
结果二:联系页的静态可用性
| 静态特征 | 有 | 占 20 个成功抓取页 |
|---|---|---|
任意 <form> | 15 | 75% |
| 可识别询盘表单 | 9 | 45% |
tel: 链接 | 11 | 55% |
mailto: 链接 | 8 | 40% |
| 隐私说明链接 | 5 | 25% |
| ContactPage / ContactPoint 结构化数据 | 0 | 0% |
| 恰好 1 个 H1 | 10 | 50% |
| 没有 H1 | 10 | 50% |
联系页 HTML 中位 58.2 KB,去标签正文中位 5,634 字符(单次抓取,不作性能或内容质量结论)。
三个数字放在一起看:15 个页面有表单,但只有 9 个能识别为询盘表单。差额来自搜索框、订阅框和只有按钮没有输入字段的表单——它们在页面上“像表单”,但对留资没有帮助。11 个有 tel、8 个有 mailto,说明电话和邮箱仍是常见兜底(凡有 mailto 的页面也都有 tel,两者至少一个的共 11 个);而隐私说明只有 5 个,是这一组里最薄的一项。
H1 的情况与产品页 pilot 一致:一半联系页没有 H1。视觉上有大标题,语义上没有。对 AI 抽取和屏幕阅读器都不是好消息,但对访客“看起来正常”,所以很少被当成问题修。
结果三:结构化数据在联系页断档
同一样本的首页有 5 家带 JSON-LD(多为 Organization),到联系页变成 0 家 ContactPage / ContactPoint。这不是说站点完全没有结构化数据,而是说没有把它延伸到最该被机器读取的页面:地址、电话、邮箱、营业时间恰好是 ContactPoint 的字段。
顺带一个反例:本期联系页里唯一带 tel: 的比例(55%)高于 mailto(40%),说明“电话优先”的写法更普遍;如果只补结构化数据而不补可点击的 tel 链接,移动端体验仍然断在“复制号码”这一步。
和第 6 期验收条款第 7 条对照
| 条款要求 | 本期观察 |
|---|---|
| 首页到询盘页 ≤2 次点击 | 21/25 首页 1 次点击可达;4 个首页静态层没有入口 |
| 表单字段与提交按钮存在于静态 HTML | 9/20 有可识别询盘表单;15/20 有任意表单 |
| 同时提供 mailto 或 tel 作为替代 | tel 11/20、mailto 8/20;两者至少一个的覆盖更高,但仍非全部 |
| 表单附近有隐私说明 | 5/20 有隐私链接,是四项里最低 |
| 结构化数据与可见内容一致 | ContactPage/ContactPoint 0/20 |
条款没有改。改的是验收时的默认假设:不能假设“有联系我们页面”就等于“有可用的询盘路径”。验收表里应把“入口存在”“页面 200”“静态表单字段”“替代联系方式”“隐私说明”拆成 5 个独立判定,而不是打一个勾。
五个可执行结论
- 先测静态层。 关掉 JS 打开首页,看“联系我们”还在不在;本期 3 个首页在静态 HTML 里连
<a>都没有。 - 别只按 URL 找入口。 9/21 的入口靠可见文字才能识别,URL 里没有 contact 字样。
- 表单要看字段,不看外观。 15 个页面有表单,能识别为询盘表单的只有 9 个。
- 补一个 tel 或 mailto。 表单失败时,这是访客唯一的退路;本期 20 个页面里仍有 9 个两者都没有。
- 隐私说明放到表单旁。 25% 的覆盖率意味着多数页面在收集信息前没有就近说明用途与保存期限。
局限
- 样本非随机:单一名单、单一城市、按名单顺序取 30 家,25 家可分析;称 pilot,不外推行业总体。
- 只看第一个入口:站点可能在页脚、浮窗、微信二维码里还有别的入口,本期不穷举。
- 静态 HTML 的边界:JS 注入的表单会记成“无表单”;这是测量方法的结果,不是页面缺陷的最终判定。
- 没有提交测试:不填表、不投递、不验证是否能收到,因此不能推断“表单可用”或“询盘转化”。
- 单次抓取:每站 1 次、同日执行;不做重复测量,HTML 大小不作为性能结论。
- 不点名:公开数据只给 sample_id 与字段,不给企业名、域名与页面标题。
数据与复算
匿名数据:equipment-contact-path-pilot-2026.csv(25 行,13 字段,含 sample_id 与采样时间)。仓库内同时保留 docs/research/2026-11-contact-path-pilot.csv。
抓取与判定脚本:scripts/contact_path_probe.py;单元测试 scripts/test_contact_path_probe.py(21 项,无网络)。运行:
python -m unittest scripts.test_contact_path_probe
配套阅读:12 条 AI 可读性验收条款模板(第 7 条即本期对照项)、30 家装备企业 robots 扫描、15 个产品入口页 pilot。
数据来源与口径
- 样本框:2024 年常州市首台(套)重大装备拟认定名单(常州市工信局公示,2024-12)。本期取第 71–100 位共 30 家。
- robots 与抓取合规:RFC 9309《Robots Exclusion Protocol》:rfc-editor.org。
- ContactPage 词汇:schema.org ContactPage / ContactPoint:schema.org。
- 采集时间:2026-11-01 18:41–18:47(Asia/Shanghai),UA
LingyiResearchBot/1.0,每站 1 页、站间 6 秒。