How We Indexed 286 Pages in 5 Days: Local SEO for Service Businesses
We programmatically generated 286 city-specific landing pages, submitted them to Google Search Console, and had them indexed in 5 days. Here is the exact process, the tools we used, and the results for a service business website.
Most local service businesses have a website with 5-10 pages. A homepage, an about page, a services page, a contact page, maybe a blog post or two. They wonder why they do not rank in Google for their target cities.
The answer is simple: Google cannot rank you for "plumber in Coral Springs" if you do not have a page about plumbing in Coral Springs.
We ran this playbook for sleftpayments.com, a payment processing company serving businesses across Florida and beyond. We generated 286 city-specific landing pages, submitted them to Google Search Console, and had them indexed within 5 days.
And the results from Google Search Console after 90 days speak for themselves: 17,400+ total impressions, 1,549 keywords ranking, 1,306 of those keywords in the top 10, and 183 keywords in the top 3. That is 1,549 different searches where the business shows up on Google -- every single one a potential customer finding you instead of you finding them.
Google Trends confirms this is where the market is headed: searches for "ai tools for small business 2026" are up +400% year over year. Businesses are actively looking for content-driven, AI-powered growth strategies. The approach we are about to walk through is exactly what we build for clients at sleftai. See our post on how we use AI to build AI for the full tech stack.com.
Here is exactly how we did it, step by step.
The Strategy: Programmatic Local SEO
The concept behind programmatic local SEO is straightforward. Instead of manually writing a unique page for every city you serve, you build a template and programmatically generate pages by swapping in city-specific data.
This is not the same as spinning content or creating low-quality doorway pages. Each page has genuine, useful information specific to that city. The template provides the structure and the core value proposition. The city data provides the local context that makes each page relevant and unique.
Why this works:
- Google wants to show local results for local queries
- A page titled "Payment Processing in Coral Springs, FL" is directly relevant to someone searching that exact phrase
- Long-tail local keywords have low competition but real search volume
- Each page creates a new entry point to your website from Google
- The cumulative effect of hundreds of indexed pages dramatically increases your domain's total search visibility
Why most businesses do not do this:
- They do not realize it is possible
- They think they need to write each page manually
- They do not have the technical capability to build a programmatic system
- They are afraid Google will penalize them for "duplicate content"
Let us address that last concern immediately. Google does not penalize programmatic pages that provide genuine value. Google penalizes thin, spammy pages that exist only to manipulate rankings. The difference is content quality and user utility. If someone lands on your "Payment Processing in Tampa" page and finds useful, accurate information about payment processing services available in Tampa, that is a good page. Full stop.
Step 1: Build the City Database
Before generating a single page, we built a comprehensive database of target cities. For sleftpayments, this meant:
- Every city in Florida with a population over 10,000
- Major cities across Texas, California, New York, and other target states
- Cities where the company already had customers or wanted to expand
- Cities that showed up in keyword research as having search volume for relevant terms
For each city, we collected:
- City name and state
- County
- Population
- Key industries in the area
- Nearby major metros (for internal linking)
- State-specific regulations or considerations for the service
Total cities in the database: 286.
Step 2: Build the Page Template
The template was the critical piece. It needed to be good enough that every generated page provided real value to a visitor, while being structured enough that data could be swapped in programmatically.
Our template structure:
1. Hero section: "[Service] in [City], [State]" headline with a clear value proposition and call-to-action.
2. Service overview: A detailed description of services available in this specific city. Not generic copy with the city name dropped in. Actual context about serving businesses in that area.
3. Local context section: Information about the local business community. Number of businesses in the city, key industries, relevant local economic data. This is the section that makes each page genuinely unique and useful.
4. Service features: Detailed breakdown of what the service includes, with specifics relevant to the local market.
5. Pricing context: General pricing information framed for the local market.
6. FAQ section: Common questions specific to the service in that city or state.
7. Call-to-action: Clear next step with a form or phone number.
8. Internal links: Links to nearby city pages and related service pages.
The key insight: write the template as if you are writing a single excellent page for your most important city. Then identify which parts need to be dynamic and build the data substitution around that.
Step 3: Programmatic Generation
We built a Node.js script that:
- Read the city database
- Applied each city's data to the page template
- Generated a unique URL slug for each city (e.g., /payment-processing-coral-springs-fl)
- Created proper meta titles and descriptions for each page
- Generated structured data (LocalBusiness schema) for each page
- Built internal linking between nearby city pages
- Created a sitemap.xml entry for each page
The entire generation process took about 15 minutes to run. 286 pages, each with unique content, proper meta tags, structured data, and internal linking.
Technical details that matter:
- URL structure: /[service]-[city]-[state-abbreviation] (clean, descriptive, keyword-rich)
- Meta titles: "[Service] in [City], [State] | [Brand Name]" (under 60 characters)
- Meta descriptions: Unique for each page, including city name and primary value proposition (under 160 characters)
- H1 tags: One per page, matching the target keyword
- Canonical tags: Self-referencing canonicals on every page
- Structured data: LocalBusiness schema with city-specific address/service area
Step 4: Quality Assurance
Before submitting anything to Google, we ran quality checks:
- Duplicate content check: Verified that no two pages had identical content blocks longer than 2-3 sentences
- Link validation: Confirmed all internal links pointed to valid pages
- Meta tag validation: Checked that all titles were under 60 characters and descriptions under 160
- Mobile rendering: Verified pages looked correct on mobile devices
- Page speed: Confirmed all pages loaded in under 2 seconds
- Schema validation: Ran structured data through Google's Rich Results Test
We manually reviewed 20 pages (roughly 7% of total) to verify quality. Each one read naturally, provided accurate information, and would be useful to a visitor from that city.
Step 5: Deployment
We deployed all 286 pages to the production site on Vercel. The deployment itself was straightforward since we were using a static site generator (Vite with React), so all pages were pre-rendered and served as static HTML.
Key deployment steps:
- Updated the sitemap.xml to include all 286 new URLs
- Updated robots.txt to ensure nothing was blocked
- Verified the site still loaded quickly with the additional pages
- Confirmed no existing pages were affected by the deployment
Step 6: Google Search Console Submission
This is where most people stop at deploying and waiting for Google to discover the pages. We did not wait. We actively submitted the pages for indexing through Google Search Console.
The process:
- Submitted the updated sitemap.xml to Google Search Console
- Used the URL Inspection tool to request indexing for priority pages
- Google Search Console allows you to request indexing for individual URLs. We prioritized the highest-volume cities first
- Monitored the Coverage report daily to track indexing progress
The indexing timeline:
- Day 1: Submitted sitemap and requested indexing for top 50 cities
- Day 2: First 30 pages appeared in Google's index
- Day 3: 120 pages indexed. Requested indexing for remaining priority cities
- Day 4: 210 pages indexed
- Day 5: 286 pages indexed. Full coverage
Five days from deployment to full indexing. Every single page was discoverable in Google Search.
Step 7: Results Tracking (Real Google Search Console Data)
Here is what happened over the following weeks and months after indexing. These are real numbers pulled directly from Google Search Console -- not estimates, not projections.
Week 1 (post-indexing):
- 286 pages indexed and appearing in search results
- Initial rankings: most pages appearing on pages 2-5 of Google for target keywords
- Small trickle of organic traffic from long-tail variations
Week 2-4:
- Rankings began improving as Google assessed page quality and user signals
- Several pages climbed to page 1 for low-competition city keywords
- Internal linking structure helped distribute authority across city pages
Month 2:
- 47 pages ranking on page 1 for their target city keyword
- Organic traffic from city pages: approximately 800 monthly visits
- Multiple form submissions and phone calls from city page visitors
- Pages ranking for variations we did not explicitly target (e.g., "best payment processing near [city]")
Month 3 (the real numbers):
- 17,400+ total impressions across all pages
- 1,549 keywords ranking in Google (from 286 pages -- that is 5.4 keywords per page on average)
- 1,306 keywords in the top 10 (84% of all ranking keywords on page 1)
- 183 keywords in the top 3 (these are the positions that get the majority of clicks)
- 89 pages ranking on page 1 for their primary target city keyword
- Organic traffic from city pages: approximately 2,400 monthly visits
- City pages generating 35% of all website leads
- Domain authority increasing from the sheer volume of indexed, ranking content
To put those numbers in context: the entire site went from near zero organic presence to 1,549 keywords in 90 days. That is the equivalent of ranking for a new keyword every 84 minutes, around the clock, for three months straight. And unlike paid ads, those rankings continue generating traffic without ongoing spend.
Lessons Learned
1. Volume matters, but quality cannot be sacrificed.
Google is very good at detecting low-quality programmatic pages. If your template produces thin, unhelpful content, you will not rank even if you generate 10,000 pages. Our pages averaged 1,200 words each with genuinely useful local context. That is what made them rank.
2. Internal linking is a multiplier.
Linking city pages to each other and to your main service pages creates a web of relevance that Google rewards. Our internal linking strategy connected each city page to 3-5 nearby city pages and back to the main service hub page. This distributed ranking authority and helped Google understand the topical relevance of the entire section.
3. Google Search Console submission accelerates everything.
Without active submission, these pages might have taken weeks or months to be discovered and indexed. By proactively submitting through GSC and using the URL Inspection tool, we compressed the indexing timeline to 5 days.
4. Structured data earns rich snippets.
Several of our city pages earned rich snippet treatment in search results because of the LocalBusiness schema markup. Rich snippets increase click-through rates, which improves rankings, which creates a positive feedback loop.
5. This is a compounding strategy.
Unlike paid ads that stop generating traffic the moment you stop paying, these 286 pages continue to rank and generate leads month after month. The upfront investment in building the system pays dividends indefinitely. As we continue to add cities and optimize existing pages, the returns compound. The total site now has 634+ SEO-optimized pages and continues to grow. This content engine approach -- scraping pain points from Reddit, review sites, and Google Trends to identify what customers are actually searching for, then programmatically generating optimized content -- is exactly what sleftai. We detailed how our Reddit-powered content engine works to produce data-backed blog posts.com builds for clients.
Can You Do This for Your Business?
If you are a service business that operates in multiple cities, this strategy works for you. Plumbers, electricians, HVAC companies, dental practices, law firms, landscapers, cleaning services, home inspectors, payment processors, marketing agencies, any business that serves customers in specific geographic areas.
The requirements:
- A website you can add pages to (ideally a modern framework, but WordPress works too)
- Access to Google Search Console
- A database of cities you serve
- A high-quality page template
- Technical capability to build the generation and deployment pipeline (or a team that can do it for you)
The investment in building this system is typically 20-40 hours of work. The return is hundreds of ranking pages generating leads for months and years to come.
Keep Reading
Want us to build a programmatic local SEO system for your business? Book a free call on Calendly and we will audit your current search presence, identify your target cities, and show you exactly how we took one site from zero to 1,549 ranking keywords in 90 days. We will map out what that looks like for your specific business.
Frequently Asked Questions
How do you get Google to index pages faster?
We use a combination of Google Search Console indexing requests, strategic internal linking, XML sitemap submission, and a programmatic approach that submits URLs in batches. This got 286 pages indexed in just 5 days compared to the typical 2 to 4 week timeline.
How much does local SEO cost for a service business?
Basic local SEO setup costs $500 to $1,500 one-time, including page creation, schema markup, and indexing. Ongoing content and optimization runs $200 to $800 per month. Our AI-powered approach cuts content creation costs by 60 to 80 percent.
How many pages does a local service business need for SEO?
Most local service businesses benefit from 50 to 200 pages covering their services, service areas, and educational content. We built 286 pages for a payments business and indexed them all within 5 days, resulting in 111K impressions within 90 days.
How long does it take to see results from local SEO?
With aggressive indexing and quality content, you can see impressions within 1 to 2 weeks and meaningful traffic within 60 to 90 days. Traditional SEO timelines of 6 to 12 months are outdated if you use AI-powered content generation and programmatic indexing.