The on-page SEO items that determine whether your service pages rank are not marketing decisions. They are metadata. A title tag is the label you put on a page so Google knows what it contains. A schema block is structured data you pipe directly to Google's knowledge graph. An internal link is the wiring that tells Google which page is your authority on a topic and how your site's pages connect. Every item in this checklist is a system component, and most service businesses have them missing, duplicated, or broken because nobody checked after the site was built.
This post is part of the SEO, AEO & GEO explained cluster. It focuses specifically on what you can control on your own pages, as opposed to what happens off-site or at the server level. Work through it top to bottom. Each section names the component, explains what it does, and tells you what correct looks like.
What should my title tags actually say?
A title tag tells Google and the searcher what a specific page is about. It should name the service and the location, stay under 60 characters so it doesn't get cut off in search results, and be unique for every single page on your site.
When we audit a new client site, a title-tag crawl is always the first thing we run. We have never once seen a multi-location service business with correct, unique title tags across every page. The pattern repeats without exception: the homepage looks fine, and every service page either has a blank title or a copy of the homepage title. We built a crawler into our audit workflow specifically because this problem is so consistent it became a baseline expectation, not a surprise.
A roofing company came to us with 14 service pages. Every single one was titled "Home - [Company Name]" because whoever built the site duplicated the homepage template and never updated the metadata. From Google's perspective, all 14 pages were competing for exactly the same query (none of them, because the homepage title is not a service query). Once those title tags were rewritten to match the actual service and service area on each page, those pages became indexable as distinct entities.
The format that works for service businesses is simple:
- Service page: "Roof Replacement in Jupiter, FL | [Company]"
- Location page: "Roofing Contractor in Palm Beach Gardens | [Company]"
- Homepage: "[Company] | Roofing Contractor in South Florida"
Keep it under 60 characters if possible. Google rewrites titles that are too long, and the rewrites are often worse than what you wrote.
Do meta descriptions actually affect rankings?
Meta descriptions are not a direct ranking factor, but they control the snippet a searcher reads before clicking, which means they affect your click-through rate from the results page.
Google will sometimes ignore your meta description and pull a different snippet from your page. It does this most often when your meta description doesn't closely match the query someone typed. The fix is to write meta descriptions that mirror the language a customer would use, answer the immediate question (what do you do, where, for whom), and stay under 155 characters.
What to avoid: leaving them blank (Google fills in whatever it finds, usually a navigation label or a paragraph from the middle of your page that makes no sense out of context), duplicating the same description across every page, and stuffing in keywords that don't read like a sentence.
A useful test: read the title tag and meta description as a pair. Together they should answer "what is this page about and why should I click it" in under 10 seconds.
How should I structure my headings?
Your H1 is the on-page headline: one per page, containing the primary service and location, and matching or closely reflecting the title tag. Every other major section gets an H2. Subsections within those get H3s.
The most common mistake we see is a site with no H1 at all (the page title is set in a CSS class, not an actual heading element), or a site where the H1 is the company tagline ("Built on trust. Delivered with care.") rather than the service. Google uses heading structure to understand what a page covers. If your H1 doesn't name the service, you're starting the page in a hole.
For a service page, a clean structure looks like this: H1 names the service and location, H2s cover the specific services offered, the process, the service area, and the FAQ. H3s go inside those sections when needed. This is not a creative exercise. It's a labeling system.
What should the body copy on a service page actually cover?
The body copy on a service page needs to answer the questions a real customer would ask: what does this service include, who is it for, where do you serve, how do I get started. It should use the words customers actually use (not industry jargon), and it should cover the topic well enough that a reader who knows nothing about your service comes away understanding what they would get.
Length is secondary to coverage. A 400-word page that answers every real question beats a 1,200-word page padded with filler. That said, thin pages (under 300 words) almost never rank for competitive queries because they don't give Google enough signal to understand what the page actually covers.
A few specifics worth building in: your service area stated plainly (the cities and neighborhoods you actually serve, not "the greater area"), the types of customers you work with, any credentials or certifications relevant to the service, and a clear statement of what the next step is.
Does image alt text matter for SEO?
Alt text matters for two reasons: accessibility (screen readers use it to describe images to visually impaired users) and search (Google reads it as a signal for what an image shows and what the surrounding content is about).
For service businesses, the most important images to get right are photos of your work. A photo of a completed roof replacement on a home in Stuart, Florida should have alt text that says something like "completed shingle roof replacement on residential home in Stuart FL" rather than "img_4821.jpg" or just "roofing." Every decorative image that adds no information can safely use an empty alt attribute (alt=""), which tells screen readers to skip it.
What to avoid: keyword-stuffed alt text ("best roofer roofing roof repair roof replacement Florida"), blank alt text on images that carry meaning, and using the same alt text on multiple images.
What schema markup does a service business actually need?
Schema markup is the layer of structured data that lets Google read your page as a machine, not just a document. For most service businesses, the types that matter are LocalBusiness (or a subtype like Plumber, RoofingContractor, or GeneralContractor), Service for individual service pages, and BreadcrumbList for your site structure.
The LocalBusiness block should include your business name, address, phone number, hours of operation, the geographic area you serve, and a link to your Google Business Profile. This is the same information Google uses to populate knowledge panels and, increasingly, the AI-generated answers that appear at the top of results. You can read a plain-English breakdown of how schema connects to those AI answers in our guide to llms.txt and schema.
Schema lives in a <script type="application/ld+json"> block in your page's <head>. It's invisible to visitors but fully readable by Google. The format is JSON, and it follows a vocabulary defined at schema.org. You can validate what you've written using Google's Rich Results Test (search for it; it's a free tool at search.google.com).
Correlation between brand mentions and AI search visibility, versus r=0.218 for backlinks. Structured data and consistent brand signals matter far more than links alone for AI citation.
The implication for service businesses is that schema isn't just an SEO box to check. It's part of how your business gets cited in AI-generated answers. The infrastructure view of visibility treats schema as a data pipe to Google, not a one-time optimization task.
How should I handle internal links on a service business site?
Internal links tell Google which pages on your site are related to each other and which one is the authority on a given topic. For a service business, the most valuable internal links are from your homepage and blog posts to your core service pages, and from service pages to each other when the services are genuinely related.
The anchor text (the clickable words in a link) should describe what the destination page is about, not just say "click here" or "learn more." If you link to your roof-replacement page, the anchor text should say something like "roof replacement in Martin County" rather than "this service." Google reads anchor text as a signal about the destination page's topic.
Across the sites we've built and audited, the internal-link pattern that works best for service businesses is a hub-and-spoke structure: the homepage links to each main service category, each category page links to the specific service pages within it, and each service page links back to the category. Blog posts and resource pages link out to the relevant service pages whenever the topic naturally connects. This gives Google a clear map of what your site is about and which pages carry the most weight.
Understanding why your business isn't showing up on Google often comes down to exactly this: the individual pages exist, but nothing is connecting them. A page that no other page links to is effectively an orphan from Google's perspective.
How do I set up Google Search Console and what do I actually look at?
Google Search Console is a free tool that shows you how Google actually sees your site. Setting it up takes about 10 minutes: go to search.google.com/search-console, add your site as a property, and verify ownership (the easiest method is to add a DNS TXT record through your domain registrar, or upload an HTML verification file if you have direct file access).
Once it's live and data has accumulated (usually two to four weeks), the reports worth checking regularly are:
- Performance: the queries your pages appear for, your click-through rate, and your average position. This is where you see whether a title-tag change actually moved the needle on clicks.
- Coverage (now called Indexing): which pages are indexed, which are not, and why. If a page you think is live doesn't appear here, Google hasn't included it. Common culprits are a
noindextag left over from development, or a page that's blocked by your robots.txt file. - Core Web Vitals: the speed and interaction data Google uses as a page-experience signal. Pages flagged here need attention before the rest of the on-page work can reach its full effect.
The most important thing Search Console gives you is confirmation that your changes are working. It's the difference between guessing and knowing.
Does my URL structure matter for SEO?
URL structure matters because it's another signal Google uses to understand what a page covers. Clean URLs that describe the content perform better than auto-generated strings of numbers and characters.
For service businesses, a clean URL looks like: yourdomain.com/services/roof-replacement/ or yourdomain.com/locations/jupiter-fl/. Short, lowercase, hyphen-separated words that match the page topic. Avoid URLs with query strings (?page=4&id=221), dates that will age out, or long strings of words that include filler like "the" and "a."
One practical note: if your site has URLs that are already established and ranking for anything, don't change them without setting up proper 301 redirects. A URL change without a redirect breaks any backlinks or bookmarks pointing to the old address and sends Google a signal that the old page is gone.
Where do I start if I have 20 pages and everything needs work?
Start with the pages that have the best chance of ranking fast. For most service businesses, that means your core service pages: the ones for the services you actually want more inquiries for, in the locations you actually serve. Fix the title tags first, then the H1s, then the meta descriptions. Run Google Search Console to see which of those pages are already getting any impressions, and prioritize those because they're halfway there.
The schema block is worth doing once and doing correctly, because it's a structural piece that affects every page it applies to. We typically add the LocalBusiness schema to the homepage, Service schema to each service page, and BreadcrumbList schema site-wide. Once it's in place and validated, it doesn't need constant attention.
Internal links come last in the first pass, after the individual pages are cleaned up, because you can only link well to pages whose content and purpose are clear. A page titled "Home - [Company Name]" with no defined topic isn't worth linking to yet.
None of this is a marketing campaign. There's no budget to set, no ad to write, no audience to target. It's infrastructure. You build it once, you maintain it when you add new pages, and it stays in place earning you visibility without requiring ongoing spend. That's the same logic we apply to every system we build for service businesses, and it's why we treat SEO, AEO, and GEO as operations work rather than marketing work.