Local SEO. Indexing
Location Pages Not Indexed? Find the Orphans Your Sitemap Can't Fix
Written by Ram Kr Shukla
Quick answer
Location pages usually go unindexed because nothing on the site links to them, so Google has no path in and treats the sitemap entry as a low-priority hint. Check Search Console first: Discovered, currently not indexed with no last crawl date points to missing links, while Crawled, currently not indexed points to thin or near-duplicate pages. Crawl the site and compare the crawl against the sitemap to find the orphans. Then link each city page from the homepage or services page, a service area hub, the matching service pages and nearby city pages, and request indexing on the hub first.
You built the city pages. Maybe twelve of them, maybe forty. They’re in the sitemap, the sitemap’s submitted, and Search Console says it read the file without errors. Two months later there’s nothing. No impressions, no clicks, and when you inspect one, Google says it has never crawled it.
I see this on local service sites more than any other indexing problem, and the cause is usually dull. Google doesn’t have a link to follow. The pages exist, they’re listed, and they’re stranded. Below is how to confirm that’s what’s happening to yours, how to find every page stuck the same way, and how to wire them into the site so Google actually reaches them. It’s a standard first check in my local SEO services work, because it’s cheap to fix and it blocks everything else.
One scope note. This post is about getting location pages discovered and indexed. Writing them so they don’t read like copies of each other is a separate job, and I’ve covered it in multi-location SEO without duplicate content.
Why a Sitemap Alone Doesn’t Get City Pages Crawled
Google’s documentation is unusually blunt about this. Its guide to building a sitemap calls submitting one “merely a hint” and says it doesn’t guarantee Google will even download the file, let alone use it to crawl the URLs inside. The sitemap overview adds that nothing listed in a sitemap is guaranteed to be crawled or indexed.
Links are the other half. Google’s link best practices say it uses links to find new pages and to judge relevance, and that every page you care about should be linked from at least one other page on your site. Those links have to be plain a elements with an href. A town name inside a map widget doesn’t qualify.
Put those together and the pattern makes sense. A sitemap entry tells Google a URL exists. A link from a page Google already crawls tells it the URL matters and gives it a route. A city page with only the first signal sits at the back of the queue, sometimes for months.
Small sites often assume this is a crawl budget problem. Mostly it isn’t, at least in Google’s sense. Google’s crawl budget guide is written for sites with over a million pages, or over 10,000 pages that change daily. A contractor site with 300 URLs isn’t in that conversation. What it lacks is signals pointing at the city pages.
External links rarely fill the gap either. When I crawled the site of a US roofing and exteriors contractor, only 11 of its 335 URLs had even one referring domain, and the median was zero. Nobody links to a city page from outside. For most location pages, your own internal links are the only votes they’ll ever get.
A sitemap entry is a hint, not a link. If nothing on your site points at a city page, Google has no reason to hurry.
What It Looked Like on a Lawn and Mosquito Site
The clearest case I’ve worked on is a US lawn care and mosquito control company. It had five city pages and a service area hub, all six listed in the sitemap. When I ran URL Inspection on them, four city pages came back as Discovered, currently not indexed, with the last crawl shown as never. The fifth was worse. URL is unknown to Google, even though it sat in the submitted sitemap.
Over six weeks those five pages recorded zero impressions. Not low. Zero, all five.
The city pages weren’t the problem. The hub was. It ran to about 1,000 words and linked to all five correctly, but the hub itself was Discovered, never crawled. Nothing on the homepage linked to it, and neither did the main services page. One missing link at the top of the tree held six pages out of the index.
Two details made the diagnosis easy to trust. First, the rest of the site behaved normally. Three blog posts linked from the archive and from each other went from zero impressions to roughly 700 between them in twelve days. Of five articles published in one month, four were crawled 6 to 13 days after going live. Google was crawling the site just fine. It had no route to the city pages.
Second, the one article from that batch still uncrawled was in the sitemap, on the blog archive and linked from two sibling posts. That’s ordinary lag, and I left it alone. The difference matters. A page with three real links that hasn’t been crawled yet needs patience. A page with no links needs a fix.
I’d already reviewed the pages themselves and none needed rewriting, so the prescription was links and nothing else: a service area block on the homepage, a link from the services page to the hub, the matching service pages linking to their city pages, a footer list, then a request for indexing on each.
While checking, I also found a malformed URL collecting impressions, with the domain repeated inside the path. That’s what you get when someone pastes the domain into a link without the https prefix and the browser reads it as a relative path. One bad href and Google crawls a junk URL instead of the real one. It’s worth searching your page source for on any site where people add links by hand.
Discovered, Crawled or Unknown: Read the Status First
Search Console’s Page indexing report and the URL Inspection tool put each city page into one of a handful of states. They point to different fixes, so read them before you change anything.
URL is unknown to Google
Google hasn’t registered the address at all, per the URL Inspection help. If the page is in your sitemap and still unknown, Google hasn’t acted on that entry yet. Fix: links from indexed pages, then request indexing.
Discovered, currently not indexed
Google knows the URL but hasn’t fetched it, which is why the last crawl date is blank. Its help text blames expected server load. On a 300-page contractor site that’s rarely the real story. Fix: links.
Crawled, currently not indexed
Google fetched the page and decided not to index it for now, and its help page says there’s no need to resubmit. For city pages this usually means near-duplicate copy. Fix: the page itself, or consolidation.
Indexed, but no impressions
This one isn’t an indexing problem. Either few people search that town plus your service, or the page doesn’t match how they phrase it. Fix: a demand and content review.
In the Page indexing report, switch the sitemap filter at the top to All submitted pages so you’re only looking at URLs you’ve asked Google to index. Then open each reason in the table and look for your city URL pattern. If your location pages share a folder, a quick filter on that folder in URL Inspection’s examples list shows the whole group at once.
The fourth state deserves a sentence of its own, because people mistake it for an indexing problem and start resubmitting. If a city page is indexed and still quiet, the question is demand and fit. That’s what a local service page gap analysis in Search Console is for.
How to Find Orphan Location Pages, Step by Step
An orphan page has no internal links pointing to it. For location pages I’d widen that a little: a page is effectively orphaned if the only links to it sit on pages Google hasn’t indexed either. That second kind is the one people miss, and it’s exactly what happened with the hub above. Here’s the process I use.
Step two is the core of it. A crawler follows links the way Googlebot does, so whatever the crawl can’t reach from the homepage, Google probably can’t reach either. Screaming Frog’s sitemap audit tutorial defines orphans the same way: in the sitemap, missing from the crawl. Any crawler that can diff its link graph against your sitemap will do the job.
Expect gaps in the data when you do this at scale. On the roofing contractor’s crawl, 335 URLs came back: 171 indexed, about 17 known not indexed, and about 139 with no coverage status in the export at all. That last group tells you nothing yet. Treat it as a list you still have to inspect, and every location URL in it gets checked before anyone writes a new page.
Step six catches more than you’d think. Plenty of local themes build the service area list as a dropdown or a map that only works with JavaScript, and Google won’t treat those as links. If that sounds like your site, links Google cannot follow walks through how to check rendered links properly.
How to Wire Location Pages Into the Site
Once you know which pages are stranded, the fix is structural. Every city page should be reachable from an indexed page within two or three clicks, through at least two different routes. Two routes matter because one broken template, or one redesign that drops a footer, can strand a page again. If you want the theory behind the click count, crawl depth and how to flatten a site covers it.
A service area block on the homepage
Most local homepages already mention the towns somewhere, often in a sentence like proudly serving these communities. Turn those names into links. The homepage is almost always the most crawled page on a small site, so a link from it is the fastest route you have.
The main services page links to the hub
This was the missing link on the lawn site. If you have a page that lists all your services, it should also send people to the page that lists all your areas. It’s one sentence and one link.
A hub page that lists every area
One page listing every town you serve, each linked with the town name as anchor text. If you serve 40 towns, group them by county or region so the page reads like something a resident would use. Put the hub in the main menu or the footer, so it’s one click from every page on the site. And then check the hub is indexed, because the whole structure hangs off it.
Service pages link to the matching city pages
A mosquito control page can link to the towns where you actually offer mosquito control. A roof replacement page can link to the city pages that mention roof replacement work. Only link where the service is really offered there. These contextual links carry more meaning than a footer list, because the surrounding text tells Google what the city page is about.
A footer list, kept short
A footer list of towns puts a link to each city page on every page of the site. For a dozen towns that’s fine. For 60 it turns the footer into a wall, so link the hub from the footer instead and let the hub carry the list.
Nearby area links between city pages
Each city page links to two to four neighbouring towns you also serve. That builds a mesh, so once Google crawls one city page it can reach the others without going back to the hub. It also helps the visitor who lives on a border and isn’t sure which page applies to them.
Job write-ups and blog posts
A completed job in a specific town is a natural place to link that town’s page. So is a blog post about a local problem. Contractors who publish project pages get this for free, and contractor project pages with job photos covers how to build those so they rank on their own.
For the anchor text, use the town name, or the town plus the service where it reads naturally. Google’s link guidance asks for descriptive anchors, and a list of linked town names is about as descriptive as it gets. My broader approach to internal linking without new backlinks applies here too, just on a smaller site.
Request Indexing, in the Right Order
Only after the links are live. Inspect the hub first and request indexing there, because once it’s crawled Google finds every link on it. Then work down the city pages. Google’s URL Inspection help says there’s a daily limit on indexing requests and that a request doesn’t guarantee the page gets indexed. It also says indexing typically takes a day or so, though it can take much longer.
If you use Validate Fix in the Page indexing report, Google says validation typically takes up to about two weeks. Let it run. Clicking it again doesn’t speed anything up.
Two things not to bother with. Resubmitting the sitemap with nothing else changed does very little. Google ignores the priority and changefreq values in a sitemap, and only uses lastmod when it’s consistently accurate, so bumping lastmod on pages you haven’t touched teaches Google to ignore it. And requesting indexing on a page marked Crawled, currently not indexed won’t change the answer. Google’s help says there’s no need to resubmit those. Fix the page.
Doorway Page or Useful Location Page?
Before you link 40 city pages from your homepage, be honest about what they are. Google’s spam policies list doorway abuse, and two of the examples describe a lot of local sites: pages aimed at specific regions or cities that funnel users to one page, and near-identical pages that look more like a set of search results than a browseable structure.
Linking doesn’t fix a doorway. If the pages are city swaps with the same 400 words and a different name in the H1, getting them crawled will often just move them from Discovered to Crawled, currently not indexed. That’s Google answering the quality question for you.
Four questions I ask before linking a location page
- Take the town name out. Would the page still tell a resident something your main service page doesn’t? Availability, scheduling, local conditions, jobs done there and reviews from there all count.
- Do you actually serve it? A page for a town outside your real service area is the purest kind of doorway, and it’s a bad lead source anyway.
- Does the page only exist to push people to the contact form? A page whose whole job is to pass visitors along matches the funnel example in Google’s policy.
- Would you link it from the hub with a straight face? If a visitor clicking through would bounce straight back, Google will probably reach the same view.
If most of your pages fail those questions, consolidate before you wire anything. Fewer, stronger regional pages with the hub carrying the town list will do better than 40 thin ones. The writing side is in the multi-location guide, and if you’re generating pages at real scale, programmatic SEO without a penalty covers the guardrails.
When It’s Crawled, Currently Not Indexed Instead
That’s a different problem. Google came, read the page and declined. On location pages the usual reasons are near-duplicate body copy, a page that’s mostly boilerplate with a paragraph of local text, a canonical tag pointing somewhere else, or a city page that overlaps heavily with your main service page.
Check URL Inspection for the user-declared canonical and the Google-selected canonical. If Google picked a different URL as canonical, it’s treating your city page as a duplicate of that one, and no amount of linking will change that until the page is clearly different. Your choices are to rewrite it with real local substance, merge thin towns into a regional page, or accept that some towns don’t justify a page of their own.
It’s also worth checking how many of these you have. A site where half the location pages sit in Crawled, currently not indexed has a template problem, and that’s closer to index bloat than to a linking gap.
What to Expect After You Fix the Links
Crawling moves first. The last crawl date in URL Inspection fills in, and the page drops out of the Discovered list. On the lawn site, articles with ordinary links were crawled 6 to 13 days after publishing, which is a fair benchmark for a small site with little authority. If a properly linked city page is still uncrawled after three or four weeks, go back to step four and check the parents again.
Impressions come later and they’ll be modest. A city page for a town of 20,000 people won’t ever show thousands of impressions, and it doesn’t need to. Judge it on whether it’s indexed and whether it appears for that town plus your service. Clicks from those searches are close to the phone ringing.
For a service area business, remember the map pack sits above all of this. The city page supports your Google Business Profile and catches the searches the pack doesn’t, which is why the two get planned together in local and GMB SEO for service businesses. Once the pages are indexed, the Search Console reports most people skip will show you which ones are pulling their weight.
More for local service businesses: finding service page gaps in Search Console, project pages that rank, and writing location pages that don't compete. Related technical reading: crawl depth and internal linking. This is core to my local SEO, roofing SEO and construction SEO work.
Location Pages Not Indexed: FAQ
Why are my location pages not indexed?
Usually because nothing on your site links to them, or the only page that does isn’t indexed either. A sitemap tells Google the page exists, but Google treats that as a hint. Check URL Inspection: if the last crawl says never and there’s no referring page, add links from indexed pages.
Is a sitemap enough to get service area pages indexed?
No. Google’s own documentation says submitting a sitemap doesn’t guarantee the URLs in it will be crawled or indexed. Small sites that link every page internally often don’t need a sitemap at all. Treat the sitemap as backup and internal links as the main route.
What does Discovered, currently not indexed mean for location pages?
Google has found the URL, usually from the sitemap, but hasn’t crawled it yet, so there’s no last crawl date. On small local sites the usual cause is weak or missing internal links. Link the page from indexed pages, then request indexing.
What is the difference between Discovered and Crawled, currently not indexed?
Discovered means Google hasn’t fetched the page yet, which points to discovery and links. Crawled means Google fetched it and chose not to index it, which points to the page itself, often thin or near-duplicate copy. The first needs links, the second needs a better page or consolidation.
How do I find orphan pages on my site?
Crawl the site from the homepage with your XML sitemap attached and compare the two lists. URLs that are in the sitemap but weren’t reached through links are orphans. Screaming Frog shows them under the Orphan URLs filter after Crawl Analysis. Then confirm in URL Inspection.
How many internal links does a location page need?
There’s no fixed number. Aim for at least two routes from pages Google already crawls, such as a service area hub and the matching service page, and keep the page within two or three clicks of the homepage. Links from unindexed pages don’t help.
Are location pages doorway pages?
Not automatically. Google’s spam policy targets city pages that funnel visitors to one destination and near-identical pages built only to rank. A location page that covers what you do in that town, with local detail, proof and real availability, is a useful page.
How long does it take Google to index location pages after fixing links?
Often days to a couple of weeks once the pages are linked from crawled pages. Google says requested indexing typically takes a day or so but can take longer, and Page indexing validation can take about two weeks. Check the last crawl date before judging.
City pages stuck in Discovered?
I'll crawl the site, diff it against your sitemap, inspect every location URL and hand you the exact links to add, page by page. For roofing and construction firms, the same audit sits inside my trade SEO work.
Local SEO ServicesRoofing SEOTags: Local SEOLocation PagesIndexingInternal LinkingSearch Console
Written by Ram Kr Shukla
SEO consultant and Fractional Chief Digital Officer with 20+ years in SEO and growth across 50+ brands. Google Analytics and Google Ads certified. Runs local SEO for US service businesses, including roofing, lawn care and 9 dental practices, and works daily in Search Console and Screaming Frog.




