TL;DR

The best roofing contractor in San Diego is the one whose CSLB C-39 license is active, who carries workers’ comp and general liability, who pulls a city permit, who asks for no more than 10% or $1,000 down (whichever is less), and who has real recent reviews you can read on more than one platform. That’s the entire baseline. Everything else (brand certifications, warranty length, neighborhood reputation) is a tiebreaker. This guide walks through the exact vetting steps, the questions to ask before you sign, the red flags that should end the conversation, and what we do on our end to vet every roofer in our San Diego network.

How to vet a San Diego roofer in 20 minutes

You can rule out 80% of bad actors with four checks. None of them require leaving your kitchen.

1. Run the CSLB license lookup

California requires a Contractors State License Board (CSLB) license for any roofing job over $500. Roofing specifically falls under the C-39 classification. A general “B” contractor can also pull a roofing permit, but for a roof-only project you want a C-39.

Go to the CSLB license check tool, type in the license number, and verify five things:

  • Status: “Active” (not expired, suspended, or revoked)
  • Classification: C-39 for roofing
  • Workers’ compensation: on file, not exempt (a roofer with no employees is a yellow flag, because most legitimate San Diego shops have crews)
  • Bonding: the $25,000 contractor’s bond shows as current
  • Disclosures: zero pending complaints or judgments

If the contractor refuses to give you a license number before quoting, that’s the end of the conversation. Legitimate roofers print their CSLB number on the truck, the business card, the website, and every page of the contract. California law (Business and Professions Code §7030.5) actually requires the license number on all advertising.

2. Check insurance certificates directly

Ask for a certificate of insurance (COI) listing both:

  • General liability (minimum $1 million per occurrence)
  • Workers’ compensation (covers the crew, not you)

Then call the insurance broker on the certificate to confirm the policy is active. Scammers sometimes show expired COIs or fakes. The broker call takes three minutes and is the single fastest fraud detector.

Why workers’ comp matters in San Diego specifically: if an uninsured roofer falls off your two-story Mission Hills home, you can be held personally liable for medical bills and lost wages. A typical claim runs $50,000 to $400,000.

3. Read recent reviews on at least two platforms

A single five-star Google rating tells you nothing. Cross-reference at least two of these:

  • Google Business Profile (look for reviews in the last 12 months, not just lifetime)
  • Yelp (filtered AND unfiltered reviews)
  • BBB profile and complaint history
  • Nextdoor (San Diego neighborhood-specific recommendations are gold)
  • Angi or HomeAdvisor

You’re looking for patterns, not perfection. A roofer with 200 reviews and a 4.6 average is more trustworthy than one with 8 reviews and a perfect 5.0. Read the one-star reviews carefully. The bad reviews tell you how they handle problems.

4. Verify the physical address

Plug the business address into Google Maps Street View. A legitimate San Diego roofer has either a real office (often in Kearny Mesa, Miramar, El Cajon, or Vista light-industrial zones) or a clearly identifiable residential business location. A virtual mailbox at a UPS store is a red flag. A nonexistent address ends the conversation.

Red flags that should end the conversation

If even one of these shows up during the sales process, walk away. If two show up, you’re looking at a scam in progress.

Red flagWhat it actually means
Door-knocker after a stormStorm chasers from out of state, here for a week, gone before warranty claims surface
Asks for more than 10% or $1,000 downIllegal in California under Business and Professions Code §7159.5
Cash-only or wire-onlyNo paper trail, no chargeback option, no recourse
No written contract before work startsRequired by California law for jobs over $500
”Sign today and I’ll knock 30% off”Pressure pricing is the oldest fraud playbook on earth
No CSLB number on the truck, card, or proposalOften unlicensed, sometimes operating under a borrowed number
Wants you to pull the permit yourselfThey’re either unlicensed, uninsured, or both
Verbal estimate only, no itemized scopeYou’ll have no recourse when “scope changes” double the bill
Reviews all dated within a 30-day windowLikely paid, likely fake
Disparages every other roofer in townConfidence sells. Insecurity desperate-sells.

For a deeper dive on each of these, see our full breakdown: 10 roofing contractor red flags every San Diego homeowner should know.

Questions to ask before you sign

Print these. Bring them to the estimate. A good roofer will answer all twelve without hesitation. A bad one will dodge at least three.

  1. What’s your CSLB license number? (Then verify it before they leave.)
  2. Are you classified C-39, or are you a general B contractor subbing out the roofing? Either is legal. You just want to know who’s actually on the roof.
  3. Who pulls the permit, and which San Diego jurisdiction? (City of San Diego, County, Chula Vista, Carlsbad, Oceanside, and Escondido all have separate permit systems.)
  4. What’s the deposit, and when is each milestone payment due? California law caps the deposit at 10% or $1,000, whichever is less.
  5. Is your crew W-2 employees or 1099 subs? Either is fine, but workers’ comp coverage works differently for each.
  6. What underlayment do you use, and what’s the warranty on it? (Synthetic underlayment is standard in 2026. If they quote 30-pound felt, ask why.)
  7. What’s the warranty structure? Separate the workmanship warranty (yours, from the contractor, usually 5–10 years) from the material warranty (yours, from the manufacturer, usually 25–50 years).
  8. What happens if you find dry rot or sheathing damage during tear-off? A good contract has a per-sheet replacement price in writing before work starts.
  9. How do you handle solar panels? If you have solar, the panels must be removed and reinstalled by a qualified crew. This is a major scope item in San Diego, where ~30% of homes have rooftop solar.
  10. How long has this exact crew been together? Crew turnover is the single biggest predictor of workmanship problems.
  11. Can I see three jobs you finished in the last 60 days, in my neighborhood? Real references, recent, local.
  12. What’s your cleanup process, and do you use a magnetic sweep for nails? Skipping this is how flat tires happen two weeks later.

Cost expectations by San Diego neighborhood

Pricing varies more by access and material than by zip code, but neighborhood does matter. Steep canyon lots, narrow streets, HOA tile requirements, and two-story coastal homes all add to the bill. For a full 2026 breakdown with line-item ranges, read our San Diego new roof cost guide and the San Diego roof permit process.

Quick rules of thumb for 2026:

  • Asphalt shingle reroof, 2,000 sq ft single-story, easy access: $14,000 to $22,000
  • Concrete tile lift-and-relay (HOA neighborhoods like Carmel Valley, Scripps Ranch, Rancho Bernardo): $18,000 to $34,000
  • Clay tile replacement (Spanish revival homes in Mission Hills, Kensington, La Jolla): $28,000 to $55,000
  • Flat roof TPO replacement (mid-century moderns, ADUs, commercial): $12 to $18 per square foot
  • Coastal premium (Encinitas, Cardiff, Pacific Beach, OB, Coronado): add 8–15% for salt-air-rated materials and stainless fasteners

If you’re getting quotes 30% below these ranges, that’s not a deal. That’s a contractor who plans to either disappear after the deposit or add “discovered damage” mid-job to triple the bill.

Contractor types: which one fits your job

Not every roofing operation is built the same. Knowing the type helps you set expectations before you start calling.

TypeWhat they areBest forWatch out for
Large franchise / national brandBig-box names, often 50+ crews, heavy marketing budgetInsurance claims, standardized asphalt jobs, financing optionsHigher prices to cover overhead, crew quality varies by which sub shows up
Established local independentFamily-owned, 1–5 crews, 15+ years in San DiegoTile work, custom homes, repeat-customer reliabilityOften booked 4–8 weeks out, less flexible on timeline
Specialty contractor (tile / metal / flat)Focused on one material categoryHOA tile, standing seam metal, commercial flat roofsPremium pricing, may not be the right call for a simple asphalt reroof
Storm chaser / out-of-state crewTrucks in after a wind or hail event, gone within 30 daysNothing. Walk away.Out-of-state plates, P.O. box address, pushy door-knock sales
Lead-network match (like us)Connector service that vets contractors and routes your job to the right oneHomeowners who don’t want to spend a week calling and screeningChoose a network that publishes its vetting criteria (ours are below)

When to walk away mid-process

Sometimes the red flags don’t show up until after you’ve signed. Stop the job if any of these happen:

  • The contractor asks for a second payment before the first milestone is finished
  • A different crew shows up than the one you were promised
  • They strip the entire roof on day one without tarping, knowing rain is forecast
  • They tell you the city inspector “doesn’t need to come out”
  • The CSLB license you verified during sales is different from the one on the actual contract
  • You catch them using leftover materials from another job

California gives you a three-day right to cancel any home improvement contract over $500 (signed at your home), and a seven-day right if you’re 65 or older. Use it. The CSLB takes complaints by phone and online, and they actually investigate.

How Top Pro vets every roofer in our network

This is the marketplace side. We connect San Diego homeowners with vetted local roofers. We don’t perform the work. We’re not the licensee on your job. We pre-screen the contractors so you don’t have to run all four checks yourself for every quote.

What we verify before any roofer enters the network:

  • Active CSLB C-39 license (re-checked monthly)
  • Workers’ compensation and $1M+ general liability (current COI on file)
  • Five-year minimum operating history in San Diego County (no out-of-state plates, no fly-by-nights)
  • Sustained 4.5+ rating across at least two public review platforms
  • Zero open CSLB complaints or judgments
  • Crew on payroll (W-2 or long-term 1099 partners), not day-labor pulled from a parking lot
  • Standard San Diego permit experience across the major jurisdictions (city, county, North County coastal, East County)

When you reach out, we match the job (asphalt reroof in Clairemont vs. tile lift-and-relay in Rancho Santa Fe vs. flat roof TPO in North Park) to a contractor who actually does that kind of work daily. You get one to three quotes, you choose, and you contract directly with the roofer. The license, the work, the warranty, and the relationship are theirs.

Neighborhood-specific guides

We’ve written deeper buying guides for several San Diego sub-markets. If you live in one of these areas, start here:

Frequently asked questions

How do I check if a San Diego roofer is licensed?

Use the CSLB license check tool. Type in the contractor’s name or license number. Verify the license is active, the classification is C-39 (or B for general contractors), workers’ comp is on file, the $25,000 bond is current, and there are no open complaints. Any roofing job over $500 in California requires a licensed contractor.

California law caps the deposit at 10% of the contract price or $1,000, whichever is less (Business and Professions Code §7159.5). A $30,000 reroof can take a $1,000 deposit, not $3,000. Anything more is a violation, and you can report it to the CSLB. The rest of the payment schedule should be tied to milestones (after tear-off, after dry-in, after final inspection).

How many quotes should I get before hiring a roofer?

Three is the standard. Two is the minimum. With three quotes, you can spot the outlier (high or low) and ask why. The middle quote is often the most accurate. If two are within $2,000 of each other and one is 30% under, the cheap one is almost always cutting a corner you’ll pay for later (no permit, lower-grade underlayment, skipped flashing, day-labor crew).

Are storm chasers safe to hire after a wind event?

No. Storm chasers travel between markets following weather events. They show up in San Diego after Santa Ana wind events or atmospheric river storms, work for 30–60 days, and leave before warranty claims come due. The CSLB has issued repeated enforcement actions against out-of-state operators in San Diego County. If a contractor’s truck has Arizona, Nevada, Texas, or Utah plates and they knocked on your door after a storm, decline politely and call a local roofer.

Should I use the contractor my insurance company recommends?

You can, but you don’t have to. Insurance “preferred contractor” networks exist because the contractor agreed to insurance pricing. That can mean tighter timelines and lower margins, which sometimes shows up in workmanship. You have the right under California law to choose your own roofer for any insurance claim. Get one quote from the insurer’s preferred contractor and one or two independent quotes, then compare scope, materials, and warranty side by side.

What does Top Pro’s vetting actually include?

Every roofer in our San Diego network has an active CSLB C-39 license verified monthly, current workers’ comp and $1M+ general liability insurance on file, at least five years of San Diego County operating history, a sustained 4.5-plus rating across two or more public review platforms, zero open CSLB complaints, a W-2 (or long-term partner) crew, and documented permit experience across the major San Diego jurisdictions. When you call, we match the job to a contractor who does that exact work daily and connect you for a free quote.

Ready to skip the screening?

If running four vetting checks across three quotes sounds like a week you don’t have, that’s what we built the network for. Tell us what’s going on with your roof, your neighborhood, and your timeline, and we’ll connect you with a vetted local roofer for a free estimate. Same day in most of San Diego County.

Get connected with a vetted San Diego roofer or call (858) 925-5546.