Senior WordPress Maintenance Specialist – Long-Term Remote Retainer

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

TYPE OF WORK

Part Time

WAGE / SALARY

$10-15/hour

HOURS PER WEEK

3

DATE UPDATED

May 18, 2026

JOB OVERVIEW

About Tallacala Digital

We build and maintain WordPress + Elementor websites for non-profits, associations, and advocacy organizations across the U.S. We've been doing this since 2018 and currently support 13 client websites on Pantheon (with a possible migration to Cloudways in the future). Our clients trust us because we treat their sites like production infrastructure for their mission, not just brochures.

The Role
We're hiring our first dedicated maintenance and support specialist to take over the recurring technical work currently handled by the founder. We're growing, and this is a long-term retainer position, not a one-off gig. You'll be the person responsible for keeping all client sites updated, healthy, and responsive to client requests. The role pairs predictable monthly maintenance work with ad-hoc client support - broken forms, plugin conflicts, content updates, small dev tasks.

If you've done freelance WordPress maintenance before and burned out chasing one-off bugs across 30 clients, this is the opposite of that: a small client roster, structured monthly cadence, documented playbooks, and a manager who actually meets with you regularly.

What You'll Do

- Run the monthly maintenance cycle on all 13 client sites during the second week of each month: plugin/theme/core updates, database checks, backup verification, smoke testing, dev-to-live deploys via Pantheon
- Update our shared maintenance scorecard as you complete each site — this is how we track progress, not a separate status report
- Handle ~80% of inbound client support requests: plugin issues, content edits, form troubleshooting, minor design fixes, performance problems
- Escalate the remaining ~20% to the founder with clear notes on what you've tried
- Send a brief Friday update (3 lines: done this week / blocked / next week)
- Join one 20-minute monthly review call

Required Experience

- 3+ years professional WordPress development, including Elementor
- Comfortable with Git-based deploy workflows (Pantheon experience strongly preferred; otherwise, willingness to ramp on day one)
- PHP and MySQL fundamentals — enough to debug a plugin conflict and run a search/replace, not necessarily senior-dev level
- Strong written English; you'll communicate directly with clients via email and Slack
- Reliable, structured, and comfortable working from documented playbooks (Loom training videos provided)

Nice to Have

- Direct Pantheon experience
- Background working with non-profits, advocacy groups, or political organizations
- Comfort with light frontend work and Elementor template builds

Compensation
This is a paid monthly retainer. We pay above the market spot rate for comparable work because we want someone who treats this as a real engagement, not a gig between gigs. Estimated 12-25 hours per month depending on client support volume.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0757
Total Execution Time  0.0771
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,510,752 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-WordPress-Maintenance-Specialist-Long-Term-Remote-Retainer-1637879
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0702 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1637879
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 930946
 LIMIT 1 
0.0627   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1637879
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-22',ej.date_added) duration_daysDATEDIFF('2026-06-22',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-06-22',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1637879' 
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1637879 
0.0015   UPDATE employer_jobs SET hit_counts '***May-03-2026=2***May-04-2026=1***May-05-2026=83***May-06-2026=25***May-07-2026=4***May-08-2026=2***May-11-2026=3***May-12-2026=3***May-13-2026=15***May-15-2026=3***May-16-2026=3***May-17-2026=1***May-18-2026=453***May-19-2026=137***May-20-2026=45***May-21-2026=38***May-22-2026=27***May-23-2026=13***May-24-2026=11***May-25-2026=16***May-26-2026=12***May-27-2026=12***May-28-2026=7***May-29-2026=14***May-30-2026=5***May-31-2026=6***Jun-01-2026=14***Jun-02-2026=11***Jun-03-2026=4***Jun-04-2026=13***Jun-05-2026=7***Jun-06-2026=7***Jun-07-2026=7***Jun-08-2026=9***Jun-09-2026=5***Jun-10-2026=2***Jun-11-2026=5***Jun-12-2026=6***Jun-13-2026=2***Jun-16-2026=2***Jun-18-2026=3***Jun-19-2026=5***Jun-20-2026=1***Jun-22-2026=1' WHERE job_id'1637879'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=941***Jun-2026=104' WHERE job_id'1637879'  
0.0013   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1637879' 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` = 1637879 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '930946'
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)