Does where you live affect your odds of getting a job in SEO? Do large metropolises only seemingly have more SEO career opportunity until you adjust for population size?

Supply and demand – that’s ultimately what I’m after with this exploration. And while there has been research posted on the subject, it didn’t take into account the number of individuals vying for those jobs.

And why settle on “SEO” jobs, anyway? After all, there’s been legitimate acknowledgement of SEO becoming less of a job title and more of a key skill to have in a Swiss Army type of role. Well, I’m glad you asked.

This research is about the present, not where we’re headed. Take a look at the number of United States job title postings from Indeed.com pulled in January 2019.

  • title:(“inbound marketing”) OR title:(“inbound marketer”)- 64 (+60% from January 2017)
  • title:(“content marketing”) OR title:(“content marketer”) – 532 (+14% from January 2017)
  • title:seo – 888 (+8% from July 2016)

In closely related fields, “SEO” is still the heavy favorite when it comes to job titles.

OK. Let’s skip to the good stuff. I’ve added anchor links below so you can jump around as you wish, but I do have one last thing to help set the stage.

I’m not a statistician or an economist. I don’t work for the U.S. Bureau of Labor Statistics. I claim no expertise in this area. This is nothing more than an attempt to answer those questions at the top of this page. Did I answer them fully? Probably not. Did I get closer to an answer? I think so. If you have knowledge in this area and want to offer any alternative methods or formulas, I’d LOVE to hear from you in the comments below.

Menu
Best cities to get an SEO job visualized
Methods (warning: math)
Complete results (75 to 1)
Complete results (skip to the top 10)
Assumptions & caveats
Conclusion

Best Cities to Get an SEO Job

best cities to get an SEO job infographic - January 2019

Methods

The cliff-note methodology is below. For a more detailed overview, click the “Methods – Full” tab.

Methods - TL;DRMethods- Full

Data

Combined Statistical Area population – The 2017 Census.gov population estimates for the 75 largest CSAs or MSAs (Metropolitan Statistical Area) in the United States
SEO Title Job Openings – # of full-time job openings in Indeed.com within 50 miles from the nearest location with “SEO” in the title; data was pulled each month from July 2018 through December 2018.
SEO Skill Job Openings – # of full-time job openings in Indeed.com within 50 miles from the nearest location with “SEO” anywhere in the job posting (title or description); data was pulled each month month from July 2018 through December 2018.
SEO Workforce – # of LinkedIn profiles with “SEO” in their current job title listed within the searched metro; data was pulled each month month from July 2018 through December 2018.

Formula

I used a method called feature scaling to normalize the population and job data. This allowed me to compare these numbers even though they are on wildly different scales. From there, I created a formula to make something I call the SEO Job Pool Index.

  • SEO Job Pool Index – If LinkedIn jobs are ‘A’, Indeed SEO Title Job Openings are ‘B’ and SEO Skill Job Openings are ‘C’, a feature scale normalization was completed from the results of this formula: A/(B/C)

The SEO Job Pool Index was created because while I thought the total CSA population was relevant, it didn’t give me a good idea of who these people were. Some places are going to have a greater share of people qualified for and/or interested in the SEO field. That’s where this formula comes in.

In simpler terms, think of the SEO Job Pool Index as a major indicator of the number of people looking for an SEO job and the Population Index as a minor indicator.

If Population Index is ‘A’, Indeed Title Index is ‘B’, LinkedIn Job Index is ‘C’ SEO Job Pool Index as ‘D’, and with X being the calculation by CSA, here’s the formula I used. Everything in red represents the SEO job Supply and green the SEO job Demand.

X=((B+(C*0.1))/(D+(A*0.25)))*100

Data

Data point: Combined Statistical Area (CSA) July 1, 2017 population estimate
Definition: A CSA is essentially a labor market. Some metros are adjacent and closely overlap when it comes to potential employees. In those instances 1, a CSA may combine some or all of those metro regions for a more complete labor and economic metropolitan area. Nine metros included in this study are not within a CSA 2. Metropolitan Statistical Area (MSA) population estimates were used in those cases. The top 75 CSAs/MSAs were used in this research.
What it represents: The total labor market population
Source: Census.gov 3

Data point: SEO Title Job Openings – monthly data pulls from July 2018 through December 2018
Definition: A 50-mile radius around a zip code from the most populous city in the CSA was used for these searches. “SEO” was searched “With these words in the title”. Only full-time jobs were counted.
What it represents: The total number of open SEO positions in a CSA or MSA
Source: Indeed

Data point: SEO Skill Job Openings – monthly data pulls from July 2018 through December 2018
Definition: A 50-mile radius around a zip code from the most populous city in the CSA was used for these searches. “SEO” was searched “With all of these words”, which could include the job title or description. Only full-time jobs were counted.
What it represents: The total number of open positions related to SEO in a CSA or MSA
Source: Indeed

Data point: SEO Workforce – monthly data pulls from July 2018 through December 2018
Definition: Within the given metro, “SEO” was searched in the “Title” field. 4 Only current positions were counted.
What it represents: The total number of employed people in a CSA with “SEO” in their job title
Source: LinkedIn

Formula

Before I get into the actual formula, I’ll walk through how I normalized the data. Have you ever tried to weight and compare criteria using datasets with wildly different scales? As you may have guessed, my first stab at this was trying to do just that. The results were ugly and I had no idea why, until I read more about normalization.

Here’s what Wikipedia has to say about normalization:

“In another usage in statistics, normalization refers to the creation of shifted and scaled versions of statistics, where the intention is that these normalized values allow the comparison of corresponding normalized values for different datasets in a way that eliminates the effects of certain gross influences…” Wikipedia

I specifically used a method called feature scaling to convert all datasets to a 0-100 scale. Otherwise, I wouldn’t be able to evaluate if 8 SEO job openings for a population of 9.5 million is high, low or normal.

To normalize the data through feature scaling, I used the formula below where Xmin is the lowest number of all 75 metros and Xmax is the highest.
X*100=(X-Xmin)/(Xmax-Xmin)

Here are normalized metrics I used:

  • Population Index – CSA population estimates
  • Indeed Title Index – SEO Title Job Openings
  • LinkedIn Job Index – SEO Workforce
  • SEO Job Pool Index – If LinkedIn jobs are ‘A’, Indeed SEO Title Job Openings are ‘B’ and SEO Skill Job Openings are ‘C’, this normalization was completed from the results of this formula: A/(B/C)

I should probably explain the SEO Job Pool Index metric before going on any further. 5. The SEO Job Pool Index was created because while I thought the total CSA population was relevant (if all else is equal, a smaller population means less competition to get an SEO job), it didn’t give me a good idea of who these people were. Some places are going to have a greater share of people qualified for and/or interested in the SEO field.

That’s where this formula comes in. I first divided the two Indeed metrics to get the relationship between the demand for SEO as a job and SEO as a skill. I then applied that relationship to the number of people currently employed with an SEO title as a proxy to estimate the total number of people in the SEO job applicant pool. The only caveat is for cities where the SEO Title Job Openings were at zero or close to it – that either breaks the formula or makes an assertion on an extremely small sample size. In those cases (anything less than five), I just used the 75-city average ‘title’ to ‘skill’ percentage.

Are you confused yet?

In simpler terms, think of the SEO Job Pool Index as a major indicator of the number of people looking for an SEO job and the Population Index as a minor indicator.

If Population Index is ‘A’, Indeed Title Index is ‘B’, LinkedIn Job Index is ‘C’ SEO Job Pool Index as ‘D’, and with X being the calculation by CSA, here’s the formula I used. Everything in red represents the SEO job Supply and green the SEO job Demand.

X=((B+(C*0.1))/(D+(A*0.25)))*100

A couple more notes on how the calculation works: Everything above represents data pulled from a single day. Obviously these metrics are not static and change frequently. Because calculations for lower population areas fluctuated mightily from month-to-month 6, I made two adjustments so the rank was more representative of a typical day.

  • I averaged the scores on May 4th, June 3rd and July 4th.
  • I applied a volatility penalization to those cities where the minimum score of those three months was less than 25% of that city’s highest score. The final score was multiplied by 0.75 in those instances.

If you’re still tracking with me, you may have some questions on the formula itself. I’ll try to address them here. And just to reiterate, please leave a comment on this post if you have any other questions or critiques.

Why was everything multiplied by 100?
Aesthetics. 185.58 is a more appealing score than 1.8558.

LinkedIn Job Index is counting people who currently fill SEO positions. Why am I using that to help measure unfilled/open SEO positions?
These positions are filled today but we all know turnover exists. And while most will leave one SEO job for another, resulting in an overall wash, some will either change fields or stay in SEO but move out of the CSA. Thus, if all else is equal, a region with more filled SEO positions will have a larger supply of SEO job openings, making it comparably easier to find SEO employment.

How were the 0.1 and 0.25 weights developed?
This wasn’t much more scientific than a blindfold and a dartboard, to be honest. Based on my previous explanations, I already assumed the Population Index should be less influential than the SEO Job Pool Index and the LinkedIn Job Index should be less influential than the Indeed Title Index, but how much so? Honestly, I fiddled with the numbers until the list ‘looked right’, which means unfortunately my own biases played a factor.

Great job. We made it through that section together. Now it’s time for the big reveal. Here are the top 75 metros to get an SEO job in descending order.

The Complete Results – 75 to 1

 

source
75. McAllen, TX – no movement

CSA: McAllen-Edinburg, TX
CSA Population: 925,115
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 3
Avg SEO Worforce: 9

source
74. Charleston, WV -6 spots

CSA: Charleston-Huntington-Ashland, WV-OH-KY
CSA Population: 679,734
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 3
Avg SEO Worforce: 9

source
73. El Paso, TX -38 spots

CSA: El Paso-Las Cruces, TX-NM
CSA Population: 1,060,397
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 4
Avg SEO Worforce: 23

source
72. Little Rock, AR +1 spot

CSA: Little Rock-North Little Rock, AR
CSA Population: 908,323
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 5
Avg SEO Worforce: 23

source
71. Huntsville, AL -4 spots

CSA: Huntsville-Decatur-Albertville, AL
CSA Population: 774,480
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 4
Avg SEO Worforce: 19

source
70. Tucson, AZ -20 spots

CSA: Tucson-Nogales, AZ
CSA Population: 1,068,981
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 11
Avg SEO Worforce: 64

source
69. Honolulu, HI +2 spots

MSA: Urban Honolulu, HI
MSA Population: 988,650
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 13
Avg SEO Worforce: 66

source
68. Sacramento, CA -7 spots

CSA: Sacramento-Roseville, CA
CSA Population: 2,598,377
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 33
Avg SEO Worforce: 150

source
67. Buffalo, NY -7 spots

CSA: Buffalo-Cheektowaga, NY
CSA Population: 1,214,204
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 19
Avg SEO Worforce: 114

source
66. Oklahoma City, OK -4 spots

CSA: Oklahoma City-Shawnee, OK
CSA Population: 1,455,963
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 13
Avg SEO Worforce: 66

source
65. Rochester, NY -21 spots

CSA: Rochester-Batavia-Seneca Falls, NY
CSA Population: 1,170,402
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 15
Avg SEO Worforce: 55

source
64. Albuquerque, NM +8 spots

CSA: Albuquerque-Santa Fe-Las Vegas, NM
CSA Population: 1,171,974
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 7
Avg SEO Worforce: 36

source
63. Spokane, WA -25 spots

CSA: Spokane-Spokane Valley-Coeur d’Alene, WA-ID
CSA Population: 721,873
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 11
Avg SEO Worforce: 63

source
62. Houston, TX -30 spots

CSA: Houston-The Woodlands, TX
CSA Population: 7,093,190
Avg SEO Title Job Openings: 6
Avg SEO Skill Job Openings: 126
Avg SEO Worforce: 432

source
61. Columbus, OH -24 spots

CSA: Columbus-Marion-Zanesville, OH
CSA Population: 2,481,585
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 45
Avg SEO Worforce: 134

source
60. South Bend, IN +3 spots

CSA: South Bend-Elkhart-Mishawaka, IN-MI
CSA Population: 727,604
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 14
Avg SEO Worforce: 22

source
59. Albany, NY -13 spots

CSA: Albany-Schenectady, NY
CSA Population: 1,176,079
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 24
Avg SEO Worforce: 155

source
58. Lexington, KY +11 spots

CSA: Lexington-Fayette–Richmond–Frankfort, KY
CSA Population: 740,364
Avg SEO Title Job Openings: 0
Avg SEO Skill Job Openings: 10
Avg SEO Worforce: 36

source
57. Fresno, CA -26 spots

CSA: Fresno-Madera, CA
CSA Population: 1,146,145
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 7
Avg SEO Worforce: 24

source
56. Omaha, NE -7 spots

CSA: Omaha-Council Bluffs-Fremont, NE-IA
CSA Population: 970,023
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 33
Avg SEO Worforce: 63

source
55. Portland, OR -34 spots

CSA: Portland-Vancouver-Salem, OR-WA
CSA Population: 3,201,058
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 99
Avg SEO Worforce: 295

source
54. Detroit, MI -29 spots

CSA: Detroit-Warren-Ann Arbor, MI
CSA Population: 5,336,286
Avg SEO Title Job Openings: 6
Avg SEO Skill Job Openings: 88
Avg SEO Worforce: 280

source
53. Louisville, KY -17 spots

CSA: Louisville/Jefferson County–Elizabethtown–Madison, KY-IN
CSA Population: 1,522,112
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 24
Avg SEO Worforce: 48

source
52. San Antonio, TX -13 spots

MSA: San Antonio-New Braunfels, TX
MSA Population: 2,473,974
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 34
Avg SEO Worforce: 80

source
51. Tampa, FL -22 spots

MSA: Tampa-St. Petersburg-Clearwater, FL
MSA Population: 3,091,399
Avg SEO Title Job Openings: 8
Avg SEO Skill Job Openings: 124
Avg SEO Worforce: 325

source
50. Norfolk, VA -10 spots

CSA: Virginia Beach-Norfolk, VA-NC
CSA Population: 1,829,195
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 41
Avg SEO Worforce: 72

source
49. New Orleans, LA -39 spots

CSA: New Orleans-Metairie-Hammond, LA-MS
CSA Population: 1,510,162
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 17
Avg SEO Worforce: 51

source
48. Las Vegas, NV -28 spots

CSA: Las Vegas-Henderson, NV-AZ
CSA Population: 2,455,481
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 52
Avg SEO Worforce: 245

source
47. Boise City, ID +9 spots

CSA: Boise City-Mountain Home-Ontario, ID-OR
CSA Population: 790,363
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 20
Avg SEO Worforce: 87

source
46. Chattanooga, TN +20 spots

CSA: Chattanooga-Cleveland-Dalton, TN-GA-AL
CSA Population: 960,782
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 13
Avg SEO Worforce: 25

source
45. Greensboro, NC -2 spots

CSA: Greensboro–Winston-Salem–High Point, NC
CSA Population: 1,663,532
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 51
Avg SEO Worforce: 64

source
44. Pittsburgh, PA +9 spots

CSA: Pittsburgh-New Castle-Weirton, PA-OH-WV
CSA Population: 2,623,639
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 74
Avg SEO Worforce: 161

source
43. Birmingham, AL +16 spots

CSA: Birmingham-Hoover-Talladega, AL
CSA Population: 1,364,062
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 18
Avg SEO Worforce: 57

source
42. Minneapolis, MN -23 spots

CSA: Minneapolis-St. Paul, MN-WI
CSA Population: 3,946,533
Avg SEO Title Job Openings: 10
Avg SEO Skill Job Openings: 157
Avg SEO Worforce: 275

source
41. Phoenix, AZ -40 spots

MSA: Phoenix-Mesa-Scottsdale, AZ (core based statistical area)
MSA Population: 4,737,270
Avg SEO Title Job Openings: 15
Avg SEO Skill Job Openings: 174
Avg SEO Worforce: 275

source
40. Knoxville, TN +15 spots

CSA: Knoxville-Morristown-Sevierville, TN
CSA Population: 1,128,379
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 17
Avg SEO Worforce: 50

source
39. Kansas City, MO -34 spots

CSA: Kansas City-Overland Park-Kansas City, MO-KS
CSA Population: 2,472,602
Avg SEO Title Job Openings: 6
Avg SEO Skill Job Openings: 79
Avg SEO Worforce: 138

source
38. Baton Rouge, LA +20 spots

MSA: Baton Rouge, LA
MSA Population: 834,158
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 11
Avg SEO Worforce: 33

source
37. Columbia, SC +37 spots

CSA: Columbia-Orangeburg-Newberry, SC
CSA Population: 950,997
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 12
Avg SEO Worforce: 18

source
36. Madison, WI +34 spots

CSA: Madison-Janesville-Beloit, WI
CSA Population: 880,520
Avg SEO Title Job Openings: 1
Avg SEO Skill Job Openings: 34
Avg SEO Worforce: 33

source
35. Memphis, TN +29 spots

CSA: Memphis-Forrest City, TN-MS-AR
CSA Population: 1,374,190
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 26
Avg SEO Worforce: 59

source
34. Dallas, TX -23 spots

CSA: Dallas-Fort Worth, TX-OK
CSA Population: 7,846,293
Avg SEO Title Job Openings: 21
Avg SEO Skill Job Openings: 265
Avg SEO Worforce: 593

source
33. New York, NY -6 spots

CSA: New York-Newark, NY-NJ-CT-PA
CSA Population: 23,876,155
Avg SEO Title Job Openings: 105
Avg SEO Skill Job Openings: 1,290
Avg SEO Worforce: 3,334

source
32. St. Louis, MO +15 spots

CSA: St. Louis-St. Charles-Farmington, MO-IL
CSA Population: 2,911,945
Avg SEO Title Job Openings: 6
Avg SEO Skill Job Openings: 94
Avg SEO Worforce: 139

source
31. Greenville, SC -7 spots

CSA: Greenville-Spartanburg-Anderson, SC
CSA Population: 1,459,766
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 19
Avg SEO Worforce: 40

source
30. Los Angeles, CA -2 spots

CSA: Los Angeles-Long Beach, CA
CSA Population: 18,788,800
Avg SEO Title Job Openings: 65
Avg SEO Skill Job Openings: 753
Avg SEO Worforce: 1,775

source
29. San Diego, CA -22 spots

MSA: San Diego-Carlsbad, CA
MSA Population: 3,337,685
Avg SEO Title Job Openings: 21
Avg SEO Skill Job Openings: 200
Avg SEO Worforce: 844

source
28. Boston, MA -26 spots

CSA: Boston-Worcester-Providence, MA-RI-NH-CT
CSA Population: 8,233,270
Avg SEO Title Job Openings: 32
Avg SEO Skill Job Openings: 540
Avg SEO Worforce: 569

source
27. Nashville, TN -4 spots

CSA: Nashville-Davidson–Murfreesboro, TN
CSA Population: 2,027,489
Avg SEO Title Job Openings: 6
Avg SEO Skill Job Openings: 89
Avg SEO Worforce: 122

source
26. Tulsa, OK +39 spots

CSA: Tulsa-Muskogee-Bartlesville, OK
CSA Population: 1,160,612
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 18
Avg SEO Worforce: 36

source
25. Washington DC +1 spot

CSA: Washington-Baltimore-Arlington, DC-MD-VA-WV-PA
CSA Population: 9,764,315
Avg SEO Title Job Openings: 30
Avg SEO Skill Job Openings: 520
Avg SEO Worforce: 435

source
24. Jacksonville, FL +6 spots

CSA: Jacksonville-St. Marys-Palatka, FL-GA
CSA Population: 1,631,488
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 35
Avg SEO Worforce: 167

source
23. Miami, FL -10 spots

CSA: Miami-Fort Lauderdale-Port St. Lucie, FL
CSA Population: 6,828,241
Avg SEO Title Job Openings: 23
Avg SEO Skill Job Openings: 227
Avg SEO Worforce: 621

source
22. Atlanta, GA -18 spots

CSA: Atlanta-Athens-Clarke-Sandy Springs
CSA Population: 6,555,956
Avg SEO Title Job Openings: 23
Avg SEO Skill Job Openings: 240
Avg SEO Worforce: 562

source
21. Orlando, FL +13 spots

CSA: Orlando-Deltona-Daytona Beach, FL
CSA Population: 3,284,198
Avg SEO Title Job Openings: 10
Avg SEO Skill Job Openings: 92
Avg SEO Worforce: 269

source
20. Cincinnati, OH +22 spots

CSA: Cincinnati-Wilmington-Maysville, OH-KY-IN
CSA Population: 2,238,265
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 74
Avg SEO Worforce: 87

source
19. Indianapolis, IN +29 spots

CSA: Indianapolis-Carmel-Muncie, IN
CSA Population: 2,411,086
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 47
Avg SEO Worforce: 77

source
18. Denver, CO -1 spot

CSA: Denver-Aurora, CO
CSA Population: 3,515,374
Avg SEO Title Job Openings: 20
Avg SEO Skill Job Openings: 229
Avg SEO Worforce: 462

source
17. Grand Rapids, MI +34 spots

CSA: Grand Rapids-Wyoming-Muskegon, MI
CSA Population: 1,456,935
Avg SEO Title Job Openings: 3
Avg SEO Skill Job Openings: 39
Avg SEO Worforce: 68

source
16. San Francisco, CA +2 spots

CSA: San Jose-San Francisco-Oakland, CA
CSA Population: 8,837,789
Avg SEO Title Job Openings: 69
Avg SEO Skill Job Openings: 900
Avg SEO Worforce: 1,341

source
15. Seattle, WA -1 spot

CSA: Seattle-Tacoma, WA
CSA Population: 4,764,736
Avg SEO Title Job Openings: 25
Avg SEO Skill Job Openings: 281
Avg SEO Worforce: 478

source
14. Hartford, CT +38 spots

CSA: Hartford-West Hartford, CT
CSA Population: 1,479,292
Avg SEO Title Job Openings: 4
Avg SEO Skill Job Openings: 140
Avg SEO Worforce: 47

source
13. Philadelphia, PA -7 spots

CSA: Philadelphia-Reading-Camden, PA-NJ-DE-MD
CSA Population: 7,206,807
Avg SEO Title Job Openings: 31
Avg SEO Skill Job Openings: 316
Avg SEO Worforce: 561

source
12. Cleveland, OH -3 spots

CSA: Cleveland-Akron-Canton, OH
CSA Population: 3,485,691
Avg SEO Title Job Openings: 11
Avg SEO Skill Job Openings: 95
Avg SEO Worforce: 185

source
11. Charlotte, NC +11 spots

CSA: Charlotte-Concord, NC-SC
CSA Population: 2,684,121
Avg SEO Title Job Openings: 13
Avg SEO Skill Job Openings: 161
Avg SEO Worforce: 197

source
10. Milwaukee, WI +47 spots

CSA: Milwaukee-Racine-Waukesha, WI
CSA Population: 2,048,007
Avg SEO Title Job Openings: 7
Avg SEO Skill Job Openings: 76
Avg SEO Worforce: 116

source
9. Richmond, VA +24 spots

MSA: Richmond, VA
MSA Population: 1,294,204
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 39
Avg SEO Worforce: 67

source
8. Ft. Myers, FL +33 spots

CSA: Cape Coral-Fort Myers-Naples, FL
CSA Population: 1,112,104
Avg SEO Title Job Openings: 3
Avg SEO Skill Job Openings: 35
Avg SEO Worforce: 46

source
7. Chicago, IL -4 spots

CSA: Chicago-Naperville, IL-IN-WI
CSA Population: 9,901,711
Avg SEO Title Job Openings: 56
Avg SEO Skill Job Openings: 520
Avg SEO Worforce: 783

source
6. Raleigh, NC +39 spots

CSA: Raleigh-Durham-Chapel Hill, NC
CSA Population: 2,199,459
Avg SEO Title Job Openings: 11
Avg SEO Skill Job Openings: 104
Avg SEO Worforce: 161

source
5. Austin, TX +10 spots

MSA: Austin-Round Rock, TX
MSA Population: 2,115,827
Avg SEO Title Job Openings: 24
Avg SEO Skill Job Openings: 223
Avg SEO Worforce: 360

source
4. Syracuse, NY +12 spots

CSA: Syracuse-Auburn, NY
CSA Population: 732,444
Avg SEO Title Job Openings: 2
Avg SEO Skill Job Openings: 25
Avg SEO Worforce: 36

source
3. Harrisburg, PA +51 spots

CSA: Harrisburg-York-Lebanon, PA
CSA Population: 1,260,071
Avg SEO Title Job Openings: 5
Avg SEO Skill Job Openings: 61
Avg SEO Worforce: 31

source
2. Salt Lake City, UT +10 spots

CSA: Salt Lake City-Provo-Orem, UT
CSA Population: 2,559,350
Avg SEO Title Job Openings: 25
Avg SEO Skill Job Openings: 159
Avg SEO Worforce: 297

source
1. Charleston, SC +7 spots

MSA: Charleston-North Charleston, SC
MSA Population: 775,831
Avg SEO Title Job Openings: 6
Avg SEO Skill Job Openings: 26
Avg SEO Worforce: 52

Assumptions & caveats

Here are some critical assumptions and caveats to consider when reviewing this list in order to have the right context:

  • With ‘Best Cities to Get an SEO Job’, the key word is “Get”. This in no way measures which cities have the best SEO jobs or in which cities are the best to work. It just attempts to compare the likelihood of obtaining an SEO job across the major metros of America.
  • This assumes you must work locally. Cities that generally have a higher share of telecommuters 7 would be negatively impacted by this list.
  • How far the average employee is willing to commute may change from city-to-city based on population density and public transportation quality. With a standard 50-mile radius, that was not taken into account in this list.
  • Job titles can be regionally influenced. This list does not consider other terms besides “SEO”. So titles like SEO Specialist, SEO Manager or SEO Guru 8 would be counted, but Search Engine Optimization Specialist, SEM Manager or Inbound Marketing Supervisor would not. If certain cities are more likely to call an SEO job something else (search marketer, search engine optimization specialist, inbound marketing professional, etc.) their scores will be deflated as a result.
  • Since Indeed and LinkedIn do not have 100% of the data needed, it is assumed the full data 9 trending correlates well with the Indeed and LinkedIn data trends.
  • This list looks at each region in a vacuum. At a CSA level, that is usually fine, but there are a few instances where two CSAs are still sharing some of the same job pool, like Raleigh and Greensboro.

Conclusion

Due to its relatively impressive SEO job volume compared to its modest population, Charleston scored almost three times higher than the next highest city, Salt Lake City. And this isn’t just a random blip on the radar. In the three times I’ve ran these rankings since July of 2016, Charleston is one of two cities to consistently make it in the top 10 10.

So, are you ready to move to Charleston? Well, that’s your call, but this list is meant to measure the present relative supply and demand. If a bunch of SEOs move to Charleston, that’s a guaranteed way knock it down a few spots.

I hope you found some of this information interesting or at least entertaining. I plan to update this every so often to see how the results trend over time. Until then, I want to hear your thoughts. Post your questions, suggestions and critiques in the comments below.

Finally, if you want to look at older versions of this, here’s January 2017 and July 2016.


  1. Think Baltimore and Washington, DC

  2. Phoenix, San Diego, Tampa, San Antonio, Austin, Richmond, Honolulu, Charleston and Baton Rouge

  3. You have to modify the table to select CSAs instead of states.

  4. Originally, a 50-mile radius around a zip code from the most populous city in the CSA was used for these searches. However, in early 2017, LinkedIn removed this search functionality and has not given clarity to what the searches mean. The naming conventions are inconsistent (e.g., [city, state] area, greater [city] area, [city/nearby city] area).

  5. Are you getting tired yet? Want to take a break for a few minutes before finishing this? Go ahead. I’ll wait here.

  6. Just a few more job postings in New York hardly affects its score but if the same happens in Huntsville, Alabama, it suddenly looks like the SEO career hotbed of America.

  7. Honolulu?

  8. Luckily, “guru” hasn’t taken off from a job title standpoint. Thanks goodness.

  9. the true number of “SEO” job openings and number of people employed with “SEO” in their job title

  10. The other is Chicago