Case Study: How velourweb.com Went From a Portfolio Page to 149 Search-First Pages in Ten Days, and What We Measure Next
By Alexey Chasin · Updated September 25, 2026 · 10 min read
Between September 16 and September 25, 2026, Velour Web rebuilt velourweb.com from a short portfolio site into a 149-URL search-first site: 5 service pages, 10 county-wide landing pages, 62 city and neighborhood pages across San Diego and Los Angeles, 30 industry pages with a break-even box each, 27 guides, Spanish and Russian sections, a pricing page with an ROI calculator and a competition check, and a 76-site study of local business websites. Every page opens with a direct answer, carries structured data generated from the same data as the visible text, loads in under a second, and passes a build-time guard that fails any content page under 600 words or sharing more than 40% of its sentences with another. Lighthouse scores 99 to 100. This page is the record, and it will be updated with rankings and citations every quarter.
Where it started
In mid-September 2026 velourweb.com was a portfolio site: a homepage that called the studio a 'full-stack developer and SaaS builder', an about page, a contact page and a blog index, built in early 2025 with a custom cursor and a loading screen. Google's cached titles for the site still showed those pages three weeks later. It looked fine and answered nothing: no service pages, no city pages, no prices, no industry pages, no structured data beyond the basics. It was the site we replace for clients, on our own domain.
The order of work
We built it the way we tell clients to, and in that order. Research first: the words owners type (web developer, website builder, custom website, someone to build my website) and the questions AI answers get asked. Then the page map: one page per service, per city and neighborhood, per industry, per question. Then design, kept to a system font and a light theme so nothing loads before the content. Then the build, hand-coded in Next.js with every page generated from data files so the copy and the schema cannot drift apart. Then launch, sitemap, indexing requests and the Business Profile. Design came third. That is the point.
What was built, by the numbers
| Item | Count or result |
|---|---|
| URLs in the sitemap | 149 |
| Content pages checked by the doorway guard | 134, minimum 712 words, none sharing over 40% of sentences |
| Service pages / county-wide landing pages | 5 / 10 |
| City and neighborhood pages | 62: 14 San Diego County cities, 14 San Diego neighborhoods, 12 county areas, 12 Los Angeles cities and neighborhoods, 10 Southern California |
| Industry pages, each with a break-even box and a competition rating | 30 |
| Guides | 27, including this cluster on SEO and AI search |
| Languages | English, Spanish (8 pages written for Spanish searches), Russian (1 hub) |
| Lighthouse, mobile, homepage | 99 performance, 100 accessibility, 100 best practices, 100 SEO |
| Structured data | ProfessionalService with sameAs, Person, WebSite with speakable, Service, FAQPage on every FAQ, BreadcrumbList, BlogPosting, WebPage with inLanguage |
| AI crawler access | GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended and Bingbot allowed; llms.txt published |
| Commits during the rebuild | About 100, pushed in small batches so nothing waited on a large one |
The rules that made it possible
- Every page is data. Services, cities, industries, guides, FAQs and prices live in typed data files; the pages, the schema, the sitemap and llms.txt are generated from them. Change a price once and it changes everywhere, including the JSON-LD.
- A doorway guard runs on every build and fails it if any content page is under 600 words or shares more than 40% of its sentences with another page. Sixty-two city pages, none a copy.
- Answer first, every page. The first paragraph says what it is, what it costs, how long it takes and who it is for, in definitive language with the number in it.
- No scripts that do not earn their place. The homepage ships a load-time counter, a form and a speed test. That is it.
- Small pushes. Six or eight pages, build, guard, commit, push. A broken build cannot be pushed, because the build check has to pass first.
What went wrong
- A one-megabyte favicon and an old logo that belonged to a different company shipped in the first hours. Replaced with generated icons and a text mark.
- A scroll-reveal effect hid every below-the-fold section from crawlers and from anyone with JavaScript off. Fixed by gating the effect on a class that only JavaScript adds.
- One commit went out with a lint error because the build check was piped through a filter that masked the failure. Fixed within minutes; the check now fails loudly.
- The Search Console sitemap showed 'couldn't fetch' for the first two days. The sitemap was valid; Google had not crawled it yet. Patience, plus indexing requests.
- The header wordmark read 'Velour.Web' for a day. It is 'Velour Web'.
What we measure next, and will publish here
A site is not a result. Rankings and citations are. Starting October 2026 we log, monthly, the same panel we run for clients: thirty prompts across ChatGPT, Gemini, Perplexity and Google AI Mode (best web developer in San Diego, website cost in San Diego, how to appear in AI Overviews, and the city and industry variants), Search Console impressions and clicks for the site's target queries, branded searches, and leads by source. This page gets a dated section each quarter with the numbers, including the ones that did not move. The first update is due January 2027.
| Measure | Baseline |
|---|---|
| Pages indexed by Google | Old site's pages only; new pages submitted, indexing requested |
| Named in AI answers for 'web developer San Diego' | 0 of 4 engines |
| Cited in AI answers for the guide topics | 0; guides published this week |
| Branded search impressions, monthly | Baseline being recorded from Search Console |
| Google Business Profile | Live; reviews: 0; service areas: San Diego County, Los Angeles cities being added |
We will not edit the baseline. If the site does not rank or get cited, that will be on this page too, with what we changed in response. That is the report we owe every client and the one we owe ourselves.
What this cost, in the terms we use with clients
At the prices on our pricing page, a build of this scope is a larger build: $8,000 to $25,000, at the top of the range for the page count and the three languages. The monthly work that follows, new pages, the citation panel, the Business Profile and the review routine, is what we sell as Growth 1000. The break-even for a web studio with a $5,000 average project and a 30% close rate is about one lead a month at that plan. The report above is how we will know.