Skip to the record

Back to the case study

Website redesign record

The Solavelle redesign

Solavelle Health Resort. May 20 to June 25, 2026. SEO health 44 → 80.

SEO audit, website redesign and AI-assisted build · Client project, shown as Solavelle · 2026

A client project for a skilled nursing and rehabilitation resort in Miami, shown here as Solavelle so the client stays private. On May 20, 2026 I audited the old site with Claude Code's seo-audit skill: 44 out of 100, with no structured data and no meta description on any of its 107 pages, and about 20 theme-demo pages indexed. The next day I crawled and archived all 141 pages and 235 assets.

I rebuilt it in Astro with Claude Code from that archive, then built three directions, with the White one in English and Spanish for its Miami families. Re-scored on the same rubric on June 25, it reached 80, with every Critical and High audit item fixed. The redesign blueprint sets out the work in twelve parts: what I did, what I used and why.

I wrote the audit and action plan, a score-comparison report and a proposal in six revisions, each rendered to a branded PDF. In September I added a content model with Zod schemas, a Supabase database with row-level security and Vitest tests, preparing the site for an editor without changing what visitors see.

A real client project, shown as Solavelle so the client stays private. Dates, tools, counts and scores come from the original work's records.

Part 1 of 12

Research and planning

141 pages archived, audited at 44 out of 100

  1. What I did
    Ran a full SEO audit of the old site on a seven-category weighted rubric, with every finding ranked Critical, High, Medium or Low. It scored 44 out of 100.
    What I used
    Lighthouse, Chrome UX Report field data, Chrome DevTools, BeautifulSoup, Claude Code, Codex
    Why
    It turned the old site's problems into a ranked list of work and a baseline to prove the result.
  2. What I did
    Crawled and archived the whole old site, every page saved as HTML, text and metadata with its images, fonts and scripts: 141 pages and 235 assets.
    What I used
    Claude Code, Custom site-archive skill, Codex
    Why
    The rebuild took its copy and photos from the archive, and nothing the business had written was lost.

Part 2 of 12

Platform and build

WordPress replaced by a static Astro site

  1. What I did
    Replaced the WordPress site with a static Astro site: no CMS, no database and no plugins to patch.
    What I used
    Astro 5, @astrojs/sitemap, Claude Code, Codex
    Why
    There is far less to keep secure, the pages are faster, and hosting is simple.
  2. What I did
    Built three directions, White, Black and Gold, on one content structure, each with its own palette and type.
    What I used
    Astro layouts, CSS design tokens, Claude Code, Codex
    Why
    The client chooses a look without changing content or SEO.
  3. What I did
    Deployed each direction to its own Vercel address from one build, with a workflow that builds and deploys all three whenever the site changes.
    What I used
    Vercel, Deploy script, GitHub Actions, Claude Code, Codex
    Why
    Every change ships to every version the same way, with no manual step to forget.

Part 3 of 12

Pages and content

Ten focused pages, the junk cleared out

  1. What I did
    Cleared out the junk: about 20 theme-demo pages, three overlapping services listings, duplicate copies of pages, an admin author archive and a 27-post blog from 2017.
    What I used
    Crawl inventory, Claude Code, Codex
    Why
    Search engines spend their time on real pages, and pages stop competing with each other.
  2. What I did
    Built ten focused pages in each direction from the archive's own copy: home, facility, team, services, all services, rehabilitation, careers, contact, emergency rules and visitation.
    What I used
    Astro, Archived site content, Claude Code, Codex
    Why
    Families find care, see the facility and call in fewer clicks.
  3. What I did
    Checked every fact in the copy against the archive and the audit: the city in the address, the main phone line and the fax number each in its own place, and every team bio on its own page.
    What I used
    Archived site content, Audit contact data (NAP), Claude Code, Codex
    Why
    The same name, address and phone everywhere is a local-search factor, and every fact comes from the business itself.
  4. What I did
    Put trust signals on the home page: the accreditation and the Five-Star rating, with facts such as the bed count and the hours of therapy each day.
    What I used
    Trust-signal stats band, Claude Code, Codex
    Why
    Credibility for search engines (E-E-A-T) and reassurance for families.

Part 4 of 12

Visual design and experience

White, Black and Gold, three ways to look

  1. What I did
    Designed three directions from the brand: White, an editorial magazine look with Volume, Issue and Chapter markers in bronze on white; Black, in ivory and gold on near-black; and Gold, in gold and cream with emerald.
    What I used
    CSS design tokens, Google Fonts, Claude Code, Codex
    Why
    A distinctive, premium look in place of a stock theme, and three real choices for the client.
  2. What I did
    Placed the full logo in the header, the mobile menu and the footer, with a transparent footer logo on White and the white wordmark on Gold.
    What I used
    Brand logo files, CSS, Claude Code, Codex
    Why
    The brand reads clearly on every background.
  3. What I did
    Replaced the autoplay YouTube video with a four-slide photo hero: the headline over crossfading slides, with slide dots.
    What I used
    CSS, Claude Code, Codex
    Why
    The audit found the video setting DoubleClick advertising cookies the moment the home page opened, before any consent. The photo hero sends no video or ad requests and loads far faster.
  4. What I did
    Built a mobile drawer that slides in and closes with Escape or a tap outside, and a sticky top bar on every direction that carries the language switch.
    What I used
    CSS, JavaScript, Claude Code, Codex
    Why
    Most families browse on a phone, and the menu and the language stay one tap away.

Part 5 of 12

Language (English and Spanish)

The White direction in English and Spanish

  1. What I did
    Built the full Spanish site for the White direction: ten Spanish pages, with the services, the team and the testimonials translated, and a language switch.
    What I used
    Astro i18n routing, Bilingual content files, Claude Code, Codex
    Why
    The resort is a Miami business, and the site reaches the many Spanish-speaking families it serves.
  2. What I did
    Chose each visitor's language from the browser's own settings, tested in 15 scenarios.
    What I used
    navigator.languages, JavaScript, Claude Code, Codex
    Why
    A browser set to Spanish arrives in Spanish, without looking for a switch.
  3. What I did
    Linked every page to its twin with hreflang tags, x-default included, and sized the Spanish menu and headings so long words fit.
    What I used
    hreflang link tags, Locale-specific CSS, Claude Code, Codex
    Why
    Search engines can match each family with the right language, and long Spanish words fit.

Part 6 of 12

Search (SEO)

Its own title and description on every page

  1. What I did
    Gave every page, in both languages, its own title, description and canonical address, with Open Graph and Twitter card tags.
    What I used
    Astro layouts, Claude Code, Codex
    Why
    Clearer search snippets, more clicks, and clean previews when a page is shared.
  2. What I did
    Led the home page with a keyword title naming the care, skilled nursing and senior rehabilitation, and the city.
    What I used
    On-page SEO copywriting, Claude Code, Codex
    Why
    It tells Google exactly what the business is and where.
  3. What I did
    Produced a new robots.txt with a Sitemap line and no crawl delay, where the old one let a crawler read one page every 30 seconds, and generated a sitemap for each direction.
    What I used
    robots.txt, @astrojs/sitemap, Claude Code, Codex
    Why
    Search engines crawl the whole site quickly.

Part 7 of 12

Structured data

Structured data score 8 → 70

  1. What I did
    Added MedicalBusiness JSON-LD to every page of every direction: the name, postal address, map coordinates, medical specialty and area served.
    What I used
    JSON-LD (schema.org), Claude Code, Codex
    Why
    Search engines read the business's facts without guessing, which supports local results and the map pack.

Part 8 of 12

AI search

AI search score 30 → 82

  1. What I did
    Published llms.txt, a plain summary of the business and its care for AI assistants.
    What I used
    llms.txt, Claude Code, Codex
    Why
    AI assistants can read an accurate summary of the business.
  2. What I did
    Set explicit allow rules for GPTBot, ClaudeBot and PerplexityBot in robots.txt.
    What I used
    robots.txt, Claude Code, Codex
    Why
    The named AI crawlers are allowed to read the whole site.

Part 9 of 12

Speed

Images score 25 → 92

  1. What I did
    Rebuilt the site as static pages, without the WordPress theme, its sliders and plugins, or the autoplay video that made more than 50 third-party requests on the home page.
    What I used
    Astro static build, Claude Code, Codex
    Why
    Faster pages keep visitors from waiting: Performance went from 72 to 85.
  2. What I did
    Ran every content image through one pipeline: WebP, responsive sizes, and a width and height on every image. The badges went from 96 kB to 3 kB, and the photographs came out 50 to 75% smaller.
    What I used
    Astro image pipeline, Claude Code, Codex
    Why
    Faster loading and no layout shift as the page arrives.

Part 10 of 12

Accessibility

Skip link, labels and focus on every page

  1. What I did
    Built to the WCAG 2.1 AA basics: a skip link, a main landmark, labeled form fields, a titled map, visible keyboard focus and pinch zoom allowed.
    What I used
    Semantic HTML, ARIA labels, CSS focus styles, Claude Code, Codex
    Why
    Easier for older visitors and for keyboard and screen-reader users.
  2. What I did
    Wrote alt text for the images and turned the motion off for visitors who ask for reduced motion.
    What I used
    Alt attributes, prefers-reduced-motion, Claude Code, Codex
    Why
    Screen readers describe the photographs, and motion-sensitive visitors get a still page.

Part 11 of 12

Privacy and security

No ad cookies or video trackers on load

  1. What I did
    Removed the autoplay YouTube hero, and with it the DoubleClick advertising cookies and the third-party requests it fired the moment the home page opened.
    What I used
    Self-hosted image slider, Claude Code, Codex
    Why
    Visitors are not tracked by an ad network for opening the home page.
  2. What I did
    Replaced WordPress with static files: no login page, no database, no plugins, and no server or CMS version announced in the page.
    What I used
    Astro static build, Claude Code, Codex
    Why
    It removes the most common ways a small business's site is attacked.
  3. What I did
    Served every page over HTTPS with HSTS.
    What I used
    Vercel, Claude Code, Codex
    Why
    Browsers are told to connect only over HTTPS.

Part 12 of 12

Testing and proof

Re-scored 44 → 80 on the same rubric

  1. What I did
    Re-scored the White build on the same seven-category rubric: 44 to 80, with every Critical and High finding resolved.
    What I used
    Seven-category SEO rubric, Claude Code, Codex
    Why
    An apples-to-apples result the client and the portfolio can stand behind.
  2. What I did
    Tested the browser-language choice in 15 scenarios and ran a dry build of each direction, checking its pages and its sitemap, before deploying.
    What I used
    Automated QA scripts, Staging builds, Claude Code, Codex
    Why
    Problems are caught before the client sees them.
Out of 100, by category, from the audit to the re-score
CategoryWeightBeforeAfter
Technical SEO25%5880
Content25%4274
On-page SEO20%4088
Structured data10%870
Performance10%7285
Images5%2592
AI search5%3082
Overall100%4480

Scores use the audit's seven-category SEO rubric (Technical 25%, Content 25%, On-page 20%, Structured data 10%, Performance 10%, Images 5%, AI search 5%). It is not a Google score.

Measurements

  • Every one

    Critical and High audit findings resolved

    Recorded in part 12, Testing and proof

  • Every page

    Pages with their own title and description

    Recorded in part 6, Search (SEO)

  • Before: 96 kB After: 3 kB

    Badge images

    Recorded in part 9, Speed

  • 50 to 75% smaller

    Photographs, after the image pipeline

    Recorded in part 9, Speed

  • Before: One page every 30 seconds After: None

    Crawl delay in robots.txt

    Recorded in part 6, Search (SEO)

Before and after

The before is each page of the old site as its crawl archive recorded it, rendered from its own HTML, CSS and fonts with the client's identity replaced: the layout, type and colors are the original's, faults included. The after is the redesigned page, captured from the live demo.

Home

The old home page autoplayed a YouTube video in its hero on every visit, which set cookies before visitors agreed. The redesign has no video and makes no third-party requests on load.

Before

Home, before

After

Home, after
Home · archived May 21, 2026 · captured October 24, 2026

Our Facility

Before

Our Facility, before

After

Our Facility, after
Our Facility · archived May 21, 2026 · captured October 24, 2026

General Services

The old page, like every page of the old site, had no meta description and no structured data; the redesign gives every page a title, a description and structured data.

Before

General Services, before

After

General Services, after
General Services · archived May 21, 2026 · captured October 24, 2026

Rehabilitation

Before

Rehabilitation, before

After

Rehabilitation, after
Rehabilitation · archived May 21, 2026 · captured October 24, 2026

Careers

Before

Careers, before

After

Careers, after
Careers · archived May 21, 2026 · captured October 24, 2026

Contact

Before

Contact, before

After

Contact, after
Contact · archived May 21, 2026 · captured October 24, 2026

Live demos

I designed three directions on one content structure: White, an editorial layout with magazine-style numbered inner pages, and Black and Gold, which change the type, atmosphere and emphasis over the same content.

For this showcase I directed a new identity, Solavelle: a flowing S symbol with a serif wordmark and a widely spaced descriptor, in full, light and icon versions.

Client privacy

Solavelle is a showcase identity that keeps the client private: the client's name, logo, copy, photographs and contact details are replaced, while the dates, tools, counts and scores are the original project's own.

Where the figures come from

  • Scores use the audit's seven-category SEO rubric. It is not a Google score, and it measures the site itself, not search rankings, traffic or inquiries.
  • The live demos carry the Solavelle showcase identity, with replacement copy and photographs. The scores and measurements above come from the original client build, re-scored on June 25, 2026, not from the demos.
  • The before captures rebuild the archived pages from their own HTML, CSS and fonts with the client's identity replaced, so their copy and photographs are not the original's; their layout, type and colors are.
  • The audit reports, proposals and other client records are private, so none is published or offered for download here.

Back to the case study