Marketing agency — SEO for the agency's own site
An agency busy with client work finally got its own site's SEO foundation tidied in one pass.
An agency busy running marketing for clients had let its own site's SEO slide. The basics needed rebuilding so search engines could recognize what the agency actually does.
A marketing agency putting its own site's SEO on the back burner is a familiar pattern. When you're running campaigns for clients, your own site is the thing that "we'll get to later". Drag that on for long enough and you reach the point where even your own brand searches don't reliably surface your company's page. From a client's point of view, that reads as "the marketing agency couldn't even get its own SEO sorted" — which lands directly on trust.
This agency was the same pattern. Client campaigns were running actively, but the agency's own site had barely seen an SEO pass. When we audited it, the issues weren't "one big flaw" — they were "lots of small leaks accumulated over time".
Per-page metadata was all over the place. The homepage had the company motto, the service pages had the first sentence of the service description, the portfolio page was empty, and some pages had another page's metadata copied straight over. The first line shown in their own brand search results was inconsistent from page to page.
There was no keyword strategy on the service pages. Core service keywords like "performance marketing", "ad operations", and "content marketing" either didn't appear naturally on the page, or when they did, every page repeated the same keywords, so search intent wasn't separated. In that state, a potential client searching for "performance marketing agency" wouldn't find a clean match on the site.
Structured data wasn't applied at all. For a marketing agency, Organization, Service, and ProfessionalService schemas can clearly signal business info, types of services, and the service area — but none of that was getting through to search engines.
The direction we agreed on was: "apply the same level of SEO setup we'd give a client to the agency itself". A consistent metadata template, keyword mapping, structured data, sitemap and robots, Search Console registration and verification — the full package.
First, per-page metadata. We unified titles and meta descriptions across the homepage, about, services (3–4 of them), portfolio, blog, and contact pages with a single template. The service pages were mapped so each one owned a different core keyword — performance marketing, content production, ad operations, brand consulting — so the pages cover different search intents without cannibalising each other, and the site as a whole covers more search territory.
Next, structured data. Organization JSON-LD connected business info, contact details, and social links via sameAs. Each service page got Service JSON-LD describing the type of service, area served, and (where publishable) price band. Portfolio pages were split between CreativeWork and Article schema depending on the entry.
OG and Twitter metadata were unified at 1200×630, and we rebuilt the sitemap as a dynamic handler so new content gets included automatically. In robots.txt we blocked admin and draft areas and added the sitemap line. Finally we registered the site in Search Console, completed verification, and submitted indexing requests.
The directly measurable changes were clear. Metadata consistency is locked in across eight core pages, three categories of JSON-LD pass the validation tools, and the homepage now has a foundation to reliably surface in the agency's own brand searches. Once a marketing agency cleans up its own site's SEO fundamentals, every new piece of content published on top of that foundation compounds automatically.
Outcome points
- 01Service page meta cleaned up
- 02Structured data applied
- 03Sitemap and robots updated
- 04Own-brand search foundation in place
Problems found
- Page meta information was inconsistent
- No keyword strategy across service pages
- No structured data applied
- Sitemap and robots not properly maintained
- Weak visibility even for the agency's own brand searches
Work performed
- Redesigned site-wide title and meta description templates
- Mapped primary and secondary keywords per service page
- Applied Organization and BreadcrumbList structured data
- Regenerated the sitemap and cleaned up robots.txt
- Registered and verified Search Console, requested indexing
- Tidied OG tags and social sharing meta
Specific edits
- Head of 8 core pagesApplied a single title and meta description templateFixes the inconsistency of every page's first line of search snippet in own-brand searches.
- Service pages (4 types)Mapped distinct primary keywords (performance, content, ads, brand)Stops the site's pages from cannibalizing each other on the same keyword.
- Footer Organization JSON-LDInserted site-wide with business info, contact, and SNS sameAsThe most basic signal telling search engines and AI clearly that this is a marketing agency entity.
- Each service page headService JSON-LD (serviceType, areaServed, provider)Structured declaration of what's offered and where -> better matching for potential clients.
- Site-wide headBreadcrumbList JSON-LD + canonical to self + OG meta unified at 1200x630Search engines parse the site structure, and social previews work correctly.
- sitemap.xmlStatic -> dynamic handler, new content auto-includedAdding blog posts or portfolio entries no longer requires manual sitemap updates.
- robots.txt + Search ConsoleBlocked private paths and added the sitemap line; registered, verified, requested indexing in SCProvides a measurement environment and accurate indexing targets.
Before / After
| Item | Before | After |
|---|---|---|
| Meta consistency across 8 pages | Different formats, some empty or copy-pasted | Single template applied, zero missing |
| Service page keyword mapping | Same keywords repeated on every page | Distinct keywords mapped to 4 core services |
| Organization JSON-LD | Not applied | Includes business info, contact, sameAs (SNS) |
| Service JSON-LD | Not applied | Each service page declares its type and areaServed |
| BreadcrumbList | Not applied | Auto-generated path for every page |
| OG / Twitter meta | Many missing | Unified 1200x630 across all pages |
| Search Console | Not registered | Registered, verified, indexing requested |
Timeline
- 01Week 0 - Diagnosis
- Audited 8 core pages for meta, schema, and indexing
- Checked the agency's own brand search visibility
- Agreed on applying the same SEO bar the agency gives clients to its own site
- 02Weeks 1-2 - Meta and keyword mapping
- Applied a single title and meta description template
- Separated keywords across the 4 core service pages
- Unified OG and Twitter meta
- 03Weeks 2-3 - Structured data
- Organization JSON-LD (sameAs, contact)
- Service JSON-LD on each service page
- BreadcrumbList site-wide
- Confirmed all 3 schemas pass the validator
Brand and service signals are now passed explicitly to search engines and AI
- 04Weeks 3-4 - Sitemap and Search Console
- Introduced a dynamic sitemap.xml handler
- Cleaned up robots.txt
- Registered Search Console, verified, requested indexing
- Delivered an operations guide for SEO on new content
Future content automatically joins the SEO flow — structure handed off
Summary
- Basic SEO in place for the agency's own site
- Per-service keyword strategy mapped out
- Search engine structural recognition stabilized
Client review
Thank you — SEO at its finest!
- Quality of work5.0
- Helpful consultation5.0
- Quick responses5.0
If you need similar work, start with the free audit or get in touch directly.