DIZAYN.
Case studies

Case Study: Luvory Luxury Toilets' Website

Written by the Dizayn team

The problem: a good-looking site with an invisible technical limit

Luvory Luxury Toilets' website, a luxury portable toilet rental business in Guadalajara, looked good and worked fine — but it ran on a static hosting platform that didn't allow control over real HTTP headers. It's a limit a visitor never notices, but one that blocks real technical discovery signals that search engines and AI systems actually read.

Why this matters more than it sounds

An HTTP header is information the server sends before the page even loads — unlike an HTML tag, which a system has to download and parse the entire page to find. We confirmed empirically (with a direct test, not an assumption) that the previous platform silently dropped custom headers, even when the config was technically written correctly.

The decision: migrate, don't rebuild

Instead of throwing away the design work already invested, we migrated the site to TanStack Start, which unlocked real server control without losing any of the existing design. We confirmed with a direct test (`curl -I` against the published site) that headers now arrive fully intact — not an assumption, a verifiable check.

What got fixed along the way

The automated migration brought two real regressions that weren't obvious at a glance:

Problem foundWhy it mattered
Duplicate `` tag on every page</td><td class="border border-border px-4 py-2 text-muted-foreground">Confuses search engines about which title is real</td></tr><tr class="bg-card"><td class="border border-border px-4 py-2 text-muted-foreground">`<html lang="es-MX">` hardcoded on every page, including English ones</td><td class="border border-border px-4 py-2 text-muted-foreground">Tells the browser and search engines an English page is in Spanish</td></tr></tbody></table></div><p class="text-muted-foreground leading-relaxed mb-4">Neither shows up browsing the site normally — both were caught by an explicit audit, not by trusting "if it builds, it's fine."</p><h2 id="the-result" class="font-display text-2xl md:text-3xl text-foreground mt-12 mb-4 scroll-mt-28">The result</h2><p class="text-muted-foreground leading-relaxed mb-4">A site running on the same design foundation as always, but with real architecture underneath: controllable HTTP headers, correctly separated English and Spanish URLs (not just an `/en/` prefix, but actually translated routes), and room to keep adding features without hitting the same limit again.</p><p class="text-muted-foreground leading-relaxed mb-4">Does your current site have this same kind of invisible limit? <a href="/en/contact" class="text-primary underline underline-offset-4 hover:no-underline">Tell us about your project</a> or check the details of our <a href="/en/services/web-design" class="text-primary underline underline-offset-4 hover:no-underline">website design service</a>. See the real result at <a href="https://luvory.com.mx/en" target="_blank" rel="noopener noreferrer" class="text-primary underline underline-offset-4 hover:no-underline">luvory.com.mx</a>, for example its <a href="https://luvory.com.mx/en/restroom-trailers" target="_blank" rel="noopener noreferrer" class="text-primary underline underline-offset-4 hover:no-underline">luxury restroom trailers</a> page.</p></div><section class="mt-16 border-t border-border pt-12"><h2 class="font-display text-2xl text-foreground mb-8">FAQ</h2><dl class="space-y-8"><div><dt class="font-display text-lg">What problem did Luvory's site have before?</dt><dd class="mt-2 text-sm text-muted-foreground">It ran on a static hosting platform that didn't allow control over real HTTP headers — a technical limit invisible to a regular visitor, but one that blocked SEO and discovery improvements that matter to search engines and AI systems.</dd></div><div><dt class="font-display text-lg">Why migrate to TanStack Start instead of rebuilding from scratch?</dt><dd class="mt-2 text-sm text-muted-foreground">Because it unlocked real server control (headers, dynamic routes) without losing the design work already invested — the migration happened on top of the existing base, not as a full rebuild.</dd></div><div><dt class="font-display text-lg">What does a business actually gain from this?</dt><dd class="mt-2 text-sm text-muted-foreground">Real HTTP headers for discovery signals (not just HTML tags), correctly separated English and Spanish URLs, and an architecture that doesn't require a rebuild every time a new feature gets added.</dd></div><div><dt class="font-display text-lg">Does this type of work apply to any site?</dt><dd class="mt-2 text-sm text-muted-foreground">The specific header case applies to sites on limited static hosting. The general principle — architecture that doesn't block future improvements — applies to any project.</dd></div></dl></section></article><section class="mt-20 rule pt-16"><h2 class="font-display text-2xl">Does your brand need this?</h2><p class="mt-3 max-w-xl text-muted-foreground">Let's talk about your project and where to start.</p><div class="mt-6 flex flex-col gap-3 sm:flex-row"><a href="https://wa.me/524621922778?text=Hi%20Dizayn%2C%20I'd%20like%20a%20quote%20for%20a%20project." target="_blank" rel="noreferrer" class="btn-wa"><svg viewBox="0 0 24 24" class="h-5 w-5" fill="currentColor" aria-hidden="true"><path d="M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.25-.46-2.38-1.47-.88-.78-1.47-1.75-1.64-2.05-.17-.3-.02-.46.13-.6.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37s-1.04 1.02-1.04 2.48 1.07 2.88 1.22 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.69.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.69.25-1.28.17-1.41-.07-.13-.27-.2-.57-.35z"></path><path d="M12.04 2C6.6 2 2.17 6.43 2.17 11.87c0 1.74.46 3.44 1.32 4.94L2 22l5.35-1.4a9.86 9.86 0 0 0 4.69 1.2h.01c5.44 0 9.87-4.43 9.87-9.87S17.48 2 12.04 2zm0 17.98a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.17.83.85-3.09-.2-.32a8.16 8.16 0 0 1-1.25-4.36c0-4.52 3.68-8.2 8.2-8.2 2.19 0 4.25.86 5.8 2.4a8.15 8.15 0 0 1 2.4 5.8c0 4.53-3.68 8.21-8.2 8.21z"></path></svg>Get a quote on WhatsApp</a><a class="btn-ghost" href="/en/contact">I prefer the form</a></div></section><section class="mt-20 rule pt-16"><h2 class="font-display text-2xl">Related articles</h2><div class="mt-8 grid gap-px bg-border sm:grid-cols-2"><a class="group flex flex-col justify-between bg-background p-8 transition-colors hover:bg-card" href="/en/blog/luvory-seo-case-study"><div><div class="flex items-center gap-3"><span class="text-xs uppercase tracking-[0.18em] text-primary">Case studies</span><time class="text-xs text-muted-foreground" dateTime="2026-08-25">August 25, 2026</time></div><h2 class="mt-4 font-display text-2xl">Case Study: SEO Diagnosis and Fix for Luvory</h2><p class="mt-3 text-sm text-muted-foreground">How we found why Luvory wasn't showing up on Google — it wasn't the content, it was a chain of broken technical signals nobody had checked directly.</p></div><span class="mt-6 inline-block text-xs uppercase tracking-[0.18em] text-primary">Read article<!-- --> →</span></a><a class="group flex flex-col justify-between bg-background p-8 transition-colors hover:bg-card" href="/en/blog/luvory-geo-case-study"><div><div class="flex items-center gap-3"><span class="text-xs uppercase tracking-[0.18em] text-primary">Case studies</span><time class="text-xs text-muted-foreground" dateTime="2026-08-25">August 25, 2026</time></div><h2 class="mt-4 font-display text-2xl">Case Study: GEO — Getting AI to Recommend Luvory</h2><p class="mt-3 text-sm text-muted-foreground">ChatGPT and Google's AI Overviews already answer questions about toilet rental in Guadalajara without anyone clicking through. Here's how we prepared Luvory to be the cited source.</p></div><span class="mt-6 inline-block text-xs uppercase tracking-[0.18em] text-primary">Read article<!-- --> →</span></a></div></section></div><!--$--><!--/$--></main><footer class="rule mt-32 bg-background"><div class="container-x grid gap-12 py-16 md:grid-cols-[2fr_1fr_1fr_1.2fr]"><div><p class="font-display text-3xl font-bold tracking-[-0.06em]">DIZAYN<span class="text-primary">.</span></p><p class="mt-4 max-w-xs text-sm text-muted-foreground">Web design, SEO and GEO studio in Guadalajara, Mexico. Sites that sell, recommended by Google and AI.</p></div><div><h2 class="text-xs uppercase tracking-[0.2em] text-primary">Services</h2><ul class="mt-4 space-y-2"><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground transition-colors hover:text-foreground" href="/en/services/web-design">Web design & development in Guadalajara</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground transition-colors hover:text-foreground" href="/en/services/seo">SEO agency in Guadalajara, Mexico</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground transition-colors hover:text-foreground" href="/en/services/ai-visibility">GEO Agency in Guadalajara (AI Search Visibility)</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground transition-colors hover:text-foreground" href="/en/services/online-stores">Online Store Design in Guadalajara</a></li></ul></div><div><h2 class="text-xs uppercase tracking-[0.2em] text-primary">Agency</h2><ul class="mt-4 space-y-2"><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/about">About</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/portfolio">Work</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/pricing">Pricing</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/blog">Blog</a></li><li><a class="inline-flex min-h-11 items-center text-sm text-muted-foreground hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/contact">Contact</a></li></ul></div><div><h2 class="text-xs uppercase tracking-[0.2em] text-primary">Contact</h2><ul class="mt-4 space-y-2 text-sm text-muted-foreground"><li><a href="mailto:sebasesc5@gmail.com" class="inline-flex min-h-11 items-center hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary">sebasesc5@gmail.com</a></li><li><a href="tel:+524621922778" class="inline-flex min-h-11 items-center hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary">+52 462 192 2778</a></li><li><a href="https://www.instagram.com/dizayn_mx/" target="_blank" rel="me noreferrer" class="inline-flex min-h-11 items-center hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary">Instagram @dizayn_mx</a></li><li>Guadalajara, Jalisco, Mexico</li></ul></div></div><div class="rule"><div class="container-x flex flex-col gap-2 py-6 text-xs uppercase tracking-[0.16em] text-muted-foreground sm:flex-row sm:justify-between"><span>© <!-- -->2026<!-- --> Dizayn. <!-- -->All rights reserved.</span><span class="flex gap-4 normal-case tracking-normal"><a class="inline-flex min-h-11 items-center hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/privacy-policy">Privacy Policy</a><a class="inline-flex min-h-11 items-center hover:text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary" href="/en/terms-and-conditions">Terms & Conditions</a></span><span>Guadalajara · <!-- -->Mexico<!-- --> · <!-- -->Worldwide</span></div></div></footer><a href="https://wa.me/524621922778?text=Hi%20Dizayn%2C%20I'd%20like%20a%20quote%20for%20a%20project." target="_blank" rel="noreferrer" aria-label="WhatsApp +52 462 192 2778" class="fixed bottom-6 right-6 z-50 hidden h-14 w-14 items-center justify-center rounded-full bg-wa text-white shadow-lg transition-transform hover:scale-105 md:flex"><svg viewBox="0 0 24 24" class="h-7 w-7" fill="currentColor" aria-hidden="true"><path d="M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.25-.46-2.38-1.47-.88-.78-1.47-1.75-1.64-2.05-.17-.3-.02-.46.13-.6.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37s-1.04 1.02-1.04 2.48 1.07 2.88 1.22 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.69.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.69.25-1.28.17-1.41-.07-.13-.27-.2-.57-.35z"></path><path d="M12.04 2C6.6 2 2.17 6.43 2.17 11.87c0 1.74.46 3.44 1.32 4.94L2 22l5.35-1.4a9.86 9.86 0 0 0 4.69 1.2h.01c5.44 0 9.87-4.43 9.87-9.87S17.48 2 12.04 2zm0 17.98a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.17.83.85-3.09-.2-.32a8.16 8.16 0 0 1-1.25-4.36c0-4.52 3.68-8.2 8.2-8.2 2.19 0 4.25.86 5.8 2.4a8.15 8.15 0 0 1 2.4 5.8c0 4.53-3.68 8.21-8.2 8.21z"></path></svg></a><nav aria-label="Main navigation" class="tabbar fixed inset-x-0 bottom-0 z-50 border-t border-border bg-background pb-[env(safe-area-inset-bottom)] md:hidden"><div class="relative mx-auto flex max-w-md items-stretch"><a class="flex min-h-12 flex-1 flex-col items-center justify-center gap-0.5 text-[0.68rem] font-medium transition-transform active:scale-95 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-primary text-muted-foreground" href="/en"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>Home</a><a class="flex min-h-12 flex-1 flex-col items-center justify-center gap-0.5 text-[0.68rem] font-medium transition-transform active:scale-95 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-primary text-muted-foreground" href="/en/services"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg>Services</a><a href="https://wa.me/524621922778?text=Hi%20Dizayn%2C%20I'd%20like%20a%20quote%20for%20a%20project." target="_blank" rel="noreferrer" aria-label="WhatsApp: Get a quote on WhatsApp" class="relative -mt-5 flex flex-1 flex-col items-center justify-start text-[0.68rem] font-semibold text-wa-fg"><span class="flex h-14 w-14 items-center justify-center rounded-full bg-wa text-white shadow-[0_8px_20px_-6px_oklch(0.4_0.1_165/0.7)] ring-4 ring-background transition-transform active:scale-90"><svg viewBox="0 0 24 24" class="h-7 w-7" fill="currentColor" aria-hidden="true"><path d="M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.25-.46-2.38-1.47-.88-.78-1.47-1.75-1.64-2.05-.17-.3-.02-.46.13-.6.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37s-1.04 1.02-1.04 2.48 1.07 2.88 1.22 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.69.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.69.25-1.28.17-1.41-.07-.13-.27-.2-.57-.35z"></path><path d="M12.04 2C6.6 2 2.17 6.43 2.17 11.87c0 1.74.46 3.44 1.32 4.94L2 22l5.35-1.4a9.86 9.86 0 0 0 4.69 1.2h.01c5.44 0 9.87-4.43 9.87-9.87S17.48 2 12.04 2zm0 17.98a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.17.83.85-3.09-.2-.32a8.16 8.16 0 0 1-1.25-4.36c0-4.52 3.68-8.2 8.2-8.2 2.19 0 4.25.86 5.8 2.4a8.15 8.15 0 0 1 2.4 5.8c0 4.53-3.68 8.21-8.2 8.21z"></path></svg></span><span class="mt-0.5">WhatsApp</span></a><a class="flex min-h-12 flex-1 flex-col items-center justify-center gap-0.5 text-[0.68rem] font-medium transition-transform active:scale-95 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-primary text-muted-foreground" href="/en/portfolio"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-check" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path><path d="m9 12 2 2 4-4"></path></svg>Work</a><button type="button" class="flex min-h-12 flex-1 flex-col items-center justify-center gap-0.5 text-[0.68rem] font-medium transition-transform active:scale-95 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-primary text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg>More</button></div></nav><dialog aria-label="More from Dizayn" class="sheet md:hidden"><div class="flex items-center justify-between px-6 pt-5"><h2 class="font-display text-lg">More from Dizayn</h2><button type="button" aria-label="Close" class="flex size-11 items-center justify-center rounded-full border border-border text-xl leading-none">×</button></div><div class="px-6 pb-6 pt-4"><a href="https://wa.me/524621922778?text=Hi%20Dizayn%2C%20I'd%20like%20a%20quote%20for%20a%20project." target="_blank" rel="noreferrer" class="btn-wa w-full"><svg viewBox="0 0 24 24" class="h-5 w-5" fill="currentColor" aria-hidden="true"><path d="M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.25-.46-2.38-1.47-.88-.78-1.47-1.75-1.64-2.05-.17-.3-.02-.46.13-.6.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37s-1.04 1.02-1.04 2.48 1.07 2.88 1.22 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.69.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.69.25-1.28.17-1.41-.07-.13-.27-.2-.57-.35z"></path><path d="M12.04 2C6.6 2 2.17 6.43 2.17 11.87c0 1.74.46 3.44 1.32 4.94L2 22l5.35-1.4a9.86 9.86 0 0 0 4.69 1.2h.01c5.44 0 9.87-4.43 9.87-9.87S17.48 2 12.04 2zm0 17.98a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.17.83.85-3.09-.2-.32a8.16 8.16 0 0 1-1.25-4.36c0-4.52 3.68-8.2 8.2-8.2 2.19 0 4.25.86 5.8 2.4a8.15 8.15 0 0 1 2.4 5.8c0 4.53-3.68 8.21-8.2 8.21z"></path></svg>Message us on WhatsApp</a><ul class="mt-4 divide-y divide-border border-y border-border"><li><a class="flex min-h-12 items-center text-base font-medium" href="/en/blog">Blog</a></li><li><a class="flex min-h-12 items-center text-base font-medium" href="/en/pricing">Pricing</a></li><li><a class="flex min-h-12 items-center text-base font-medium" href="/en/about">About</a></li><li><a class="flex min-h-12 items-center text-base font-medium" href="/en/contact">Contact</a></li><li><a class="flex min-h-12 items-center text-base font-medium" href="/usa">Dizayn USA</a></li></ul><div class="mt-4 flex items-center justify-between text-sm text-muted-foreground"><a class="flex min-h-11 items-center underline underline-offset-4" href="/en/contact">I prefer the form</a><span class="h-11 w-11" aria-hidden="true"></span></div></div></dialog><script src="/_next/static/immutable/chunks/36k8in9a291ok.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"default\"]\n3:I[37457,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"default\"]\nc:I[68027,[],\"default\",1]\n:HL[\"/_next/static/immutable/chunks/0lq39_me47p4_.css\",\"style\"]\n:HL[\"/_next/static/immutable/media/017d9bea37084d9b-s.p.2fl0vhx7oyatw.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:Tb37,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https://dizayn.com.mx/#website\",\"name\":\"Dizayn\",\"url\":\"https://dizayn.com.mx\",\"inLanguage\":[\"es-MX\",\"en-MX\",\"es-US\",\"en-US\"],\"publisher\":{\"@id\":\"https://dizayn.com.mx/#organization\"}},{\"@type\":[\"ProfessionalService\",\"LocalBusiness\"],\"@id\":\"https://dizayn.com.mx/#organization\",\"name\":\"Dizayn\",\"alternateName\":\"Dizayn Diseño Web, SEO y GEO\",\"description\":\"Web design, SEO and GEO studio in Guadalajara, Jalisco, Mexico: websites and online stores that sell, ranked on Google and cited in AI answers.\",\"slogan\":\"Sitios web que venden, y que Google y la IA recomiendan.\",\"url\":\"https://dizayn.com.mx\",\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https://dizayn.com.mx/#logo\",\"url\":\"https://dizayn.com.mx/icon.png\",\"contentUrl\":\"https://dizayn.com.mx/icon.png\"},\"image\":\"https://dizayn.com.mx/og-image.jpg\",\"telephone\":\"+524621922778\",\"email\":\"sebasesc5@gmail.com\",\"priceRange\":\"$$\",\"currenciesAccepted\":\"MXN, USD\",\"areaServed\":[{\"@type\":\"City\",\"name\":\"Guadalajara\",\"containedInPlace\":{\"@type\":\"State\",\"name\":\"Jalisco\"}},{\"@type\":\"City\",\"name\":\"Zapopan\",\"containedInPlace\":{\"@type\":\"State\",\"name\":\"Jalisco\"}},{\"@type\":\"City\",\"name\":\"San Pedro Tlaquepaque\",\"containedInPlace\":{\"@type\":\"State\",\"name\":\"Jalisco\"}},{\"@type\":\"City\",\"name\":\"Tonalá\",\"containedInPlace\":{\"@type\":\"State\",\"name\":\"Jalisco\"}},{\"@type\":\"City\",\"name\":\"Tlajomulco de Zúñiga\",\"containedInPlace\":{\"@type\":\"State\",\"name\":\"Jalisco\"}},{\"@type\":\"State\",\"name\":\"Jalisco\"},{\"@type\":\"Country\",\"name\":\"Mexico\"},{\"@type\":\"Country\",\"name\":\"United States\"}],\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Guadalajara\",\"addressRegion\":\"Jalisco\",\"addressCountry\":\"MX\"},\"contactPoint\":{\"@type\":\"ContactPoint\",\"telephone\":\"+524621922778\",\"email\":\"sebasesc5@gmail.com\",\"contactType\":\"sales\",\"availableLanguage\":[\"Spanish\",\"English\"],\"areaServed\":[\"MX\",\"US\"]},\"knowsAbout\":[\"Web design\",\"Search engine optimization\",\"Local SEO\",\"Generative engine optimization\",\"AI search visibility\",\"E-commerce development\",\"Conversion rate optimization\",\"Structured data\"],\"knowsLanguage\":[\"es\",\"en\"],\"hasOfferCatalog\":{\"@type\":\"OfferCatalog\",\"name\":\"Servicios de diseño web, SEO y GEO de Dizayn\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@id\":\"https://dizayn.com.mx/servicios/sitios-web#service\",\"name\":\"Agencia de Diseño Web en Guadalajara\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@id\":\"https://dizayn.com.mx/servicios/seo#service\",\"name\":\"Agencia SEO en Guadalajara: Posicionamiento Web\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@id\":\"https://dizayn.com.mx/servicios/posicionamiento-ia#service\",\"name\":\"Agencia GEO en Guadalajara (Posicionamiento en IA)\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@id\":\"https://dizayn.com.mx/servicios/tiendas-en-linea#service\",\"name\":\"Diseño de Tiendas en Línea en Guadalajara\"}}]},\"sameAs\":[\"https://www.instagram.com/dizayn_mx/\"]}]}a:X\n0:{\"P\":null,\"c\":[\"\",\"en\",\"blog\",\"luvory-website-case-study\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(en)\",{\"children\":[\"en\",{\"children\":[\"blog\",{\"children\":[[\"slug\",\"luvory-website-case-study\",\"d\",[]],{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/0lq39_me47p4_.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"plus_jakarta_sans_5f2a2a72-module__f2hyDq__variable bricolage_grotesque_4ec0dd43-module__h7Toxa__variable h-full\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"text/markdown\",\"href\":\"/llms.txt\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$4\"}}]]}],\"$L5\"]}]]}],{\"children\":[\"$L6\",{\"children\":[\"$L7\",{\"children\":[\"$L8\",{\"children\":[\"$L9\",{},null,false,null]},null,false,\"$a\"]},null,false,\"$a\"]},null,false,\"$a\"]},null,false,null]},null,false,\"$a\"],\"$Lb\",false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"UM_W_JHEX6mOS4dKVi4wg\"}\nd:I[89554,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"ThemeProvider\"]\ne:I[7761,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"I18nProvider\"]\nf:I[58956,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"Header\"]\n10:I[22016,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\",\"/_next/static/immutable/chunks/0_9t9-86zooje.js\"],\"\"]\n11:I[86057,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"Footer\"]\n12:I[50853,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"WhatsAppButton\"]\n13:I[47224,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"MobileTabBar\"]\n14:I[38569,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"WebMcpRegister\"]\n15:I[79520,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\"],\"\"]\n17:I[97367,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"OutletBoundary\"]\n18:\"$Sreact.suspense\"\n1a:I[97367,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"ViewportBoundary\"]\n1c:I[97367,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"MetadataBoundary\"]\n5:[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col antialiased\",\"children\":[[\"$\",\"$Ld\",null,{\"attribute\":\"class\",\"defaultTheme\":\"light\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[[\"$\",\"$Lf\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"section\",null,{\"className\":\"container-x flex min-h-[60vh] flex-col items-center justify-center py-24 text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"font-display text-5xl text-primary\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-lg font-semibold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 max-w-md text-sm text-muted-foreground\",\"children\":\"The page you are looking for does not exist or was moved. Visit our portfolio or services to see what we do.\"}],[\"$\",\"$L10\",null,{\"href\":\"/en\",\"className\":\"mt-6 inline-flex min-h-11 items-center text-sm font-semibold text-primary hover:underline\",\"children\":\"Back to home\"}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L11\",null,{}],[\"$\",\"$L12\",null,{}],[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}]]}]}],[\"$\",\"$L15\",null,{\"id\":\"clarity-init\",\"strategy\":\"lazyOnload\",\"children\":\"\\n (function(c,l,a,r,i,t,y){\\n c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\\n t=l.createElement(r);t.async=1;t.src=\\\"https://www.clarity.ms/tag/\\\"+i;\\n y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\\n })(window, document, \\\"clarity\\\", \\\"script\\\", \\\"y7tbs2av0v\\\");\\n \"}]]}]\n6:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n7:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[\"$L16\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/0_9t9-86zooje.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L17\",null,{\"children\":[\"$\",\"$18\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@19\"}]}]]}]\nb:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1a\",null,{\"children\":\"$L1b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$18\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n1f:I[73892,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\",\"/_next/static/immutable/chunks/0_9t9-86zooje.js\"],\"SyncLang\"]\na:C\n1e:T599,{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"@id\":\"https://dizayn.com.mx/en/blog/luvory-website-case-study#faq\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What problem did Luvory's site have before?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It ran on a static hosting platform that didn't allow control over real HTTP headers — a technical limit invisible to a regular visitor, but one that blocked SEO and discovery improvements that matter to search engines and AI systems.\"}},{\"@type\":\"Question\",\"name\":\"Why migrate to TanStack Start instead of rebuilding from scratch?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Because it unlocked real server control (headers, dynamic routes) without losing the design work already invested — the migration happened on top of the existing base, not as a full rebuild.\"}},{\"@type\":\"Question\",\"name\":\"What does a business actually gain from this?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Real HTTP headers for discovery signals (not just HTML tags), correctly separated English and Spanish URLs, and an architecture that doesn't require a rebuild every time a new feature gets added.\"}},{\"@type\":\"Question\",\"name\":\"Does this type of work apply to any site?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The specific header case applies to sites on limited static hosting. The general principle — architecture that doesn't block future improvements — applies to any project.\"}}]}16:[[[\"$\",\"script\",\"0\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BlogPosting\\\",\\\"@id\\\":\\\"https://dizayn.com.mx/en/blog/luvory-website-case-study#article\\\",\\\"headline\\\":\\\"Case Study: Luvory Luxury Toilets' Website\\\",\\\"description\\\":\\\"How we took Luvory's website, a luxury portable toilet rental business in Guadalajara, from a static site to a real platform with proper headers, healthy indexing, and bilingual content.\\\",\\\"datePublished\\\":\\\"2026-08-25\\\",\\\"dateModified\\\":\\\"2026-08-25\\\",\\\"inLanguage\\\":\\\"en-MX\\\",\\\"articleSection\\\":\\\"Case studies\\\",\\\"wordCount\\\":371,\\\"author\\\":{\\\"@id\\\":\\\"https://dizayn.com.mx/#organization\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://dizayn.com.mx/#organization\\\"},\\\"isPartOf\\\":{\\\"@id\\\":\\\"https://dizayn.com.mx/#website\\\"},\\\"url\\\":\\\"https://dizayn.com.mx/en/blog/luvory-website-case-study\\\",\\\"image\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://dizayn.com.mx/og/blog/mx/en/caso-luvory-sitio-web.png\\\",\\\"width\\\":1200,\\\"height\\\":630},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://dizayn.com.mx/en/blog/luvory-website-case-study\\\"}}\"}}],[\"$\",\"script\",\"1\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$1e\"}}]],[\"$\",\"div\",null,{\"className\":\"container-x py-10 md:py-24\",\"children\":[[\"$\",\"$L1f\",null,{\"lang\":\"en\"}],[[\"$\",\"nav\",null,{\"aria-label\":\"Breadcrumb\",\"className\":\"\",\"children\":[\"$\",\"ol\",null,{\"className\":\"flex flex-wrap items-center gap-x-2 text-xs uppercase tracking-[0.16em] text-muted-foreground\",\"children\":[[\"$\",\"li\",\"/en\",{\"className\":\"flex items-center gap-x-2\",\"children\":[[\"$\",\"$L10\",null,{\"href\":\"/en\",\"className\":\"inline-flex min-h-11 items-center hover:text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\",\"children\":\"Home\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"/\"}]]}],[\"$\",\"li\",\"/en/blog\",{\"className\":\"flex items-center gap-x-2\",\"children\":[[\"$\",\"$L10\",null,{\"href\":\"/en/blog\",\"className\":\"inline-flex min-h-11 items-center hover:text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\",\"children\":\"Blog\"}],\"$L20\"]}],\"$L21\"]}]}],\"$L22\"],\"$L23\",\"$L24\",\"$L25\"]}]]\n2f:I[52781,[\"/_next/static/immutable/chunks/2qtl1mu57qaf1.js\",\"/_next/static/immutable/chunks/0jxiwkg0obl6s.js\",\"/_next/static/immutable/chunks/1_nl6kccoyi3i.js\",\"/_next/static/immutable/chunks/0_9t9-86zooje.js\"],\"WhatsAppCTA\"]\n20:[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"/\"}]\n21:[\"$\",\"li\",\"/en/blog/luvory-website-case-study\",{\"className\":\"flex items-center gap-x-2\",\"children\":[[\"$\",\"span\",null,{\"aria-current\":\"page\",\"className\":\"line-clamp-1 max-w-[16rem] text-primary\",\"children\":\"Case Study: Luvory Luxury Toilets' Website\"}],false]}]\n22:[[\"$\",\"script\",\"0\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://dizayn.com.mx/en\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Blog\\\",\\\"item\\\":\\\"https://dizayn.com.mx/en/blog\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"Case Study: Luvory Luxury Toilets' Website\\\",\\\"item\\\":\\\"https://dizayn.com.mx/en/blog/luvory-website-case-study\\\"}]}\"}}]]\n23:[\"$\",\"article\",null,{\"className\":\"mt-10 max-w-3xl\",\"children\":[[\"$\",\"header\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs uppercase tracking-[0.18em] text-primary\",\"children\":\"Case studies\"}],[\"$\",\"time\",null,{\"className\":\"text-xs text-muted-foreground\",\"dateTime\":\"2026-08-25\",\"children\":[\"Published\",\" \",\"August 25, 2026\"]}]]}],[\"$\",\"h1\",null,{\"className\":\"mt-4 text-[clamp(2rem,6vw,3.5rem)] leading-[1.02]\",\"children\":\"Case Study: Luvory Luxury Toilets' Website\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm text-muted-foreground\",\"children\":\"Written by the Dizayn team\"}],false]}],[\"$\",\"nav\",null,{\"aria-label\":\"In this article\",\"className\":\"mt-10 rounded-2xl border border-border p-6\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs uppercase tracking-[0.18em] text-primary\",\"children\":\"In this article\"}],[\"$\",\"ol\",null,{\"className\":\"mt-4 space-y-1 text-sm\",\"children\":[[\"$\",\"li\",\"the-problem-a-good-looking-site-with-an-invisible-technical-limit\",{\"children\":[\"$\",\"a\",null,{\"href\":\"#the-problem-a-good-looking-site-with-an-invisible-technical-limit\",\"className\":\"inline-flex min-h-9 items-center text-muted-foreground hover:text-primary\",\"children\":\"The problem: a good-looking site with an invisible technical limit\"}]}],[\"$\",\"li\",\"why-this-matters-more-than-it-sounds\",{\"children\":[\"$\",\"a\",null,{\"href\":\"#why-this-matters-more-than-it-sounds\",\"className\":\"inline-flex min-h-9 items-center text-muted-foreground hover:text-primary\",\"children\":\"Why this matters more than it sounds\"}]}],[\"$\",\"li\",\"the-decision-migrate-dont-rebuild\",{\"children\":[\"$\",\"a\",null,{\"href\":\"#the-decision-migrate-dont-rebuild\",\"className\":\"inline-flex min-h-9 items-center text-muted-foreground hover:text-primary\",\"children\":\"The decision: migrate, don't rebuild\"}]}],[\"$\",\"li\",\"what-got-fixed-along-the-way\",{\"children\":[\"$\",\"a\",null,{\"href\":\"#what-got-fixed-along-the-way\",\"className\":\"inline-flex min-h-9 items-center text-muted-foreground hover:text-primary\",\"children\":\"What got fixed along the way\"}]}],[\"$\",\"li\",\"the-result\",{\"children\":[\"$\",\"a\",null,{\"href\":\"#the-result\",\"className\":\"inline-flex min-h-9 items-center text-muted-foreground hover:text-primary\",\"children\":\"The result\"}]}]]}]]}],\"$undefined\",[\"$\",\"div\",null,{\"className\":\"mt-10\",\"children\":[[\"$\",\"h2\",\"0\",{\"id\":\"the-problem-a-good-looking-site-with-an-invisible-technical-limit\",\"className\":\"font-display text-2xl md:text-3xl text-foreground mt-12 mb-4 scroll-mt-28\",\"children\":\"The problem: a good-looking site with an invisible technical limit\"}],[\"$\",\"p\",\"2\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong class=\\\"text-foreground font-semibold\\\"\u003eLuvory Luxury Toilets\u003c/strong\u003e' website, a luxury portable toilet rental business in Guadalajara, looked good and worked fine — but it ran on a static hosting platform that didn't allow control over real HTTP headers. It's a limit a visitor never notices, but one that blocks real technical discovery signals that search engines and AI systems actually read.\"}}],[\"$\",\"h2\",\"4\",{\"id\":\"why-this-matters-more-than-it-sounds\",\"className\":\"font-display text-2xl md:text-3xl text-foreground mt-12 mb-4 scroll-mt-28\",\"children\":\"Why this matters more than it sounds\"}],[\"$\",\"p\",\"6\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"An HTTP header is information the server sends before the page even loads — unlike an HTML tag, which a system has to download and parse the entire page to find. We confirmed empirically (with a direct test, not an assumption) that the previous platform silently dropped custom headers, even when the config was technically written correctly.\"}}],[\"$\",\"h2\",\"8\",{\"id\":\"the-decision-migrate-dont-rebuild\",\"className\":\"font-display text-2xl md:text-3xl text-foreground mt-12 mb-4 scroll-mt-28\",\"children\":\"The decision: migrate, don't rebuild\"}],\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\"]}],\"$L2e\"]}]\n24:[\"$\",\"section\",null,{\"className\":\"mt-20 rule pt-16\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-display text-2xl\",\"children\":\"Does your brand need this?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 max-w-xl text-muted-foreground\",\"children\":\"Let's talk about your project and where to start.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 flex flex-col gap-3 sm:flex-row\",\"children\":[[\"$\",\"$L2f\",null,{\"label\":\"Get a quote on WhatsApp\",\"place\":\"blog_end\"}],[\"$\",\"$L10\",null,{\"href\":\"/en/contact\",\"className\":\"btn-ghost\",\"children\":\"I prefer the form\"}]]}]]}]\n25:[\"$\",\"section\",null,{\"className\":\"mt-20 rule pt-16\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-display text-2xl\",\"children\":\"Related articles\"}],[\"$\",\"div\",null,{\"className\":\"mt-8 grid gap-px bg-border sm:grid-cols-2\",\"children\":[[\"$\",\"$L10\",\"caso-luvory-seo\",{\"href\":\"/en/blog/luvory-seo-case-study\",\"className\":\"group flex flex-col justify-between bg-background p-8 transition-colors hover:bg-card\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs uppercase tracking-[0.18em] text-primary\",\"children\":\"Case studies\"}],[\"$\",\"time\",null,{\"className\":\"text-xs text-muted-foreground\",\"dateTime\":\"2026-08-25\",\"children\":\"August 25, 2026\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mt-4 font-display text-2xl\",\"children\":\"Case Study: SEO Diagnosis and Fix for Luvory\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm text-muted-foreground\",\"children\":\"How we found why Luvory wasn't showing up on Google — it wasn't the content, it was a chain of broken technical signals nobody had checked directly.\"}]]}],[\"$\",\"span\",null,{\"className\":\"mt-6 inline-block text-xs uppercase tracking-[0.18em] text-primary\",\"children\":[\"Read article\",\" →\"]}]]}],[\"$\",\"$L10\",\"caso-luvory-geo-posicionamiento-ia\",{\"href\":\"/en/blog/luvory-geo-case-study\",\"className\":\"group flex flex-col justify-between bg-background p-8 transition-colors hover:bg-card\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs uppercase tracking-[0.18em] text-primary\",\"children\":\"Case studies\"}],[\"$\",\"time\",null,{\"className\":\"text-xs text-muted-foreground\",\"dateTime\":\"2026-08-25\",\"children\":\"August 25, 2026\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mt-4 font-display text-2xl\",\"children\":\"Case Study: GEO — Getting AI to Recommend Luvory\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm text-muted-foreground\",\"children\":\"ChatGPT and Google's AI Overviews already answer questions about toilet rental in Guadalajara without anyone clicking through. Here's how we prepared Luvory to be the cited source.\"}]]}],[\"$\",\"span\",null,{\"className\":\"mt-6 inline-block text-xs uppercase tracking-[0.18em] text-primary\",\"children\":[\"Read article\",\" →\"]}]]}]]}]]}]\n26:[\"$\",\"p\",\"10\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"Instead of throwing away the design work already invested, we migrated the site to \u003cstrong class=\\\"text-foreground font-semibold\\\"\u003eTanStack Start\u003c/strong\u003e, which unlocked real server control without losing any of the existing design. We confirmed with a direct test (`curl -I` against the published site) that headers now arrive fully intact — not an assumption, a verifiable check.\"}}]\n27:[\"$\",\"h2\",\"12\",{\"id\":\"what-got-fixed-along-the-way\",\"className\":\"font-display text-2xl md:text-3xl text-foreground mt-12 mb-4 scroll-mt-28\",\"children\":\"What got fixed along the way\"}]\n28:[\"$\",\"p\",\"14\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"The automated migration brought two real regressions that weren't obvious at a glance:\"}}]\n29:[\"$\",\"div\",\"table-20\",{\"className\":\"overflow-x-auto my-8\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"bg-primary/10\",\"children\":[[\"$\",\"th\",\"0\",{\"className\":\"border border-border px-4 py-2 text-left font-semibold text-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Problem found\"}}],[\"$\",\"th\",\"1\",{\"className\":\"border border-border px-4 py-2 text-left font-semibold text-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Why it mattered\"}}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"0\",{\"className\":\"\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"border border-border px-4 py-2 text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Duplicate `\u003ctitle\u003e` tag on every page\"}}],[\"$\",\"td\",\"1\",{\"className\":\"border border-border px-4 py-2 text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Confuses search engines about which title is real\"}}]]}],[\"$\",\"tr\",\"1\",{\"className\":\"bg-card\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"border border-border px-4 py-2 text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"`\u003chtml lang=\\\"es-MX\\\"\u003e` hardcoded on every page, including English ones\"}}],[\"$\",\"td\",\"1\",{\"className\":\"border border-border px-4 py-2 text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Tells the browser and search engines an English page is in Spanish\"}}]]}]]}]]}]}]\n2a:[\"$\",\"p\",\"21\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"Neither shows up browsing the site normally — both were caught by an explicit audit, not by trusting \\\"if it builds, it's fine.\\\"\"}}]\n2b:[\"$\",\"h2\",\"23\",{\"id\":\"the-result\",\"className\":\"font-display text-2xl md:text-3xl text-foreground mt-12 mb-4 scroll-mt-28\",\"children\":\"The result\"}]\n2c:[\"$\",\"p\",\"25\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"A site running on the same design foundation as always, but with real architecture underneath: controllable HTTP headers, correctly separated English and Spanish URLs (not just an `/en/` prefix, but actually translated routes), and room to keep adding features without hitting the same limit again.\"}}]\n2d:[\"$\",\"p\",\"27\",{\"className\":\"text-muted-foreground leading-relaxed mb-4\",\"dangerouslySetInnerHTML\":{\"__html\":\"Does your current site have this same kind of invisible limit? \u003ca href=\\\"/en/contact\\\" class=\\\"text-primary underline underline-offset-4 hover:no-underline\\\"\u003eTell us about your project\u003c/a\u003e or check the details of our \u003ca href=\\\"/en/services/web-design\\\" class=\\\"text-primary underline underline-offset-4 hover:no-underline\\\"\u003ewebsite design service\u003c/a\u003e. See the real result at \u003ca href=\\\"https://luvory.com.mx/en\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" class=\\\"text-primary underline underline-offset-4 hover:no-underline\\\"\u003eluvory.com.mx\u003c/a\u003e, for example its \u003ca href=\\\"https://luvory.com.mx/en/restroom-trailers\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" class=\\\"text-primary underline underline-offset-4 hover:no-underline\\\"\u003eluxury restroom trailers\u003c/a\u003e page.\"}}]\n2e:[\"$\",\"section\",null,{\"className\":\"mt-16 border-t border-border pt-12\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-display text-2xl text-foreground mb-8\",\"children\":\"FAQ\"}],[\"$\",\"dl\",null,{\"className\":\"space-y-8\",\"children\":[[\"$\",\"div\",\"What problem did Luvory's site have before?\",{\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-display text-lg\",\"children\":\"What problem did Luvory's site have before?\"}],[\"$\",\"dd\",null,{\"className\":\"mt-2 text-sm text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"It ran on a static hosting platform that didn't allow control over real HTTP headers — a technical limit invisible to a regular visitor, but one that blocked SEO and discovery improvements that matter to search engines and AI systems.\"}}]]}],[\"$\",\"div\",\"Why migrate to TanStack Start instead of rebuilding from scratch?\",{\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-display text-lg\",\"children\":\"Why migrate to TanStack Start instead of rebuilding from scratch?\"}],[\"$\",\"dd\",null,{\"className\":\"mt-2 text-sm text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Because it unlocked real server control (headers, dynamic routes) without losing the design work already invested — the migration happened on top of the existing base, not as a full rebuild.\"}}]]}],[\"$\",\"div\",\"What does a business actually gain from this?\",{\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-display text-lg\",\"children\":\"What does a business actually gain from this?\"}],[\"$\",\"dd\",null,{\"className\":\"mt-2 text-sm text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"Real HTTP headers for discovery signals (not just HTML tags), correctly separated English and Spanish URLs, and an architecture that doesn't require a rebuild every time a new feature gets added.\"}}]]}],[\"$\",\"div\",\"Does this type of work apply to any site?\",{\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-display text-lg\",\"children\":\"Does this type of work apply to any site?\"}],[\"$\",\"dd\",null,{\"className\":\"mt-2 text-sm text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"The specific header case applies to sites on limited static hosting. The general principle — architecture that doesn't block future improvements — applies to any project.\"}}]]}]]}]]}]\n1b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#0d1017\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n30:I[27201,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"IconMark\"]\n19:null\n1d:[[\"$\",\"title\",\"0\",{\"children\":\"Case Study: Luvory Luxury Toilets Website | Dizayn\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"How Dizayn migrated and optimized Luvory's website (luxury toilet rental, Guadalajara): real architecture, healthy indexing, bilingual content.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://dizayn.com.mx/en/blog/luvory-website-case-study\"}],[\"$\",\"link\",\"4\",{\"rel\":\"alternate\",\"hrefLang\":\"es-MX\",\"href\":\"https://dizayn.com.mx/blog/caso-luvory-sitio-web\"}],[\"$\",\"link\",\"5\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://dizayn.com.mx/en/blog/luvory-website-case-study\"}],[\"$\",\"link\",\"6\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://dizayn.com.mx/blog/caso-luvory-sitio-web\"}],[\"$\",\"meta\",\"7\",{\"name\":\"google-site-verification\",\"content\":\"zqve3zaRBgJl0Xq3QfdJ6j3btWpsueyE_uohdujsiM0\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Case Study: Luvory Luxury Toilets Website\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"How Dizayn migrated and optimized Luvory's website (luxury toilet rental, Guadalajara): real architecture, healthy indexing, bilingual content.\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://dizayn.com.mx/en/blog/luvory-website-case-study\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"Dizayn\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:locale\",\"content\":\"en_MX\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://dizayn.com.mx/og/blog/mx/en/caso-luvory-sitio-web.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:alt\",\"content\":\"Case Study: Luvory Luxury Toilets Website\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:locale:alternate\",\"content\":\"es_MX\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:locale:alternate\",\"content\":\"es_US\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:locale:alternate\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"21\",{\"property\":\"article:published_time\",\"content\":\"2026-08-25\"}],[\"$\",\"meta\",\"22\",{\"property\":\"article:modified_time\",\"content\":\"2026-08-25\"}],[\"$\",\"meta\",\"23\",{\"property\":\"article:author\",\"content\":\"Dizayn\"}],[\"$\",\"meta\",\"24\",{\"property\":\"article:section\",\"content\":\"Case studies\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:title\",\"content\":\"Case Study: Luvory Luxury Toilets Website\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:description\",\"content\":\"How Dizayn migrated and optimized Luvory's website (luxury toilet rental, Guadalajara): real architecture, healthy indexing, bilingual content.\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image\",\"content\":\"https://dizayn.com.mx/og/blog/mx/en/caso-luvory-sitio-web.png\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:alt\",\"content\":\"Case Study: Luvory Luxury Toilets Website\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2k06vcg-8h1d3.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"33\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.05ql_qqz_li4n.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"34\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?apple-icon.3v5-9asdphfng.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L30\",\"35\",{}]]\n"])</script></body></html>