One page for everything you do
Roof repair, roof replacement, gutters, siding and storm damage all crammed onto a single "Services" page. Google has one page to rank for five different searches, so it ranks it well for none of them. Every job you want to be called about needs its own page, with its own detail.
No pages for the towns you drive to
People don't search "roofing." They search "roof replacement in Beaver Falls." If the only town on your site is the one on your business license, you're absent from results in the other nine towns in your radius — even though you work in all of them every week.
Template copy that says nothing
"Quality workmanship. Free estimates. Family owned and operated." That paragraph is on ten thousand contractor sites. It gives search engines nothing to match a query against, and it gives a homeowner no reason to pick you over the next tab they have open.
Paying for clicks you should get for free
When the site doesn't rank, ads become the only tap that works — and the moment you turn the spend off, the calls stop. Search pages keep working after they're built. The point isn't to kill your ads; it's to stop them being the only thing holding the pipeline up.