@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap");
.aw-root{--bg:#f6f5f1;--fg:#1a2744;--muted:#5c6478;--blue:#1b365d;--line:rgba(26,39,68,.12);--card:#fff;color:var(--fg);background:var(--bg);font-family:"Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.55}
.elementor-location-header,.elementor-location-footer,header.elementor-location-header,footer.elementor-location-footer{display:none!important}
.aw-root *{box-sizing:border-box}
.aw-root a{color:inherit;text-decoration:none}
.aw-btn{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 16px;border-radius:12px;background:#1b365d;color:#fff;font-size:14px;font-weight:600}
.aw-root a.aw-btn{color:#fff}
.aw-root a.aw-btn:not(.aw-btn-ghost):hover{color:#fff}
.aw-btn-ghost{background:transparent;color:#1b365d;border:1px solid var(--line)}
.aw-root a.aw-btn-ghost,.aw-root a.aw-btn-ghost:hover{color:#1b365d}
.aw-wrap{max-width:920px;margin:0 auto;padding:0 24px}
.aw-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;border-bottom:1px solid var(--line);background:rgba(246,245,241,.92);backdrop-filter:blur(10px);padding:0 24px}
.aw-word{font-weight:700;letter-spacing:-.03em}
.aw-links{display:flex;gap:22px;font-size:14px;color:var(--muted)}
.aw-links a:hover{color:var(--fg)}
.aw-hero{padding:72px 0 80px;border-bottom:1px solid var(--line)}
.aw-kicker{color:var(--blue);font-size:14px;font-weight:600;margin:0 0 12px}
.aw-root h1{font-size:clamp(36px,6vw,60px);line-height:1.08;letter-spacing:-.03em;margin:0;font-weight:700}
.aw-lede{max-width:38rem;margin:20px 0 0;color:var(--muted);font-size:18px}
.aw-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.aw-sec{padding:64px 0;border-bottom:1px solid var(--line)}
.aw-root h2{font-size:clamp(28px,4vw,40px);letter-spacing:-.03em;margin:0;font-weight:700}
.aw-muted{color:var(--muted)}
.aw-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:32px}
.aw-block{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.aw-hours{font-size:56px;line-height:1;font-weight:700;letter-spacing:-.04em;margin:0}
.aw-list{list-style:none;margin:32px 0 0;padding:0;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}
.aw-list li{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-top:1px solid var(--line);font-size:15px}
.aw-list li:first-child{border-top:0}
.aw-time{color:var(--muted);white-space:nowrap;font-size:14px}
.aw-jobs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:32px}
.aw-job{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}
.aw-job h3{margin:0;font-size:18px;letter-spacing:-.02em}
.aw-price{color:var(--blue);font-weight:700;font-size:14px;margin:0}
.aw-job-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.aw-phone{color:var(--blue);font-size:36px;font-weight:700;letter-spacing:-.03em;display:inline-block;margin-top:20px}
.aw-foot{display:flex;justify-content:space-between;gap:24px;padding:40px 0 64px}
@media (max-width:800px){
.aw-blocks,.aw-jobs,.aw-foot{grid-template-columns:1fr}
.aw-links{display:none}
.aw-list li{flex-direction:column;gap:4px}
.aw-time{white-space:normal}
}
Fractional webmaster · AJ Martin
A web marketing expert.
A few hours a month.
I’m a fractional webmaster. You get me — WordPress since 2003, a thousand sites — for 5, 10, or 20 hours a month. That’s a fraction of what even a junior costs on payroll, and better help. You pick the work. If the site needs an audit, a rescue, or a rebuild first, those are priced separately.
Monthly hours
5, 10, or 20. An experienced pro on your site, billed as hours — not a salary. Block price is set on the site check. Those hours are reserved for you that month at your block. Use them or they expire.
5
hours / month
A quieter site, plus a few small asks.
10
hours / month
Room for a new page or a rewrite, and the usual upkeep.
20
hours / month
A site still being built out, or several things moving at once.
What you can spend them on
Your call. Times are typical, so you can see what a block actually buys.
- Small edits — text, photos, hours, pricing, a testimonialAbout 15 minutes each
- New page written and built (service, location, FAQ, landing)2–4 hours
- Rewrite or restructure an existing page1–2 hours
- On-page SEO tune-up30–60 minutes
- Photo and content refresh across a section1–3 hours
- Analytics or tracking cleanup1–2 hours
- WordPress updates, backups, security, uptime, and a monthly reportUsually 1–2 hours
- Google Business Profile kept accurate (name, hours, categories, spam cleanup)Usually 1–2 hours
- Google Business Profile post20–30 minutes
- Short video (15–30 seconds) for the website1–2 hours
- A standout review turned into a graphic or clip30–60 minutes
- Review responses drafted for you to post10 minutes each
One-time jobs
Available anytime. Most people do one of these before a monthly block, if the site isn’t ready to just be maintained.
Website Risk Audit
$250–$350
Forms, mobile, security, backups, who owns the domain. Credited if you continue.
Why the site isn’t showing up — including the embarrassing “is it plugged in” checks.
Google Business Profile Audit
$350
Map-pack visibility, listing accuracy, and what to fix first.
WordPress Rescue
Priced by page
Old builder (WPBakery and the like) moved to Elementor. Content and rankings stay.
Rebuild
Starting at $3,000
When the site can’t be saved, or the business has outgrown it.
No long-term commitment from either side. Either of us can end it with 30 days’ notice. You own the domain, hosting, logins, and content. I don’t manage Facebook, Instagram, TikTok, or X — if you want that, I’ll point you to someone who does.