SEO + Analytics + Attribution Specialist / Operator (GA4 / GSC · GoHighLevel · multi-stack)

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

TYPE OF WORK

Any

SALARY

2000-2500 $ based on 40 hrs p/w

HOURS PER WEEK

16

DATE UPDATED

May 27, 2026

JOB OVERVIEW

We're hiring a remote SEO + analytics operator to own the full loop, from search position to GA4 conversion to CRM/GHL-tracked revenue, across a small book of clients. You run the weekly rhythm, flag what's off, and shape how we work.

Understanding attribution is the heart of the work. You'll know which content piece produced which lead, which course registration, which revenue, because you'll have set up GA4 in each client's stack and designed the attribution architecture -together with the strategy director- from day one.

We are an Amsterdam based boutique comms. agency. Mutual reliability and personal contact are key words for us in all our collaborative relationships. You work closely with the strategy director and sr. PM. The right professional can grow from part-time operator into client facing seo/analytics lead. Please only respond if you feel this job is a real match. Working for - or running- an agency? Then we are not a match.


Our setup:
We build client sites on Webflow + GoHighLevel, or custom code (Astro + Sanity, built with Claude Code) + GoHighLevel, and some clients run on WordPress. So you work across a mixed stack, and the constant is the analytics/attribution layer, which is platform-agnostic. Every client runs inside our proprietary AI-built content + SEO pipeline (contenttracker). Your primary stack: GSC, GA4, GTM, Keyword Planner, Google Trends, Keywords Everywhere + our own tooling. Lean by design, not a gap.

What you'll do:
-Run the weekly content-performance rhythm in contenttracker per client: GSC review, GA4 conversions review, keyword-zone management, 1–2 content briefs per client per week.
-Set up GA4 + GTM from scratch for each client and own the attribution architecture: first-touch UTM preservation, event / form / calendar tracking, cross-domain, custom fields, reporting backbone.
-Spec the tracking for whoever implements it: the developer (in code, e.g. Astro/Webflow) and the client's GHL team, then verify it end-to-end (UTM captured to contact created to correct tags to first-touch locked to GA4 event fired). You design, spec and verify; you don't write the site code or build inside GHL.
-Run UTM + attribution hygiene across client stacks.
-Keep course-date copy current against a named source of truth.
-Monthly cross-domain review for clients in multi-brand ecosystems.
-Produce monthly client reports.
-Shape contenttracker, our proprietary tool in the making propose and spec improvements; we ship what you spec.

You're a good fit if:
-You can set up a GA4 property from scratch, configure conversions, set up UTMs, and explain what you did to a non-technical business owner in plain English.
-GTM and cross-domain tracking are core for you. Installing/configuring containers, events, and cross-domain measurement across multiple related properties (not just "basic snippets").
-You're fluent in Google Search Console, and in technical SEO on code / headless sites as well as visual builders — crawlability and rendering, sitemaps, schema-in-code, canonicals, redirects, hreflang.
-You can explain first-touch vs last-touch attribution, why it matters and when to use which.
-You understand GHL hands-on (custom fields, workflows, form tracking, funnels) well enough to spec it for the GHL team — they implement; you design and verify.
-You think in funnels, not keywords. A page ranking #3 that doesn't convert is a CTA/intent problem.
-LLM Search experience: you know how to get content cited by ChatGPT, Claude, Perplexity.
-You're comfortable specifying for developers and verifying their output. You work with a dev, not instead of one.
Fluent written and spoken English. Ownership mindset.

Nice to have

-Headless CMS (Sanity) familiarity — content models and SEO fields.
-Astro / JAMstack experience.
-Content migration: 301 mapping, pruning, preserving search equity (we migrate sites that already have rankings).

Growth trajectory : You may move into client-facing work; the role grows into a head-of-SEO-operations function.

About us: Amsterdam-based content practice, 20+ years of strategic and creative work, B2B and SMB clients including training practices where the gap between €1,000 and €5,000/month of content-driven revenue is genuinely transformative. We work for companies that inspire.

Process : (1) 5 candidates interviewed; (2) Two candidates do one compact paid assignment (~4 hrs, full rate) mixing a GA4/attribution hands-on task + an attribution-audit case; (3) long-term collaboration after onboarding.

How to apply :A thought-through reply + 2 clear use cases (ideally one GA4/attribution setup, one content-driven SEO result). Generic replies won't be answered; we verify use cases before shortlisting.

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.0298
Total Execution Time  0.0312
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,524,680 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/SEO-Analytics-Attribution-Specialist-Operator-GA4-GSC-GoHighLevel-multi-stack-1655990
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0226 seconds)  (Hide)
0.0009   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1655990
 LIMIT 1 
0.0020   SELECT *
FROM `employers`
WHERE `employer_id` = 667833
 LIMIT 1 
0.0019   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1655990
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 '1655990' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1655990 
0.0021   UPDATE employer_jobs SET hit_counts '***May-27-2026=344***May-28-2026=41***May-29-2026=14***May-30-2026=8***May-31-2026=7***Jun-01-2026=12***Jun-02-2026=11***Jun-03-2026=2***Jun-04-2026=4***Jun-05-2026=1***Jun-07-2026=1***Jun-08-2026=2***Jun-09-2026=3***Jun-12-2026=2***Jun-13-2026=1***Jun-15-2026=1***Jun-16-2026=1***Jun-18-2026=1***Jun-19-2026=1***Jun-22-2026=4***Jun-23-2026=2***Jun-24-2026=3***Jun-26-2026=1***Jun-28-2026=1***Jun-30-2026=3***Jul-02-2026=1***Jul-04-2026=1***Jul-06-2026=1***Jul-07-2026=2***Jul-11-2026=1***Jul-12-2026=1' WHERE job_id'1655990'  
0.0012   UPDATE employer_jobs SET monthly_hits '***May-2026=414***Jun-2026=57***Jul-2026=7' WHERE job_id'1655990'  
0.0024   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1655990' 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` = 1655990 
0.0069   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '667833'
AND `date_added` >= '2022-06-08' 
0.0009   select from teasers 
0.0008   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)