Check my site Email us

51 US metros, 179 sites

How fast are the roofers Google shows first?

We took the top Google Maps results for roofing searches in each metro and measured each company's homepage on a phone: load time, speed score, tap-to-call, Maps schema and forms. Businesses are never named.

National results

7.1 s

Median mobile load (LCP), n=179

61/100

Median mobile speed score, n=179

90%

Load slower than 2.5 s on mobile (161 of 179)

National results, 51 US metros, 179 sites
Businesses in the sample (unique)213
No website on the Maps listing25 of 213
Mobile LCP over 2.5 s161 of 179 (90%)
Mobile LCP over 4.0 s139 of 179 (78%)
Speed score under 5058 of 179
Speed score 90 or higher22 of 179
No tap-to-call link on the homepage17 of 159
No LocalBusiness-type schema67 of 159
No RoofingContractor schema98 of 159
No form in the homepage HTML73 of 159

Generated Oct 15, 2026. Lab data from the PageSpeed Insights API (mobile); real visitors on real phones will see different numbers.

By metro

Each metro has only 2 to 5 measured sites, so read these as a snapshot of the businesses Google showed that day, not a city average. Sorted slowest first.

Median mobile results by metro, with the number of measured sites
MetroSites measured (n)Median LCPMedian scoreLCP over 2.5 s
Providence, RI229.7 s552 of 2
Jacksonville, FL318.3 s533 of 3
Phoenix, AZ417.2 s53.54 of 4
Fresno, CA516.2 s534 of 5
Indianapolis, IN415.4 s374 of 4
Memphis, TN215.1 s592 of 2
Hartford, CT315.1 s483 of 3
Charlotte, NC314.6 s513 of 3
Kansas City, MO414.5 s404 of 4
San Diego, CA213.9 s402 of 2
Oklahoma City, OK413.3 s38.54 of 4
Richmond, VA211.9 s65.52 of 2
Columbus, OH411.3 s564 of 4
New York, NY311.1 s583 of 3
Denver, CO411.0 s63.54 of 4
Atlanta, GA410.9 s39.54 of 4
Grand Rapids, MI410.2 s63.53 of 4
Riverside, CA49.8 s623 of 4
San Jose, CA39.5 s672 of 3
Chicago, IL49.3 s554 of 4
Miami, FL39.3 s673 of 3
Austin, TX49.0 s69.53 of 4
Birmingham, AL58.7 s555 of 5
Philadelphia, PA38.5 s673 of 3
Orlando, FL58.4 s495 of 5
Louisville, KY37.4 s503 of 3
Dallas, TX47.0 s66.54 of 4
Las Vegas, NV46.8 s623 of 4
Sacramento, CA46.0 s604 of 4
Pittsburgh, PA46.0 s65.53 of 4
Minneapolis, MN35.9 s653 of 3
Nashville, TN35.9 s563 of 3
Cleveland, OH35.8 s702 of 3
Salt Lake City, UT35.5 s643 of 3
Baltimore, MD35.3 s383 of 3
St. Louis, MO25.3 s742 of 2
Raleigh, NC55.3 s765 of 5
San Antonio, TX55.2 s705 of 5
Portland, OR45.1 s47.54 of 4
Virginia Beach, VA35.1 s773 of 3
Washington, DC34.8 s473 of 3
San Francisco, CA44.6 s80.53 of 4
Boston, MA44.3 s544 of 4
Los Angeles, CA34.2 s712 of 3
Cincinnati, OH34.0 s872 of 3
Houston, TX43.6 s69.53 of 4
Detroit, MI33.6 s662 of 3
Tampa, FL43.2 s76.52 of 4
Tacoma, WA33.2 s852 of 3
Seattle, WA52.9 s884 of 5
Milwaukee, WI22.4 s94.51 of 2

Method

  1. Who. Top 3 organic Google Maps results per metro for 'roofing contractor' and 'roofer' (DataForSEO google/maps/live/advanced, mobile, en, city-level location). Deduplicated by Google CID.
  2. Where. Top 50 US MSAs by Census Bureau July 1, 2025 estimate, searched at the principal city, plus Tacoma WA.
  3. Speed. PageSpeed Insights API v5 (mobile), median of 3; the run with the median score is kept. Lab data; field data is CrUX p75 from the same response. The test emulates a mid-range phone on slow 4G with a 4x CPU slowdown.
  4. Page checks. One plain HTTP GET of the listing URL, no JavaScript. Forms injected by JavaScript or iframes are not counted.
  5. Thresholds. LCP good <= 2.5 s, poor > 4 s; CLS good <= 0.1 (web.dev Core Web Vitals).
  6. Coverage gaps. 25 of 213 listings had no website. 9 of 188 websites failed to load in PageSpeed Insights and 29 refused the plain page fetch (most look like bot blocking). They are recorded as gaps, not guessed.
  7. Low-review listings. 38 of the top-3 listings had fewer than 10 Google reviews (or no count). They are kept in the results because they are what Google showed; excluding them would move the numbers, so we don't.
  8. Privacy. Businesses are never named. The speed race on our homepage uses the site at the overall median speed score (61/100), recorded separately on a throttled phone connection and blurred.