Direct answer: In the same batch of 30 equipment makers, 25 homepages could be analysed and 21 exposed a same-origin contact entry in their static HTML. Twenty contact pages loaded, but only 9 contained a recognisable inquiry form, 11 had a tel link, 8 had mailto, 5 had a privacy notice and none used ContactPage or ContactPoint structured data. This is a pilot, not an industry benchmark.
When we wrote the acceptance clauses, item 7 asked for "at most two clicks to the inquiry page, a static form or mailto/tel, and a privacy notice nearby". At that point the item rested on project experience, not samples. This round adds the observation on the same list: the clause is unchanged, but each part now maps to a count.
Method: how the 25 homepages were obtained
The frame follows the earlier scan: positions 71–100 of the 2024 Changzhou first-set major equipment list, 30 companies, with official sites identified by searching "company name + official site/homepage". Four companies had no identifiable site and one had an unreachable robots.txt, which we skip conservatively, leaving 25 homepages with usable saved HTML.
This round did not refetch homepages; it reused the HTML saved the same day and fetched only the first contact/inquiry link per site. Robots verdicts from the same day were reused (UA LingyiResearchBot/1.0, fetch only when own_bot=allowed). Requests were 6 seconds apart with a 20-second timeout, no JavaScript and no form submission. Raw HTML stays outside the repository and is not published.
| Field | Rule |
|---|---|
| contact_link | A same-origin contact/inquiry <a href> exists in the homepage's static HTML |
| Link priority | href matches contact / lianxi / lxwm = 3; link text matches "contact us" = 2; inquiry/quote/message = 1; highest score, ties by document order |
| inquiry_form | A form with email, tel or textarea plus a submit or text field |
| privacy_link | Any link whose href or text contains privacy (or the Chinese word for privacy) |
| jsonld_contact | ContactPage or ContactPoint appears in JSON-LD |
Only links present in the static homepage HTML count; URLs are not guessed and JavaScript is not executed. Same-origin means the same host, treating http and https as one site.
Result 1: entries are common, but not default
| Homepage | Count | Note |
|---|---|---|
| Same-origin contact entry | 21 / 25 | 12 matched by URL, 9 only by visible link text |
| No contact entry | 4 / 25 | 3 homepages had no <a> tag at all, one of them with 11 characters of text; the other had 99 links but no contact/inquiry target |
| Entry page failed | 1 / 21 | The target was unreachable; an entry is not a working page |
The 9 text-only matches matter: their URLs contain no contact-like word, so only the visible label identifies them. A URL-only automated check would call those 9 "no entry", while a text-only check would be fooled by footer links that point somewhere else.
Result 2: static usability of contact pages
| Static feature | Present | Share of 20 loaded pages |
|---|---|---|
Any <form> | 15 | 75% |
| Recognisable inquiry form | 9 | 45% |
tel: link | 11 | 55% |
mailto: link | 8 | 40% |
| Privacy notice link | 5 | 25% |
| ContactPage / ContactPoint markup | 0 | 0% |
| Exactly one H1 | 10 | 50% |
| No H1 | 10 | 50% |
Median contact-page HTML was 58.2 KB and median visible text 5,634 characters (one fetch per site; not a performance or content-quality conclusion).
Read the first three rows together: 15 pages have a form, but only 9 qualify as inquiry forms. The gap is search boxes, newsletter sign-ups and button-only forms that look like forms but do not collect a lead. 11 pages offer tel and 8 offer mailto (every page with mailto also had tel, so 11 have at least one), while only 5 carry a privacy notice, the weakest item in the group.
H1 follows the product-page pilot: half the contact pages have no H1 at all. Visually there is a headline; semantically there is none. Visitors rarely notice, screen readers and extraction do.
Result 3: structured data stops at the homepage
Five homepages in this sample carry JSON-LD, mostly Organization. On the contact pages it drops to zero ContactPage or ContactPoint. The markup is not absent from the sites; it simply does not reach the page where address, phone, email and opening hours — exactly ContactPoint's fields — matter most.
One counterpoint: tel links (55%) outnumber mailto (40%), so "phone first" is the more common pattern. Adding markup without a tappable tel link still leaves mobile users copying a number by hand.
Against acceptance clause 7
| Clause requirement | Observation |
|---|---|
| At most two clicks to the inquiry page | 21/25 homepages expose it in one click; 4 have no static entry |
| Form fields and submit button in static HTML | 9/20 have a recognisable inquiry form; 15/20 have any form |
| Provide mailto or tel as fallback | tel 11/20, mailto 8/20; 9/20 have neither |
| Privacy notice near the form | 5/20 have a privacy link, the lowest of the four |
| Structured data consistent with visible content | ContactPage/ContactPoint 0/20 |
The clause did not change. What changed is the default assumption at acceptance: do not treat "there is a contact page" as "there is a usable inquiry path". Split it into five verdicts — entry exists, page returns 200, static form fields, fallback contact, privacy notice — instead of one tick.
Five actionable conclusions
- Test the static layer first. Open the homepage with JavaScript off and look for the contact link; 3 homepages here had no
<a>tag at all in static HTML. - Do not look only at URLs. 9 of 21 entries were identifiable only by visible text.
- Judge forms by fields, not appearance. 15 pages had a form; only 9 collected a lead.
- Add a tel or mailto. When a form fails this is the only fallback; 9 of 20 pages had neither.
- Put the privacy notice beside the form. At 25% coverage, most pages collect data without a nearby explanation of purpose or retention.
Limits
- Non-random sample: one list, one city, list-order selection, 25 analysable sites; a pilot, not the industry.
- First entry only: sites may offer other entries in footers, floating widgets or QR codes; not enumerated here.
- Static HTML boundary: JavaScript-injected forms are recorded as absent. That is a property of the method, not a final defect verdict.
- No submission test: no form was filled, sent or checked, so form delivery and inquiry conversion are unknown.
- Single fetch: one request per site on one day; no repeat measurement, and HTML size is not a performance claim.
- No naming: the public data carries sample_id and fields only, never company names, domains or page titles.
Data and recalculation
Anonymised data: equipment-contact-path-pilot-2026.csv (25 rows, 13 fields, including sample_id and capture time). The repository also keeps docs/research/2026-11-contact-path-pilot.csv.
Probe and rules: scripts/contact_path_probe.py; tests: scripts/test_contact_path_probe.py (21 tests, no network). Run:
python -m unittest scripts.test_contact_path_probe
Related: the 12 acceptance clauses (item 7 is the one compared here), the 30-site robots scan and the 15 product-page pilot.
Sources and definitions
- Frame: 2024 Changzhou first-set major equipment list (Changzhou Industry and IT Bureau public notice, December 2024), positions 71–100.
- Crawl compliance: RFC 9309, Robots Exclusion Protocol: rfc-editor.org.
- Vocabulary: schema.org ContactPage / ContactPoint: schema.org.
- Capture window: 2026-11-01 18:41–18:47 Asia/Shanghai, UA
LingyiResearchBot/1.0, one page per site, 6 seconds apart.