{"id":1431,"date":"2026-04-29T16:45:21","date_gmt":"2026-04-29T08:45:21","guid":{"rendered":"https:\/\/www.stridec.com\/blog\/how-to-audit-a-bad-seo-agency\/"},"modified":"2026-04-29T16:45:21","modified_gmt":"2026-04-29T08:45:21","slug":"how-to-audit-a-bad-seo-agency","status":"publish","type":"post","link":"https:\/\/www.stridec.com\/blog\/how-to-audit-a-bad-seo-agency\/","title":{"rendered":"How to Audit a Bad SEO Agency: A Practical Forensic Checklist"},"content":{"rendered":"<p><p>If you&#8217;ve started suspecting your SEO agency is underperforming, this is the audit framework you can apply yourself before deciding whether to coach them, replace them, or part ways. The audit is practical and forensic \u2014 what they delivered, where the money went, whether the metrics they&#8217;re showing you are tied to business outcomes.<\/p>\n<p>The reader-protective framing matters here. Bad SEO engagements are often not about a bad agency; sometimes the scope was wrong, the brief was unclear, or the agency was sold a job that didn&#8217;t fit their strengths. The audit clarifies which is which. By the end of it you&#8217;ll know whether the relationship is salvageable, and what evidence you have either way.<\/p>\n<p>What this guide is not: a list of agencies to avoid. The right audit is content-based, not name-based. The same checklist applies whether the agency is local, regional, or global.<\/p>\n<\/p>\n<h2>Key Takeaways<\/h2>\n<ul>\n<li>Run a forensic deliverable inventory: list everything they were supposed to ship per month versus what actually exists in the live site, the search console, and the link profile.<\/li>\n<li>Decide between coaching and replacing based on whether the issues are scope and communication problems (coachable) or methodology and ethics problems (replace).<\/li>\n<li>If you&#8217;re parting ways, run an exit transition checklist \u2014 Search Console access, GA4 access, content ownership, link disavowal status, off-page properties \u2014 before the relationship ends.<\/li>\n<\/ul>\n<h2>The six red-flag categories to audit against<\/h2>\n<p><p>Bad SEO agencies don&#8217;t usually fail on every dimension. They fail on a couple. Working through these categories is faster than a vague &#8216;something feels wrong&#8217; inspection.<\/p>\n<\/p>\n<h3>1. Reporting opacity<\/h3>\n<p><p>Reports that are dense, branded, and uncritical \u2014 pages of vanity charts with no narrative, no losses acknowledged, no priorities for next month. The test: can you explain in two sentences what they did this month and what changed in the business? If no, the report is theatre.<\/p>\n<\/p>\n<h3>2. Methodology vagueness<\/h3>\n<p><p>Methodology that defaults to jargon when you ask how the work is done. &#8216;AI-driven optimisation&#8217; or &#8216;proprietary ranking algorithm&#8217; without explanation are signals the methodology is either thin or deliberately obscured. Senior practitioners can explain their approach in plain language.<\/p>\n<\/p>\n<h3>3. Deliverable mismatch with invoice<\/h3>\n<p><p>The proposal said 4 articles a month, 20 link placements per quarter, monthly technical audit, monthly review call. Six months in: count the live articles, the new backlinks, the audits in your inbox, the review calls in your calendar. Mismatch means either the scope changed without your sign-off, or the work isn&#8217;t being done.<\/p>\n<\/p>\n<h3>4. Link-building shortcuts<\/h3>\n<p><p>Backlinks from PBNs (private blog networks), expired domains repurposed as link farms, irrelevant directories, paid placements on low-quality sites without disclosure. These shortcuts produce ranking lifts that reverse on the next spam update \u2014 and the disavowal cleanup falls to you, not the agency.<\/p>\n<\/p>\n<h3>5. Ranking-only metrics with no business outcomes<\/h3>\n<p><p>Reports that show keyword rankings going up while organic conversions, qualified leads, and pipeline are flat. Rankings without business outcomes mean either the keywords were wrong (informational queries from people who&#8217;ll never buy), the site can&#8217;t convert the traffic, or the rankings aren&#8217;t real (rank-tracking tools showing positions Google never serves to real users).<\/p>\n<\/p>\n<h3>6. Communication patterns<\/h3>\n<p><p>Slow responses, defensiveness when questioned, account-manager handoffs without warning, sudden deliverable churn at quarter-end to look productive on review calls. Communication is the early signal \u2014 it usually breaks before the work does.<\/p>\n<\/p>\n<h2>The forensic deliverable inventory<\/h2>\n<p><p>Before any technical or content audit, build a deliverable inventory. This is a spreadsheet with three columns: what was promised in the proposal, what actually exists in the wild, gap notes.<\/p>\n<p>Promised content: list each article, page, or content asset by URL or title. Actual content: spot-check live URLs, check publish dates, check whether the writing matches the agency&#8217;s claimed quality bar or reads like AI filler. Promised links: number, target pages, anchor distribution. Actual links: pull a backlink report from Ahrefs, Semrush, or Google Search Console&#8217;s Links report. Promised technical work: audits, fixes, schema, page speed. Actual technical state: spot-check by URL or run a technical crawl with Screaming Frog or Sitebulb.<\/p>\n<p>The gap column is what matters. A 20% shortfall against the promise is normal slack; a 60% shortfall is the agency under-delivering or scope-changing without your sign-off.<\/p>\n<\/p>\n<h2>The link audit<\/h2>\n<p><p>Pull a backlink export from Ahrefs, Semrush, or Search Console. Filter to links acquired during the agency&#8217;s tenure. Then evaluate three things.<\/p>\n<p>Relevance: does the linking site have anything to do with your category, or is it a generic link farm, expired domain, or irrelevant blog network? Authority: is the linking domain a real publication with editorial standards, or is it a low-DR domain whose authority is nominal? Anchor text and placement: are the anchors natural \u2014 branded, URL, generic \u2014 or are they exact-match commercial keywords linked to commercial pages, which is the pattern Google&#8217;s spam systems target?<\/p>\n<p>If the link profile from the agency&#8217;s tenure is dominated by low-relevance, low-authority, exact-match-anchor links, you have a link-quality problem that will need disavowal work \u2014 and the agency probably won&#8217;t want to do it because it would expose the issue.<\/p>\n<\/p>\n<h2>The technical and content audit<\/h2>\n<p><p>Run a fresh technical crawl with a standard tool. Look for issues that should have been caught by the agency: broken canonicals, indexability mistakes, schema errors, slow Core Web Vitals, internal linking gaps. A site that&#8217;s been on a technical retainer for 12 months should not have basic technical issues outstanding.<\/p>\n<p>Content audit: spot-check 20 published pages. Check for AI-generated thin content, generic templated structures across pages, missing primary research, overlapping topical coverage that produces cannibalisation. Compare the writing against the agency&#8217;s own portfolio \u2014 did they put their A-team on your account or assign you to a junior with a template?<\/p>\n<\/p>\n<h2>Coach versus replace: how to decide<\/h2>\n<p><p>After the audit you&#8217;ll have evidence. Match it to one of two patterns.<\/p>\n<\/p>\n<h3>Issues that are coachable<\/h3>\n<p><p>Reporting opacity (fix: ask for a different report format with business outcomes). Communication patterns (fix: name a single point of contact and a written review cadence). Scope drift (fix: rewrite the SOW with measurable deliverables). Wrong keyword targets (fix: re-do the keyword strategy with conversion intent in mind). These are agency relationship issues, and a candid conversation with leadership often resolves them.<\/p>\n<\/p>\n<h3>Issues that mean replace<\/h3>\n<p><p>Link-building shortcuts (the harm is already done and the playbook is structural). Methodology that doesn&#8217;t survive plain-language questioning (you&#8217;re paying for senior work but getting junior labour). Persistent deliverable shortfall against invoice (the unit economics on their side don&#8217;t fit your scope). Refusal to share access, files, or process detail (a transparency issue that won&#8217;t get better). Once you see two or more of these, the relationship is structurally broken.<\/p>\n<\/p>\n<h2>The exit transition checklist<\/h2>\n<p><p>If you decide to part ways, the exit is its own project. Some assets disappear with the agency relationship if you don&#8217;t claim them first.<\/p>\n<p>Search Console access \u2014 make sure you, not the agency, are the verified owner. Add yourself as owner before any conversation about exit if you haven&#8217;t already. GA4 access \u2014 same. Confirm the property is owned under your Google Workspace, not theirs. Content ownership \u2014 the proposal should have specified the content is yours; spot-check that nothing is hosted on the agency&#8217;s CDN or behind their CMS. Link disavowal status \u2014 get the disavow file from them; you&#8217;ll need it for the new agency or for ongoing maintenance. Off-page properties \u2014 any guest-post placements, business directory listings, citation profiles need credentials transferred. Schema and structured data \u2014 exported and documented if it was custom. Reports archive \u2014 three years of monthly reports for institutional memory.<\/p>\n<p>Run the checklist before the conversation about ending the engagement, not after. Once an agency knows they&#8217;re being terminated, transitions get harder.<\/p>\n<\/p>\n<h2>Conclusion<\/h2>\n<p><p>Auditing a bad SEO agency is a practical job with a forensic shape. Work through the six red-flag categories \u2014 reporting, methodology, deliverables, links, metrics, communication. Build the deliverable inventory. Run the link, technical, and content audits with standard tools. Then match the findings to coach-or-replace patterns and act on the evidence rather than the feeling.<\/p>\n<p>The audit is reader-protective by design. It gives you evidence you can point to, with or without the agency&#8217;s cooperation. Whether you stay, coach, or replace, the audit produces a record \u2014 and if you replace, the exit transition checklist protects the assets that would otherwise quietly walk out the door with the agency.<\/p>\n<\/p>\n<h2>Frequently Asked Questions<\/h2>\n<details>\n<summary>How do I know if my SEO agency is actually underperforming or if SEO is just slow?<\/summary>\n<div class=\"faq-answer\">SEO is genuinely slow \u2014 directional improvement often takes 3-6 months and meaningful results 9-12 months. The audit isn&#8217;t about whether traffic moved fast; it&#8217;s about whether the work was done, the methodology is sound, and the metrics are tied to business outcomes. An agency can be working hard and still be on the wrong strategy. The audit separates the two.<\/div>\n<\/details>\n<details>\n<summary>What&#8217;s the single biggest red flag of a bad SEO agency?<\/summary>\n<div class=\"faq-answer\">Ranking-only reports with no business outcomes. If after six months you can see ranking positions move but cannot answer &#8216;how many qualified leads or pipeline came from organic search,&#8217; the agency is either ranking on the wrong queries or the work isn&#8217;t tied to commercial intent. This is the most common failure mode.<\/div>\n<\/details>\n<details>\n<summary>Should I confront the agency with the audit findings?<\/summary>\n<div class=\"faq-answer\">Yes, but in a structured way. Share specific findings tied to deliverables and outcomes \u2014 not vague dissatisfaction. A senior agency contact will respond with substance; a defensive response or one that pivots to upselling is itself a signal about whether the relationship is salvageable.<\/div>\n<\/details>\n<details>\n<summary>How do I audit my SEO agency without their cooperation?<\/summary>\n<div class=\"faq-answer\">Most of the audit can be done with your own access plus public tools. Search Console (your access), GA4 (your access), backlink tools like Ahrefs or Semrush (third-party data), Screaming Frog or Sitebulb (your own crawl), spot-checks of live URLs. The deliverable inventory is the only piece that needs internal records \u2014 and you should have those from the proposal and invoices.<\/div>\n<\/details>\n<details>\n<summary>What links should I disavow if my agency built a bad backlink profile?<\/summary>\n<div class=\"faq-answer\">Disavow links from PBNs (recognisable by hosting patterns and shared IPs), expired domains repurposed as link farms, irrelevant directories, and exact-match-anchor placements on low-authority sites. Do not disavow at scale without a careful review \u2014 a heavy-handed disavow can cut legitimate signal too. If the link profile damage is significant, this is the kind of work that benefits from a senior reviewer.<\/div>\n<\/details>\n<details>\n<summary>Can I switch SEO agencies mid-contract without losing rankings?<\/summary>\n<div class=\"faq-answer\">Usually yes, if the transition is run carefully. Rankings come from the site&#8217;s content and links, not from the agency&#8217;s ongoing presence. The risk is in the transition gap \u2014 broken access, lost institutional knowledge, content or technical debt that the new agency takes a quarter to surface. Run the exit transition checklist before terminating to minimise the gap.<\/div>\n<\/details>\n<div class=\"sww-cta\">\n<p>If you&#8217;ve worked through the audit and want a second opinion on whether your situation is coachable or structurally broken, <a href=\"https:\/\/www.stridec.com\/contact-us\/\" target=\"_blank\" rel=\"noopener\">enquire now<\/a>.<\/p>\n<\/div>\n<p><script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"Article\", \"headline\": \"How to Audit a Bad SEO Agency: A Practical Forensic Checklist\", \"datePublished\": \"2026-04-27T00:00:00+08:00\", \"dateModified\": \"2026-04-27T00:00:00+08:00\", \"author\": {\"@type\": \"Person\", \"name\": \"Alva Chew\"}, \"publisher\": {\"@type\": \"Organization\", \"name\": \"Stridec\", \"logo\": {\"@type\": \"ImageObject\", \"url\": \"https:\/\/www.stridec.com\/wp-content\/uploads\/2024\/07\/stridec-logo.png\"}}, \"mainEntityOfPage\": \"https:\/\/www.stridec.com\/blog\/how-to-audit-a-bad-seo-agency\/\"}<\/script><br \/>\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"How do I know if my SEO agency is actually underperforming or if SEO is just slow?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"SEO is genuinely slow \u2014 directional improvement often takes 3-6 months and meaningful results 9-12 months. The audit isn't about whether traffic moved fast; it's about whether the work was done, the methodology is sound, and the metrics are tied to business outcomes. An agency can be working hard and still be on the wrong strategy. The audit separates the two.\"}}, {\"@type\": \"Question\", \"name\": \"What's the single biggest red flag of a bad SEO agency?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Ranking-only reports with no business outcomes. If after six months you can see ranking positions move but cannot answer 'how many qualified leads or pipeline came from organic search,' the agency is either ranking on the wrong queries or the work isn't tied to commercial intent. This is the most common failure mode.\"}}, {\"@type\": \"Question\", \"name\": \"Should I confront the agency with the audit findings?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes, but in a structured way. Share specific findings tied to deliverables and outcomes \u2014 not vague dissatisfaction. A senior agency contact will respond with substance; a defensive response or one that pivots to upselling is itself a signal about whether the relationship is salvageable.\"}}, {\"@type\": \"Question\", \"name\": \"How do I audit my SEO agency without their cooperation?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Most of the audit can be done with your own access plus public tools. Search Console (your access), GA4 (your access), backlink tools like Ahrefs or Semrush (third-party data), Screaming Frog or Sitebulb (your own crawl), spot-checks of live URLs. The deliverable inventory is the only piece that needs internal records \u2014 and you should have those from the proposal and invoices.\"}}, {\"@type\": \"Question\", \"name\": \"What links should I disavow if my agency built a bad backlink profile?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Disavow links from PBNs (recognisable by hosting patterns and shared IPs), expired domains repurposed as link farms, irrelevant directories, and exact-match-anchor placements on low-authority sites. Do not disavow at scale without a careful review \u2014 a heavy-handed disavow can cut legitimate signal too. If the link profile damage is significant, this is the kind of work that benefits from a senior reviewer.\"}}, {\"@type\": \"Question\", \"name\": \"Can I switch SEO agencies mid-contract without losing rankings?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Usually yes, if the transition is run carefully. Rankings come from the site's content and links, not from the agency's ongoing presence. The risk is in the transition gap \u2014 broken access, lost institutional knowledge, content or technical debt that the new agency takes a quarter to surface. Run the exit transition checklist before terminating to minimise the gap.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve started suspecting your SEO agency is underperforming, this is the audit framework you can apply yourself before deciding whether to coach them, replace&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1431","post","type-post","status-publish","format-standard","hentry","category-ai-seo"],"_links":{"self":[{"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/posts\/1431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/comments?post=1431"}],"version-history":[{"count":0,"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/posts\/1431\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/media?parent=1431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/categories?post=1431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.stridec.com\/blog\/wp-json\/wp\/v2\/tags?post=1431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}