Delivery Plan · jennyselc.com.au · SEO & Performance Remediation

Weekly Delivery Plan & Estimates

Senior-engineer scoped · AI-assisted execution · 4 hrs/day capacity · Prepared 8 May 2026 · Earliest start Mon 11 May 2026 · Target completion Fri 5 Jun 2026

1. At a glance

4 cal. weeks
11 May → 5 Jun 2026
~74 hrs
Senior dev effort
~10 hrs
Total client time
9 releases
Across 4 sprints
Approach. One senior engineer working 4 hours per day, Monday to Friday (≈ 20 hrs/week), with AI-assisted tooling (code-gen, bulk transforms, diagnostic scripting). Estimates already account for the productivity uplift on repetitive work (bulk redirect generation, meta-tag application, content variants). Tasks dominated by infrastructure setup or external services (CDN, plugin audits, image pipeline) are estimated at conventional rates because AI doesn’t materially compress them.

Engagement schedule (calendar dates)

Calendar week Sprint coverage Key releases Dev hrs
Mon 11 – Fri 15 May Sprint W0 (kick-off, day 1) + Sprint W1 part 1 (SEO foundations) R1.A redirects + internal links (Thu 14 May) 20
Mon 18 – Fri 22 May Sprint W1 part 2 + Sprint W2 (bug fix & content) R1.B titles, metas, keywords (Tue 19 May) · R2.A gallery-500 fix (Thu 21 May) 20
Mon 25 – Fri 29 May End of Sprint W2 + Sprint W3 part 1 (performance) R2.B sitemap + duplicates (Mon 25 May) · R3.A CDN + cache (Wed 27 May) · R3.B image pipeline (Fri 29 May) 20
Mon 1 – Fri 5 Jun Sprint W3 part 2 + Sprint W4 (verify & close) R3.C render-blocking + fonts (Tue 2 Jun) · R3.D plugin/script audit + lock-in (Wed 3 Jun) · Final report & handover (Fri 5 Jun) 14
Earliest start hinges on plan approval. This document is being shared on Fri 8 May for agent + client review. Mon 11 May 2026 is the earliest sprint-start date assuming approval and access land before then. If approval slips, every milestone above shifts by the same number of working days.

Sprint-by-sprint summary (thematic)

Sprint Theme Headline deliverables Dev hrs Client hrs
W0
Mon 11 May
Kick-off & access Approval workshop · access provisioned · staging clone · diagnostics-ready 4 3
W1
Tue 12 – Tue 19 May
SEO foundations & quick wins 102 × 301 redirects · 17 titles · 22 metas · 16 keyword tweaks · gallery-500 root cause identified 22 3
W2
Wed 20 – Mon 25 May
Bug fix & content cleanup Gallery-500 fix deployed · duplicate content rewrites · orphan pages resolved · sitemap reconciled · GSC resubmitted 14 2
W3
Tue 26 May – Wed 3 Jun
Performance sprint CDN & page cache · image pipeline (WebP) · render-blocking deferred · fonts optimised · plugin audit · 9 URLs hit target PageSpeed 28 1
W4
Thu 4 – Fri 5 Jun
Verify & close DS verification crawl · all rows closed in tracker · monitoring report · handover 6 1

2. Working assumptions

3. Detailed weekly batches

W0
Kick-off & access provisioning
Mon 11 May 2026 · 1 day · 4 hrs
4 dev hrs
3 client hrs
Goal: Every approval captured, every access granted, every diagnostic ready to run on Monday morning of Week 1.
#TaskOwnerHrs
0.160–90 min decision workshop — walk Q1–Q12 from the decision sheet, capture answers in writingDev + Client1.5
0.2Access provisioning: WP admin user, cPanel/SSH credentials, GSC + GA4 invites, staging URLClient1.0
0.3Clone production to staging; enable WP_DEBUG_LOG; confirm we can reproduce the 500 there AI-assistDev1.5
0.4Run baseline Lighthouse on all 9 PageSpeed URLs; archive scores for before/after comparison AI-assistDev1.0
0.5Set up release branches / change log / shared status docDev0.5
Acceptance criteria.
  • Decision sheet returned with all 12 answers logged.
  • Dev can SSH into hosting and log into WP as admin.
  • Staging URL responds and matches production schema.
  • Baseline Lighthouse JSON saved for 9 URLs.
Dependencies. All work in Weeks 1–4 hinges on this. If access slips by >2 days, every subsequent week shifts.
W1
SEO foundations & quick wins
Tue 12 May – Tue 19 May 2026 · 5.5 working days · 22 hrs
22 dev hrs
3 client hrs
Goal: Clear ~145 of the ~360 open items (40% of the backlog) and identify the gallery-500 root cause — all in five working days.

Releases this sprint

#TaskOwnerHrs
1.1Generate the 102 × 404→301 redirect map from the Crawl Error tab; produce both .htaccess rules and a Redirection-plugin CSV import AI-assistDev2.0
1.2Apply redirects on staging; smoke-test 20 representative URLs; deploy to production (Release 1.A)Dev2.0
1.3Fix the 3 redirect chains/loops to single-hop 301sDev1.0
1.4Update 29 incorrect internal links via WP search-and-replace (WP-CLI wp search-replace) AI-assistDev1.5
1.5Apply 17 title tags via Yoast/Rank Math bulk editor; verify on staging AI-assistDev1.5
1.6Apply 22 meta descriptions via Yoast/Rank Math bulk editor AI-assistDev1.5
1.7Apply 16 “Keywords (Old)” copy edits (titles, H1s, body text) for centre pagesDev3.0
1.8Resolve 6 orphan pages per Wave 1 decision (link in or 301 out)Dev1.5
1.9Deploy Release 1.B to production; verify in browser + GSC URL inspectionDev1.0
1.10Gallery-500 diagnostic. Reproduce on staging; capture stack trace from debug.log; bisect plugins via Health Check Troubleshooting Mode; isolate root cause; draft fix patch AI-assistDev4.0
1.11Mid-week status update + EOW status report to clientDev1.0
1.12Buffer for unexpected approval clarificationsDev3.0
Acceptance criteria.
  • All 102 legacy 404 URLs return HTTP 301 to their approved targets (verified by re-crawl on a sample of 30).
  • 17 titles + 22 metas live on production; visible in view-source.
  • 16 centre-page copy edits live; H1 / title / body match the approved drafts.
  • 29 internal links no longer point to http:// or 404 targets.
  • Gallery-500 root cause identified with a written diagnostic note + a tested patch on staging.
Client time needed (~3 hrs): 90 min workshop on Mon 11 May (W0), 60 min review of staging on Thu 14 May, 30 min sign-off on Tue 19 May.
Risk. If the gallery-500 diagnostic uncovers a deeply embedded plugin conflict (e.g. paid plugin no longer maintained), the fix may need a plugin replacement — could spill into Sprint W2 by 2–4 hrs. Mitigation: 2 hrs of contingency budgeted in Sprint W2.
W2
Bug fix & content cleanup
Wed 20 May – Mon 25 May 2026 · 3.5 working days · 14 hrs
14 dev hrs
2 client hrs
Goal: Close out all remaining content / structural items so going into Week 3 the only open category is performance.

Releases this sprint

#TaskOwnerHrs
2.1Apply gallery-500 patch on staging; confirm all 7 URLs return 200 + content; deploy to production (Release 2.A)Dev2.0
2.2Apply 4 duplicate-content rewrites (gallery-category pages) using DS-drafted copyDev2.0
2.3Sitemap reconciliation: regenerate sitemap, verify the 112 listed URLs are removed, document closed rows AI-assistDev2.0
2.4Resubmit sitemap in GSC; request reindex for top 20 fixed URLsDev1.0
2.5Deploy Release 2.B; verify GSC index coverage report 24 hrs laterDev1.0
2.6Wave 3 prep: server / hosting capability audit (PHP version, OPcache, HTTP/2, gzip/brotli, current asset weight) AI-assistDev1.5
2.7Wave 3 prep: image inventory across the 9 slow URLs; identify LCP candidates per page AI-assistDev1.5
2.8Wave 3 prep: render-blocking inventory (JS/CSS files, third-party domains, font files) AI-assistDev1.0
2.9EOW status report; confirm with client we’re green-lit to begin Wave 3Dev1.0
2.10Contingency for Week 1 spillover (gallery-500 complications)Dev2.0
Acceptance criteria.
  • All 7 gallery URLs return HTTP 200 with rendered content (verified via curl -I + browser).
  • The 4 duplicate-content pages have unique copy ≥200 words, no longer flagged as near-duplicates by Screaming Frog.
  • Sitemap contains only indexable URLs; GSC accepts the resubmission with zero errors.
  • Wave 3 prep document delivered with prioritised performance work plan + estimated impact per URL.
Client time needed (~2 hrs): 30 min Thu 21 May sign-off on gallery fix, 60 min Fri 22 May review of duplicate content, 30 min Mon 25 May green-light to begin Sprint W3.
Risk. Sitemap-removal verification may surface URLs DS marked “to remove” that are actually legitimate. Mitigation: any URL that resolves with content is excluded from removal pending confirmation.
W3
Performance sprint
Tue 26 May – Wed 3 Jun 2026 · 7 working days · 28 hrs
28 dev hrs
1 client hr
Goal: Move all 9 PageSpeed URLs from 45–73 mobile to ≥85 mobile. Single biggest week of value, sequenced biggest-win-first.

Releases this sprint

#TaskOwnerHrs
3.1Install + configure WP Rocket (or LiteSpeed Cache); enable page cache, browser cache, GZIP/Brotli; preload key URLsDev2.5
3.2Front the site with Cloudflare; configure DNS, SSL, edge cache rules, Auto Minify, HTTP/3Dev2.5
3.3Smoke-test caching: TTFB benchmarking before/after; deploy Release 3.ADev1.0
3.4Convert hero/gallery imagery to WebP (and AVIF where supported); regenerate WP thumbnails AI-assistDev3.0
3.5Enforce width/height on all images; native lazy-loading below the fold; preload on the LCP image of each centre pageDev3.0
3.6Generate responsive srcset for hero images; verify on staging across viewports; deploy Release 3.BDev2.0
3.7Critical CSS extraction + inline; defer non-critical CSSDev2.5
3.8Defer non-essential JS; remove jQuery dependencies if theme allows; remove unused CSS via PurgeCSSDev2.5
3.9Font loading: font-display: swap, self-host or preconnect Google Fonts, subset to Latin AI-assistDev1.5
3.10Deploy Release 3.C; spot-check Lighthouse on 3 worst URLsDev1.0
3.11Plugin audit: deactivate unused plugins; replace any heavy plugins with leaner alternatives where safeDev2.0
3.12Third-party script audit: defer analytics, lazy-load chat widgets, conditionally load social embedsDev2.0
3.13Lock-in pass: re-run Lighthouse on all 9 URLs; iterate on any URL still <85 AI-assistDev2.5
3.14Deploy Release 3.D; produce before/after PageSpeed comparison report AI-assistDev1.5
3.15Mid-week + EOW status updatesDev0.5
Acceptance criteria.
  • All 9 audited URLs score ≥85 mobile on PageSpeed Insights (lab data).
  • LCP < 2.5s on all 9 URLs.
  • CLS < 0.1 on all 9 URLs.
  • TTFB ≤ 600ms (mobile) globally with Cloudflare cache hit.
  • No visual or functional regression on production (verified by 30-min UAT walkthrough).
Client time needed (~1 hr): 60 min UAT walkthrough on Wed 3 Jun afternoon after Release 3.D.
Risks.
  1. Cloudflare DNS migration — brief propagation window. Mitigation: schedule the cutover for low-traffic hour and keep TTL low for 48 hrs prior.
  2. Cache vs. logged-in admin behaviour — Mitigation: bypass cache for logged-in cookies; test admin flows on staging first.
  3. WebP browser support on legacy iOS — Mitigation: use <picture> with JPEG fallback.
  4. One URL stubbornly below 85 — Mitigation: 2.5 hr buffer in 3.13 specifically for iteration.
W4
Verify, monitor & close
Thu 4 – Fri 5 Jun 2026 · 1.5 working days · 6 hrs
6 dev hrs
1 client hr
Goal: External verification by Digital Spotlight, tracker zeroed out, monitoring in place, project handed back to BAU.
#TaskOwnerHrs
4.1Coordinate with Digital Spotlight for Screaming Frog re-crawl; provide redirect map + change logDev1.0
4.2Triage any leftover items DS flags from the verification crawl (small — budgeted 2 hrs)Dev2.0
4.3Set up monitoring: PageSpeed regression check (weekly automated), GSC alert subscription, uptime monitor on the 9 URLs AI-assistDev1.0
4.4Final report: before/after PageSpeed scores, list of every closed row, list of any deferred items, monitoring dashboard URL AI-assistDev1.5
4.530-min handover call with client & DSDev + Client + DS0.5
Acceptance criteria.
  • Digital Spotlight tracker shows every previously-open row either Closed or formally deferred with rationale.
  • Final report delivered (PDF + tracked-changes spreadsheet).
  • Monitoring is live and alerts the team if mobile PageSpeed drops below 80 on any of the 9 URLs.

4. Estimate & resourcing

PhaseDatesDev hrsNotes
Sprint W0 — Kick-off & accessMon 11 May4Workshop, access, baseline benchmarks
Sprint W1 — SEO foundationsTue 12 – Tue 19 May22Includes 3 hr buffer + diagnostic
Sprint W2 — Bug fix & contentWed 20 – Mon 25 May14Includes 2 hr W1 spillover contingency
Sprint W3 — PerformanceTue 26 May – Wed 3 Jun28Largest sprint; 4 production releases
Sprint W4 — Verify & closeThu 4 – Fri 5 Jun6External verification + monitoring + handover
Total11 May → 5 Jun (4 cal. weeks · 18.5 working days @ 4 hrs/day)74Single senior engineer, AI-assisted
How AI assistance was factored in. The AI-assist tag marks tasks where Claude Code / Copilot meaningfully compresses the work — bulk redirect-map generation, meta tag application, sitemap reconciliation scripts, image inventory, font subsetting, monitoring scripts, and the final report. Conventional rates apply elsewhere (CDN setup, plugin audits, image pipeline, diagnostics that need real-system inspection). For comparison, the same scope without AI assistance would estimate at roughly ~110 hrs.

5. Top risks & mitigations

#RiskLikelihoodMitigation
R1Approval slippage by client (any week)MediumDecision sheet pre-loaded at Week 0; weekly 30-min cadence; written 48-hour SLA agreed up-front
R2Gallery-500 fix needs plugin replacement (paid/abandoned plugin)Low–Medium4 hr contingency budgeted in Week 2; alternative plugin shortlist drafted in Week 1
R3One PageSpeed URL stuck below 85 after Wave 3Medium2.5 hr iteration buffer in task 3.13; can extend into Week 4 contingency if needed
R4Cloudflare DNS misconfiguration causes brief outageLowLower TTL 48 hrs in advance; cutover during low-traffic window; rollback plan documented
R5Cache invalidates editor / form behaviourLowBypass-on-cookie rules tested on staging first; admin smoke test before each release
R6Hosting can’t support modern stack (PHP < 8.0, no SSH)LowCapability audit in W2 task 2.6; if upgrade needed, raise immediately and re-baseline

6. Communication cadence

7. To start Sprint W0 on Mon 11 May 2026, we need by EOD Fri 8 May

  1. Decision sheet (Q1–Q12) returned signed off.
  2. WP admin login (Editor + Redirects + Yoast permission).
  3. Hosting access (cPanel and/or SSH).
  4. Google Search Console + GA4 (read-only) invite to our team email.
  5. Confirmation that staging exists, or permission to clone production to staging.
  6. Single named approver and confirmation of 48-hour approval SLA.

Anything not in by EOD Fri 8 May pushes the sprint start by the same number of working days — the 5-Jun completion date moves with it.