CASE 03 / WEB
laonmon.com — a trilingual website
The site you're reading. We made search engines read all three languages separately, and made sure the chatbot never invents a price.
- Field
- Company website
- Platforms
- Web
- Languages
- Korean (/) · English (/en/) · Japanese (/ja/)
- History
- Per-language URLs on September 25, 2026; multi-page redesign on October 2, 2026

Summary
- What
- LAONMON's company site — services and pricing, case studies, articles, contact form, AI assistant
- Our role
- Planning, design, development, search setup, chatbot, deployment, operation
- Stack
- React · TypeScript · Vite · pre-rendering (HTML generated at build time) · nginx · Kubernetes · a self-run AI
laonmon.com started as a single page, and the KO/EN/JP buttons only swapped the text on screen. People saw three languages; search engines saw one Korean page. A studio that builds websites can't make its case with a site search engines can't read, so we rebuilt this one to the standard of the sites we build for clients.
Decision 01
A URL for each language, and HTML built in advance
- Problem
- When only the text swaps, English and Japanese content can never appear in search results — the HTML crawlers read contains only Korean. /en and /ja returned 404.
- What we did
- We gave each language its own URL: / for Korean, /en/ for English, /ja/ for Japanese. At build time each language gets its own HTML with its own language tag, title, description and canonical URL, and hreflang tells search engines the three pages are versions of each other. The sitemap carries the same relationships. Sending first-time visitors to the version matching their browser language applies to people only, not crawlers: Google's renderer runs in English, so redirecting crawlers would make the Korean home page look like a redirect to the English one.
- Why
- Search engines can only index each language separately if every URL holds a single language. Pre-rendered HTML shows its content without running JavaScript, so neither search engines nor visitors wait for the first screen.

Decision 02
Missing pages answer with a 404
- Problem
- Single-page web apps often answer every URL with the home page and a 200 OK. After a Soft 404 warning in Search Console for another service on the same domain, we checked and found this site doing the same — to a search engine, an endless supply of identical pages.
- What we did
- We removed the rule that sent every URL to the home page, so only pages that exist will open. A missing URL now returns a 404 status with a page linking to home, services and articles, marked not to be indexed. In the October 2026 redesign, which added sub-pages, we kept the list of URLs in one place and had page generation, the sitemap and the menus all read from it.
- Why
- Search engines trust a site's structure only when real and missing pages are clearly told apart. With one list of URLs, adding a page no longer risks forgetting the sitemap or a menu.

Decision 03
A chatbot that doesn't make up prices
- Problem
- A sales-page chatbot that quotes a wrong price is an incident in itself. The common approach, retrieval-augmented generation (RAG), splits documents into chunks and retrieves the ones closest to the question — miss the pricing paragraph once and the model invents a figure. And if the chatbot's content is managed apart from the page, a price change can end up updated in only one place.
- What we did
- Everything this site knows is small enough to load in one go (2,373 characters of Korean text when the chatbot launched on August 31, 2026), so we skipped retrieval and load it all. That content is generated at build time from the same source file as the text on screen, so changing a price on the page changes the chatbot's answer too. It's told not to guess beyond what it knows and to point to the contact form instead; tap "Send an enquiry" under an answer and your question is pre-filled in the form. The chat window says plainly that an AI is answering and that firm quotes come from a person. It runs on servers we operate with no external AI service, so more questions don't mean per-call fees.
- Why
- With prices coming from one source, there are fewer places to get them wrong. The first character appears in 0.55–0.74 seconds on the live site (measured October 2, 2026). If our articles grow too large to load in one go, we'll revisit retrieval then.
Results
- Trilingual home pagesper-language URLs (/ · /en/ · /ja/), hreflang and canonical tags, sitemap
- Sub-pagestwo service pages, three case studies, about, articles
- Pre-renderingHTML built for every page; article pages ship no JavaScript
- Missing pagesreal 404s with a non-indexed help page
- AI assistantthree languages, same source as the page, hands off to the contact form
- Contact formrecords which page and which route (search, blog, chatbot) an enquiry came from
- Analyticscookie-free visitor statistics
- Zero-downtime deploysthe new version starts fully before the old one is removed, and the old one waits a few seconds before closing. During a deploy on September 29, 2026, requests sent every 0.25 seconds (230 and 222 of them) all came back OK; before the fix, 1 in 196 failed.
- Lightweight first loadhome-page JavaScript kept under a 89.7 KB (gzip) budget; 88.5 KB in the October 2, 2026 build

For your project
If you're having a website built
The groundwork used on this site goes into yours. Meta tags, a sitemap and search-engine registration come with every tier, and missing pages and mobile load speed are handled the same way. We don't promise rankings; our job is making sure search engines can read your site correctly.
If you serve customers in other languages, we set up per-language URLs from the start. Adding them later means redoing your URLs and structure. Multilingual sites fall under Premium or added scope, so we agree the timeline during consultation.
We can also add a contact form that records which page an enquiry came from, so you can see whether ads or a blog actually bring in enquiries.
Websites
From $900
CONTACT
LET'S
TALK.
Have a website or app in mind, a partnership idea, or a question? No logo or copy needed yet — tell us what you do and what you need, and we'll reply with scope, timing and a quote.
