A Guide to Franchise SEO

No Comments
A guide to franchise seo

AI Summary

Franchise SEO is fundamentally a problem of scale: more locations mean more landing pages, more templated content and a far higher chance of technical failure. This Moz guide by Christopher Long of Go Fish Digital sets out the framework his team applies, covering keyword research at scale, localised rank tracking, location page quality, Google Business Profile hygiene and the duplicate content problems that quietly de-index templated pages.

  • Track locally, never nationally: the guide states plainly that for franchises there is no such thing as a national ranking.
  • Location pages templated with only the city name swapped are the single most common failure, and they end up in the not indexed buckets.
  • Use the most specific LocalBusiness schema subtype, such as Plumber or MovingCompany, not the generic parent type.
  • The guide reports a franchise client reaching a 270 percent improvement in first page tracked queries over two years after rebuilding localised landing pages.
Diagram of a franchise seo framework showing five build stages from scaling keyword research to hunting duplicate content, alongside the search console not indexed states where templated location pages fail and a list of specific localbusiness schema subtypes for franchise categories.
Franchise SEO is mostly a scale problem, so the order you build in matters more than any individual tactic.
TL;DR

Nothing in franchise SEO is conceptually hard. Everything in franchise SEO is hard at 400 locations. The tactics that work for a single local business all still work, but every one of them has to survive being multiplied by your location count, run through an ageing CMS, and partly delegated to franchisees who did not sign up to write copy. That is why the ordering below matters: get the measurement layer right first, or you will spend a year improving pages without ever being able to prove it.

The defining constraint of a franchise SEO programme is that you cannot inspect your own site. Nobody reads 600 location pages. That means quality problems hide in aggregate, technical faults propagate instantly through templates, and the only way to know what is happening is to build the measurement before you build anything else.

Scaling keyword research across services and markets

The arithmetic here is the whole problem. The source guide gives the canonical example: a national plumbing franchise offering 20 services across 50 priority markets. That is a thousand service and location combinations, and any keyword research process that involves a human reading a list will fail at that size.

The mechanical answer is to generate the combinations programmatically rather than research them individually. The guide recommends MergeWords for this. Any cross-product generator does the same job, and a few lines of Python will do it if you would rather not paste a client's service list into a third party tool:

import itertools, csv

services = [ln.strip() for ln in open('services.txt')]
markets = [ln.strip() for ln in open('markets.txt')]

with open('tracking_seed.csv', 'w', newline='') as f:
    w = csv.writer(f)
    w.writerow(['keyword', 'service', 'market'])
    for s, m in itertools.product(services, markets):
        w.writerow([f'{s} {m}', s, m])

Two refinements save real money. First, do not track all thousand from day one. Validate volume on a sample of combinations per service, discard the services that show no local demand anywhere, and only then expand. Second, keep the service and market columns in the export rather than a flat keyword list, because those columns become your segments and without them the aggregate reporting cannot be built.

Localised tracking, because national rankings do not exist here

This is the point in the guide that most changes how a franchise programme is run. As it puts it, with franchises there is no such thing as a national ranking, because even queries carrying no geographic modifier, like commercial cleaning, are localised by Google before a user has specified anything.

The consequence is that a national position figure is not merely imprecise, it is measuring something that does not exist. Configure the tracker to a specific city or ZIP code per market, then build a keyword segment per market so you can read first page share by location. The guide's worked example contrasts a location where 67 percent of tracked keywords rank on page one against another where only 36 percent do, and that comparison is the entire value of the setup: it converts an undifferentiated national average into a prioritised list of markets.

LayerWhat you reportWhat it answersCommon mistake
Individual keyword, one marketPosition for one service in one cityDid this specific page moveReporting this to executives, who cannot act on it
Market segmentFirst page share across all tracked queries in one cityHow healthy is this market overallNot building the segments, so the data exists but cannot be sliced
Service segmentFirst page share for one service across all marketsIs this service line weak everywhere, meaning a template problemAssuming every gap is local when it is actually a template gap
National blended averageOne aggregate position numberAlmost nothingTreating it as the headline metric

Segment structure is SEO ProCheck commentary built on the localised tracking approach described in the source guide.

The service segment row is the one teams forget to build, and it is the one that catches template faults. If a service ranks poorly in every market simultaneously, the problem is not local competition, it is that the service template is thin, mis-titled, or not internally linked. That is one fix, not fifty.

Location pages that are not just a find and replace

The guide is blunt about this and it matches what we see: most franchises heavily underinvest here, and the vast majority of local landing pages contain generic content that adds little value, often the same template with the location name replaced. Those pages are the ones that quietly fail to index.

The elements the source recommends for a location page are worth listing precisely, because the difference between a page that indexes and one that does not is usually two or three of them:

ElementWeak versionVersion that earns the page its place
Title tagBrand Name | LocationsService in City, State | Brand Name, with the primary service term the market actually searches
On-page contentTwo paragraphs about the city, pulled from an encyclopaediaWhat this branch does differently: hours, parking, the neighbourhoods served, the local constraint that matters
NAP blockCorporate head office details on every pageThe specific branch address, phone and hours, matching the Google Business Profile exactly
Structured dataGeneric LocalBusinessThe most specific subtype available, such as Plumber or MovingCompany, with address, geo, hours and telephone
ReviewsA carousel of brand-wide testimonials repeated site-wideReviews written about that branch, which are unique text by definition
External linksNoneRelevant local resources: the municipal permit page, the county regulation, the local association
Staff detailNoneNamed practitioners at that location with experience, which the source cites The Joint as doing well

Element list follows the source guide's recommendations. The weak and strong column framing is SEO ProCheck commentary.

The external links row deserves defending because it is the one that gets cut in review. Linking out to a county licensing page or a local water authority costs you nothing and is very difficult for a competitor's templated page to fake, which is precisely why it signals that a human who knows the market wrote the page. The guide points to Lawn Love as an example of doing local specificity well, publishing area-specific data points such as mowing costs and average yard sizes, and ranking across a wide spread of markets as a result.

For the underlying page architecture, our guides to multi-location local SEO pages and to building local landing pages that avoid doorway page problems cover where the quality line actually sits.

Google Business Profile at scale

Where a physical address exists, the profile is not optional: an active, verified Google Business Profile is the entry requirement for map pack visibility. The guide singles out the primary category as the most important field, with secondary categories filled out as completely as possible, followed by name, address, phone, and hours.

At franchise scale the failure mode is not that profiles are missing, it is that they drift. Franchisees edit hours, Google applies suggested edits from users, categories get changed by whoever last logged in. Audit on a schedule rather than once, and prioritise the primary category above everything else, since a miscategorised location is invisible for its core queries no matter how good its landing page is. NAP consistency across the wider web is the companion task, and at this scale it has to be automated through a listings management tool rather than done by hand.

Our Google Business Profile optimisation guide covers the field-by-field detail.

Structured data on the location template

Schema markup is unusually valuable for franchises for one structural reason: it lives on a template, so getting it right once ships the improvement to every location simultaneously. The guide names the common franchise-relevant subtypes, and the instruction is to pick the most specific one your business matches rather than defaulting to the parent type. The source cites Two Men and a Truck marking up location pages with MovingCompany.

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "@id": "https://example.com/locations/raleigh-nc/#business",
  "name": "Brand Name Plumbing, Raleigh",
  "parentOrganization": { "@type": "Organization", "name": "Brand Name" },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Example Street",
    "addressLocality": "Raleigh",
    "addressRegion": "NC",
    "postalCode": "27601",
    "addressCountry": "US"
  },
  "telephone": "+19195550123",
  "areaServed": ["Raleigh", "Cary", "Durham"],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "08:00", "closes": "17:00"
  }]
}

Two details that cause more problems than they should. The @id must be unique per location, or you have declared 400 businesses to be the same entity. And parentOrganization is what connects each branch to the brand, which matters for how the entity is understood rather than for any rich result. Our LocalBusiness schema guide covers the required and recommended properties in full.

Finding the duplicate content before Google does

The source identifies duplicate content as one of the biggest technical issues on large franchise sites, and it is a direct consequence of scaling localised content badly: pages end up too thin to be indexed, or identified as duplicates and dropped. The diagnostic path it gives runs through Search Console, into the excluded reports, specifically Crawled currently not indexed and Discovered currently not indexed. It also suggests Siteliner for identifying duplication at scale.

One clarification worth making, because it wastes a lot of time in franchise programmes: there is no duplicate content penalty. What actually happens is consolidation. Search engines pick one URL to represent a cluster of near identical pages and the rest stop appearing. That is a visibility loss, not a punishment, and it is why the fix is differentiation rather than removal. Our duplicate content guide covers the mechanics.

A quick way to quantify how templated your pages actually are, before you argue about it: crawl the location URLs, strip the location name from each page's main content, and compare the remainder. If the similarity across pages sits above roughly 90 percent once the city name is removed, you do not have 400 pages. You have one page with 400 addresses on it, and Google will treat it accordingly.

Content that reaches customers before they need you

The guide's final strategic point is the one with the longest payback. Location pages capture demand that already exists. Informational content captures the moment before it exists, and for many franchise categories that moment is well defined. The example given is the check engine light: a driver researching the symptom long before deciding to book a garage. The guide notes AutoZone ranking on page one for that query and estimates over 580,000 organic sessions a month to content of that type.

It also flags video as underused, particularly for DIY-adjacent service categories where YouTube results dominate the first page, citing Ace Hardware's project video catalogue as the model. Both points share a structure: the content is produced once, centrally, and benefits every location, which makes it one of the few franchise SEO activities that does not get harder as the location count grows.

What has changed since this guide was published

The source was published on 25 August 2022, and three things have moved since. None of them invalidate the framework, but the terminology and one of the diagnostic paths have shifted.

First, E-A-T became E-E-A-T in December 2022, when Google added Experience to the quality rater guidelines. The guide's advice on demonstrating expertise through named staff, local data points and links to authoritative local resources now maps even more directly onto the framework, since firsthand experience of a specific market is exactly what a templated page cannot fake.

Second, the Search Console Coverage report the guide references has been replaced by the Pages report. The two buckets it tells you to check are still there under Why pages are not indexed, with the same names, so the diagnostic is unchanged even though the navigation is.

Third, AI generated answers now occupy the top of the results for a growing share of informational queries, which changes the calculation on the check engine light style content the guide recommends. That content is now more likely to be summarised than clicked. It is still worth producing, because being the source that gets summarised sustains brand presence, but the traffic model has weakened and you should set expectations accordingly rather than forecasting from 2022 click through rates.

The results the guide reports

The case study attached to the guide is brief and worth quoting accurately rather than inflating. For an environmental services client, the team identified that localised landing page content did not exist for many core geographic areas, limiting the markets the site could appear in. By reviewing old versions of the site they rebuilt many localised landing pages that had previously existed, applying local content best practices, and the client saw a 270 percent improvement in the number of tracked queries ranking on the first page over two years.

Read that metric carefully, because it is not a traffic figure. It measures tracked queries reaching page one, which depends on how many queries were being tracked and how they were chosen. It is a reasonable proxy for visibility expansion across markets and a poor proxy for revenue. The two year timeframe is the more instructive number: franchise location page programmes are slow, and the main reason they fail is that they are cancelled at month eight.

FAQ

What is franchise SEO?

Franchise SEO is the set of initiatives that improve search visibility for a website promoting one overall brand while offering localised pages for many locations of that brand. In practice it means scaling keyword research across service and location combinations, building genuinely localised landing pages, and resolving the duplicate content and indexation problems that multi-location templates create.

Should each franchise location have its own website or a page on the main site?

A page on the main site is the stronger default. Separate franchisee domains split link equity, brand signals and technical control across dozens of properties, and they leave you dependent on individual franchisees to maintain them. A single domain with a well structured location directory concentrates authority and lets one template fix ship to every market at once.

Why are my franchise location pages not being indexed?

Almost always because they are too similar to each other. Check the Pages report in Search Console and look at the Crawled currently not indexed and Discovered currently not indexed buckets. If your templated location pages cluster there, Google has assessed them and decided they add nothing beyond the pages it already has.

Can I create location pages for cities where I have no physical address?

Yes, provided you genuinely serve that area. The source guide makes this point directly and gives the example of a regional law firm with one office covering many surrounding towns. What you cannot do is claim a Google Business Profile at an address you do not occupy, so those pages compete organically rather than in the map pack, and they need real service area information to justify their existence.

What schema markup should franchise location pages use?

The most specific subtype of LocalBusiness that describes the business, not LocalBusiness itself. Plumber, Electrician, AutoRepair, MovingCompany, DryCleaningOrLaundry, MedicalBusiness and Attorney are common franchise fits. Because it is set on the location template, choosing correctly once propagates the improvement across every location you operate.

How do I track rankings for a franchise with hundreds of locations?

Track at the local level and aggregate with segments, because a national ranking figure is meaningless for a business whose results are localised by default. Set your rank tracker to specific cities or ZIP codes, build a segment per market, and compare first page share between markets. That comparison is what tells you where to spend, rather than a single blended number.

Running SEO across dozens or hundreds of locations?

An audit checks your location templates for the duplication, indexation and schema faults that multiply across every market you operate in.

Request an Advanced SEO Audit

Source: https://moz.com/blog/franchise-seo-guide

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog