This research has been updated. View the most recent results here.

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. 1 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 2017.

  • title:(“inbound marketing”) OR title:(“inbound marketer”)- 40 (-34% from July 2016)
  • title:(“content marketing”) OR title:(“content marketer”) – 466 (-3% from July 2016)
  • title:seo – 824 (-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 2017

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 2016 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 the first week of the month from August 2016 through January 2017.
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 the first week of the month from August 2016 through January 2017.
SEO Workforce – # of LinkedIn profiles within 50 miles from the nearest location* with “SEO” in their current job title; data was pulled the first week of the month from August 2016 through January 2017.

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, 2015 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 2, 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 3. 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 4

Data point: SEO Title Job Openings – May 4th, June 3rd and July 4th of 2016
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
Source: Indeed

Data point: SEO Skill Job Openings – May 4th, June 3rd and July 4th of 2016
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
Source: Indeed

Data point: SEO Workforce – May 4th, June 3rd and July 4th of 2016
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 in the “Title” field. 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: 906,099
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 1.3
Avg SEO Worforce: 7.5

source
74. Columbia, SC -6 spots

CSA: Columbia-Orangeburg-Newberry, SC
CSA Population: 937,288
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 4.2
Avg SEO Worforce: 19.7

source
73. Little Rock, AR -57 spots

CSA: Little Rock-North Little Rock, AR
CSA Population: 904,469
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 9.0
Avg SEO Worforce: 18.0

source
72. Albuquerque, NM -44 spots

CSA: Albuquerque-Santa Fe-Las Vegas, NM
CSA Population: 1,168,533
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 8.3
Avg SEO Worforce: 33.7

source
71. Honolulu, HI +1 spot

MSA: Urban Honolulu, HI
MSA Population: 976,372
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 7.5
Avg SEO Worforce: 33.3

source
70. Madison, WI -6 spots

CSA: Madison-Janesville-Beloit, WI
CSA Population: 866,475
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 22.7
Avg SEO Worforce: 43.2

source
69. Lexington, KY -67 spots

CSA: Lexington-Fayette–Richmond–Frankfort, KY
CSA Population: 723,849
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 3.5
Avg SEO Worforce: 25.2

source
68. Charleston, WV -48 spots

CSA: Charleston-Huntington-Ashland, WV-OH-KY
CSA Population: 693,726
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 0.3
Avg SEO Worforce: 11.8

source
67. Huntsville, AL -2 spots

CSA: Huntsville-Decatur-Albertville, AL
CSA Population: 692,157
Avg SEO Title Job Openings: 0.0
Avg SEO Skill Job Openings: 6.3
Avg SEO Worforce: 24.7

source
66. Chattanooga, TN +3 spots

CSA: Chattanooga-Cleveland-Dalton, TN-GA-AL
CSA Population: 950,005
Avg SEO Title Job Openings: 0.2
Avg SEO Skill Job Openings: 5.8
Avg SEO Worforce: 31.8

source
65. Tulsa, OK +5 spots

CSA: Tulsa-Muskogee-Bartlesville, OK
CSA Population: 1,151,172
Avg SEO Title Job Openings: 0.3
Avg SEO Skill Job Openings: 13.3
Avg SEO Worforce: 39.0

source
64. Memphis, TN -15 spots

CSA: Memphis-Forrest City, TN-MS-AR
CSA Population: 1,370,716
Avg SEO Title Job Openings: 0.5
Avg SEO Skill Job Openings: 12.8
Avg SEO Worforce: 61.2

source
63. South Bend, IN +4 spots

CSA: South Bend-Elkhart-Mishawaka, IN-MI
CSA Population: 725,065
Avg SEO Title Job Openings: 0.2
Avg SEO Skill Job Openings: 7.5
Avg SEO Worforce: 35.2

source
62. Oklahoma City, OK -21 spots

CSA: Oklahoma City-Shawnee, OK
CSA Population: 1,430,327
Avg SEO Title Job Openings: 0.5
Avg SEO Skill Job Openings: 18.3
Avg SEO Worforce: 52.8

source
61. Sacramento, CA +1 spot

CSA: Sacramento-Roseville, CA
CSA Population: 2,544,026
Avg SEO Title Job Openings: 1.2
Avg SEO Skill Job Openings: 35.2
Avg SEO Worforce: 194.7

source
60. Buffalo, NY +13 spots

CSA: Buffalo-Cheektowaga, NY
CSA Population: 1,213,152
Avg SEO Title Job Openings: 1.0
Avg SEO Skill Job Openings: 15.0
Avg SEO Worforce: 122.2

source
59. Birmingham, AL -3 spots

CSA: Birmingham-Hoover-Talladega, AL
CSA Population: 1,319,238
Avg SEO Title Job Openings: 0.7
Avg SEO Skill Job Openings: 16.7
Avg SEO Worforce: 54.0

source
58. Baton Rouge, LA -52 spots

MSA: Baton Rouge, LA
MSA Population: 815,298
Avg SEO Title Job Openings: 0.2
Avg SEO Skill Job Openings: 4.8
Avg SEO Worforce: 19.7

source
57. Milwaukee, WI -20 spots

CSA: Milwaukee-Racine-Waukesha, WI
CSA Population: 2,046,092
Avg SEO Title Job Openings: 1.7
Avg SEO Skill Job Openings: 52.3
Avg SEO Worforce: 126.5

source
56. Boise City, ID -53 spots

CSA: Boise City-Mountain Home-Ontario, ID-OR
CSA Population: 756,061
Avg SEO Title Job Openings: 0.7
Avg SEO Skill Job Openings: 12.7
Avg SEO Worforce: 77.7

source
55. Knoxville, TN +6 spots

CSA: Knoxville-Morristown-Sevierville, TN
CSA Population: 1,109,174
Avg SEO Title Job Openings: 0.5
Avg SEO Skill Job Openings: 9.7
Avg SEO Worforce: 41.2

source
54. Harrisburg, PA -6 spots

CSA: Harrisburg-York-Lebanon, PA
CSA Population: 1,247,235
Avg SEO Title Job Openings: 1.2
Avg SEO Skill Job Openings: 42.0
Avg SEO Worforce: 101.3

source
53. Pittsburgh, PA +2 spots

CSA: Pittsburgh-New Castle-Weirton, PA-OH-WV
CSA Population: 2,648,605
Avg SEO Title Job Openings: 1.7
Avg SEO Skill Job Openings: 44.2
Avg SEO Worforce: 141.8

source
52. Hartford, CT -13 spots

CSA: Hartford-West Hartford, CT
CSA Population: 1,483,187
Avg SEO Title Job Openings: 2.3
Avg SEO Skill Job Openings: 62.3
Avg SEO Worforce: 176.0

source
51. Grand Rapids, MI +1 spot

CSA: Grand Rapids-Wyoming-Muskegon, MI
CSA Population: 1,433,288
Avg SEO Title Job Openings: 1.2
Avg SEO Skill Job Openings: 26.2
Avg SEO Worforce: 71.7

source
50. Tucson, AZ +21 spots

CSA: Tucson-Nogales, AZ
CSA Population: 1,056,486
Avg SEO Title Job Openings: 0.7
Avg SEO Skill Job Openings: 13.2
Avg SEO Worforce: 39.5

source
49. Omaha, NE -37 spots

CSA: Omaha-Council Bluffs-Fremont, NE-IA
CSA Population: 952,018
Avg SEO Title Job Openings: 0.8
Avg SEO Skill Job Openings: 22.3
Avg SEO Worforce: 61.7

source
48. Indianapolis, IN +10 spots

CSA: Indianapolis-Carmel-Muncie, IN
CSA Population: 2,372,530
Avg SEO Title Job Openings: 1.3
Avg SEO Skill Job Openings: 41.8
Avg SEO Worforce: 74.2

source
47. St. Louis, MO – no movement

CSA: St. Louis-St. Charles-Farmington, MO-IL
CSA Population: 2,916,447
Avg SEO Title Job Openings: 2.7
Avg SEO Skill Job Openings: 58.8
Avg SEO Worforce: 117.5

source
46. Albany, NY -6 spots

CSA: Albany-Schenectady, NY
CSA Population: 1,173,891
Avg SEO Title Job Openings: 1.8
Avg SEO Skill Job Openings: 18.5
Avg SEO Worforce: 174.3

source
45. Raleigh, NC +14 spots

CSA: Raleigh-Durham-Chapel Hill, NC
CSA Population: 2,117,103
Avg SEO Title Job Openings: 2.7
Avg SEO Skill Job Openings: 100.0
Avg SEO Worforce: 151.2

source
44. Rochester, NY +16 spots

CSA: Rochester-Batavia-Seneca Falls, NY
CSA Population: 1,175,724
Avg SEO Title Job Openings: 1.0
Avg SEO Skill Job Openings: 16.3
Avg SEO Worforce: 48.7

source
43. Greensboro, NC -5 spots

CSA: Greensboro–Winston-Salem–High Point, NC
CSA Population: 1,642,506
Avg SEO Title Job Openings: 2.0
Avg SEO Skill Job Openings: 56.0
Avg SEO Worforce: 86.2

source
42. Cincinnati, OH +9 spots

CSA: Cincinnati-Wilmington-Maysville, OH-KY-IN
CSA Population: 2,216,735
Avg SEO Title Job Openings: 2.7
Avg SEO Skill Job Openings: 52.5
Avg SEO Worforce: 94.5

source
41. Ft. Myers, FL +22 spots

CSA: Cape Coral-Fort Myers-Naples, FL
CSA Population: 1,059,287
Avg SEO Title Job Openings: 1.3
Avg SEO Skill Job Openings: 17.3
Avg SEO Worforce: 67.5

source
40. Norfolk, VA -5 spots

CSA: Virginia Beach-Norfolk, VA-NC
CSA Population: 1,828,187
Avg SEO Title Job Openings: 1.7
Avg SEO Skill Job Openings: 26.7
Avg SEO Worforce: 52.7

source
39. San Antonio, TX +18 spots

MSA: San Antonio-New Braunfels, TX
MSA Population: 2,234,003
Avg SEO Title Job Openings: 1.8
Avg SEO Skill Job Openings: 37.5
Avg SEO Worforce: 75.5

source
38. Spokane, WA -37 spots

CSA: Spokane-Spokane Valley-Coeur d’Alene, WA-ID
CSA Population: 698,170
Avg SEO Title Job Openings: 0.8
Avg SEO Skill Job Openings: 7.0
Avg SEO Worforce: 49.8

source
37. Columbus, OH -14 spots

CSA: Columbus-Marion-Zanesville, OH
CSA Population: 2,424,831
Avg SEO Title Job Openings: 2.7
Avg SEO Skill Job Openings: 46.8
Avg SEO Worforce: 125.7

source
36. Louisville, KY +18 spots

CSA: Louisville/Jefferson County–Elizabethtown–Madison, KY-IN
CSA Population: 1,504,559
Avg SEO Title Job Openings: 1.3
Avg SEO Skill Job Openings: 21.0
Avg SEO Worforce: 37.0

source
35. El Paso, TX +7 spots

CSA: El Paso-Las Cruces, TX-NM
Avg SEO Title Job Openings: 0.7
Avg SEO Skill Job Openings: 4.3
Avg SEO Worforce: 21.0

source
34. Orlando, FL -8 spots

CSA: Orlando-Deltona-Daytona Beach, FL
CSA Population: 3,129,308
Avg SEO Title Job Openings: 7.0
Avg SEO Skill Job Openings: 88.8
Avg SEO Worforce: 294.0

source
33. Richmond, VA -29 spots

MSA: Richmond, VA
MSA Population: 1,231,980
Avg SEO Title Job Openings: 1.3
Avg SEO Skill Job Openings: 21.0
Avg SEO Worforce: 59.0

source
32. Houston, TX +11 spots

CSA: Houston-The Woodlands, TX
CSA Population: 6,855,069
Avg SEO Title Job Openings: 10.5
Avg SEO Skill Job Openings: 114.5
Avg SEO Worforce: 355.8

source
31. Fresno, CA +35 spots

CSA: Fresno-Madera, CA
CSA Population: 1,129,859
Avg SEO Title Job Openings: 1.0
Avg SEO Skill Job Openings: 7.0
Avg SEO Worforce: 24.8

source
30. Jacksonville, FL -3 spots

CSA: Jacksonville-St. Marys-Palatka, FL-GA
CSA Population: 1,573,606
Avg SEO Title Job Openings: 3.3
Avg SEO Skill Job Openings: 33.3
Avg SEO Worforce: 142.3

source
29. Tampa, FL -4 spots

MSA: Tampa-St. Petersburg-Clearwater, FL
MSA Population: 2,842,878
Avg SEO Title Job Openings: 8.5
Avg SEO Skill Job Openings: 102.0
Avg SEO Worforce: 331.3

source
28. Los Angeles, CA -9 spots

CSA: Los Angeles-Long Beach, CA
CSA Population: 18,679,763
Avg SEO Title Job Openings: 55.2
Avg SEO Skill Job Openings: 658.0
Avg SEO Worforce: 1852.7

source
27. New York, NY -3 spots

CSA: New York-Newark, NY-NJ-CT-PA
CSA Population: 23,723,696
Avg SEO Title Job Openings: 88.3
Avg SEO Skill Job Openings: 1093.2
Avg SEO Worforce: 2972.0

source
26. Washington DC +4 spots

CSA: Washington-Baltimore-Arlington, DC-MD-VA-WV-PA
CSA Population: 9,625,360
Avg SEO Title Job Openings: 23.8
Avg SEO Skill Job Openings: 398.5
Avg SEO Worforce: 458.7

source
25. Detroit, MI +21 spots

CSA: Detroit-Warren-Ann Arbor, MI
CSA Population: 5,319,913
Avg SEO Title Job Openings: 8.8
Avg SEO Skill Job Openings: 96.2
Avg SEO Worforce: 255.8

source
24. Greenville, SC +50 spots

CSA: Greenville-Spartanburg-Anderson, SC
CSA Population: 1,426,625
Avg SEO Title Job Openings: 2.0
Avg SEO Skill Job Openings: 25.7
Avg SEO Worforce: 36.2

source
23. Nashville, TN +8 spots

CSA: Nashville-Davidson–Murfreesboro, TN
CSA Population: 1,951,644
Avg SEO Title Job Openings: 3.7
Avg SEO Skill Job Openings: 52.0
Avg SEO Worforce: 82.5

source
22. Charlotte, NC +12 spots

CSA: Charlotte-Concord, NC-SC
CSA Population: 2,583,956
Avg SEO Title Job Openings: 5.7
Avg SEO Skill Job Openings: 75.3
Avg SEO Worforce: 165.8

source
21. Portland, OR -8 spots

CSA: Portland-Vancouver-Salem, OR-WA
CSA Population: 3,110,906
Avg SEO Title Job Openings: 6.8
Avg SEO Skill Job Openings: 75.8
Avg SEO Worforce: 227.0

source
20. Las Vegas, NV +24 spots

CSA: Las Vegas-Henderson, NV-AZ
CSA Population: 2,362,015
Avg SEO Title Job Openings: 5.0
Avg SEO Skill Job Openings: 43.8
Avg SEO Worforce: 203.7

source
19. Minneapolis, MN +10 spots

CSA: Minneapolis-St. Paul, MN-WI
CSA Population: 3,866,768
Avg SEO Title Job Openings:
Avg SEO Skill Job Openings:
Avg SEO Worforce:

source
18. San Francisco, CA +4 spots

CSA: San Jose-San Francisco-Oakland, CA
CSA Population: 8,713,914
Avg SEO Title Job Openings: 51.0
Avg SEO Skill Job Openings: 778.0
Avg SEO Worforce: 1176.3

source
17. Denver, CO +36 spots

CSA: Denver-Aurora, CO
CSA Population: 3,418,876
Avg SEO Title Job Openings: 14.0
Avg SEO Skill Job Openings: 182.7
Avg SEO Worforce: 381.0

source
16. Syracuse, NY +20 spots

CSA: Syracuse-Auburn, NY
CSA Population: 738,746
Avg SEO Title Job Openings: 1.2
Avg SEO Skill Job Openings: 11.8
Avg SEO Worforce: 46.2

source
15. Austin, TX -8 spots

MSA: Austin-Round Rock, TX
MSA Population: 1,834,303
Avg SEO Title Job Openings: 13.2
Avg SEO Skill Job Openings: 166.3
Avg SEO Worforce: 298.3

source
14. Seattle, WA +36 spots

CSA: Seattle-Tacoma, WA
CSA Population: 4,602,591
Avg SEO Title Job Openings: 18.0
Avg SEO Skill Job Openings: 238.0
Avg SEO Worforce: 412.7

source
13. Miami, FL +8 spots

CSA: Miami-Fort Lauderdale-Port St. Lucie, FL
CSA Population: 6,654,565
Avg SEO Title Job Openings: 23.7
Avg SEO Skill Job Openings: 218.8
Avg SEO Worforce: 587.5

source
12. Salt Lake City, UT -1 spot

CSA: Salt Lake City-Provo-Orem, UT
CSA Population: 2,467,709
Avg SEO Title Job Openings:
Avg SEO Skill Job Openings:
Avg SEO Worforce:

source
11. Dallas, TX +4 spots

CSA: Dallas-Fort Worth, TX-OK
CSA Population: 7,504,362
Avg SEO Title Job Openings: 24.2
Avg SEO Skill Job Openings: 204.3
Avg SEO Worforce: 554.8

source
10. New Orleans, LA +22 spots

CSA: New Orleans-Metairie-Hammond, LA-MS
CSA Population: 1,493,205
Avg SEO Title Job Openings: 2.5
Avg SEO Skill Job Openings: 15.7
Avg SEO Worforce: 40.0

source
9. Cleveland, OH +9 spots

CSA: Cleveland-Akron-Canton, OH
CSA Population: 3,493,596
Avg SEO Title Job Openings: 8.0
Avg SEO Skill Job Openings: 67.3
Avg SEO Worforce: 155.7

source
8. Charleston, S -3 spotsC

MSA: Charleston-North Charleston, SC
MSA Population: 697,439
Avg SEO Title Job Openings: 1.3
Avg SEO Skill Job Openings: 17.3
Avg SEO Worforce: 31.3

source
7. San Diego, CA +2 spots

MSA: San Diego-Carlsbad, CA
MSA Population: 3,177,063
Avg SEO Title Job Openings: 27.3
Avg SEO Skill Job Openings: 219.3
Avg SEO Worforce: 829.0

source
6. Philadelphia, PA +4 spots

CSA: Philadelphia-Reading-Camden, PA-NJ-DE-MD
CSA Population: 7,183,479
Avg SEO Title Job Openings: 29.2
Avg SEO Skill Job Openings: 283.2
Avg SEO Worforce: 542.2

source
5. Kansas City, MO +40 spots

CSA: Kansas City-Overland Park-Kansas City, MO-KS
CSA Population: 2,428,362
Avg SEO Title Job Openings: 6.5
Avg SEO Skill Job Openings: 58.3
Avg SEO Worforce: 117.8

source
4. Atlanta, GA +13 spots

CSA: Atlanta-Athens-Clarke-Sandy Springs
CSA Population: 6,365,108
Avg SEO Title Job Openings: 26.0
Avg SEO Skill Job Openings: 246.2
Avg SEO Worforce: 465.3

source
3. Chicago, IL +5 spots

CSA: Chicago-Naperville, IL-IN-WI
CSA Population: 9,923,358
Avg SEO Title Job Openings: 45.3
Avg SEO Skill Job Openings: 477.2
Avg SEO Worforce: 696.7

source
2. Boston, MA +12 spots

CSA: Boston-Worcester-Providence, MA-RI-NH-CT
CSA Population: 8,152,573
Avg SEO Title Job Openings: 42.2
Avg SEO Skill Job Openings: 410.2
Avg SEO Worforce: 521.7

source
1. Phoenix, AZ +17 spots

MSA: Phoenix-Mesa-Scottsdale, AZ (core based statistical area)
MSA Population: 4,329,534
Avg SEO Title Job Openings: 24.8
Avg SEO Skill Job Openings: 154.8
Avg SEO Worforce: 397.8

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 Hero” would be counted, but “Search Engine Optimization Specialist”, “SEM Manager” or “Inbound Marketing Hero” 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 8 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

Ready to move to Phoenix? Between the increase in the average monthly SEO job openings from last time period and the formula improvements I made to better account for small market variance, Phoenix was the decisive winner, beating the next highest city’s score by nearly 25%.

I hope you found some of this information interesting or at least entertaining. I plan to update this every six months or so 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 version 1.0 of this study, you can check it out here.


  1. Heck, even my own position doesn’t have “SEO” in the title.

  2. Think Baltimore and Washington, DC

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

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

  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. the true number of “SEO” job openings and number of people employed with “SEO” in their job title