Local SEO · Ottawa, Ontario
SEO in Ottawa, run by the people who change the code
nanushi is an Ottawa development studio that does local SEO and technical SEO. Most engagements in this city end with a PDF and a list of things for somebody else to implement. We build websites for a living, so the audit and the fix are the same job — we crawl the site, read the Search Console data, find what is actually wrong, and then go and change it.
Based in Ottawa. Working across Canada and internationally — local search is a focus, not a limit.
What “ranking in Ottawa” actually means
A search like plumber Ottawa returns three different surfaces stacked on one screen, each with its own inputs. Agencies tend to sell all three as one product called SEO, which is how a business ends up paying for content when the thing costing it customers is an unfinished Google Business Profile.
The map pack
The three local results with a map above them. For a business with a storefront or a service area, this is usually worth more than everything below it, and it is won with a Google Business Profile rather than with pages on your website. Different inputs, different work, different reporting.
- Google Business Profile
- Proximity to the searcher
- Reviews and categories
- NAP consistency
Organic results
The ten blue links underneath. This is where your website actually competes, and it is where technical problems bite — a page that Google has never fetched cannot rank no matter how good it is, and a great many Ottawa small-business sites are in exactly that state without knowing it.
- Crawlability and indexing
- Page content and intent match
- Internal linking
- Links from other sites
AI answers
AI Overviews, ChatGPT, Perplexity and Gemini increasingly answer "best X in Ottawa" without sending a click. Nobody has a reliable playbook for this yet, and anyone selling you a guaranteed method is ahead of the evidence. What demonstrably helps is being crawlable, being unambiguous about what you do and where, and being cited elsewhere.
- Clear, specific page content
- Structured data that resolves
- Third-party mentions
- Not being blocked
The audit we can show you in full is our own
We are not going to show you a chart of somebody else's traffic. We do not have analytics access to our clients' marketing dashboards, and the percentage-uplift graphs that fill most Ottawa SEO pages are correlation sold as cause. What we can publish, in full, is an audit of nanushi.org itself — every finding, including the embarrassing ones.
In August 2026 this site had gone sixteen months with effectively no search traffic. That looks exactly like a content problem, and it was not one. Our sitemap was publishing 24 URLs that the router did not serve: tutorial chapters were filed as 01-introduction.md, the route keyed them as introduction, and the sitemap advertised the filename. All 24 returned HTTP 200 while rendering “Not Found”. That single bug generated the duplicate-title, duplicate-description, multiple-H1 and canonical-outside-head clusters our crawl reported, all at once — four findings, one cause.
In the same pass we found that the sitemap had never been submitted to Search Console in the property's entire lifetime, that the homepage declared no canonical at all, that our structured data pointed logo and image at a file that returned 404, that no page had an OpenGraph image, and — the one most relevant here — that /ottawa, our own local landing page, was missing from the sitemap entirely.
Ruled out and explicitly not the problem: speed, internal linking, backlinks, mobile, robots.txt, domain age. Every one of those is something an agency could have sold us a retainer to improve, and none of them would have moved anything.
That is the same method we would run on your site, and the writeups are linked further down this page so you can judge the work before paying for any of it.
Local SEO for Ottawa businesses
The work that moves the map pack, in the order we usually do it. Most of it lives outside your website, which is why a website-only SEO retainer can run for months without touching the thing that actually ranks you.
Google Business Profile
The profile is the ranking asset for the map pack, not your homepage. Primary category is the single highest-leverage field and is routinely set wrong — a bakery filed under "restaurant" competes in the wrong pool. Then: service area or storefront (not both), hours that are actually accurate, services and products filled in, and photos that are yours.
NAP consistency
Name, address and phone need to match everywhere they appear — your site, your profile, and the directories that scraped you years ago. A suite number written three ways is a real problem. This is tedious rather than clever, and it is the part most often skipped because it does not demo well.
LocalBusiness structured data
Markup that tells Google what kind of business you are, where, and what you serve. Two rules we hold to: every URL referenced in the markup gets fetched to confirm it resolves, and we never put aggregateRating for your own business on your own site. That is self-serving review markup, it is against Google's guidelines, and it is enforced with manual actions.
Reviews, without the shortcuts
Reviews influence the map pack, and there is no ethical way to make them appear faster than customers leave them. What we can do is make asking easy — a short link, a card, a follow-up email — and make sure the profile is set up so reviews land where they count. We do not buy them, gate them, or write them.
Pages that say something specific
A location page has to justify existing. "We serve Barrhaven" repeated eleven times with the place name swapped is a doorway page, Google has a policy about it by name, and it stopped working a long time ago. If we cannot write something genuinely different about the work you do in Kanata versus Orléans, the honest recommendation is one strong page instead of eleven weak ones.
Directories and citations
Yelp, Yellow Pages, Apple Business Connect, Bing Places, the Ottawa Board of Trade and the BIA directory for your neighbourhood. This has diminishing returns past the first dozen and the packages selling 300 citations are selling volume because volume is easy to invoice. The value is accuracy, not count.
The technical layer underneath it
Local signals only help pages Google can reach. These are the checks we run before recommending anybody spend a dollar on content, and they are cheap and decisive — you find out in days whether you have a technical problem or a content one.
Crawlability and indexing
Whether Google has actually fetched each page, what coverage state each URL is in, and whether robots.txt or a stray noindex is quietly excluding pages you care about. A page that has never been crawled cannot rank, and no amount of copywriting changes that.
Sitemap correctness
Every sitemap URL fetched and the body read, not just the status code. Soft 404s, URLs the router does not serve, and real pages missing from the sitemap entirely — which is how our own Ottawa landing page went unlisted.
Canonical consolidation
One canonical per page, inside the head, absolute. Apex versus www settled with a permanent redirect rather than a temporary one, which does not transfer canonical status. Trailing-slash and parameter duplicates collapsed.
Core Web Vitals
LCP, INP and CLS measured per template rather than as a sitewide average, then the causes fixed — oversized hero images, render-blocking fonts, layout that jumps, and JavaScript shipped to the browser that could have run on the server.
Structured data that resolves
LocalBusiness, Service, Article, FAQ, Product and Breadcrumb where appropriate, with every URL referenced in the JSON-LD fetched to confirm it exists. Markup asserting a logo that 404s is worse than no markup.
Migrations that keep the rankings
Full pre-launch URL inventory, a one-to-one permanent redirect map with no chains and no blanket redirect to the homepage, metadata carried across, and a post-launch crawl at 7–10 days rather than an assumption.
The long version, with what each check rules out, is on our technical SEO services page.
Ottawa neighbourhoods, and the service-area trap
We work with businesses across the city and the wider National Capital Region — Kanata tech companies, Stittsville trades, ByWard Market restaurants, Barrhaven clinics, Orléans retailers, Gatineau businesses selling on both sides of the river.
Here is the part most Ottawa SEO pages will not tell you: listing those names on a page does almost nothing on its own. What ranks a plumber for plumber Barrhaven is the Google Business Profile, the service area set on it, and how close the searcher is standing. A neighbourhood page helps only when it says something a Barrhaven customer could not have read on the homepage — a project you did there, a bylaw that applies, a service you only offer south of the Queensway.
Building eleven near-identical location pages is a doorway-page pattern that Google names in its spam policies. It was a viable tactic a decade ago. Now it dilutes the site and risks a manual action. When we cannot write eleven genuinely different pages, we tell you to build one good one, even though the eleven would have been easier to invoice.
- ByWard Market
- Centretown
- The Glebe
- Hintonburg
- Westboro
- Kanata
- Stittsville
- Barrhaven
- Nepean
- Orléans
- Vanier
- Gloucester
- Manotick
- Riverside South
- Alta Vista
- Gatineau
The two pages that earned their own URL
By our own rule above, a deeper page has to say something this one cannot. Two do. Kanata SEO covers a suburb with a technology park whose buyers are not local at all, retail strips whose customers are, and a twenty-two kilometre distance problem that does not apply anywhere else in the city. Google Business Profile optimization covers the map pack field by field, including the tactics we will not sell you. There is deliberately no Barrhaven page and no Orléans page — we do not have anything different enough to say about them, and inventing it is the pattern this section just warned you about.
Ottawa industries we have written for
Each of these is a full guide covering what search looks like for that trade in Ottawa specifically — what customers search, which surface matters most, and where the money is usually wasted.
How an engagement runs
Ordered deliberately. Each step rules something out, and the cheap decisive checks come first, so you find out quickly whether you are buying engineering or writing rather than paying to guess.
- 1
Ground truth before opinions
We connect to Google Search Console and pull coverage, traffic, submitted sitemaps and the canonical host. This one step answers whether the site has ever been indexed, which decides everything after it. A property showing zero impressions for sixteen months looks like a content problem and very often is not one.
- 2
Inspect individual URLs, not totals
Totals hide the shape of a problem. We inspect the homepage, two commercial pages and two deep pages and read the coverage state on each. "Discovered — not indexed" means something different from "URL is unknown to Google", and the difference changes what we fix first.
- 3
Crawl the site ourselves
Every URL, checked for titles, descriptions, canonicals, headings, structured data and OpenGraph images. A cluster of findings that all share the same count is almost always one bug rather than four problems, and treating it as four is how audits turn into 90-item spreadsheets nobody actions.
- 4
Fetch what the sitemap promises
The step most often skipped. Every sitemap URL gets fetched and the response body read, not just the status code — because a page that returns HTTP 200 while displaying "Not Found" is a soft 404, and a sitemap full of them advertises the whole site as broken.
- 5
Fix it, submit it, then wait
We implement in the code, submit the sitemap, and ping IndexNow for Bing, Yandex, Seznam and Naver. Google does not participate in IndexNow and has no API for requesting indexing of ordinary pages, so anyone promising instant indexing is describing something that does not exist. Then we wait 7–10 days and re-read before touching anything else, because stacking fixes means never learning which one worked.
What Ottawa SEO costs, and why we quote rather than publish
Ottawa agencies advertise monthly retainers that generally start somewhere near $800 and run past $2,500, and a good number publish nothing at all and route you to a strategy call. Both approaches have the same problem: the price is set before anyone has looked at your site.
We quote after reading your Search Console data, because the two most common situations need completely different amounts of money. A site with a broken sitemap or a canonical problem needs a defined piece of engineering work and then almost nothing ongoing — that is a fixed-scope job with an end date. A site that is technically clean but has 60-word service pages needs writing, every month, for a long time. Selling both as the same retainer is how businesses end up subscribed to something that stopped doing anything in month three.
For reference, our published Ottawa web development ranges start around $1,500–$3,000 for a marketing site, and SEO built into a build we are doing is not a separate line item — per-page canonicals, a sitemap generated from the same source the router uses, structured data whose assets resolve, and Search Console connected before launch rather than six months after.
Three things we do not do: long lock-in contracts, ranking guarantees, and bundling a “free website” into a twelve-month commitment. The free site is not free; it is financed by the twelve months, and it is very hard to leave.
Ottawa work we have shipped
Live sites, not mockups. Every one of these is a real client or community organisation you can go and look at right now.
ottown — Ottawa city guide
A fully automated Ottawa news and city guide publishing daily. Next.js, Supabase, AI-written articles, its own newsletter.
Stittsville Village Association
Full rebrand and rebuild for the volunteer group behind the Parade of Lights, Canada Day and Arts in the Park.
Brain Heart Health
An accessible health research resource for the Centre for Care Access and Equity Research.
Main Street Cafe — Stittsville
A fast, simple site for a Stittsville café that has been serving breakfast since 1992.
What you will not find on this page
We looked closely at the pages currently ranking for this search before writing this one. Some of them are good. Several of them assert things that are not checkable, and at least one publishes a phone number from the block reserved for fiction. So, explicitly:
- No star rating or review count in our structured data. Self-serving review markup for your own business on your own site is against Google's guidelines and is enforced with manual actions. Our reviews live on our Google Business Profile where you can read all of them, including any bad ones.
- No client traffic percentages. We do not have access to our clients' marketing analytics, so any number we published would be secondhand at best.
- No invented years-in-business, team size, or client count. We are a small studio. The portfolio above is the whole argument.
- No certifications we do not hold, and no award badges bought from a directory.
- No guaranteed rankings, and no claim that we have an inside line on how AI Overviews pick sources. Nobody does yet.
We do have real reviews from real clients, on our Google Business Profile. They are about web development and rebrand work rather than SEO campaigns, and we would rather point you at the source than quote them here as if they were about this service.
Our SEO writing, including the Ottawa-specific guides
The method in public, including the parts where we were the ones who got it wrong.
local seo for ottawa small businesses
The practical map-pack steps, written for Kanata, Stittsville and everywhere else in the city.
optimising your google business profile in ottawa
Categories, service areas, photos and the fields most Ottawa profiles leave blank.
an ottawa business guide to getting found on google
Where the traffic actually comes from and which surface to fix first.
we broke our own seo: 24 pages returning 200 and saying not found
The full teardown of the sitemap bug on this site, including what it cost us.
apex vs www: how one redirect splits your rankings in two
Why a temporary redirect between hosts does not transfer canonical status.
how to actually read google search console
Coverage states, the property-type trap, and the setting that hides your last three days.
technical seo for next.js app router sites
Metadata, canonicals, sitemaps and OpenGraph images in the App Router, and where it bites.
seo for nonprofits and community organisations
What works when there is no ad budget and the goal is reach rather than revenue.
Find out whether it is technical or content
It takes a couple of days to answer and it decides everything you would spend after that. Tell us the URL and give us read access to Search Console.
Talk to nanushi about Ottawa SEOOttawa SEO FAQ
How much does SEO cost in Ottawa?
Ottawa agencies commonly advertise monthly retainers starting near $800 and running past $2,500, and several publish no price at all. We quote per site after looking at Search Console, because the honest number depends entirely on what we find. A site with a broken sitemap needs a fixed piece of engineering work and then very little; a site that is technically clean but has 60-word service pages needs writing every month for a year. Selling both of those as the same retainer is how the industry keeps a lot of businesses on a subscription that stopped doing anything in month three.
How long does SEO take to work?
Indexing changes can appear in Search Console within days — pages moving from discovered to indexed is a fast, measurable signal. Ranking movement takes longer and depends on how competitive your queries are; "Ottawa plumber" and "Ottawa dentist" are contested by businesses that have been at it for a decade. Anyone quoting you a fixed date for a fixed position is guessing, and the guess is not free.
Do you guarantee page one, or the map pack?
No. Google does not sell or promise placement to anybody, so no agency can guarantee it, and a guarantee is a reliable signal that the rest of the pitch is worth checking carefully. What we commit to is that the technical reasons you are not ranking will be found and fixed, and that we will tell you plainly when what remains is a content or authority problem no configuration will solve.
What is the map pack and how do I get into it?
The map pack is the block of three local businesses with a map, shown above the ordinary results for searches with local intent. It is driven mainly by your Google Business Profile rather than your website: category, service area, completeness, review signals, and how close you are to the person searching. Proximity is the input you cannot change, which is why a business in Barrhaven will struggle to appear for someone standing in Orléans no matter how good the profile is.
Do I need separate pages for Kanata, Barrhaven and Orléans?
Only if you have something different to say on each. Location pages built by duplicating one page and swapping the neighbourhood name are doorway pages under Google's own policy, and they have been ineffective for years. If your work genuinely differs by area — different services, different projects, different regulations — the pages earn their place. If it does not, one strong page will outperform eleven thin ones.
We are in Gatineau, or we serve customers in French. Can you help?
Partly, and here is the boundary. We can build and mark up a bilingual site correctly: separate URLs per language, hreflang declared properly in both directions, a Google Business Profile with the right language settings, and metadata that does not silently fall back to English. We do not write French marketing copy in-house, so that part is either yours or a translator's. We would rather say that than take the work and quietly run it through a machine.
Is my problem technical or is it the content?
That is the question worth answering before spending anything, and it is answerable in a couple of days rather than guessed at over six months. The technical checks are cheap and decisive: has Google fetched these pages at all, does the sitemap point at pages that exist, is there one canonical per page. If those come back clean, the problem is the content or the links, and we will say so even though it is the less profitable answer.
Do we have to move off WordPress, Shopify or Squarespace?
Usually not. Almost every check we run is platform-independent, and most technical SEO problems on a WordPress site are fixable inside WordPress. We build on Next.js and we like it, which is exactly why we try to be careful about recommending a rebuild — if we think one is warranted we will explain it in terms of what it fixes, not as a default.
Will a redesign hurt our rankings?
It can, and a redesign is the most common way an established business destroys rankings it spent years earning. The work that prevents it is unglamorous and almost all of it happens before launch: inventory every URL that currently exists, map each one to its replacement, keep the redirects permanent, carry the metadata across, then crawl and check Search Console 7–10 days after. A blanket redirect of everything to the new homepage is the classic way this goes wrong.
Do you only work with Ottawa businesses?
No. We are based in Ottawa and local search is a particular focus, because it depends on things — Google Business Profile, service areas, proximity — that do not apply to most of our other work. But we build and run SEO for clients across Canada and internationally, and plenty of that work has no local component at all.
What do you need from us to start?
Read access to Google Search Console for the property, the site URL, and manager access to the Google Business Profile if local ranking is the goal. Analytics is useful but not required. If no Search Console property exists, setting one up is the first thing we do — a site nobody is measuring is a site where every diagnosis is a guess.
Can you do the SEO if someone else built the site?
Yes, and it is a large share of what we do. The audit is identical regardless of who built it. The difference is in what happens after: we need enough access to make changes, and where a platform or another agency holds the keys we will tell you exactly which findings we cannot action ourselves rather than leaving them on a list.
Still deciding?
Read our Ottawa local SEO guide and do the first three steps yourself. If they fix it, you have saved the money. If they do not, you will know a great deal more before you talk to anyone — including us.