Skip to content
Andrew Michael Nathan

Website · 2026

Solavelle Health Resort

Solavelle Health Resort website

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

Skilled nursing and rehabilitation in a boutique-hotel setting in Miami. I audited the old site at 44 out of 100, rebuilt it in Astro in three directions, with the White one in English and Spanish, and re-scored it at 80.

This project is shown under a showcase identity to protect the client.

Project story

The project

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.

The identity

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.

Logo design

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.

Supporting work

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.

Tools used

Astro, TypeScript, CSS, HTML, Vercel, Zod, Supabase, PostgreSQL

Tools listed here were used across the project. What each one was used for is set out in the redesign below.

The redesign, in twelve parts

May 20 to June 25, 2026. Original audit score 44 → 80.

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

  1. 1. Research and planning

    141 pages archived, audited at 44 out of 100

    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.

    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, site-clone-redesign skill, Codex
    Why
    The rebuild took its copy and photos from the archive, and nothing the business had written was lost.

  2. 2. Platform and build

    WordPress replaced by a static Astro site

    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.

    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.

    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, a deploy script, GitHub Actions, Claude Code, Codex
    Why
    Every change ships to every version the same way, with no manual step to forget.

  3. 3. Pages and content

    Ten focused pages, the junk cleared out

    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
    The audit's crawl, Claude Code, Codex
    Why
    Search engines spend their time on real pages, and pages stop competing with each other.

    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, the archive, Claude Code, Codex
    Why
    Families find care, see the facility and call in fewer clicks.

    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
    The archive, the audit's contact data, Claude Code, Codex
    Why
    The same name, address and phone everywhere is a local-search factor, and every fact comes from the business itself.

    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
    A statistics band on the home page, Claude Code, Codex
    Why
    Credibility for search engines (E-E-A-T) and reassurance for families.

  4. 4. Visual design and experience

    White, Black and Gold, three ways to look

    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.

    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
    Logo artwork, CSS, Claude Code, Codex
    Why
    The brand reads clearly on every background.

    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
    It loads far faster and sends no video or ad requests.

    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.

  5. 5. Language (English and Spanish)

    The White direction in English and Spanish

    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, translated content files, Claude Code, Codex
    Why
    The resort is a Miami business, and the site reaches the many Spanish-speaking families it serves.

    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.

    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, CSS for Spanish pages, Claude Code, Codex
    Why
    Search engines can match each family with the right language, and long Spanish words fit.

  6. 6. Search (SEO)

    Its own title and description on every page

    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.

    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 copy, Claude Code, Codex
    Why
    It tells Google exactly what the business is and where.

    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.

  7. 7. Structured data

    Structured data score 8 → 70

    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.

  8. 8. AI search

    AI search score 30 → 82

    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.

    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.

  9. 9. Speed

    Images score 25 → 92

    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.

    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.

  10. 10. Accessibility

    Skip link, labels and focus on every page

    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.

    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.

  11. 11. Privacy and security

    No ad cookies or video trackers on load

    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 photo slides, Claude Code, Codex
    Why
    Visitors are not tracked by an ad network for opening the home page.

    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.

    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.

  12. 12. Testing and proof

    Re-scored 44 → 80 on the same rubric

    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
    The audit rubric, Claude Code, Codex
    Why
    An apples-to-apples result the client and the portfolio can stand behind.

    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
    Scripted checks, staging builds, Claude Code, Codex
    Why
    Problems are caught before the client sees them.

    Original audit score by category, before and after
    CategoryBeforeAfter
    Technical SEO5880
    Content4274
    On-page SEO4088
    Structured data870
    Performance7285
    Images2592
    AI search3082
    Overall4480

    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.

Before and after

The original site as its crawl archive recorded it, beside the redesigned pages captured from the live demo. Client identities were replaced for this public showcase; the original layout is preserved.

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
Solavelle: before Home page
After, Home
Solavelle: after Home page
Our Facility
Before, Our Facility
Solavelle: before Our Facility page
After, Our Facility
Solavelle: after Our Facility page
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
Solavelle: before General Services page
After, General Services
Solavelle: after General Services page
Rehabilitation
Before, Rehabilitation
Solavelle: before Rehabilitation page
After, Rehabilitation
Solavelle: after Rehabilitation page
Careers
Before, Careers
Solavelle: before Careers page
After, Careers
Solavelle: after Careers page
Contact
Before, Contact
Solavelle: before Contact page
After, Contact
Solavelle: after Contact page

The work

Solavelle Health Resort: Black
Black
Solavelle Health Resort: Black, Services
Black, Services
Solavelle Health Resort: Black, Our Facility
Black, Our Facility
Solavelle Health Resort: Black, Rehabilitation
Black, Rehabilitation