On-page SEO for contractors covers every ranking signal Google can read directly on a website — title tags, header structure, meta descriptions, URL format, internal linking, and page content depth. In the Bay Area contractor market, on-page optimization is the difference between a site that Google indexes and ignores versus a site it ranks prominently for the searches that produce calls. Most contractor websites have significant on-page problems. Fixing them produces faster ranking movement than any other single tactic — because you cannot build a top three ranking on a structurally weak foundation.
Title tags that rank and click
The title tag is the single most important on-page SEO element for contractor service pages. It tells Google what the page is about and appears as the clickable headline in search results. A properly structured contractor title tag includes the primary keyword, the city, and a trust signal — in that order.
Good format: "HVAC Contractor San Jose | Licensed & Reviewed | [Company Name]" — the keyword is first, the city is second, the trust signal ("Licensed & Reviewed") drives clicks, and the brand name appears at the end. A common mistake is leading with the brand name: "[Company Name] | HVAC Services | San Jose California" — this pushes the keyword to the middle and wastes the most-weighted position in the tag. Every service page and city page should have a unique title tag. Duplicate title tags — the same title appearing on multiple pages — send a weak signal about each page's specific topic.
Header structure: H1, H2, H3 rules
Every page should have exactly one H1 tag. That H1 should contain the primary keyword for the page, and it should appear at the top of the visible content — not buried below a hero image with no alt text. For a city service page, the H1 format should be: "[Primary Service] in [City]: [Value Statement]." For a blog post, the H1 is the article title. A page with no H1, multiple H1s, or an H1 that does not match the title tag is sending Google conflicting signals about what the page is definitively about.
H2 tags organize the content into topical sections. Each H2 should address a specific subtopic related to the page's primary keyword and service. H2s that include keyword variations, city names, or specific service subtypes add topical depth that helps Google understand the full scope of the page's content. H3 tags go one level deeper — specific details, steps, or examples within an H2 section. Most contractor pages do not need H4 or deeper heading levels.
Meta descriptions that drive clicks
Meta descriptions do not directly influence rankings, but they determine whether a homeowner clicks on the search result or moves to the next one. The click-through rate from a search result is an indirect ranking signal — pages that homeowners consistently click on and stay on rank better over time. A contractor meta description should include the primary keyword (for bold formatting in search results when it matches the query), a concrete value proposition, and a soft call to action.
Example for a San Jose HVAC service page: "Licensed HVAC contractor serving San Jose homeowners since 2015. Same-day service available. 4.9 stars, 80+ Google reviews. Call today for a free estimate." Every sentence does work: keyword appearance, trust signal, urgency, social proof, and CTA. Meta descriptions should be 140–155 characters. Longer gets cut off. Shorter misses click-driving opportunities.
URL structure for contractor sites
URLs should be short, descriptive, and keyword-containing. A service page for AC repair in Oakland should be at /ac-repair-oakland/ — not /services/hvac/air-conditioning/locations/oakland-ca-94601/repair-service/. Short URLs with the keyword and city in them rank better, display better in search results, and are easier for homeowners to type and share. City names should appear in the URL of city pages. Service names should appear in the URL of service pages.
Internal linking that passes authority
Internal links are the mechanism that distributes page authority across a contractor website. The homepage has the most authority. Links from the homepage to service pages pass that authority downward. Links from service pages to city pages pass it further. Pages that receive no internal links from other pages on the site — orphaned pages — rank much more slowly, regardless of how good their content is.
For contractor sites, the internal linking priority is: homepage → primary service pages → city pages → blog posts that support those city and service pages. Every blog post should link to at least one relevant service page or city page — not just to other blog posts. The local SEO for contractors program includes an internal link audit as part of the foundational optimization phase because the linking structure is almost always incomplete on sites that have not had professional SEO work.
Page content: length, depth, and relevance
Service pages for Bay Area contractor searches typically need 400 to 800 words of genuinely useful content to rank competitively. City pages need 300 to 600 words with real local context — not just the city name repeated. Blog posts need 800 to 1,400 words with substantive information that answers the question the homeowner is searching for.
The content quality bar in 2026 is specifically about depth and local specificity. A page with 600 words of genuine information about HVAC repair in San Mateo — including the city's housing stock, climate conditions, permit considerations, and local competitive context — outranks a page with 1,200 words of generic HVAC content where the city name is swapped in. Local relevance is not a keyword density exercise — it is demonstrable knowledge of the specific market.
The full on-page checklist
For every contractor service and city page: unique title tag with keyword + city; one H1 with primary keyword; meta description 140–155 characters with keyword and CTA; short, keyword-containing URL; at least one H2 with keyword variation; 400+ words of locally relevant content; internal links to at least two related pages; alt text on all images; phone number and address visible on the page for local schema.
A free SEO audit runs this checklist against every page on a contractor's site and identifies which pages are most critically impacting rankings — because fixing the highest-traffic pages with the worst on-page signals produces the fastest visible ranking movement. SEO packages for contractors include the on-page optimization as the foundational phase before any content production or link building begins, because building on a weak on-page foundation wastes every other investment that follows.
Get a free audit and see exactly what’s holding your rankings back.