Skip to content

Fer Marketing research / Original data / October 16, 2026 to October 17, 2026 (UTC)

We audited 300 law firm websites in 20 US metros: here's what we found

65% had at least one basic, fixable issue. An automated audit of 300 law firm websites listed in OpenStreetMap, with the method, limitations and anonymized data.

65%

had at least one basic issue

Out of 10 simple checks anyone can fix. 25% had three or more.

49%

had no legal structured data

No LegalService, Attorney or LawFirm JSON-LD on the pages we scanned.

36%

had no privacy policy link

Even though most of them collect names and emails through a form.

Key findings

The basics are where most sites slip

27%

did not have exactly one H1

13% had no H1 on the homepage and 14% had more than one.

15%

had no tap-to-call link

And 10% had neither a tel: link nor a contact form we could see.

15%

had no meta description

Search engines then write the snippet for the firm.

13%

showed a copyright year before 2025

Of the 234 sites with a dated copyright notice.

27%

had no contact form in the HTML

On the homepage or contact page. Some load forms with JavaScript, which we did not run.

3.5%

of listed firm websites were not really there

11 of 311 domains that answered were parked, for sale, a placeholder or showing unrelated content. Excluded from N.

The good news: HTTPS, a viewport tag and a page title are nearly universal, and most sites have analytics and a phone link. The gaps are in structure, trust signals and upkeep.

Charts

How many issues does a typical site have?

Each site was scored on 10 basic issues: no meta description, no legal schema, no privacy link, no tap-to-call link, not exactly one H1, a pre-2025 copyright year, mixed content, a broken menu link or image, placeholder text, and no viewport tag.

1040
611
602
243
264
155
86
27
Sites (vertical) by number of basic issues found (horizontal). 35% had none.

Share of sites that have the basics

HTTPS homepage100%
300 / 300
Page title98.7%
296 / 300
Viewport tag (mobile)96%
288 / 300
Meta description85.3%
256 / 300
Tap-to-call link84.7%
254 / 300
Analytics tag (GA or GTM)78.3%
235 / 300
Contact form in HTML73%
219 / 300
Privacy policy link64.3%
193 / 300
Legal structured data50.7%
152 / 300

Homepage H1 headings

  • None 13%
  • Exactly one 73.3%
  • Two or more 13.7%

Website platform

WordPress72%
216 / 300
Not identified18.3%
55 / 300
Wix3.7%
11 / 300
Duda2.3%
7 / 300
Squarespace1.7%
5 / 300
Weebly1%
3 / 300

Server response

Median time to first byte of the homepage: 143 ms. 11% took more than 800 ms. Measured from one server, without a browser; not a Core Web Vitals score.

What to fix

Seven fixes, in order of how often we saw the problem

  1. 49%

    Add LegalService or Attorney structured data

    Describe the firm with JSON-LD: name, address, phone, practice areas, opening hours and attorney pages. Most WordPress SEO plugins can output it; check it in Google's Rich Results Test.

  2. 36%

    Link a privacy policy from every page

    Contact forms collect names, emails and case details. Put a privacy policy link in the footer and next to the form, and make sure it describes what you actually collect.

  3. 27%

    Give each page one clear H1

    Use one H1 that says what the page is about and where (for example, practice area and city). Theme logos and sliders often add extra H1s or none at all.

  4. 15%

    Make the phone number tappable

    Wrap the number in a tel: link in the header and on the contact page. On a phone, a plain-text number is one more step for someone who wants to call now.

  5. 15%

    Write a meta description for the homepage

    One or two sentences with the practice areas, location and a reason to call. Without it, search engines pick a snippet for you.

  6. 10%

    Update the footer year and the facts around it

    An old copyright year is a small signal that nobody is maintaining the site. Use a dynamic year and review team, address and phone at the same time.

  7. 5%

    Fix broken menu links, images and mixed content

    Crawl the menu monthly, replace images that return 404, and change hard-coded http:// image and script URLs to https://.

Percentages are the share of the 300 sites with that problem. Most of these take an hour or less on a WordPress site, which is what 72% of the sample runs.

Methodology

How we ran the study

Final sample (N)
300
Candidates audited
435
US metros
20
Audit dates
October 16, 2026 to October 17, 2026 (UTC)

Sample

We pulled businesses tagged office=lawyer or amenity=lawyer with a website from OpenStreetMap (via the public Overpass API) in 20 predefined US metro areas. We removed directories, social networks, a list of large national firms, government, court, legal-aid and institutional names, and domains listed many times. The 520 remaining candidates were shuffled with a fixed seed and audited in that order until 300 qualified.

Who is in N

Of 435 candidates audited, 327 returned a working homepage and 108 did not (network errors, blocked by robots.txt, 403 or 404). 28 more were excluded after review with saved evidence: parked, for-sale or placeholder domains, unrelated content, OSM mistags (consultancies, insurers, a chiropractor, a process server) and large national firms. N is the first 300 remaining sites in sample order.

What we checked and how

A polite crawler (FerMarketingStudy/1.0) fetched the homepage plus up to 2 internal pages (a contact page and a practice or about page), obeyed robots.txt everywhere, waited at least one second between requests to the same site and never submitted forms. It read the HTML source without running JavaScript, and tested up to 25 menu links and 25 images per site for errors.

Manual spot-check

We re-downloaded 15 random sites with curl and compared every flag by hand. That found three detection bugs, which we fixed before computing these numbers: site-search boxes counted as contact forms (22 sites corrected), a tracking pixel inside noscript counted as mixed content, and copyright notices written without the © symbol. It also surfaced parked and for-sale domains answering like live sites, which we excluded and replaced.

Limitations

  • Not a random sample of all US law firms. OSM coverage, our metro choice and the filters shape who is in it. No national estimates or confidence intervals.
  • Firm size and ownership were not verified. Some mid-size firms remain.
  • No JavaScript was run, so forms, phone links or schema added by scripts are missed. Not detected does not mean absent.
  • Only the homepage and up to two inner pages were read. Problems deeper in a site are not counted.
  • The plain-HTTP to HTTPS redirect check could not run (outbound port 80 was blocked from our audit server), so it is reported as unknown.
  • Websites change. These results describe the sites on the audit dates above.

Every check

All results, with definitions

CheckDetected%Unknown
HTTPS homepage

The final homepage URL uses HTTPS.

300100%0
HTTP redirects to HTTPS

A separate plain-HTTP request redirects to HTTPS. Not measured in this run: outbound port 80 was blocked from the audit host, so every value is unknown.

00%300
TLS error observed

Any TLS failure during the audit, including robots or resources; not proof of a broken certificate.

31%0
Viewport meta tag

Viewport meta-name presence on the homepage; no mobile usability judgment.

28896%0
Page title present

A nonempty homepage title element.

29698.7%0
Meta description present

Nonempty homepage meta-description content.

25685.3%0
Multiple H1 headings

More than a single H1 element on the homepage. This alone does not establish an SEO problem.

4113.7%0
Any JSON-LD schema

Any parsed JSON-LD @type, including nested arrays and @graph. Invalid JSON is excluded.

25183.7%0
Legal schema detected

LegalService, Attorney or LawFirm in parsed JSON-LD across fetched pages. No microdata or inheritance inference.

15250.7%0
LegalService schema

An explicit LegalService JSON-LD type.

12341%0
Attorney schema

An explicit Attorney JSON-LD type.

4615.3%0
LawFirm schema

An explicit LawFirm JSON-LD type.

10.3%0
Organization schema

An explicit Organization JSON-LD type.

15852.7%0
LocalBusiness schema

An explicit LocalBusiness JSON-LD type.

4113.7%0
Contact form detected

A form with at least two fillable fields, one of them for a name, email, phone or message, on the homepage or chosen contact page. Site-search forms do not count. Forms injected by JavaScript or iframes are not seen. Nothing is submitted.

21973%0
Click-to-call link

A tel: anchor on any scanned page; the call is never placed.

25484.7%0
Placeholder text detected

Visible-source matches for lorem ipsum, sample phone patterns, Hello world! or Coming soon. CSS visibility and JavaScript are not evaluated.

41.3%0
PHP error text detected

PHP-style warning, notice, fatal, parse, deprecated or uncaught error text with source-file or line evidence.

00%0
Mixed content detected

A literal HTTP src attribute outside noscript on a scanned HTTPS page. CSS, hrefs and dynamically loaded resources are outside scope.

93%0
Stale copyright detected

The latest plausible year after ©, (c) or the word Copyright is before 2025. No detected year is unknown, not fresh.

3010%66
Privacy policy link

An anchor text or URL contains privacy. Policy content or compliance is not evaluated.

19364.3%0
Chat widget signature

Explicit chat-provider source signatures; no chat is opened.

175.7%0
Reviews widget signature

Explicit review-widget source signatures; testimonials alone do not qualify.

3612%0
Analytics signature

Explicit GA or GTM source signatures. Detection does not establish operation, consent compliance or complete coverage.

23578.3%0
Sites with broken navigation links

Sites with an observed missing, gone or server-error response after HEAD and GET fallback. Network, robots and access restrictions are unverified. Limited to sampled homepage navigation URLs.

103.3%0
Sites with broken images

Sites with an observed missing, gone or server-error image response. Network or blocked requests are unverified. Only sampled img src URLs; no srcset, lazy-load, CSS or payload validation.

51.7%0

Every percentage uses N = 300. Unknown is not counted as missing.

  • New York37
  • Los Angeles28
  • San Francisco Bay25
  • Dallas–Fort Worth17
  • Tampa17
  • Chicago17
  • Portland16
  • Seattle15
  • Miami14
  • Detroit14
  • Washington13
  • Denver13
  • Philadelphia12
  • Atlanta12
  • Houston12
  • Phoenix11
  • Boston10
  • St Louis9
  • Minneapolis–St Paul6
  • Charlotte2

Open data

Download the anonymized data

One row per site in the final sample (300 rows), with the metro label and every measurement. No names, domains, URLs or evidence. Empty cells mean unknown.

Download CSV ↓

License: ODbL. Sampling source: © OpenStreetMap contributors.

Questions about the study

How were the websites chosen?

We started from businesses tagged as lawyers with a website in OpenStreetMap, across 20 US metros. We removed directories, social sites, large national firms, public bodies and duplicate domains, shuffled the list with a fixed seed and audited in that order until we had 300 reachable sites. It is not a random sample of every law firm.

Do you publish which firm has which issue?

No. The study does not name or single out any firm. The downloadable CSV has no names, domains, URLs or evidence, only the metro label and the measurements.

What does "not detected" mean?

Our rules did not find it in the downloaded HTML. We did not run JavaScript, so a form or button that only appears with JavaScript can exist even if we did not see it. Not detecting something does not prove it is missing, and detecting it does not prove it works.

Did anyone check the results by hand?

Yes. We re-downloaded 15 randomly chosen sites with curl and compared every flag by hand. We found and fixed three detection bugs (site-search boxes counted as contact forms, a tracking pixel inside noscript counted as mixed content, and copyright notices without the © symbol) and excluded parked or for-sale domains that answered like live sites.

Can I use the data?

Yes. The anonymized measurements are published under ODbL. Credit Fer Marketing, and OpenStreetMap contributors as the sampling source.

Send us a law firm site and we'll check it

Write to [email protected] or message us on WhatsApp. You get a reply from Fernando, not a sales team.