All Work

Carda Health

Core Web Vitals, structured data, and CMS operations for a virtual cardiac rehab provider.

Live Site ↗
Industry ·
Virtual Cardiac and Pulmonary Rehabilitation
Engagement ·
Ongoing partnership
55 → 96
Homepage Lighthouse performance, mobile
1.3s
Homepage LCP, down from 8.6s
22 → 57
B2B leads from site forms, year over year (Aug to Jul windows)
Carda Health

The Challenge

Carda Health delivers virtual cardiac and pulmonary rehabilitation and is the exclusive virtual provider of the Ornish Lifestyle Medicine program. The marketing site runs on Webflow.

The inherited setup had compounding problems. The homepage scored around 55 on mobile Lighthouse performance, with LCP near 8.6s. The Notion and Google Docs publishing workflow was costing the team too many hours per article. And the site's five commercial forms across four pages (four unique form IDs) mixed payer and health-system inquiries with patient questions and bot traffic, so nobody could say how many real B2B leads the site produced, or which pages produced them.

Engagement
Intake · CMS
Client
Carda Health
Industry
Virtual Cardiac and Pulmonary Rehabilitation
Engagement
Ongoing partnership

What I Shipped

Core Web Vitals

Enabled Webflow's Per Page CSS to cut unused payload, added hero image preloads with the media and imagesrcset attributes needed for art-directed sources, applied lazy-loading to non-viewport imagery, and moved image delivery to next-gen formats where Webflow allowed it.

Structured Data

For the flagship /ornish page I built a combined JSON-LD block spanning MedicalWebPage, MedicalTherapy, MedicalOrganization, and FAQPage, incorporating clinical outcomes, Lancet and JAMA references, and Medicare Advantage coverage. I also reverse-engineered the blog template's auto-generated JSON-LD (five schema types) from its embed code and found four production bugs nobody had caught: empty author and reviewer values with broken URLs on unattributed posts, a hard-coded wrong medical specialty on every cardiac article, non-ISO dates, and FAQ schema that a single double-quote character silently breaks. Delivered a corrected, quote-safe v2 embed with conditional fields and ISO dates.

CMS Operations

Designed the Notion and Google Docs to Webflow publishing workflow: source doc, field-mapping recap, client approval, API draft, client review and publish, then a post-publish audit against live CMS state. The standardized CTA infrastructure was rolled out across the full blog, 124 articles at the time of rollout; the blog stands at 156 articles under management as of August 2026.

Custom Tooling

Built a Python batch runner for the PageSpeed Insights API that measures Core Web Vitals across URL sets, making performance validation across many pages far faster than manual runs.

Content Operations at Scale

Between mid-July and late August 2026 the pipeline shipped four more content batches: a five-post AFib and cardiac-rehab cluster, two posts in late July, a four-post HFpEF cluster with one in-place retarget, and a Medicare coverage post and an AFib versus atrial flutter explainer, all live-verified on production. The blog stands at 156 articles under management as of late August 2026. The pipeline also absorbs specialist review rather than routing around it: when the client's medical reviewer returned a seven-item correction list on a Stage D heart-failure article, all seven corrections were applied and verified live in production the same day, including adding the supporting JACC expert-panel citation.

Search and AI Visibility Baseline

A July 14, 2026 baseline pull put cardahealth.com on page 1 for 8 of 12 tracked commercial queries, and cited in 363 Google AI answers versus 29, 6, and 14 for its three closest commercial competitors: the category leader in AI citations among direct rivals at that snapshot.

Conversion Tracking and Lead Intelligence

Shipped a GA4 commercial_form_submit event, confirmed live on production, then pulled the full 24-month form-submission history and classified every entry: of 288 submissions, 79 were real B2B leads, 134 were patients, and 75 were bots, spam, or internal tests. The cleaned trend is the number that matters: real B2B leads grew from 22 (Aug 2024 to Jul 2025) to 57 (Aug 2025 to Jul 2026), from 1.8 to 4.8 per month. The analysis now refreshes weekly through an automated classify-and-chart pipeline the client checks directly.

Full-Site Audit and a Paid-Traffic Fix

A 351-page crawl of the live site produced a prioritized fix list (1 critical, 175 warnings). The critical item was real money: a signup CTA on a paid Taboola landing page had broken (a protocol-less link resolving to a 404). The July 30 audit surfaced it; the fix shipped and was live-verified on 2026-08-27, leaving 0 broken join links and 56 correct ones.

Content Integrity Monitoring

A three-layer integrity system, approved by the client, now guards the content: a field-level CMS baseline across 164 items and 1,305 text fields that alarms on shrunk or emptied fields, a rendered-page monitor across the 337-page sitemap, and a monthly full-content archive as a restore source. The site's llms.txt is maintained in sync and byte-verified after every paste.

Build Log
Excerpt · CMS

The Results

Homepage Lighthouse performance moved from 55 to 96 on mobile and from 68 to 94 on desktop. On mobile, LCP dropped from 8.6s to 1.3s and FCP from 5.0s to 0.8s. Accessibility, Best Practices, and SEO all reached 100 on mobile.

The blog runs on a standardized publishing system across its 156 articles under management, and the pipeline has passed a client-side clinical review with same-day corrections. Real B2B leads from the site's forms grew from 22 to 57 year over year (Aug to Jul windows), now tracked through a dedicated GA4 event and a weekly refreshed lead-composition analysis. At the July 2026 search baseline, the site sat on page 1 for 8 of 12 commercial queries and led its direct competitors in Google AI answer citations (363, versus 29, 6, and 14). The /ornish page ships a combined four-type JSON-LD block, and a three-layer content-integrity monitor guards the whole CMS.

Audit Results
Verified · CMS
Metric
Before
After
Figures as stated in the engagement changelog
publish|28 medical posts apr to jul|live batch|4 blog batches jul to aug|verified audit|351-page site crawl|fix list fix|paid LP join links 4 broken to 0|live wire|ga4 lead event|firing monitor|1,305 text fields baselined|armed
Mobile Lighthouse|55|96 Desktop Lighthouse|68|94 LCP|8.6s|1.3s AI answers citing site|—|363 Page 1 commercial queries|—|8 of 12 B2B leads per month YoY|1.8|4.8
Greg consistently goes above and beyond — he proactively identifies improvements I hadn't even considered and brings real problem-solving to the table. He's reliable, delivers on time, and is an excellent Webflow developer.
Joshua Gimble
Hired Grégoire for Oceans Talent and Carda Health
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