Webflow to Next.js Migration — Full Technical Audit
Kiltz Health underwent a complete platform migration from Webflow to a custom-built Next.js 16 application deployed on Vercel. This redesign was not cosmetic — it was a ground-up rebuild engineered for search engine performance, content scale, and long-term growth.
The new site addresses critical SEO shortcomings of the Webflow build — missing structured data, absent meta descriptions, no sitemap automation, no accessibility compliance, and limited content architecture — while introducing AI-readiness features like llms.txt and semantic HTML optimized for LLM crawling.
Bottom line: The migration transforms kiltzhealth.com from a marketing-template site into a scalable, SEO-engineered content platform capable of competing for high-intent health and nutrition search queries.
The foundation of search performance begins with the technical stack. The migration from Webflow's proprietary rendering engine to Next.js 16 with server-side rendering represents a generational leap in how search engines discover, crawl, and index the site.
| Factor | Old Site (Webflow) | New Site (Next.js 16) |
|---|---|---|
| Framework | Webflow (client-side rendering with heavy JS bundle) | Next.js 16 with SSR/SSG hybrid rendering |
| Hosting | Webflow CDN (shared infrastructure) | Vercel Edge Network (global PoPs, ISR support) |
| Rendering | Client-rendered DOM; JS required for content | Server-rendered HTML; content visible before JS loads |
| Page Speed | Slower (Webflow JS runtime, unoptimized images, no code splitting) | Optimized (SSR, automatic code splitting, image optimization) |
| Core Web Vitals | Poor LCP (large unoptimized hero images); CLS from late-loading widgets | Optimized LCP (priority loading, WebP), minimal CLS, fast INP |
| Mobile Experience | Responsive but heavy (full JS bundle on mobile) | Mobile-first design with NativeWind; optimized payloads |
| Font Loading | External font files; render-blocking | next/font with display: swap; no layout shift |
| SSL / HTTPS | Yes | Yes |
| HTTP/3 | Partial | Yes (Vercel Edge) |
| URL Redirects | None (old URLs would 404) | 32 permanent (301) redirects for all legacy Webflow URLs |
Largest Contentful Paint (LCP)
Total Blocking Time (TBT)
On-page SEO is where the redesign delivers the most measurable improvement. Every page in the new site has been individually optimized with unique metadata, proper heading hierarchy, and semantic HTML.
sizes attributesizes on all images (e.g., (max-width: 1024px) 100vw, 50vw)priority on hero/above-fold imagesStructured data tells search engines what content is on the page, not just what it says. The old site had zero schema markup. The new site implements 8 distinct schema types, enabling rich results in Google Search including article carousels, sitelinks search boxes, breadcrumb trails, and knowledge panel data.
| Schema Type | Old Site | New Site | Where Applied |
|---|---|---|---|
| Organization | None | Yes | Homepage — name, logo, founder, sameAs social profiles |
| WebSite + SearchAction | None | Yes | Homepage — enables Google Sitelinks Search Box |
| Person (Dr. Kiltz) | None | Yes | About page — name, jobTitle, description, credentials, sameAs |
| Article | None | Yes | All 608 article pages — headline, author, publisher, datePublished, image |
| BreadcrumbList | None | Yes | Article pages — Home → Articles → Category → Article |
| MedicalBusiness | None | Yes | Provider directory — 756 provider listings with geographic data |
| Event | None | Yes | Individual event pages — name, date, location, description |
| Course | None | Yes | Coaching Certification page — name, description, provider |
Rich Results Impact: Article schema enables Google's "Top Stories" carousel and article rich snippets. BreadcrumbList schema replaces ugly URL strings with readable navigation paths in search results. Organization schema feeds the Google Knowledge Panel. WebSite+SearchAction can trigger a sitelinks search box directly in SERPs.
A well-structured site architecture helps search engines understand content relationships and distribute link equity effectively. The new site replaces Webflow's flat structure with a hierarchical, category-driven architecture.
| Content Type | Old URL Pattern | New URL Pattern |
|---|---|---|
| Articles | /articles/[slug] | /articles/[slug] |
| Categories | /article/[category] | /articles/category/[slug] |
| Resources | /resource-hub /resource-hub/[type] | /resources /resources/[type] |
| Certification | /kiltz-health-coaching-certification | /coaching-certification |
| Providers | Not available | /providers /providers/[slug] New |
| Coaches | Not available | /coaches /coaches/[slug] New |
| Content Type | Old Site | New Site |
|---|---|---|
| Static Pages | ~10 pages | 17 pages |
| Category Pages | 9 (flat /article/ URLs) | 9 (hierarchical /articles/category/) |
| Resource Type Pages | 5 | 5 |
| Article Pages | ~608 | 608 (all migrated) |
| Provider Pages | 0 | 756 New |
| Coach Pages | 0 | Dynamic New |
| Event Pages | 0 | Dynamic New |
| Total Indexable URLs | ~630 | 1,400+ |
Content indexation is how search engines discover and catalog pages. The old Webflow site relied on Webflow's auto-generated sitemap with limited control. The new site uses a dynamically generated sitemap that covers every URL with proper metadata.
robots.ts with proper directives//api/ and /providers/apply (private forms)googleBot with max-image-preview: large and max-snippet: -1As AI-powered search (Google AI Overviews, ChatGPT, Perplexity, Claude) becomes a primary discovery channel, optimizing for LLM crawling and citation is a competitive advantage. The new site is built with AI discoverability as a first-class concern.
| Feature | Old Site | New Site |
|---|---|---|
| llms.txt | None | Yes — 50-line structured document at /llms.txt |
| Semantic HTML | Webflow div soup with class-based styling | Clean semantic HTML: <article>, <section>, <nav>, <main>, <header>, <footer> |
| Content Structure | Flat content blocks | Hierarchical headings, breadcrumbs, and category taxonomy |
| Schema Markup | None | 8 types — helps AI understand content relationships |
| Content Freshness Signals | No dates on many pages | datePublished in schema + visible dates on all articles |
| Author Authority | Minimal author attribution | Author profiles with linked Person schema; Dr. Kiltz credentials in schema |
What is llms.txt? A plain-text file at the site root that gives AI chatbots a structured summary of the site's content, topics, and purpose. It functions like robots.txt but for LLMs — helping AI tools understand and accurately cite the site's content. Kiltz Health's llms.txt covers the founder, key topics (carnivore diet, BEBBIIS, intermittent fasting), all 9 article categories, services, and contact information.
Accessibility is both an ethical obligation and an SEO factor. Google explicitly uses accessibility signals (alt text, semantic structure, mobile usability) as ranking inputs. The new site was built with WCAG 2.1 AA compliance as a baseline, not an afterthought.
| Accessibility Feature | Old Site | New Site |
|---|---|---|
| Skip Navigation Link | None | Yes — "Skip to main content" link, visible on focus |
| ARIA Labels | Minimal | All interactive elements labeled (buttons, links, forms, external links) |
| Semantic Landmarks | Div-based layout | <header>, <main id="main-content">, <footer>, <nav>, <article> |
| Image Alt Text | Generic or missing on many images | Descriptive alt text on all 30+ site images; decorative images marked |
| Form Labels | Placeholder-only inputs | Proper <label> elements (sr-only where needed) + htmlFor association |
| Focus Management | None | Yes — visible focus rings, keyboard-navigable interface |
| Color Contrast | Not verified | WCAG AA compliant contrast ratios throughout |
| Reduced Motion | None | Yes — prefers-reduced-motion support |
| UserWay Widget | Yes | Yes — retained and loaded via afterInteractive strategy |
Page speed is a direct Google ranking factor. The new site leverages Next.js 16's rendering pipeline and Vercel's edge infrastructure to deliver content significantly faster than the Webflow build.
| Page Type | Rendering Method | Benefit |
|---|---|---|
| Homepage, About, Method | Static Generation (SSG) | Instant load; served from CDN edge; zero server time |
| Articles (608 pages) | Server-Side Rendering (SSR) | Always-fresh content from Supabase; full HTML for crawlers |
| Providers (756 pages) | Server-Side Rendering (SSR) | Dynamic provider data; geographic queries at request time |
| Events, Coaches | Server-Side Rendering (SSR) | Always-current event dates and coach availability |
display: swap and CSS variable binding; no FOUT or layout shiftafterInteractive strategy; never blocks first paintAll existing tracking pixels and third-party integrations have been preserved and optimized for performance. No tracking was lost in the migration.
| Integration | Status | Implementation Details |
|---|---|---|
| Meta Pixel (Facebook) | Active | Pixel ID 542286029638671; loaded via next/script afterInteractive; tracks PageView on every route |
| Audience Pixel | Active | Identity pixel 19fcdd88-2c80-4e6e-81f3-9fdf106250de; loaded afterInteractive |
| Jetboost | Active | Site ID cmbtrmpes00390kzq93dic5oo; async script loading |
| UserWay Accessibility | Active | Account 6yOhTbwpCO; loaded afterInteractive to avoid blocking render |
| Google Analytics 4 | Recommended | Not yet configured — see Recommendations section |
| Google Search Console | Recommended | Verification meta tag slot ready; sitemap URL configured in robots.txt |
The technical foundation is in place. The following actions will maximize the SEO return on this investment and accelerate organic growth.
| Action | Priority | Impact |
|---|---|---|
| Submit sitemap to Google Search Console | Critical | Triggers crawl of all 1,400+ URLs; essential for indexation |
| Verify site in Google Search Console | Critical | Access to indexing data, search performance, and crawl error reports |
| Set up Google Analytics 4 | Critical | Track organic traffic, user behavior, and conversion events |
| Verify Bing Webmaster Tools | High | Bing powers AI search results in ChatGPT and Copilot |
| Test all 32 redirects | High | Confirm old Webflow URLs resolve correctly; no 404 loops |
The following pages are included in the new site's sitemap and are available for indexation.
| Page | URL | Priority |
|---|---|---|
| Homepage | / | 1.0 |
| About | /about | 0.8 |
| The Kiltz Method | /the-kiltz-method | 0.8 |
| Tribe | /tribe | 0.7 |
| Articles Hub | /articles | 0.9 |
| Events | /events | 0.7 |
| Providers Directory | /providers | 0.8 |
| Coaches | /coaches | 0.7 |
| Coaching Certification | /coaching-certification | 0.7 |
| Resources Hub | /resources | 0.7 |
| Contact | /contact | 0.5 |
| Share Your Story | /share-your-story | 0.5 |
| Book | /book | 0.5 |
| Privacy Policy | /privacy | 0.3 |
| Terms of Use | /terms | 0.3 |
| Cookie Policy | /cookies | 0.3 |
| Disclaimer | /disclaimer | 0.3 |
| Content Type | URL Pattern | Count | Priority |
|---|---|---|---|
| Article Categories | /articles/category/[slug] | 9 | 0.7 |
| Resource Types | /resources/[type] | 5 | 0.6 |
| Articles | /articles/[slug] | 608 | 0.6 |
| Providers | /providers/[slug] | 756 | 0.5 |
| Coaches | /coaches/[slug] | Dynamic | 0.5 |
| Events | /events/[slug] | Dynamic | 0.5 |
| Old URL | New URL | Type |
|---|---|---|
| /article/carnivore-diet | /articles/category/carnivore-diet | 301 |
| /article/community-stories-transformations | /articles/category/community-stories-transformations | 301 |
| /article/diet-myths-faqs | /articles/category/diet-myths-faqs | 301 |
| /article/food-nutrition-science | /articles/category/food-nutrition-science | 301 |
| /article/health-metabolic-wellness | /articles/category/health-metabolic-wellness | 301 |
| /article/intermittent-fasting-fasting-strategies | /articles/category/intermittent-fasting-fasting-strategies | 301 |
| /article/keto-low-carb-living | /articles/category/keto-low-carb-living | 301 |
| /article/mind-body-and-lifestyle | /articles/category/mind-body-and-lifestyle | 301 |
| /article/recipes-meal-ideas | /articles/category/recipes-meal-ideas | 301 |
| /resource-hub | /resources | 301 |
| /resource-hub/books | /resources/books | 301 |
| /resource-hub/courses | /resources/courses | 301 |
| /resource-hub/pdfs | /resources/pdfs | 301 |
| /resource-hub/products | /resources/products | 301 |
| /resource-hub/thought-leaders | /resources/thought-leaders | 301 |
| /kiltz-health-coaching-certification | /coaching-certification | 301 |
| /kiltz-health-coaching-certification-copy | /coaching-certification | 301 |
| /kzh-coaches-sign-up | /coaching-certification | 301 |
| /kiltz-method | /the-kiltz-method | 301 |
Plus 13 additional article-level redirects configured in next.config.ts.