Support · Websites · 15 min read
SEO for a Vancouver business that actually exists
Search work starts with a real city, a real service, and pages that a person can finish.

Name the city, the service, and the currency
If you are in Vancouver, say so. If you invoice in Canadian dollars, say so. Searchers comparing a local studio to an offshore template farm are looking for proof you are here: a street they know, a phone they can call on Pacific time, a price that is not quietly in US dollars. Hide the city and you look like everyone else. SYCGeeks has been in Vancouver since 2015. We put the city on the page because that is how a person decides we are a studio and not a landing-page mill.
Write the service the way a person in British Columbia would type it. “Custom website,” “Square appointments,” “bilingual marketing site,” “Shopify store that collects GST.” Those are jobs. “Digital solutions for forward-thinking brands” is not a job. We title the page for the job, put one H1 that matches, and keep the CAD figure or the booking path visible without a scroll theatre. If you serve Burnaby, Richmond, or the North Shore as well, say that on the same page in a sentence, not as a keyword list in the footer.
Proof beats adjectives. A map pin, a real photo of the work, a phone number +1 (672) 200-7924 style that a Canadian can tap, and an email that is yours — admin@sycgeeks.ca in our case — do more than a paragraph about being passionate. If you are appointment-only or home-studio, say that. Searchers in Vancouver already know what a virtual-only firm looks like. They are trying to tell you apart from one.
Currency on the page is a trust signal and a practical one. Canadians who have been surprised by USD at checkout bounce. If a service starts at a published CAD number on our catalog, we put it near the offer, not in a PDF. If your prices vary, say “quoted in CAD” and how to get the number — write, book on Square, or call on a weekday. Mystery pricing reads as offshore even when you are on Main Street.
One page per real offer, not a blog nobody asked for
We write service pages that answer a job. Each page gets a clear title, a visible FAQ, and an illustration that is not a stock handshake. “Custom ecommerce,” “Square appointments,” “bilingual marketing site” can each carry a page if you actually sell those things. A page for a service you do not offer is a lie that search will eventually punish and that a client will remember when they call.
A weekly blog is optional. A page that explains how you work, what you charge in CAD, and how to book is not. Most Vancouver professional firms do not have an editor, a photographer, and a legal reviewer on tap every Thursday. They have a partner who can sign one service page this month. We would rather you rank for the thing you sell than publish 40 posts about “five trends” that expire and never get a French pair.
If you do write articles, write them as answers to questions you already hear on the phone. “Do you work with Square or Shopify?” “How long does a site take?” “Do you invoice in CAD?” Those pages can live in a guides library, like this one, and they should be maintained. An abandoned blog from 2019 with American spelling and a California privacy snippet tells search you left. We would rather 12 living pages than 200 dead ones.
Service pages also carry the conversion. Each one should finish a task: book a Square slot, write admin@sycgeeks.ca, call on a weekday. Three competing buttons is not a strategy. If the page is about appointments, the appointment is the action. A newsletter under the fold can wait. Search that brings a person who cannot finish a task is vanity traffic you will pay to host.
Core Web Vitals and images that hold on a phone
Technical basics still matter: one H1, readable URLs, schema for services and FAQs, and images that do not blur on a phone. We ship those as part of the site, not as a later “SEO package.” Core Web Vitals are how a phone on Granville, on a wet Tuesday, decides whether your page is usable. A 12-megabyte hero, a font family from five foundries, and a chatbot that loads before the heading will fail Largest Contentful Paint and cost you the searcher you just paid to attract.
Retina crops are not decoration. Vancouver searchers are on phones. A handshake stock photo that smears at 2x looks like every other firm. We use illustrations and product stills sized for the slot they live in. WordPress and Next.js can both do this if the operators are not uploading desktop PNGs into a full-bleed banner. Training that is part of the six-to-ten-week launch. A CMS that lets anyone paste a 20-megabyte original is a future Core Web Vitals failure.
Largest Contentful Paint, Interaction to Next Paint, and Cumulative Layout Shift are the three numbers we care about on launch templates. We measure the real service page, not a blank theme. Layout shift from late fonts, late booking widgets, and late cookie banners is a design problem. If Square’s embed or a chat vendor shifts the form after paint, we change the layout so the shift happens in a reserved slot, or we replace the vendor. We do not tell you to “work on SEO” while the button jumps under a thumb.
Hosting and the Canadian domain are part of launch. A site on a slow shared box with no image pipeline will not be saved by better title tags. Care at $450 a month or $4,500 a year includes hosting watch and small dependency updates. That is how Vitals stay honest after a plugin update. A store without someone watching the processor and the templates is a weekend problem. Search rankings follow the live page, not the slide you showed in discovery.
Titles, URLs, schema, and the FAQ people actually read
One H1 that matches the job. A title tag that a person would click. A URL a person would read aloud: /expertise/ecommerce, not /p=483. Schema for the service and for FAQs we actually display. We do not hide FAQ text for bots. If the question is on the page, a human should see it. If it is not a real question you hear, it does not belong in schema. Fake FAQ markup is a short-term trick and a long-term mess.
Internal links should follow the work. A service page links to how we start, to care, to booking. It does not link to twelve related posts to “distribute juice.” We are not a content farm. A Vancouver buyer who lands on Square appointments should be able to book without hunting. Related guides at the bottom are fine when they are the next honest question. A tag cloud is not.
Local business details belong in one consistent place: name, address or service area, phone, hours in Pacific time. Those same facts should match Google Business and the Square listing if you use one. NAP drift — a old 604 number on the site, a 672 on the profile, a suite you left last year — is how you lose the map pack. We treat that block as a component, not as text someone retypes on each page.
PDFs are not a home for the offer. A fee schedule locked in a 2018 PDF will not be read by search the way a service page will, and it will not be French unless you maintain two files. If a college requires a PDF, link it from the service page and keep the HTML explanation in front. We would rather maintain one living page than a drawer of files with American letter size and a broken accessibility tree.
Maps, reviews, and being findable when someone is already here
A lot of Vancouver search is “near me” on a phone. Your Google Business profile, your hours, and your booking path have to agree with the site. If you are by appointment only, the profile should not say walk-in. If you close on a statutory holiday, say so. We do not run review schemes. We do make it easy to leave a factual review after a finished job, and we reply to the ones that are about the work.
If you have no public storefront, do not fake a pin on a WeWork you visit twice a year. Service-area businesses can say Vancouver and the municipalities they actually drive to. Lying about a Kitsilano address to steal a map pack is how you get the wrong people at the wrong door and a mess with every directory that scraped you. Honesty ranks slower and lasts.
Citations should be few and true. The directories that matter for a Canadian professional firm are the ones your clients already use — Google, perhaps a college registry, perhaps a tourism board. We will not sell you 80 directory submissions. We will ask you to fix the three that already rank for your name. Inconsistent hours across those three will beat any blog post you publish this quarter.
When someone is already on your street, the site still has to finish the task. A map embed that blocks the call button is a design defect. Click-to-call on a phone, a Square book button that does not require a studio account, and hours in Pacific time belong above the fold on the contact page. Search brought them. The page has to catch them. That is SEO as much as a title tag.
Bilingual search without thin duplicate pages
If you ship English and French, each language needs real pages, real titles, and hreflang that points at the pair. A thin French copy of an English service page, produced by a tool, will not rank and may hurt both URLs. We plan the French information architecture with the English one. Button width and sentence length change the page. That is a design problem, which we cover in the bilingual guide. For search, the rule is: if the French page is not a page a person in Quebec or a federal buyer would finish, do not publish it.
Do not keyword-stuff city names in the other language. “Vancouver” stays Vancouver. “Next.js” stays Next.js. Translate the offer, not the proper nouns you already use on the invoice. Quebec-facing pages should be Canadian French, vous, with $ CA and TPS/TVH — not France-French with TTC and a .fr instinct. Federal buyers notice the difference. So do we.
English-only blogs attached to a bilingual service site create a lopsided library. Searchers in French will find your English posts and bounce, or they will find nothing. If you cannot maintain both, keep the guides few and paired. An extra language pass after launch is a one-to-two-week add-on, about 25 percent less on care. Plan it if a Quebec campaign is on the 90-day horizon. Do not ask the reserved care hour to translate an archive.
PIPEDA still applies to the forms that SEO sends you. A lead form that collects a name and a phone needs a purpose on the privacy page, in the language of the form. Chat widgets are personal information. We do not drop a tracker because a growth article said to. WCAG labels and contrast are launch work; they also help searchers who pinch-zoom on a bus. Compliance is not a US checklist pasted into a Vancouver store.
What we ship with the site, and what is a later quote
A custom website launch already includes an SEO and analytics foundation: titles, headings, schema we display, a sitemap, analytics wired to the conversion you named. It does not include a six-month content retainer or a promise to rank number one for “lawyer Vancouver.” Nobody honest can sell that promise. We will tell you which service pages we would buy for ourselves and which blog idea we would cut.
Link building as a service is not something we productize. A useful mention is a college listing, a real partnership, a talk you actually gave. Buying links is how you inherit someone else’s penalty. If a directory requires a fee and you already belong to the association, pay the association, not a broker. We will implement the on-page work that makes those mentions land on a page that converts.
After launch, a new service page is an extra-page add-on, one to two weeks, cheaper on care. A checkout change that affects how money and tax appear in search snippets is two to three weeks. We reopen the same project in the dashboard. The 90-day window is for defects — a missing hreflang, a 404 on an old URL you still rank for — not for a new practice area you thought of at a retreat. New scope is a CAD quote.
If production search is on fire — you moved domains and everything 404s, or a plugin update noindexed the site — call +1 (672) 200-7924 on a weekday, Pacific time. That line is for heat. A wish for better rankings is a note or a booking. Mixing those two is how urgent redirects get lost in a thread about adjectives. Write admin@sycgeeks.ca with the job, the city, and the systems you already use if you want a site we can price.
Measure search that leads to a booking, not a bounce
Analytics should answer whether a searcher finished the task. We wire the booking, the form, or the checkout — one primary conversion — and we look at those events in CAD-relevant terms: enquiries, booked minutes, paid orders. Sessions and “engagement rate” without a finished task will talk you into a blog. The dashboard notes should say which query families actually produce Square appointments or emails. If “free template” is your top query and you sell custom work, you have a title problem, not a content-volume problem.
Search Console and analytics are personal information when they can identify a person. We keep what we need to run the site and we say so on the privacy page. We do not dump a tag manager full of remarketing pixels because a template did. PIPEDA is about purpose. If you want ads later, that is a written decision, not a default. Care includes watching that the tags you approved still fire after a theme or Next.js upgrade.
Report monthly in language a partner can read: which service pages entered the top ten, which old URLs still 404, whether Core Web Vitals on mobile held, how many bookings came from organic search. Not a 30-page deck. If you are on yearly care, that note can live next to the reserved hour. If you are not on care, nobody is watching the 404s on a Sunday. That is a choice you can change at checkout.
A useful first brief for search-aware work is short. Who do you serve in Metro Vancouver or across Canada? What should they do in the first visit? Which city names are true? Which services are real this quarter? Send the current site, the Google Business URL, and the Square or WordPress login if we are inheriting it. Book on Pacific time if you want to talk before you write. We quote in CAD. We do not start on a keyword list and a handshake.
A Vancouver page that would actually earn a click
Imagine the query “bilingual website Vancouver” or “Square appointments clinic Burnaby.” The result that deserves the click names the city, the job, and a fact a stranger can verify — CAD, a phone, a neighbourhood, a college, a processor they already pay for. The page behind that result finishes the task in one sitting. It is fast on a phone. It does not open with “In today’s digital world.” It does not hide the price culture of this country. That is the bar we write to, including on this library.
Your competitors will still publish listicles. Let them. A clinic that explains intake, parking, Pacific hours, and how GST appears on a receipt will take the patient who was going to book anyway. A manufacturer that explains bilingual packaging and federal bid language will take the buyer who was going to issue an RFP anyway. SEO for a business that exists is mostly the courage to be specific on a page your partner can sign.
When we inherit an old WordPress farm, we usually cut. Redirect the posts that still earn a real enquiry. Leave the rest. A six-to-ten-week rebuild cannot also be a museum of every article a contractor wrote to hit a quota. Next.js or WordPress, the living IA is the same: home, a handful of service pages, how we work, legal, contact. Search likes a site a human can hold in their head. So do your operators.
If you want this done, send the three queries you heard last week, the city you will stand behind, and the conversion that pays. We will tell you which pages to keep, which to write, and whether the work is inside a website launch or a later add-on. Book a Square slot if you would rather speak. Call if the live site has been noindexed or the domain cut broke the map. Otherwise write. The honest SEO calendar starts when the offer is named, not when a tool exports five hundred keywords.



