Giving an AI-built clinic site the structure and speed it never had
The founder built getwellclinic.com herself with Claude and Perplexity and it looked the part, but two navigation items returned 404, three priced services had no page at all, and the homepage shipped 5.7 MB of uncompressed images. We audited all 18 routes, rebuilt the site on Next.js around a real hierarchy, and redirected every legacy URL so none of the rankings or press links broke.
See it live at getwellclinic.com
Challenges and solutions
Building the navigation the site only pretended to have
The challenge`/services`, `/locations` and `/about` all returned 404, yet eleven pages shipped BreadcrumbList schema declaring `Home > Services > X` with both hub crumbs pointing at the homepage. The nav item for Services led to one arbitrary service. Locations led to a scroll anchor, which left all five location pages with zero inbound links from the header. For a five-location walk-in clinic, those are the pages that answer "urgent care near me".
What we shippedWe built the hubs the site had been describing but never had, nested every service and location underneath them, and shipped visible breadcrumbs backed by a BreadcrumbList that finally resolves to real URLs. The URL is now the hierarchy, so the structure a crawler reads and the structure a patient clicks are the same thing.
Giving three priced services somewhere to live
The challengeThe homepage advertised nine services with prices. Only six had pages. Chronic Care Management, the only recurring-revenue product on the site, was a card that linked to the page about colds and flu. Rapid point-of-care testing went to the same place. None of the three had a title, a description, schema, or any way to rank for its own name.
What we shippedWe shipped eight service pages, including chronic care, rapid tests and women's health, each with its own metadata, its own Service and FAQPage schema, and its own place in the hub. Every service the clinic charges for now has a page that can be found, linked and ranked on its own terms.
Pointing the walk-in CTA at something a walk-in actually needs
The challengeThe primary button on every page said "Walk in today" and went to a booking page listing seven raw Calendly links. Her own FAQ, on that same page, said all five locations are 100% walk-in and never need an appointment. Someone who needs to be seen today was being asked to self-diagnose which of seven medical products applied to them, then bounced to a third-party domain.
What we shippedThe primary calls to action are now "Find a location" and "Browse services", so a walk-in gets an address, a map and today's hours instead of a scheduler for something that does not need scheduling. The booking page was rebuilt around what the patient is trying to do rather than around a menu of billable products.
Making the site fast enough to compete in local search
The challengeThree photographs were served as uncompressed PNGs at 1536 px, 5.7 MB on the homepage alone, with no lazy loading and no responsive sources anywhere on the site. Every asset was served with `max-age=0, must-revalidate`, so a returning patient re-downloaded all of it on every single page view. On a mid-tier phone that suppresses Core Web Vitals, and with them, local ranking.
What we shippedImages now go through `next/image` as AVIF with WebP fallback and responsive sizes, and static assets are content-hashed and cached immutably for a year. The same three photographs that cost 5.7 MB now total about 78 KB at full width, a 98% reduction, and repeat visits serve from cache instead of re-fetching.
Restructuring every URL without losing what she had earned
The challengeAll 18 flat URLs were indexed, and several were the exact links her press coverage pointed at. Restructuring was clearly the right call, but a naive restructure 404s every existing backlink and throws away the rankings the rebuild is supposed to protect. That risk is the reason most sites in this state never get fixed.
What we shippedTen permanent redirects carry every legacy path to its new home, verified live on the production domain. The sitemap and robots file are generated from the same slug exports the routes are generated from, so the map can never drift from the pages that actually exist.
Marketing compounded GLP-1s without inviting a regulator
The challengeThis is a clinic marketing compounded semaglutide alongside patient testimonials, per-unit drug pricing, and an unqualified "the city's best" superiority claim repeated in the title, the H1 and the meta description. Unqualified superiority claims in medical advertising are an FTC concern and are restricted by many state medical boards, and pairing a drug name with a per-unit price carries its own exposure.
What we shippedWe removed drug-name-to-price pairings sitewide in favour of tiered pricing cards, dropped the superiority claim and the specific efficacy numbers, and shipped an Important Safety Information page carrying the boxed warning. The disclaimers that were already right, the compounded-medication notice, the LegitScript seal, the zero-forms-so-zero-PHI posture, were preserved rather than rebuilt.
Before and after
- BeforeTwo of six nav items not resolving to a real pageAfterSix nav items, every one a page, both dropdowns complete
- BeforeThree priced services with no page at allAfterEight service pages, each with its own schema and metadata
- BeforeThe walk-in CTA sending patients to a booking formAfterWalk-ins pointed at a location, a map and today's hours
- BeforeA 15 section homepage doing five other pages' jobsAfterTen focused sections, with the depth moved onto real pages
- Before5.7 MB of PNGs, re-downloaded on every page viewAfterAbout 78 KB of AVIF, cached immutably for a year
- BeforeNo analytics, no security headers, a blank 79 byte 404AfterGoogle tag and booking events, security headers, a branded 404
We audited before we quoted
Jouvonna came to us with a finished website. She had researched the content with Perplexity, built the site with Claude, and shipped it herself. She wanted it converted to Next.js, pixel for pixel, with a CMS if one was needed.
We could have done exactly that. Instead we crawled all 18 routes first and measured every claim against the live site rather than assuming it.
The site was competently built. CSS custom properties, working dark mode, reduced-motion support, focus-visible styles, per-page canonicals, unique titles and descriptions, real JSON-LD, and a clean console. Whoever built it knew what they were doing, which is exactly why "we converted it to Next.js" was not, on its own, a reason for her to care.
What the audit found underneath was a different story: six critical issues, five high-priority ones, and a root cause that no Lighthouse score would ever surface. We wrote it up, showed her the evidence, and proposed the rebuild the findings actually justified. She agreed, and that became the project.
We benchmarked her against ten competitors
An audit tells you what is broken. It does not tell you what good looks like in your category. So before proposing anything, we studied the sites she is actually losing patients to, and read them for structure rather than style.
Ten competitors across the three groups that matter to her:
- The national urgent-care operators, CityMD, Carbon Health, One Medical and Village Medical, for how a multi-location clinic organises services, locations and providers at scale.
- Her direct local rivals, Next Level Urgent Care, which runs 45+ Texas clinics including one in her own Atascocita neighbourhood, and Clinic 45, the beatable Houston incumbent.
- The telehealth weight-loss players she names on her own site, Hims, Ro and Found, plus ZoomCare as the closest structural analog to what she is building.
Read side by side, the same patterns showed up in every single one of them, and in none of hers.
- 1Services live under one prefix
CityMD nests
/services/illnesses/cold-flu. ZoomCare nests/services/weight-loss. Every operator in the set treats the URL as the hierarchy. Hers were flat root slugs with no hub, which is where the whole IA problem starts. - 2Locations are a two-tier tree
One Medical and Next Level both run a locations index down to a city page. Hers sat at the root with no index for Google, or a Google Business Profile, to point at.
- 3Homepages are short
CityMD runs about five sections, Carbon and One Medical about seven, ZoomCare about eight. Hers ran fifteen, at 18.7 screens tall.
- 4Many services get compressed, not listed
CityMD collapses everything into four intent buckets: I am sick, I am injured, I need a test, I need immunizations. Nobody in the set puts nine full service cards, two pricing tables and five treatment monographs on a homepage.
- 5Trust is a named human
Hims leads with a named physician. One Medical and Village Medical run provider directories. Next Level leads with its founder's story. Her founder, a credentialed FNP-C with eight press features, appeared only on the press page.
The research also told us what to leave alone, which mattered just as much:
Her price transparency is stronger than everyone in the set except ZoomCare, with exact dollar figures where CityMD, Carbon, One Medical and Clinic 45 show none. And her anti-subscription comparison table is a sharper positioning device than anything the competitors have. It was not a problem to solve. It was an asset sitting on the wrong page, and duplicated across two.
The information architecture was the real problem
Everything else on that list was fixable with better tooling. This was not.
The site had 18 pages and a navigation bar that misdescribed how they related. Its own structured data declared a hierarchy of hubs that had never been built, with the phantom crumbs quietly pointed at the homepage to paper over the gap. A single URL was doing the job of a category index and three separate services, so search engines were being told one page was about colds, and diabetes management, and strep testing, and the services hub. It ranks well for none of them.
The site was built as a landing page, then pages were bolted onto it, without ever going back to define the hierarchy. None of that shows up in a performance score. All of it was costing her patients.
The fix was to make the URL the hierarchy: if a parent page exists, its children live under it.


Rebuilding the front door
The hubs only pay off if the navigation and the first screen point at them. Both were rebuilt around what a patient is actually trying to do.
The navbar carried ten interactive items, and two of the six real ones did not resolve to a page. Services dropped you on one arbitrary service. Locations was a scroll anchor, which from any interior page meant a full navigation back to the homepage to land at a scroll position. New Patient was a label that excluded returning patients and led to a menu of billable products.
It is now six items, and every one is a real page:
- Services and Locations are proper dropdowns that list every child page, so all eight services and all five clinics are one hover from anywhere on the site. Those five location pages previously had zero inbound links from the header, on a site whose whole business is people searching for a clinic nearby.
- New Patient became Book online, which is what it always was.
- Press kept its slot, and the rest of the clutter came out.
The hero had one primary button, "Walk in today", pointing at a scheduler. The rebuild splits the intent the way the strongest operators in the benchmark set do, into two equal paths: find a location, or browse services. Someone who needs care today gets an address. Someone still deciding gets the menu.
Underneath it sits the thing the research said was her real weapon: three headline prices, in the first screen, where the transparent pricing that beats almost every competitor is the first thing a visitor sees instead of something buried on page four.
The homepage behind it went from fifteen sections and 18.7 screens to ten focused sections, roughly 43% shorter, with the weight-loss depth moved back onto the weight-loss page where it stops competing with itself.
Migrating without breaking what she already had
Restructuring URLs is the highest-risk part of a rebuild like this. Her site was young, so the ranking cost of moving was low, but her press coverage linked directly to the old flat paths and those links are hard-won.
- 1Every legacy path redirects permanently
Ten redirects carry each old URL to its new home, including the ones a prefix rule could not cover because the service was renamed as well as moved. All verified on the production domain, not just in config.
- 2The sitemap cannot drift
Both the sitemap and the robots file are generated from the same slug exports that generate the routes, so a new service page appears in the sitemap by existing rather than by someone remembering.
- 3Previews stay out of the index
Only the real production domain is crawlable. Vercel previews and demo deployments are disallowed, so no staging copy ever competes with the live site.
The things that were quietly costing her
Three findings had nothing to do with design and everything to do with the business:
- She had no analytics at all. Not on any of the 18 pages. She was running a press campaign, paying for a website, and driving traffic to seven separate booking links, and could not answer how many people visited, which location page got traffic, or how many actually booked. The rebuild ships her own Google tag with booking clicks tracked as events.
- Most of the page vanished if one script failed. Thirty-one homepage
elements started at
opacity: 0and were revealed only by a single inline script, with no<noscript>anywhere. An ad-blocker or a corporate proxy meant a blank page. Content is now server-rendered and visible by default, with the reveal applied on top only after the page has already loaded. - Every mistyped URL hit a blank 79-byte response. No title, no branding, no way back. Now a branded 404 that routes people to the pages they were probably looking for.
Get Well Clinic went from 18 flat HTML files with a navigation bar that lied about them to 24 pages on a hierarchy that a patient and a crawler read the same way. Three priced services that had no page now have one each. The homepage image payload dropped by 98%, assets cache for a year instead of revalidating on every click, and the walk-in CTA finally points a walk-in at a door.
Every legacy URL still resolves, so the press links and the rankings she had earned came through the migration intact. And because the whole thing runs on her own GitHub, her own Vercel account and her own domain, none of it is rented back to her.
Technology stack
Did AI build you a site that looks right and ranks wrong?
Get Well Clinic's site was competently built and structurally broken, and no Lighthouse score would have told her. We audit before we rebuild, then migrate without losing what you have already earned. Send us the URL.