A parked domain, now ten pages for a Queens cupping practice, six of them one search each.
2026 · Next.js
Web Development

Hasina Hijama Cupping

Scroll to explore

A two-practitioner hijama practice in Flushing with a 5.0 Google rating and no site of its own. Its listing linked to a one-page deployment on a vercel.app subdomain, and the practice's domain served a registrar's parking page.

Next.js 16 and React 19 in TypeScript, with one hand-written stylesheet on a ten-step type scale. Newsreader through next/font, and a Noto Naskh Arabic face subset to the eighteen codepoints of the one verse the site sets. Ten static routes with a sitemap, robots, llms.txt and ai.txt, deployed on Vercel with a content security policy and a permissions policy on every route. No form backend, no analytics dependency, no test suite.

Search

Six pages, one question each.

Four pages are the brochure: the home page, services and prices, a guide to what hijama is, and the practitioners. The other six each answer one search the practice's customers type, and each file opens with a comment naming that search and why it earned a route. What cupping therapy costs, where the H1 is the question itself. Cupping marks, the single biggest worry people arrive with. Hijama for women, because a female practitioner in a partitioned room is the strongest reason someone picks this practice over another. Massage cupping and red light, for anyone who cannot or will not have wet cupping. Cupping therapy in Queens, a plain service-in-location page, the shape of the pages that already rank organically under the map pack. And hijama in New York City. The six stay out of the header, which already holds five items, and are reached from the footer, the breadcrumbs and links inside the pages.

We added the city page three days after the rest. Until it existed the site answered the city query with nothing: by the plan's own count on 27 August 2026, the built home page said New York four times against ninety-two for Queens. The page it had to beat held first place on 27 August 2026 with a single homepage on an exact-match domain, so this one carries what that page lacks: door-to-door travel times from each borough with the subway lines, a five-point guide to choosing any practitioner, written to be useful to someone who books elsewhere, and the five questions that repeat across the results. There are no borough pages, because the borough variants measured nothing. Headlines say Queens throughout; Flushing stays in every description, every body paragraph, the alt text and the address, so the local term still works.

The city page: the breadcrumb Home / Hijama in NYC, the headline Hijama in New York City, and a four-cell strip reading $10 per cup, $60 to $150 a session for the rest of the city, 5.0 from 175+ reviews, and women and men seen separately, above a contents list that opens with Getting here from across the city.
The cost page: the breadcrumb What cupping therapy costs, the headline How much does cupping therapy cost?, a lead setting $60 and $150 against $10 per cup, and a price grid with one dark cell, The only charge, $10, beside three cells marked Included free.
The cost page. The question every People-Also-Ask block on the local results led with, answered in the headline.
One file

The facts live in one place.

A phone number, an opening hour or the postal address changes in one file, and every page reads it from there: the masthead, the hero, the Visit table, both footers and the structured data. The hero's one-line hours, Sun to Tue and Thu, 9 AM to 7 PM, are derived from the same table the Visit section renders. Consecutive open days collapse into a run, and a time is printed only when every open day shares one, so the summary cannot become true-looking and wrong.

On 27 August 2026 we changed one line in that file: the canonical host, from the apex to www. The apex redirects to www at the edge, so every canonical, all nine sitemap entries and every share image had been pointing at a URL that redirected back to the page announcing it, and a canonical that cannot resolve to a 200 is one Google discards. Open Graph goes through one helper for a related reason: Next merges page metadata shallowly, so a page that declared its own block replaced the layout's and silently dropped the image, and WhatsApp, which is how these links get shared, showed a grey blob. All ten pages call the helper, and it supplies the image and the type by default.

The business node ships on every page, because the services, the articles and the practitioners point at it by id, and an id only resolves within the page it is on. It carries coordinates as well as the address, the three languages on the business itself, since the site does not say which practitioner speaks which, and no aggregate rating: the 5.0 lives on the Google profile, and republishing it as the site's own markup about itself is a self-serving review under Google's policy. The guides' visible Last updated line, their Article dateModified and the sitemap's lastmod are one constant each, and the sitemap sets nothing else, since Google ignores priority and change frequency.

The guide: the headline What is hijama, or wet cupping therapy?, a lead paragraph, the byline Written by Hasina, certified hijama practitioner, Last updated August 23, 2026, and an At a glance panel listing the price, what is free with every session, the practitioners and the address.
Health copy

What the site refuses to say.

This is a health site, so its guide carries an evidence section that says the research on cupping is mixed, that trials tend to be small, follow-up short, and cupping close to impossible to blind, and that claims of detoxifying the blood, curing chronic disease or replacing medication run ahead of anything demonstrated. The audit notes list that section as not to be turned into marketing copy. The footer on eight of the ten pages says hijama does not replace medical advice. The certification line names no certifying body, because the practice has not named one. The hero's claim to be the city's most-reviewed five-star hijama practice is backed in the source by a dated comparison, with the note that it fails the day another practice passes it. The same facts, evidence summary included, are in llms.txt for any model that reads the site first.

Front door

One photograph, no script.

The frame at the top of this page is the hero: one photograph on a full-bleed ink field, which we rebuilt on 29 August 2026 from a three-frame crossfading gallery that had put a client component in front of the largest element on the page. The hero now ships no client-side JavaScript. The photograph is 1,019 pixels wide against a field that stretches it on any desktop, so it is served at quality 82 instead of the default 75. That costs a measured 19 KB on the one image that opts in; 90 would have cost 56, on a site whose visitors are mostly on phones. The one line of Arabic on the site loads from a font subset to its eighteen codepoints, 10 KB in place of 92 on every route. There is no border radius and no box shadow anywhere in the stylesheet, and the cup beside two headings is a stroked SVG with a hairline stroke, like the site's other line drawings.

The enquiry form has no backend and needs none. Submitting composes the fields into a text draft addressed to the practice and opens the visitor's own messaging app: WhatsApp above 780 pixels, where an SMS link has no handler, and SMS below it. Nothing claims to have been sent. The mobile booking bar appears on any scroll and leaves 1.5 seconds after scrolling stops, never while a keyboard user is standing on it. Every route carries a content security policy, a permissions policy that governs eighteen features, and a frame denial in both the old header and the new directive. Robots names nineteen AI crawlers and allows every one on purpose, with ai.txt saying the same in prose. Any vercel.app host now redirects to the real domain. The practice's older subdomain deployment predates that rule, so the rule cannot reach it.

Project details

Does your Google listing point somewhere it should not?