Local SEO
SEO for Contractors: Get Jobs From Google
How US contractors get found for the jobs they actually do, from profile categories and real project photos to service areas and estimate requests.
//CodeHunterz

SEO for contractors is the work of being findable for jobs the company will actually schedule. A homeowner searching for a roof leak and a homeowner searching for a kitchen remodel are not the same lead, even when one company could do both. The listing category, the pages, the photos, and the estimate form should tell those people apart before either of them calls.
The service built around this is SEO for contractors. The site that has to hold the gallery and the form is contractor website design. Map and service-page work for a real territory sits under local SEO. Plumbers face a similar split between an urgent call and a planned job, which is the subject of SEO for plumbers.
What you can control is the public record: the category you can defend, photos of work you finished, a service area you will drive, and a request path that collects facts before anyone talks about money. A map position and a pile of jobs are not on that list.
General contractor and roofer are different searches
Google's business profile asks for a primary category. That choice is the shortest description of the company, and it steers which queries the listing can match. A roofing company that sets the primary category to general contractor is asking to be compared with remodelers. A remodeling company that sets the primary category to roofer is asking to be called about shingles. If the company does both, it still picks one primary category for the work it most wants, and it adds a secondary category only for work it will put on the board.
The website should make the same distinction. A homepage that says the company does everything forces the visitor to hunt. Roof repair, roof replacement, siding, additions, and kitchen remodels are different jobs with different crews, different timelines, and different reasons to call. Each one you want from search deserves its own page. The page should say what the work is, what you need to see before you can judge it, where you will travel, and how to request a visit. Trades that live on seasonal failures, such as cooling and heat, use the same split in SEO for HVAC companies. Do not publish a page for work you will refuse. Ranking for that job wastes the call and teaches the wrong expectation.
Licenses and insurance belong on the site when you hold them, stated the way your state already requires, with the real license number. A badge that implies a credential you do not hold is a trust problem before it is a search problem. If a job needs a specialty license you do not carry, say so or do not publish the page.
Primary category and the pages under it
Use the primary category as the spine of the site. If the profile says roofing contractor, the strongest page, the clearest photos, and the first item in the menu should be roofing. General contracting can be a second path with its own pages, its own photos, and its own choice on the form. Mixing both into one paragraph makes the profile and the site disagree. The person reading either one cannot tell which call you want in the morning.
Secondary categories are not a wish list. Add one when you perform that work often enough to answer the phone for it, and when you have a page plus a few photos of jobs you finished. A category with no supporting page is a listing that overpromises. Review the list twice a year. Trades get added in busy months and forgotten when the crew changes. The profile should follow the crew you have now.
Project photos of jobs you finished
Photos are part of the proof. A contractor profile and website should show this company's work: the house, the roof, the addition, the crew on that site, the finished detail. Stock images of a handshake, a skyline, or a generic hard hat do not help a homeowner decide whom to let on the property. They also make every contractor in the city look like the same company.
Take photos on jobs you have permission to show. Many owners will agree if you ask before you publish a street-facing view and if you skip interior shots that show family belongings. A before-and-after pair is useful when both frames are the same property and the after is work you did. Label the photo with the type of work. Add the city or county only when that location is true. A roof you replaced in another state should not be presented as a local job.
Put the same care into the file itself. A dark, sideways photo of a dumpster does not document a replacement. Stand back far enough to show the whole slope or the whole room, then take a second frame of the detail you want credit for: the flashing, the valley, the trim, the cabinet line. Name the files in plain language before you upload them so the next person on your team does not mix a repair into the remodel gallery.
What to include in the set
A useful set is small and specific.
- The condition you were asked to look at, if the owner agreed to a before photo.
- The work in progress, so a visitor can see that a crew did the job.
- The finished result from a distance and from close enough to see the detail.
- The truck or the yard, so the company looks like a company with a place to call.
- A caption in plain language. The type of work is a caption. A slogan is not.
Publish the set on the service page it belongs to and on the Google Business Profile. The same photo dumped onto every service page makes the gallery look thin. Update the set when you finish work you are willing to show. A profile whose newest photo is from several seasons ago is a quiet signal that the listing is unattended.
Do not buy another contractor's portfolio, and do not pull a manufacturer's brochure image and imply it is your install. If you show a product, name it as a product. If you show a job, it should be your job. If a manufacturer requires a credit line, include it. The credit line is not a substitute for your own finished work.
Storm content that helps and does not scare
After hail, high wind, or a hard rain, more people search for roof and exterior repair. That is a real pattern. It is a poor reason to publish a page that frightens them. Fear bait sounds like a countdown, a claim that every roof in town is failing, or a warning that waiting a day will void something you cannot know. It produces calls from people who feel pushed, and it reads badly next to a license number.
A useful storm page does a narrower job. It explains what a homeowner can photograph from the ground, why walking a damaged roof is a bad idea, what a temporary dry-in is, and what an inspection visit includes. It says that an inspection is a look at the property, not a price and not an insurance decision. If there is a claim, that claim is a conversation between the property owner and the insurer. The contractor can describe what they saw, in writing, with photos. The contractor should not tell the owner what the insurer will pay, and should not suggest that hiring a particular company changes the insurer's decision.
Timing language can be practical without being a threat. If the board is full, say that inspections are scheduled in the order requests arrive and that you will give a date you can keep. If you are not taking storm work, say that. A page that pretends you can be on every roof by tonight creates the calls and the reviews you do not want.
Keep storm content attached to services you perform. A roofing company can write about hail and wind damage to roofs. A remodeler who does not do emergency exterior work should not publish a storm page to catch that traffic. The rule is the same as the rest of the site: do not try to rank for a truck you will not roll. When the rush passes, update the page so it does not still speak as if this week's storm is underway.
Say the service area you will actually drive
Contractors serve an area, and the area should be written in language a dispatcher would recognize. Counties, a list of cities you schedule every week, or a drive time from the shop are all honest shapes. A radius is honest when you will take a job at the edge of it. The edge is where estimates stall if the drive was never part of the plan. If a river, a toll, or a county line changes whether you roll, write that limit in a sentence a caller can understand.
The Google Business Profile service area and the website should name the same territory. If you hide your address because customers do not visit a showroom, the service area still has to be true. A virtual office in a city where you have no crew is not a service area. It is a listing problem. Service-area businesses can hide a home address. They cannot invent a shop.
City pages are the usual temptation. One page per town, with the city name swapped and the paragraph left alone, is a doorway page. It is a weak experience for the person who clicked, and it spends a month you could have used on the service pages that match real jobs. Publish a city page when something about that city is distinct: a second shop with its own hours and phone, a permit note you are qualified to explain, or a body of work you can show from that place. If the only difference is the word in the headline, do not publish it.
Two longer pieces apply here without a special exception for the trades: local SEO for small business and how the map pack works. Read them before you commission a stack of town pages.
Estimate requests that do not invent a price
An estimate is a judgment about a property. A form can collect the facts that make that judgment possible. It cannot see the decking, the access, the existing structure, or the scope the owner has not described. A page that prints a price from a few dropdowns is inventing a number. When the real number is different, the lead starts as an argument.
Ask for what the office needs in order to decide whether to schedule a visit.
- Name and a phone number that gets answered.
- The city or the address, so you can confirm the service area before you promise a trip.
- The type of work, using the same list as your service pages.
- Timing: a leak this week, a replacement this season, or a remodel they are still planning.
- Photos of the area in question, optional, taken from the ground.
- How they want to hear back, and a window when they can talk.
Then say what happens next, in one or two sentences. Someone from the company reviews the request, confirms that you travel there, and schedules a visit or a call. The price comes after a person has enough information. If you already charge a trip fee that you tell every caller, you can state that fee, because it is a charge you actually make. Do not add a starting price, a figure for what most jobs cost, or a calculator to make the form look finished. Those numbers become the number the caller remembers, and they were never a bid.
Financing, if you offer it, should name the partner and point to that partner's terms. A badge with no explanation is not an offer. A payment figure you guessed for the page is worse. If you do not offer financing, leave the badge off. Visitors notice when a button leads nowhere.
The form should also make refusal easy to see. If you do not do insurance restoration, say so above the form. If you do not do commercial work, say so. If remodels are booked past a date you are willing to share, say so. A shorter list of requests you can answer is worth more than an inbox of jobs you will decline after you have already spent the drive.
The profile, the site, and the name have to match
Your company name, phone number, and service area should read the same way on the website, the Google Business Profile, and the directories that already list you. A tracking number can live on ads if you know which report it feeds. Replacing the main number in every directory makes the listings look like different companies. If you use a tracking number, keep the primary number stable on the profile and the site.
Hours should be hours you answer. A contractor who is on a job site all day can still say so: the office takes calls from eight to five, or the owner returns calls after four. A profile that says you are open at all hours, when the phone goes to a full voicemail, collects the wrong kind of attention. Emergency service, if you offer it, needs its own sentence: which trades, which hours, and what emergency means for your crew. Water coming through a ceiling is not the same promise as a kitchen design meeting.
Reviews belong to finished jobs. Ask after the work is done, on the public Google profile, without a gate that only invites the people you expect to be happy. Do not buy reviews, and do not write them under a customer's name. On your own site, quote someone only with permission and only in their words. A block of unnamed praise is not a review system. If you do not have permission, leave the block off.
Reply in your own voice. Thank a specific job when you can do it without publishing a private address. If a complaint is fair, say what you will do. Replies stuffed with keywords read like ads and do not help the next homeowner choose.
A reasonable first 90 days
Week one is an inventory. Write down the primary category, the services you will accept, the area you will drive, and the URLs that already produce calls. Fix the phone, the hours, and any category you cannot defend. Remove or redirect pages for jobs you stopped doing. If two listings exist for the same shop, pick the one with the history and close the duplicate through Google's process rather than editing both forever.
The next month is pages and photos. Repair or write the service pages that match the categories you kept. Link related services in the body of the page, for instance from roof repair to roof replacement, without implying they are the same visit or the same scope. Put real project photos on those pages and on the profile. Build the estimate form so it collects scope and location and does not print a price.
The month after that is upkeep. Ask for reviews after real jobs. Clean the worst directory errors: an old phone number, a duplicate listing, a city you left. Read the queries people used. If a query is a job you do not want, change the page or the category instead of treating the visit as a win.
Paid search is a separate decision for terms you are not willing to wait on. It does not repair a profile that lists the wrong trade. Get the category, the photos, the area, and the estimate path honest first. Then decide whether to rent visibility for the jobs the map has not caught yet.
The Growth plan starts at $2,400 per month after a 20% launch offer (regular starting price $3,000 per month). The final scope still follows the profile, the site, and the area. A roofing crew and a remodeler do not need the same scope. Limited-time launch offer, final quote after free strategy call.
What else do people ask?
Q01Should a company that roofs and remodels use one category?
Pick a primary category for the work you most want calls for. Add a secondary category only for work you will schedule, and give that work its own page and photos.
Q02Do we need a city page for every town we drive to?
Write the service area in plain language. Add a city page only when that place has its own shop or something distinct to say. A page that only swaps the city name is a doorway page.
Q03Can the website print an instant price for a roof or remodel?
A form can collect the job type, the city, the timing, and photos. A person prices the job after there is enough to judge it. A calculator that prints a number is inventing a price.
Q04What should a page about storm damage say?
How to document damage from the ground, what an inspection visit includes, and that any insurance payment is between the owner and the insurer. It should not scare people or promise a payout.
Q05Can this work promise a map position or a count of jobs?
No. You can align the category, the pages, the photos, and the service area with work you will take. A map position and a job count are not things this work can promise.
Written for US small business owners by the CodeHunterz team. This is general information, not a promise of rankings, leads, or savings. The service behind this guide: continue to the service page.
