Local SEO Specialist (WordPress) — Map Pack + AI Overviews — Full Time

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$300-700

HOURS PER WEEK

50

DATE UPDATED

Aug 14, 2026

JOB OVERVIEW

We manage a portfolio of 100+ WordPress lead generation websites in the US local services market. Every site targets its own city and needs to rank locally — Map Pack, local organic, and now inside Google's AI Overviews.

We're looking for one person to own local SEO across this portfolio. This is not a one-off project. It's a long-term seat with steady work, and the right person will grow into managing their own team as we scale.

Important: with 100+ sites, this role is about systems, not hand-crafting one site at a time. If you think in templates, batches, checklists, and spreadsheets, you'll do well here. If you can only work site-by-site, this will overwhelm you.

What you'll be doing

On-Page SEO

Title tags, meta descriptions, H1–H3 structure, internal linking across city and service pages
Keyword mapping — one primary intent per page, no cannibalization between city pages
Building and improving city + service landing pages at scale
Image optimization: alt text, file naming, compression, geo-relevance
Local business schema, service schema, FAQ schema

Technical SEO

Core Web Vitals, page speed, mobile usability
Crawl and index management — sitemaps, robots,txt, canonicals, redirects
Fixing broken links, orphan pages, thin and duplicate content
Regular technical audits across the portfolio with prioritized fix lists

Content

Rewriting and upgrading existing page content so it actually reads like a local business wrote it — not generic AI filler
Service pages, city pages, FAQs, blog posts
Sourcing and replacing stock-looking photos with images that fit the local market
You'll have AI tools available, but we expect edited, human-quality output. We can tell the difference.

Off-Page SEO

Citation building and cleanup — NAP consistency across all directories
Google Business Profile optimization: categories, services, descriptions, posts, photos, Q&A, review strategy
Local link building — niche directories, local sponsorships, relevant outreach
Monitoring and cleaning up bad or spammy backlinks

AI Search / AI Overviews

Structuring content so it gets pulled into AI Overviews and AI-generated answers
Direct-answer formatting, question-based headings, entity clarity, strong schema
Tracking which queries our sites appear in across AI results and adjusting
Staying current — this area changes fast and we want someone who follows it closely

Reporting

Weekly progress updates in a shared tracker
Rank tracking by city and keyword
Monthly summary: what moved, what didn't, what's next
What we're looking for
3+ years of hands-on local SEO — real Map Pack and local organic results, not just theory
Strong WordPress working knowledge — Elementor or similar page builders, plugin management, comfortable making changes without breaking a site
Solid grasp of Google Business Profile optimization and local ranking factors
Experience with US-based local businesses specifically
Excellent written English — you'll be writing customer-facing content
Comfortable working across many sites at once using systems and repeatable processes
Self-directed. You'll get direction and priorities, but we're not going to manage every task.
Reliable daily availability with at least a few hours overlapping US business hours
Nice to have (not required)
WordPress design skills — page layouts, theme customization, redesigning outdated sites
Basic HTML/CSS
Experience with BrightLocal, Whitespark, Ahrefs, or SEMrush
Experience running or supervising a small SEO team
Any experience in the auto transport, moving, or home services niches

What we provide

All tool subscriptions and software licenses
Clear priorities, templates, and existing processes to build on
Long-term stable work — we've been doing this for years and we're growing

HOW TO APPLY

Applications that skip these steps get deleted. This is our first filter.

1. Put this exact phrase in your subject line: LOCAL-100 SEO

2. Answer these four questions in your application:

Give one website you personally worked on that ranks in the Map Pack. Include the city and the keyword it ranks for.
A client's Google Business Profile ranks #1 in the Map Pack, but their website doesn't show up in local organic results for the same keyword. What are the first three things you check?
You need to update title tags and add schema across 100 WordPress sites. Walk us through how you'd approach it — realistically, in a way that doesn't take six months.
What is one thing you've changed about how you do SEO in the last 12 months because of AI Overviews?

3. Tell us your expected monthly rate and your available hours in Philippine time.

Short, direct answers are fine. We care about how you think, not how long your application is.

Thanks for reading — we look forward to hearing from you.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0110
Total Execution Time  0.0122
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,320 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Local-SEO-Specialist-WordPress-Map-Pack-AI-Overviews-Full-Time-1709609
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0058 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1709609
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 965279
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1709609
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-17',ej.date_added) duration_daysDATEDIFF('2026-08-17',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-08-17',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1709609' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1709609 
0.0008   UPDATE employer_jobs SET hit_counts '***Aug-14-2026=103***Aug-15-2026=242***Aug-16-2026=2***Aug-17-2026=1' WHERE job_id'1709609'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Aug-2026=348' WHERE job_id'1709609'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1709609' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1709609 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '965279'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)