SEO Expert & Website Designer

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

TYPE OF WORK

Part Time

SALARY

1250

HOURS PER WEEK

25

DATE UPDATED

Jul 10, 2026

JOB OVERVIEW

Location: Remote · Type: Part-time now, with full-time opportunity · Reports to: Owner / Lead Strategist

Who We Are
Scale Local is the marketing department for local service businesses: roofers, contractors, law firms, dentists, and other operators who do great work but are hard to find online. We don't sell tactics. We build connected growth systems. SEO that wins local intent, Google Business Profiles that rank, websites that capture leads, and automations that make sure no lead slips through.

Our philosophy is "The Human Touch," meaning modern technology and AI paired with real human judgment. We use AI to do better work, not to replace the thinking.

The Role
This is an SEO-first seat. You own keyword research, competitive and gap analysis, on-page and technical SEO, local search, and the new frontier of getting our clients cited and ranked in AI search (Perplexity, ChatGPT, Google AI Overviews).

You'll also implement your own changes on client WordPress sites: meta, content, internal links, schema, and page tweaks. So light hands-on web ability is required. This is not a web design role. Design is handled. We need you comfortable enough in WordPress/Elementor to ship the changes your strategy calls for.

It starts part-time, with a clear path to full-time as we grow the client base. The right person grows into a core technical seat on the team.

What You'll Do
Keyword research and strategy: map buyer intent for local services, build out targeting for service and location pages
Competitive and gap analysis: know exactly where clients sit vs. competitors and what closes the gap
On-page SEO: titles, metadata, headings, internal linking, content structure
Technical SEO: crawlability, indexation, site speed and Core Web Vitals, schema/structured data (JSON-LD), redirects, canonicals
Local SEO: service/location pages, Google Business Profile optimization, map-pack ranking, review velocity
AI search optimization (AEO): structure content and entities so clients get cited by AI engines, not just classic search
Reporting: track rankings, map-pack movement, and organic performance, and explain what's moving and why
Implement changes in WordPress/Elementor (no design work, just execution of SEO changes)
Tools
You should already work fluently in a real SEO research suite such as Semrush or Ahrefs (or equivalent). We can provide access if needed, but you need to know how to drive these tools, not learn them on the job. GA4, Google Search Console, and rank-tracking software round out the stack.

You're a Fit If You
Have a genuine command of the SEO landscape. You understand why things rank, not just checklists.
Know current technical SEO best practices cold
Understand how to rank in both classic and AI search, and how the two differ
Use AI to amplify your work, not do it for you. You can prompt and leverage tools like ChatGPT and Claude, but you bring the strategy, judgment, and quality control. We are not hiring someone who pastes everything into an AI and ships the output.
Can implement your own SEO changes in WordPress (Elementor a plus)
Write clear English at a B level minimum (client-facing reports and on-site copy)
Bonus Points
Experience in home services, legal, or medical local marketing
Basic PHP and comfort with WordPress code snippets and the REST API
GoHighLevel or CRM familiarity
Light copywriting chops
Why Scale Local
Real ownership of client outcomes. Your work generates calls and booked jobs, not just impressions.
A systems-driven team that thinks in connected engines, not one-off tasks
Part-time now with genuine room to grow into full-time

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0032
Controller Execution Time ( Jobseekers / Job )  0.0271
Total Execution Time  0.0311
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,584 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/SEO-Expert-Website-Designer-1671706
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0174 seconds)  (Hide)
0.0009   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1671706
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 615088
 LIMIT 1 
0.0021   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1671706
AND `misc`.`idIS NULL 
0.0010   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-12',ej.date_added) duration_daysDATEDIFF('2026-07-12',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-07-12',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1671706' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1671706 
0.0029   UPDATE employer_jobs SET hit_counts '***Jun-18-2026=327***Jun-19-2026=201***Jun-20-2026=31***Jun-21-2026=23***Jun-22-2026=50***Jun-23-2026=37***Jun-24-2026=16***Jun-25-2026=13***Jun-26-2026=12***Jun-27-2026=6***Jun-28-2026=5***Jun-29-2026=14***Jun-30-2026=16***Jul-01-2026=9***Jul-02-2026=7***Jul-03-2026=8***Jul-04-2026=1***Jul-05-2026=8***Jul-06-2026=11***Jul-07-2026=10***Jul-08-2026=5***Jul-09-2026=2***Jul-10-2026=535***Jul-11-2026=98***Jul-12-2026=1' WHERE job_id'1671706'  
0.0011   UPDATE employer_jobs SET monthly_hits '***Jun-2026=751***Jul-2026=695' WHERE job_id'1671706'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1671706' AND status LIKE 'sent%' ORDER BY id DESC  
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1671706 
0.0029   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '615088'
AND `date_added` >= '2022-06-08' 
0.0010   select from teasers 
0.0008   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)