What a web developer earns, by metro
A web developer in San Jose-Sunnyvale-Santa Clara has a median wage of $166,670. In San Luis Obispo-Paso Robles the median is $42,530. That is a 3.92-fold difference for the same job title, which is unusually wide even by the standards of a country this large — and it means a national average for this role is close to meaningless.
The band is wide — outcomes vary a lot
The top tenth of web developers earn $162,290 or more; the bottom tenth earn under $48,100. That is a 3.37× gap within the same occupation, in the same year. A spread this wide means the job title is not what determines pay — specialisation, employer type, seniority or book of business is. Expect the early years to sit near the bottom of the band rather than the middle, and treat the $92,650 median as a waypoint, not a destination.
Why the range is 3.92× wide
The top of the table is spread across several states rather than concentrated in one, which points away from a pure cost-of-living story. Where a role pays 3.92× more in one market than another without a single expensive state dominating, the usual cause is local demand density — a few metros where the industry clusters and employers compete for the same small pool. The web developer concentration table further down shows where that is happening.
Highest paying metros
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| San Jose-Sunnyvale-Santa Clara CA | $166,670 | $80.13 | 2.2 | 1,130 |
| San Francisco-Oakland-Fremont CA | $152,450 | $73.29 | 1.33 | 1,420 |
| Washington-Arlington-Alexandria DC-VA-MD-WV | $134,350 | $64.59 | 2.71 | 3,840 |
| Seattle-Tacoma-Bellevue WA | $130,440 | $62.71 | 3.69 | 3,470 |
| Olympia-Lacey-Tumwater WA | $111,560 | $53.64 | 4.89 | 290 |
| Detroit-Warren-Dearborn MI | $108,550 | $52.19 | 1.01 | 870 |
| Boston-Cambridge-Newton MA-NH | $108,520 | $52.17 | 1.19 | 1,450 |
| Baltimore-Columbia-Towson MD | $107,590 | $51.73 | 1.29 | 790 |
| Los Angeles-Long Beach-Anaheim CA | $107,290 | $51.58 | 0.82 | 2,310 |
| Minneapolis-St. Paul-Bloomington MN-WI | $106,890 | $51.39 | 0.91 | 800 |
| Trenton-Princeton NJ | $106,730 | $51.31 | 0.98 | 110 |
| St. Louis MO-IL | $106,360 | $51.14 | 0.82 | 490 |
| Vallejo CA | $106,190 | $51.05 | 0.6 | 40 |
| New York-Newark-Jersey City NY-NJ | $104,820 | $50.39 | 0.98 | 4,200 |
| Provo-Orem-Lehi UT | $103,970 | $49.99 | 3.8 | 520 |
| Virginia Beach-Chesapeake-Norfolk VA-NC | $103,440 | $49.73 | 1.17 | 400 |
| Winchester VA-WV | $102,380 | $49.22 | 1.02 | 30 |
| Charlotte-Concord-Gastonia NC-SC | $101,980 | $49.03 | 0.83 | 510 |
| Maryland nonmetropolitan area | $101,890 | $48.98 | 0.71 | 40 |
| Charlottesville VA | $101,210 | $48.66 | 2.44 | 130 |
| Southern Michigan nonmetropolitan area | $99,920 | $48.04 | 0.51 | 30 |
| Evansville IN | $99,720 | $47.94 | 1.13 | 70 |
| Sacramento-Roseville-Folsom CA | $98,560 | $47.38 | 0.39 | 190 |
| San Diego-Chula Vista-Carlsbad CA | $98,300 | $47.26 | 0.76 | 520 |
| Providence-Warwick RI-MA | $98,140 | $47.18 | 1.27 | 410 |
Lowest paying metros
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| San Luis Obispo-Paso Robles CA | $42,530 | $20.45 | 1.16 | 60 |
| San Juan-Bayamon-Caguas PR | $47,250 | $22.72 | 0.59 | 190 |
| West South Dakota nonmetropolitan area | $51,100 | $24.57 | 1.63 | 50 |
| East South Dakota nonmetropolitan area | $51,100 | $24.57 | 2.1 | 130 |
| Rapid City SD | $52,600 | $25.29 | 1.81 | 60 |
| Fayetteville-Springdale-Rogers AR | $54,120 | $26.02 | 0.68 | 80 |
| Sioux Falls SD-MN | $54,300 | $26.11 | 1.79 | 140 |
| Daphne-Fairhope-Foley AL | $56,030 | $26.94 | 0.84 | 30 |
| McAllen-Edinburg-Mission TX | $56,070 | $26.96 | 0.39 | 50 |
| Hill Country Region of Texas nonmetropolitan area | $57,050 | $27.43 | 0.74 | 70 |
Morgantown is the cluster
Morgantown has 8.25× the national concentration of web developers — the densest market in the country for this role, with 250 employed locally. Pay there is $79,190, which does not put it near the top of the pay table. Concentration and compensation are different things — a dense market is easier to get hired in and easier to move around within, but the competition that makes it dense also caps what employers need to offer.
Where the role is most concentrated
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| Morgantown WV | $79,190 | $38.07 | 8.25 | 250 |
| Olympia-Lacey-Tumwater WA | $111,560 | $53.64 | 4.89 | 290 |
| Provo-Orem-Lehi UT | $103,970 | $49.99 | 3.8 | 520 |
| Seattle-Tacoma-Bellevue WA | $130,440 | $62.71 | 3.69 | 3,470 |
| Washington-Arlington-Alexandria DC-VA-MD-WV | $134,350 | $64.59 | 2.71 | 3,840 |
| Charlottesville VA | $101,210 | $48.66 | 2.44 | 130 |
| San Jose-Sunnyvale-Santa Clara CA | $166,670 | $80.13 | 2.2 | 1,130 |
| East South Dakota nonmetropolitan area | $51,100 | $24.57 | 2.1 | 130 |
| Rapid City SD | $52,600 | $25.29 | 1.81 | 60 |
| Sioux Falls SD-MN | $54,300 | $26.11 | 1.79 | 140 |
| Lawrence KS | $78,080 | $37.54 | 1.76 | 40 |
| West South Dakota nonmetropolitan area | $51,100 | $24.57 | 1.63 | 50 |
Largest employers by metro
| Metropolitan area | Median | Hourly | LQ | Employed |
|---|---|---|---|---|
| New York-Newark-Jersey City NY-NJ | $104,820 | $50.39 | 0.98 | 4,200 |
| Washington-Arlington-Alexandria DC-VA-MD-WV | $134,350 | $64.59 | 2.71 | 3,840 |
| Seattle-Tacoma-Bellevue WA | $130,440 | $62.71 | 3.69 | 3,470 |
| Chicago-Naperville-Elgin IL-IN | $96,870 | $46.57 | 1.37 | 2,790 |
| Los Angeles-Long Beach-Anaheim CA | $107,290 | $51.58 | 0.82 | 2,310 |
| Dallas-Fort Worth-Arlington TX | $96,740 | $46.51 | 0.91 | 1,660 |
| Boston-Cambridge-Newton MA-NH | $108,520 | $52.17 | 1.19 | 1,450 |
| San Francisco-Oakland-Fremont CA | $152,450 | $73.29 | 1.33 | 1,420 |
| San Jose-Sunnyvale-Santa Clara CA | $166,670 | $80.13 | 2.2 | 1,130 |
| Houston-Pasadena-The Woodlands TX | $89,040 | $42.81 | 0.71 | 1,060 |
| Atlanta-Sandy Springs-Roswell GA | $93,590 | $44.99 | 0.76 | 990 |
| Denver-Aurora-Centennial CO | $92,060 | $44.26 | 1.23 | 900 |
Current openings
About this data
Figures come from the BLS Occupational Employment and Wage Statistics programme, May 2025 release, SOC code 15-1254. OEWS surveys employers, so it reports what is actually paid rather than what job advertisements claim, and it excludes the self-employed. Estimates are published for 169 of 528 metropolitan areas; the remaining 359 had too few survey responses for BLS to publish without risking disclosure, so they are absent here rather than estimated. For a specialised role that is normal. Read the methodology.