HEAD OF SEO & DIGITAL GROWTH

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

TYPE OF WORK

Full Time

SALARY

400

HOURS PER WEEK

40

DATE UPDATED

May 4, 2026

JOB OVERVIEW

We sell statement furniture at accessible price points — the kind of pieces that turn a house into a home — backed by flexible financing, white-glove delivery, and some of the best in-store inventory in Texas.
The blueprint exists. The data is clear. What we need now is the right person to own it, execute it, and grow it into a full-scale organic growth program.
This is not a "start from scratch" SEO hire. You are inheriting a fully instrumented data environment, a prioritized roadmap, and direct access to the VP of Marketing. You will have the authority to direct BigCommerce development, content production, and paid/organic strategy alignment from day one. The organic revenue growth runway here is 65–110% within 90 days based on existing data — your job is to capture it.
What You Will Own
1. Technical SEO
2. On-Page & Content SEO — Build the Foundation
3. Local SEO — Dominate the Houston/Katy Market
4. Content Strategy — Scale What's Working
5. Analytics, Reporting & Cross-Functional Alignment

Required Experience
•3–6 years of hands-on SEO experience with a proven track record of measurable organic revenue growth
•Direct experience with e-commerce SEO — product pages, category pages, faceted navigation, and schema markup for retail
•Proficient in Google Search Console, GA4, and BigCommerce (or comparable e-commerce CMS)
•Strong working knowledge of Core Web Vitals diagnosis and remediation — specifically INP, LCP, and CLS for product and category pages
•Experience writing and validating JSON-LD structured data: Product, Offer, AggregateRating, LocalBusiness, BreadcrumbList
•Local SEO experience: GBP management, local citation building, review strategy, and local pack tracking
•Able to produce keyword briefs, content outlines, and meta copy — and hold writers accountable to them
•Comfortable reading and communicating data: you turn GSC exports and GA4 reports into executive-ready insights

Strongly Preferred
• Experience in furniture, home goods, or high-ticket retail verticals
• Familiarity with Doofinder or similar faceted search platforms and their SEO implications
• Experience with Google Merchant Center, Local Inventory Ads, and product feed optimization
• Working knowledge of BigCommerce Stencil theme customization — specifically product.html and schema injection
• Hands-on experience with Klaviyo for post-purchase email SEO alignment (review collection, cross-sell flows)
• Understanding of omnichannel retail dynamics — specifically how physical showroom traffic and e-commerce reinforce each other

We are looking for specific Talent: Who You Are as a Person
• You think about organic traffic in terms of revenue, not rankings — You are commercially aggressive
• You can read a robots.txt, validate a schema, and diagnose a Core Web Vitals failure without hand-holding — You are technically fluent
• You do not guess — you export the data, read it, and build recommendations from it — You are analytically rigorous
• You can ship a meta description rewrite in an afternoon and a redirect strategy in a week — You move fast and document well
• The VP of Marketing and ownership need to understand your work — you make that easy — You communicate clearly upward
• You understand that a furniture store's digital presence must always reinforce foot traffic, not just drive online orders — You respect the physical store

Your KPI Scorecard
Your performance will be measured against the following metrics, reviewed monthly. Targets are based on the 12-month data audit already completed for this role.

Organic Clicks (GSC)
Organic Revenue (GA4)
Blended CTR (GSC)
Core Web Vitals — Good URLs
GBP "Directions" Clicks Baseline
Review Volume
Organic % of Total Revenue
Financing Keyword Rankings
Indexed Pages

HOW TO APPLY
Send your resume, a brief note on your most impactful SEO win (with before/after metrics), and the name of one piece of content you would create first for ---------- and why. Applications without metrics will not be reviewed. Send to: ----------

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0180
Total Execution Time  0.0194
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,514,992 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/HEAD-OF-SEO-DIGITAL-GROWTH-1638635
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 15 (0.0118 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1638635
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 597664
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1638635
AND `misc`.`idIS NULL 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1638635
AND `misc`.`idIS NULL 
0.0009   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-13',ej.date_added) duration_daysDATEDIFF('2026-08-13',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-13',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1638635' 
0.0006   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1638635 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1638635
AND `misc`.`idIS NULL 
0.0010   UPDATE employer_jobs SET hit_counts '***May-04-2026=203***May-05-2026=32***May-06-2026=5***May-07-2026=5***May-08-2026=4***May-09-2026=1***May-11-2026=1***May-12-2026=9***May-13-2026=1***May-15-2026=1***May-16-2026=15***May-17-2026=2***May-20-2026=1***May-26-2026=1***May-28-2026=1***May-29-2026=2***May-30-2026=1***Jun-01-2026=4***Jun-02-2026=1***Jun-06-2026=1***Jun-09-2026=3***Jun-12-2026=1***Jun-14-2026=2***Jun-16-2026=1***Jun-23-2026=1***Jun-27-2026=1***Jun-28-2026=1***Jun-29-2026=1***Jun-30-2026=2***Jul-02-2026=2***Jul-14-2026=1***Jul-17-2026=1***Jul-18-2026=1***Jul-20-2026=1***Jul-22-2026=1***Jul-23-2026=1***Jul-24-2026=1***Jul-28-2026=1***Jul-31-2026=2***Aug-01-2026=1***Aug-02-2026=1***Aug-11-2026=1***Aug-13-2026=1' WHERE job_id'1638635'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=285***Jun-2026=19***Jul-2026=12***Aug-2026=4' WHERE job_id'1638635'  
0.0029   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1638635' 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` = 1638635 
0.0021   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '597664'
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)