All Work

Hawkwood Partners

WordPress SEO implementation and mobile speed rescue for a People & Talent search firm. Same methodology, different platform.

Live Site ↗
Industry ·
Recruitment (People & Talent executive search)
Engagement ·
Ongoing partnership
18.3 MB → 3.4 MB
Sitewide Image Weight After The Recompression Batch
63 → 84
Homepage PageSpeed Insights Mobile Performance
~1,316
Impressions Of Dead URLs Recovered Via 16 Verified Redirects
Hawkwood Partners

The Challenge

Hawkwood Partners is a specialized recruitment firm placing People and Talent professionals with growth companies across Europe and North America, with offices in London, New York, San Francisco, and Miami. The site runs on WordPress with Yoast SEO.

My own initial crawl in July 2026 found 20 of 32 URLs missing meta descriptions (including every commercial page but the homepage), a homepage title reading "Home - Hawkwood", four articles carrying placeholder slugs, no Organization schema (Yoast was still set to represent a Person), and mobile lab LCP of 8.2 to 12.7 seconds on every commercial page, driven by a CSS background-image hero.

In parallel, the client's agency delivered a full SEO and AEO audit with a deployment-ready implementation pack, which independently confirmed the same issues and added the decisive one: a 2025 migration had removed content with no redirects, leaving 15 plus URLs returning 404 while still holding search positions 3 to 8. My role was to implement that pack end to end, then cover the performance and analytics ground it did not.

Engagement
Intake · CMS
Client
Hawkwood Partners
Industry
Recruitment (People & Talent executive search)
Engagement
Ongoing partnership

What I Shipped

Implementing The Agency Pack

Deployed 25 of the pack's 27 checklist items (the remaining two are copywriting tasks): the homepage title rewrite, 13 letter-perfect meta descriptions, 13 shortened article titles, H1 demotions across four templates, five article slug renames with automatic 301s, noindex on four thin archives, bold-run to H2/H3 heading conversion across 12 articles, and CollectionPage plus Service schema. Each item was verified live after deploy, not assumed from a 200 response.

Redirect Recovery And 404-Log Operations

Shipped the 16-row redirect table (8 301s, 8 410 Gone responses via a template_redirect snippet, since the free plugin has no 410 type) and verified every row: single-hop, correct target, nothing landing on the homepage. That recovered roughly 1,316 impressions of dead URLs. Within hours the 404 log surfaced URLs the pack never listed: an entire retired job-advert section under /portfolio/, an old /blog hub with live visitors, and stray job pages. All were actioned same day, with the 410 logic switched to prefix matching so future stragglers resolve themselves.

Structured Data Without The Premium Upsell

Flipped Yoast's site representation from Person to Organization, then added the fields Yoast gates behind Premium (legalName, foundingDate 2016, description, all four offices as Place nodes, areaServed) through the free wpseo_schema_organization filter in functions.php. Built the Fractional page's FAQ the ACF way: one repeater field renders both the visible panel and the FAQPage JSON-LD, so copy and schema are structurally incapable of drifting. Verified character-exact on the live page.

Mobile LCP And The Image Overhaul

This was outside the pack. Recompressed the four hero images 90 to 94 percent (the homepage hero alone went from 1,067 KB to 67 KB), added a preload snippet that emits fetchpriority=high for each page's ACF-resolved hero (removing the roughly 2-second discovery delay inherent to CSS background heroes), and removed dead third-party requests (an unused Typekit sheet, an unused Google Font, an orphaned animation library). Then a full crawl found 130 images totaling 18.3 MB, with 34 files over 100 KB carrying 15 MB of it; all were recompressed and swapped, taking sitewide image weight to roughly 3.4 MB.

Analytics Cleanup

Found two Google tag containers feeding two separate GA4 properties, one of them an orphan splitting the traffic data. Traced the injection to a consent-plugin wizard setting, removed it, and verified across all 28 sitemap URLs that exactly one tag loads per page. Also diagnosed a duplicate form-submission event down to the plugin source code, establishing that the duplicate originated in the GA4 property configuration rather than on the page.

Build Log
Excerpt · CMS

The Results

  • Sitewide image weight: 18.3 MB to roughly 3.4 MB.
  • Homepage PageSpeed Insights mobile Performance: 63 to 84; the Permanent page went 64 to 82.
  • Homepage simulated mobile LCP: 12.7 s to 3.9 s (lab); homepage mobile payload 5,980 KiB to 1,243 KiB.
  • Observed mobile LCP now measures 1.3 to 2.4 s across all four commercial pages, against a July lab baseline of 8.2 to 12.7 s. Stated plainly: the baseline is simulated slow-4G lab data and the after is PSI observed-metric data; no CrUX field data exists for this site, so these are engineering yardsticks, not field medians.
  • Roughly 1,316 impressions of previously dead URLs now resolve through 16 verified redirects.
  • Every page carries exactly one H1, Organization and FAQPage schema validate live, and the llms.txt file regenerates with the corrected metadata.
Audit Results
Verified · CMS
Metric
Before
After
Figures as stated in the engagement changelog
301/410 redirects|16 rules, every 301 single-hop to a 200 target, every 410 confirmed Gone|verified 2026-08-16 404-log ops|log surfaced a retired /portfolio/ job section, /blog hub and /view-all-jobs; table grew to 18 rules plus prefix 410s|verified 2026-08-16 Meta descriptions|13 of the pack's 14 written letter-perfect; the held-back 14th (contact page) unblocked 2026-08-16, still to be written|verified 2026-08-12 Article titles|13 of 13 oversized titles shortened|verified 2026-08-12 Heading structure|every one of 27 URLs now exactly 1 H1, level skips cleared on 5 pages|verified 2026-08-17 Organization schema|legalName, foundingDate 2016, 4 offices, areaServed via the free wpseo_schema_organization filter, no Yoast Premium|verified 2026-08-16 FAQPage schema|4 Q&As render copy and JSON-LD from one ACF field so they cannot drift|verified 2026-08-16 Hero images|recompressed 90-94% and preloaded with fetchpriority=high|verified 2026-08-18 Image batch|34 files over 100 KB recompressed, 18.3 MB to ~3.4 MB sitewide|verified 2026-08-18 Duplicate Google tag|orphan GT-5TJN8V2 container removed, single Site Kit tag remains|re-verified 2026-08-26
Sitewide image weight|18.3 MB|~3.4 MB Homepage PSI mobile Performance|63|84 Homepage simulated mobile LCP (lab)|12.7 s|3.9 s Mobile LCP, four commercial pages|8.2 to 12.7 s (July lab baseline)|1.3 to 2.4 s (PSI observed, Aug) Homepage mobile network payload|5,980 KiB|1,243 KiB Permanent page PSI mobile Performance|64|82
Upwork review
Read it on Upwork

Have a Build Like This One?

Thirty minutes, your project on screen. You leave with a scoped plan and a number, whether or not we work together.

30 MIN · GOOGLE MEET · EUROPE/PARIS