Agency Audit

Is Your Marketing Agency Actually Doing Anything?

You pay the invoice every month and get back a PDF with green arrows on it. Here are seven checks you can run yourself in about twenty minutes, using logins you already have.

By Osprey Solutions·August 5, 2026·10 min read
Contractor at a laptop reviewing a Google Ads change history screen beside a stack of monthly marketing agency invoices

The invoice goes out the same day every month. Fifteen hundred dollars, maybe three thousand. A few days later a PDF report lands in your inbox with some green arrows on it. Your phone is not ringing any more than it was a year ago, and you have started to quietly wonder whether anybody is actually touching your account.

Here is the good news. You do not have to wonder, and you do not have to hire a second agency to find out. Nearly every platform your agency works in keeps a timestamped record of what was done and when. You own those platforms, or you should. This post walks you through the checks, in order, with the exact click paths.

One fair warning before you start. Some of what you find will be your agency's fault. Some of it will be yours. We will cover both.

Start Here: Find Out Whether You Actually Own Your Own Accounts

The most expensive problem in this business is not lazy work. It is discovering, on the day you try to leave, that your marketing assets are not in your name. Reviews you spent five years earning, ad history you paid to build, a domain you assumed was yours. Check ownership first, because everything else is easier to fix.

A good agency hands over every one of these the same day you ask. Asking is also the fastest, lowest-drama test in this entire article.

The 20-Minute Audit: Seven Checks You Can Run With Your Own Logins

Now for the work itself. Each check below takes two or three minutes. None of them require any technical skill beyond reading a date.

1. Google Ads change history

This is the closest thing to a security camera in your marketing. In Google Ads, go to Campaigns, then Change history. Google keeps the past two years of changes, including who made them and what the setting was before.

Set the date range to the last 90 days. Then set it to the first 90 days of your engagement and compare.

Healthy looks like: entries every week or two. Keywords added, negative keywords added, budgets and bids adjusted, new ads written, poor performers paused.

Dead looks like: a flurry of activity in month one, then a long silence. The tapering pattern is the tell. It is what an account looks like when it got set up, invoiced, and forgotten.

2. Google Business Profile activity

You do not even need a login for this one. Search your own business name and look at your profile the way a customer would.

Healthy looks like: a post from the last 30 days, photos uploaded recently, every review replied to, and questions answered in the Q&A section.

Dead looks like: the last post is from eight months ago, the newest photo is the one you took yourself, and there are four reviews from spring with no reply. If you are paying for Google Business Profile management, this is the most visible deliverable there is, and it is the easiest to check.

3. Search Console impressions and clicks

Go to Search Console, open Performance, and set the date range to compare the last six months against the previous period. Turn on both Total clicks and Total impressions.

Healthy looks like: impressions rising, clicks following, and more unique queries in the list than there were six months ago. Impressions move first. That is Google testing your pages in more searches, and it is the earliest honest signal that something is working.

Dead looks like: two flat lines across six months of paid work.

4. Your own sitemap

Type your domain followed by /sitemap.xml into a browser. You will get a plain list of every page on your site, most of them with a last-modified date attached.

Healthy looks like: new URLs that did not exist last quarter, and recent dates, if you are paying for content or new service pages.

Dead looks like: the same eight pages that were there in 2024, all with 2024 dates, while a content line item sits on every invoice.

5. Is conversion tracking even switched on?

In Google Ads, go to Goals, then Conversions. Look at the list of conversion actions and the numbers beside them.

Healthy looks like: named actions such as phone calls, form submissions, and booked appointments, each recording real numbers.

Dead looks like: an empty list, or actions flagged inactive, or everything sitting at zero. This one is bigger than it looks. Without conversion tracking nobody can tell which half of your budget is working, including the agency, and Google's own bidding cannot optimize toward anything real. If you want the deeper version of this argument, we wrote about why cost per lead lies to contractors.

6. Has anything new linked to your site?

In Search Console, open Links, then Top linking sites. You are looking for change, not for a big number.

Healthy looks like: a handful of new referring domains over the year, most of them plausible: a supplier, a local association, a chamber, a news mention, a directory that matters in your trade.

Dead looks like: nothing new in twelve months. Worse than dead looks like a sudden pile of unrelated foreign domains, which is a sign somebody bought cheap links with your money.

7. Reconcile the report against the platform

Take last month's report. Open Google Ads and Search Console beside it and set the exact same date range. Compare the three or four headline numbers.

They should match. If the report says 143 leads and Google Ads recorded 38 conversions, ask what the other 105 are. Sometimes there is a completely legitimate answer, such as calls or form fills tracked in a different system. Sometimes the answer is that "leads" quietly means clicks.

CheckWhere to lookRed flag
Ads change historyGoogle Ads > Campaigns > Change historyActivity tapers off after month one
Business Profile activityYour public Google listingNo posts or photos in 90 days, unanswered reviews
Impressions and clicksSearch Console > PerformanceFlat or falling over six months
New pages publishedyoursite.com/sitemap.xmlNo new URLs while paying for content
Conversion trackingGoogle Ads > Goals > ConversionsEmpty, inactive, or all zeros
New linksSearch Console > LinksNothing new, or junk foreign domains
Report vs platformBoth, same date rangeNumbers do not reconcile

How to Read What You Found, and the Part Most Audit Articles Get Wrong

You will land in one of three places. Working: regular activity, numbers trending up, reports that reconcile. Coasting: the lights are on, something happens each month, but nothing has changed in a year. Gone: no fingerprints anywhere since the setup period.

Now the caveat, and it is the reason to trust the rest of this post. Change history is an audit trail, not a timesheet. It records what happened inside the platform. It cannot show you the afternoon somebody spent rewriting your landing page, the ad creative that got produced, the strategy call, the competitor research, or the CRM cleanup. Some of the most valuable work an agency does leaves no fingerprint in Google Ads at all.

Timing matters too. If you are two months into an SEO engagement, flat numbers are normal rather than scandalous. Most local campaigns take three to six months to show real movement, and we laid out what should happen in which month in our realistic SEO timeline.

So treat a quiet month as a question, not a verdict. The right move is to bring what you found to a call and ask what happened. The answer you get is usually more informative than the screenshots.

Want a Second Set of Eyes on Your Accounts?

Book a free strategy call. We will walk through your Google Ads, your Business Profile, and your search data with you, and tell you plainly whether the work you are paying for is showing up.

→ Book Free Strategy Call

Five Answers That Mean They Have Stopped Working

You will hear explanations. Most of them are legitimate the first time and hollow the third. Here is how to tell the difference.

  1. "The algorithm changed." Real, and it happens several times a year. But an update is followed by a diagnosis and a change in approach. If you have heard this three quarters running and nothing about the plan has moved, it is not a diagnosis, it is a shield. A real answer sounds like: "The March update hit our service pages because they were thin. Here is what we rewrote, and here is what has recovered since."
  2. "SEO takes time." True in month three. Not an answer in month fourteen. By the end of year one there should be a visible trend in Search Console, even in a slow market, even if you have not taken the top spot yet.
  3. "We are building brand awareness." When you asked about leads, this is a redirect. Brand work is real for some businesses. It is rarely what a contractor is buying with a monthly retainer.
  4. "Your competitors have bigger budgets." Probably true. But a constraint should change the plan: tighter geography, longer-tail searches, a stronger offer, more local SEO and less head-to-head bidding. An agency that names the constraint every month without ever adapting to it is explaining why it cannot win rather than trying to.
  5. "We are waiting on content from you." Check your own inbox before you get annoyed, because this one is often correct. But if six months have passed and nobody chased you more than once, that is a shared failure. Fix your side first, then hold them to theirs. It also removes their best excuse.

Fire, Fix, or Renegotiate: What To Do With the Answer

Fix: four questions for the next call

Bring what you found and ask these, in this order:

  1. What specifically was done in my accounts in the last 60 days?
  2. Which searches are we trying to win this quarter, and where do we rank on them today?
  3. How many calls and form fills came from your work last month, and how do you know?
  4. What is the plan for the next 90 days, with dates?

A capable agency answers all four on the call without needing to follow up by email. If you get a deck instead of answers, you have your answer.

Renegotiate: sometimes the scope is wrong, not the people

Plenty of these audits end with a competent team pointed at the wrong work. A $3,000 content retainer in a town of 40,000 people is a scope problem, not a competence problem. Moving that budget into Google Ads or shrinking to a focused local plan often fixes the relationship without changing anybody.

Fire: do these six things before you give notice

Order matters here. Once you announce you are leaving, cooperation gets slower.

  1. Make yourself Primary Owner of the Google Business Profile.
  2. Make yourself Admin on Google Ads, and move billing to your own card.
  3. Make yourself Owner on Google Analytics and Search Console.
  4. Confirm the domain sits in a registrar account you control.
  5. Get a full copy of the website files, or confirm you can export.
  6. Port or replace any call tracking numbers still in use.

Then read your contract before you send anything. Thirty days notice is standard, and some agreements renew automatically if you miss the window.

If you would rather not do this alone, we will run these same seven checks on your accounts and send you what we find. That is what our free SEO audit is. If your current agency turns out to be doing good work, we will tell you that, and you can stop reading marketing blogs at eleven at night.

Frequently Asked Questions

My agency will not give me admin access to my own Google Ads account or Business Profile. Is that normal?
No. It is common, but it is not normal and it is not acceptable. The standard arrangement is that you own the accounts and the agency is added as a manager or admin. On Google Business Profile, check whether you are the Primary Owner under settings, then People and access. On Google Ads, check Admin, then Access and security. If an agency built these under their own logins and will not transfer them, ask once in writing. If they refuse, Google has a recovery process for Business Profile ownership, and you can always build a fresh Google Ads account in your own name. Do this before you give notice, not after.
My rankings have not moved in six months. Is that the agency's fault or is SEO just slow?
Check impressions before you judge rankings. In Google Search Console, compare the last six months to the previous six. If impressions are climbing while positions have not moved much, the work is landing and you are still early. If impressions are flat or falling after six months of paid work, something is wrong: either nothing new is being published, or the wrong searches are being targeted. Six months is long enough to expect a visible trend in a normal local market. It is not always long enough for a top-three position on a competitive keyword.
How much should I actually be paying, and what should be included at that price?
Across the market, contractor SEO retainers commonly run $1,500 to $5,000 a month, and single-city local campaigns typically cost meaningfully less than that. Our own Local SEO plan is published at $349 a month because we think you should see a price before you sit through a sales call. Price alone tells you nothing, though. The deliverable list is what matters. At any tier you should be able to name what gets done each month: profile management, pages published, reviews handled, reporting pulled from the platform's own numbers. If your agency cannot produce that list on request, the price is not your problem.

More From Osprey Solutions

Find Out If Your Marketing Is Actually Working

Book a free strategy call. We will run these seven checks on your accounts, show you what we find, and give you a straight answer on whether the work you are paying for is showing up.

Or call: (778) 910-0756