ProfitPad
Post-migration technical SEO, headless Webflow builds, and AI search visibility for a HubSpot Platinum RevOps agency.

The Challenge
ProfitPad is a HubSpot RevOps agency and HubSpot Platinum Solutions Partner based in Vancouver, BC. They sell fixed-fee HubSpot implementation, CRM cleanup, and RevOps consulting to B2B SaaS startups between $500K and $15M ARR.
The site had been migrated from WordPress to Webflow before I came on, and the migration left a technical debt trail:
- 180 pages returning 404 against the old WordPress URL structure.
- 293 non-indexed pages versus 43 indexed in Google Search Console at the start of cleanup.
- Duplicate canonicals and redirect-validation failures cluttering GSC coverage.
- Two near-duplicate service pages splitting keyword authority.
- Around 28 meta descriptions over length, with title tags not targeting priority queries.
- FAQPage schema present on pages with no visible FAQ content.
- A font stack bloated by a remote Google Fonts import and duplicated typeface variants.
- No Open Graph images sitewide.
Baseline for the 90 days before the engagement (December 19, 2025 to March 18, 2026), site-wide from the GSC domain property: 159 clicks, 40,295 impressions, 0.39% CTR, average position 36.9. The engagement started in March 2026 via Upwork and is active as an ongoing monthly retainer: I implement and flag improvements rather than work pure tickets.
What I Shipped
Redirect and GSC Cleanup
Mapped the 404s against the old WordPress URL structure, built a 56-entry redirect CSV, and imported it through Webflow's bulk redirect tool. One gotcha worth knowing: Webflow's bulk import replaces the entire existing redirect table rather than appending, so every subsequent import must include the full prior set, and the CSV, not the Webflow UI, becomes the source of truth. Old WordPress-style URLs now 301 to their new paths. Redirect-validation noise in GSC was classified as expected platform behavior, which kept the remediation list short.
Service Page Consolidation
The duplicate implementation-services page now 301s to the primary service URL, consolidating keyword authority on one page.
Title Tags and Meta Descriptions
Rewrote titles and descriptions across priority service and blog pages against specific GSC queries. A Screaming Frog audit flagged around 28 pages with overlength meta descriptions; the priority set is rewritten, with the remainder queued.
Structured Data Standardization
Built a consistent JSON-LD graph using @id references across the homepage, service, and insights templates, with BlogPosting on insights posts. Global Organization and WebSite schemas moved into the global head; per-page schema lives in each page head. Rules enforced: no trailing slashes on schema URLs, provider always references the org node, numeric BreadcrumbList positions, FAQPage only where visible FAQ content exists, and the review property removed from Service, which Google does not support and which was triggering validation errors.
Font Optimization
Unified all typeface variants under one family with correct weight mapping, self-hosted the body font in place of the remote Google Fonts import, and replaced the icon webfont with inline SVG so the Google Fonts dependency could be dropped entirely. The live site now serves zero requests to fonts.googleapis.com. Total font payload down roughly 67% in production.
Content Operations
Rewrote the flagship pricing article with a new structure, a pricing comparison table, and a visible five-question FAQ block. Tables ship in a Webflow Embed element because rich text fields strip custom styles. Added Open Graph images to a site that had none, and created a noindexed terms page with footer placement.
Changelog Discipline
Every change is logged to a Notion SEO changelog with before, after, reason, and date, and only moves to Done after a live-page verification. That gives the client a full audit trail and makes GSC movements attributable to specific edits.
ICP Pivot and the ERP/Distribution Content Cluster
Early July shipped rebuilt healthcare and new manufacturing vertical pages plus a Zapier-to-n8n migration page (live July 3). In mid-July the engagement pivoted with the client's ICP shift toward PE-owned industrial distributors and manufacturers, with ERP-to-HubSpot integrations as the core offer; that pivot produced a P21 ERP service page, a distributors vertical page, a P21 distributor's guide, an ERP-plus-CRM distributor's guide, and a partner listicle. All three distribution-cluster URLs were verified "Submitted and indexed" in Search Console within weeks of launch.
Headless Webflow Page Builds
Every one of those pages was built headlessly through the Webflow API and MCP, from delivered HTML to native Webflow elements, with no Designer drag-and-drop: page-prefixed class systems, responsive breakpoints, FAQ accordions, CTA wiring, and full schema graphs. The three July 3 pages each passed 21 to 24 automated pre-launch checks; subsequent launches carried their own verification runs (the ERP-plus-CRM guide 17 of 17 production checks, the partner listicle 24 of 24).
AI Search Visibility Program
A measured GEO program with a recurring client scoreboard: llms.txt live and byte-identical to its repo mirror, and a four-engine probe (ChatGPT, Claude, Gemini, Perplexity) run against the target questions. At the August 4, 2026 snapshot, all four engines recommended ProfitPad for the Eclipse ERP integration question, and ChatGPT had moved from omitting ProfitPad entirely (July 11) to recommending it first for P21, citing the new P21 guide. On the best-partner question, engine coverage went from one of four (August 4) to two of four (August 27), with the site's own partner listicle cited as a source by Claude and Perplexity. All probe results are dated snapshots, tracked as rates over repeated pulls.
GA4 Install After a Ten-Month Empty Property
The client's GA4 property had existed since October 2025 with Search Console linked the same day, but the tag was never installed, so it sat empty for roughly ten months. Installed the tag site-wide headlessly the day the property ID arrived (August 12), with the existing head code read and backed up first, and verified it firing on production.
Metadata Re-Audit at Full-Site Scope
An August 27 re-audit covered all 37 pages and, for the first time, all 33 CMS items: the June static-page fixes were intact with nothing regressed, and 10 CMS items over title or description limits were flagged, with rewrites proposed to the client through an interactive approval sheet.
Content Integrity Monitoring
A three-layer integrity system now guards the site: a field-level CMS baseline that alarms on shrunk or emptied fields, a rendered-page baseline, and a monthly full-content archive in git as a restore source.
The Results
Comparing the 90 days before the engagement (December 19, 2025 to March 18, 2026) with the most recent 90 days at the July 2026 measurement (April 8 to July 6, 2026), site-wide on the GSC domain property:
- Average position moved from 36.9 to 19.8.
- Impressions grew 103%, from 40,295 to 81,723; CTR eased from 0.39% to 0.32% as impressions broadened.
- Clicks grew 63%, from 159 to 259, with monthly clicks more than doubling December to June (47 to 101).
These are movements over the period the cleanup program was live, correlated with the work rather than a controlled experiment; the changelog makes each movement attributable to logged edits.
Indexation followed: from 43 indexed pages at engagement start to 50 of 56 sitemap URLs indexed by July 2026, and 54 of 61 at the August 27 sweep, with every static, service, and vertical page indexed, including the July launches within days.
Post-migration 404s are resolved through the redirect layer, and the old WordPress-era URLs that Google still holds in its index now land on the correct pages (verified live 2026-08-27).
Performance work stayed scoped to discrete, verifiable reductions rather than headline scores: roughly 900 KiB of font weight removed (1,175 KiB of TTF consolidated to 263 KiB of WOFF2, plus a 125 KB icon font replaced with inline SVG), and CLS at 0 across repeated runs.
The engagement continues on an ongoing hourly basis (15 to 20 hours per month), covering SEO, Webflow development, structured data, content operations, AI search visibility, and GSC monitoring, with 193 documented changes logged with before, after, and reason in the client-facing changelog over the first three and a half months alone.
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.