A well-built site that isn’t asking for the work you want.
The site is sound in the ways that are expensive to fix — server-rendered, indexable, cleanly built. What’s holding it back is narrower and cheaper: the pages meant to win commercial searches don’t mention the terms they’re competing for, and the two strongest pages on the site are the hardest to reach.
49 pages crawled71 sitemap URLsNext.js on Umbraco18 Sep 2026
What we looked at
Your keyword targets, against the pages meant to deliver them.
A full crawl of studiobravo.com.au, read against the keyword research you shared, then every technical finding re-checked live on the day of writing. Nine things came out of it. Four are worth doing something about this week; the rest are housekeeping.
The keyword set
Eight groups. Three have two pages fighting over them, one has nowhere to land.
Before looking at any single page, we mapped your keyword groups onto the site as it stands, to see which page would actually be competing for each. That mapping is where most of the problem is.
Split — two pages
AI
/solutions/artificial-intelligence
/services/ai-solutions
Split — two pages
UX / UI Design
/services/user-experience
/services/design
Split — two pages
Arts & Culture / Ticketing
/solutions/arts-culture
/solutions/ticketing-integrations
No page at all
Website Development
nothing owns this
One owner
Digital Agency
/ — H1 is “Home”
One owner
Custom Software / Digital Products
/solutions/digital-products
One owner
Education / EdTech
/solutions/education
One owner
Property / PropTech
/solutions/property-development
00Read this first
The site’s structure doesn’t match how people search for you
Studio Bravo runs two parallel trees — /services/ and /solutions/ — covering overlapping ground. The result is that three of eight keyword groups have two pages competing for them, and the signals that should concentrate on one page get split between two.
Website Development has no owning page at all. For a digital agency that builds websites, that is the most surprising thing in this review — the work is everywhere on the site and nowhere in its structure.
Taking AI as the worked example, these are the terms in that group:
AI consulting MelbourneAI consulting AustraliaAI strategy consultingAI development companyCustom AI developmentAI automation agencyAI agent development
Two pages could answer those — /solutions/artificial-intelligence (H1 “Artificial Intelligence”) and /services/ai-solutions (H1 “AI Solutions”). Neither contains a single one of the seven terms in its heading or title. The same is true of every other group.
What we’d doSettle what separates a service from a solution, then give each keyword group exactly one owning page — merging and 301ing where two exist, and creating one where none does. Everything else in this review depends on that decision, which is why it sits above the rest.
Where the visibility is going
Then four things on the pages themselves.
01Start here
Every commercial page is headed with a label, not a proposition
The research targets terms like AI consulting Melbourne, Umbraco development agency and UX design agency. None appear in the H1 of the page meant to rank for them. The headings name the internal category instead:
Melbourne Digital Agency — Strategy, Design & Technology
Says what you are and where
/solutions/artificial-intelligence
AI Consulting & Development, Melbourne
Carries the group’s two lead terms
/solutions/…/umbraco
Umbraco Development Agency
Matches your own title, which is already right
/solutions/…/tessitura
Tessitura Development & Integration Partner
As above — the title has it, the H1 doesn’t
/services/user-experience
UX Design Agency, Melbourne
Commercial term, not the discipline name
/services
Our Services
Tagline moves to the line below
Illustrative, not final — the point is the shape, and each would be confirmed against the full keyword data.
The homepage H1 is the single word “Home”. On both top-level hubs it’s a tagline. Neither Melbourne nor agency appears in a single service or solution H1 anywhere on the site.
What we’d doRewrite the H1 on each priority page around the term it’s meant to win — “Umbraco Development Agency” rather than “Umbraco”. The taglines are good writing; they work as the line underneath, not as the heading.
02Start here
Two meta descriptions are shipping an internal note to Google
Umbraco and Tessitura are your two highest-intent commercial pages. On both, the copywriter’s rationale has been pasted into the live description field. This is what’s currently being served:
Live on /solutions/content-managed-websites/umbraco
“Looking for an experienced Umbraco development agency? Bravo is an official Umbraco Partner with 10+ years’ experience delivering secure, scalable websites. This targets the higher-intent phrases “Umbraco development agency” and “Umbraco Partner”, while the description reinforces experience and capability without sounding stuffed.”
The italicised half is a working note. The same has happened on Tessitura, where the description runs to 314 characters and ends by explaining its own keyword coverage.
How this looks in Google today
Studio Bravohttps://www.studiobravo.com.au › solutions › umbraco
Umbraco Development Agency & Certified Partner | Bravo
Looking for an experienced Umbraco development agency? Bravo is an official Umbraco Partner with 10+ years' experience delivering secure, scalable websites. This targets the higher-intent phrases “Umbraco development agency” and “Umbraco Partner”…
How it would look with the note removed
Studio Bravohttps://www.studiobravo.com.au › solutions › umbraco
Umbraco Development Agency & Certified Partner | Bravo
Looking for an experienced Umbraco development agency? Bravo is an official Umbraco Partner with 10+ years' experience delivering secure, scalable websites.
Worth saying the first half of both is genuinely good — well targeted, confident, exactly right. Someone wrote strong copy and the note travelled with it into production.
What we’d doCut both at the end of the real copy. Five minutes, and it’s the most visible item on this list — it’s the text a prospective client reads before they ever reach the site.
03Start here
Your two strongest commercial pages are the hardest to reach
Umbraco and Tessitura are the most substantial pages on the site — specific, genuinely authoritative, aimed at buyers who already know what they want. They’re also the most buried:
Generic service pages get 60 internal links each. The two carrying real depth and real commercial intent get two. Internal links are how a site says which of its pages matter most — and yours is currently saying these matter least.
What we’d doLink both from the case studies that prove them. Sydney Theatre Company and Melbourne Recital Centre are Tessitura projects, and the page demonstrating that expertise isn’t linked from either.
04High
Nothing states where you work
Half the keyword set is local — AI consulting Melbourne, UX design agency Melbourne. The word “Melbourne” appears in six page titles, and in no service or solution H1 anywhere on the site. Nor does “agency”.
There is also no Organization schema carrying an address, so the one place a search engine could read your location as a fact rather than infer it from copy is empty.
What we’d doWork the location into the H1 and opening line of the pages chasing local terms, and add Organization markup with the Melbourne address. Small change, and it is the difference between competing nationally and competing where your buyers are.
Housekeeping
Nothing broken — five things quietly costing efficiency.
05High
Every URL in the sitemap redirects
All 71 URLs in /sitemap.xml carry a trailing slash. The site serves them without one, so each entry returns a 308 before reaching the page — /services/ becomes /services, and so on for all of them.
The sitemap is the most direct statement you make about which pages matter, and every one currently lands on a redirect first. It’s easy to miss in a standard audit, because crawlers follow redirects silently and report the destination as healthy.
What we’d doGenerate the sitemap in the URL format the site actually serves. One change wherever it’s built.
06High
“Rich Text Editor” renders as a heading on 47 of 49 pages
A CMS field label is being output as an H2 across almost the whole site — and on most pages it’s the first H2, directly beneath the H1, where a subheading carries most weight.
The AI page shows the wider pattern: the label appears twice, the introductory paragraph is marked up as an H3 when it’s ordinary body copy, and several empty H6 elements sit between sections.
What we’d doStop the label rendering as a heading, return body copy wrongly marked as H2 or H3 to paragraph text, and remove the empty headings. One template fix covers nearly all 47.
07Medium
Three product pages have no meta description
/our-products/bravoselect, /bravoassist and /bravowallet have an empty description, so Google writes its own from whatever it finds.
Their titles are also off-pattern — “Studio Bravo - BravoSelect” against the “X | Studio Bravo” format used elsewhere. Umbraco and Tessitura break it the other way, branding as “| Bravo”.
What we’d doWrite descriptions for the three, and settle on one title format sitewide. These are named products — they should be the easiest things you have to find by name.
08Medium
No structured data on the pages that sell anything
The service and solution pages carry no JSON-LD. The capability plainly exists — blog posts have valid Article markup including an author, and the homepage has a schema block. It just isn’t on the commercial pages.
What we’d doOrganization markup sitewide, Service markup per service and solution page. It states plainly what Studio Bravo does and where, rather than leaving it to be inferred.
09Low
Placeholder pages are in the sitemap
A few development leftovers are being submitted for indexing: /test-page/, /mcp-test-page/, /case-study/, /sitemap-xml/ and /people/john-doe/.
What we’d doExclude unpublished and test content at generation, and check whether any are reachable and indexable in their own right.
The good news
The expensive things to get wrong are right.
Rendering isn’t an issue. Next.js on Umbraco, server-rendered — titles, canonicals and body copy all present in the initial HTML. Nothing waits on JavaScript to become readable.
Indexability is clean. All 49 crawled pages return 200 and are indexable. No accidental noindex, no blocked sections, sensible robots.txt.
Canonical tags are present and self-referencing on every page checked.
Blog posts have author markup.Article schema including an author field — the experience and expertise signals that matter for editorial content are already there.
The writing is good. This review is almost entirely about markup and structure, not copy. The service descriptions are well judged and the case studies are specific.
Where we’d start
Six things, in order.
Sequenced so each one unblocks the next rather than by how hard they are.
1
Cut the two meta descriptions
Five minutes, and it stops an internal note being shown to everyone searching for an Umbraco or Tessitura partner. Today.
2
Settle Services vs Solutions
A decision rather than a task, and the keyword work all depends on it. Nothing else should start until it’s made.
3
Rewrite the priority H1s
Highest return per hour on the list. Homepage, Umbraco, Tessitura and AI first.
4
Link Umbraco and Tessitura properly
From the case studies that prove them and the hubs above them. Your best commercial pages, currently your least reachable.
5
Fix the sitemap format
One change at generation, and clear out the test pages while you’re in there. Improves how every page is discovered.
6
Clear the headings, then add schema
One template fix covers the 47 pages. Schema follows once the heading structure is honest.