This is a question I get from many of my clients: "How do I show up in search engines for different cities in which I do work?" For instance, if your roofing company is located in Medford, New Jersey, but you provide roofing services throughout all of South Jersey, how do you get your website to show up if someone types in, say, "Mount Laurel roofing"?
Well, if it were easy to do, every local company would be doing it!
Your website will most likely appear in search engine results for the city in which your business is physically located since your company address (or at least city) should be on every page of your website. If you want to concentrate on this city, make sure you mention the city in the text on all of your pages, especially the home page. However, you probably don't want to pigeon-hole your company into one particular city. For instance, if you mention "Medford roofing" throughout your website, then Medford (and possibly some cities bordering on Medford) is the only city in which you will appear in Google Search results. However, if you mention "South Jersey roofing", you're encompassing a much larger area. Although it's more likely that someone living in Medford will search for Medford roofing (or even roofers in 08055, or roofing contractors in Burlington County) rather than South Jersey roofing, you'll be more likely to appear if someone does search for South Jersey roofing.
Some of my clients have asked me to list ALL of the cities in which they work on their website. This is an outdated SEO technique that hasn't worked since the early 2000's; the only thing it does is let people who visit your website know where you work (unless each of those cities links to a landing page for that city).
The fact is, you're not going to rank at the top of Google for every city in which you do business. Therefore, you should concentrate on 3 to 5 cities, counties, regions or states. The smaller the area, the easier it is to beat out your competition for a higher spot in search engines.
Once you've selected your target cities, you'll want to create "landing pages" targeted to each of these cities. Landing pages are additional pages on your website that are targeted to a particular city or service. Each page will include seo tags and wording specific to that city or service, to help search engines find it. Landing pages don't show on your website; they only come up when someone searches for that particular service in that particular area.
Even though it's best to start with 3 to 5 cities, counties or regions, there's no limit on the number of landing pages you can have (other than your budget). You could conceivably have a landing page for every city in the county in which you work, and landing pages tend to rank very well since you're targeting a city or a county, which means it's a smaller area so there's less competition. I have some clients with 20, 30, even 80 landing pages, and they're on Page 1 for just about every page! If you offer different types of services, it's best to mix and match your services and locations, so you can have a page for roofing in Burlington County, another page for siding in Moorestown, another for decks in Central Jersey, another for windows in Cherry Hill, etc.
If you have a physical address in each city in which you have a landing page, and a different phone number, this is ideal (although unlikely, especially for a small business), as you can then set up free listings on sites like Google My Business, Bing Local and Manta for each of your landing pages, which will help them rank even better.