Home » AI Workflows » My SEO Audit Skill: How I Automated SEO Audits With Ahrefs and You Can Too [Free Skill Included]

My SEO Audit Skill: How I Automated SEO Audits With Ahrefs and You Can Too [Free Skill Included]

My SEO audit skill: How I automated SEO audits with Ahrefs and you can too

I audit domains constantly: As part of my job, for consulting pitches, for competitor checks, for my own site. Every audit meant me working through every tab in Ahrefs and others for a site I do not own, writing down my own conclusions as I went, then putting it all together in a document or a presentation. No 2 audits ever came out looking the same.

Creating a skill fixed that in one afternoon: It automates the whole Ahrefs process, so all I do now is validate the numbers and add my own observations, ideas and conclusions. AI is a great time saver. It will never replace years of experience.

TL;DR

  • What it is: A 9 section SEO domain audit that runs on Ahrefs MCP data in roughly 13 API calls and ends as a Word document. The output format is completely up to you. The future possibilities of this SEO audit skill section covers the other formats plus ideas for developing the skill further
  • What it costs: A paid Claude plan and an Ahrefs plan from Lite up, with nothing else to install
  • Setup time: About 15 minutes, most of it spent on the connector
  • In a hurry: Skip straight to the free skill download

One caveat before you download it: For your own research, run it as it is and let your expertise filter out the hallucinations and the wrong conclusions, because you will spot them. For a client deliverable or anything you put in front of your own leadership, nothing replaces your SEO expertise. Review every finding yourself before you submit it or share it publicly.

What is a Claude skill?

A skill is a description of a process you have already worked out, written down once so you get a predictable result every time you run it. It is a folder with a file called SKILL.md in it.

---
name: mini-seo-audit
description: Run a fast SEO domain audit using the Ahrefs MCP connector...
---

# Mini SEO Audit

You are running a compact SEO domain audit using...

The description is the trigger: Claude reads it against whatever you type and loads the instructions when the two match, so typing audit sitename.com fires this one and nothing else has to happen. Type something unrelated and the skill stays dormant, costing you nothing.

Everything under the description is plain English. No code, no schema, no config file.

I call mine a mini audit because a full one pulls in different sources beyond Ahrefs, all of them listed in The future possibilities of this SEO audit skill section. What it does produce is comprehensive enough to stand on its own once an SEO has reviewed it.

SEO audit skill prerequisites and stack

Five things, 3 of which cost money. Sort the Claude and Ahrefs plans before anything else, because on the wrong plan the upload button and the connector are simply missing, with nothing on screen explaining why.

ToolWhat it doesCostWorth knowing
Claude Pro or MaxRuns the skill and writes the reportPaid planYou cannot upload a skill on the free plan
Ahrefs, Lite or aboveEvery number in the auditPaid planThe remote MCP server is unavailable on free and Starter accounts
Ahrefs MCP connectorWires Ahrefs into ClaudeIncluded on Lite and aboveIt spends your API units. Lite gives you 100,000 a month with 100 rows per request
The docx skillTurns the finished report into a Word fileIncluded with ClaudeNothing to set up
A plain text editorWhere the SKILL.md lives, for both you and Claude to read and changeFreeAny will do. I use SublimeText

One warning about that third row: Every question the skill asks Ahrefs spends units from your monthly allowance. A skill written without a limit on how many questions it may ask will make 40 requests on its first run, which you only find out when your allowance is gone. Mine caps every request at 10 rows, which is why an audit costs so little.

No terminal, no GitHub, no code editor. Most guides on connecting an AI to a data source tell you to build and host an MCP server. Ahrefs has already built theirs, so you connect to it and that step disappears.

How to connect Claude to Ahrefs MCP

This is the part that makes the skill work, so do it first and confirm it before you go near the skill file. Ahrefs documents both routes on their Claude setup page.

The easy route, which is the one I use:

  1. In Claude, open Settings, then Connectors
  2. Search for Ahrefs and click Connect
  3. Authorise your Ahrefs workspace on the consent screen

No keys, no files, no JSON.

The manual route, only needed if you are wiring it into a local config rather than the Claude apps:

  1. Generate an MCP key in Ahrefs under Account settings, then API keys
  2. Point Claude at https://api.ahrefs.com/mcp/mcp with that key as a bearer token

One step people miss: After connecting, enable the connector in the chat settings dropdown. It connects at account level and stays off in the conversation until you switch it on, which gives you a connector that exists and returns nothing.

Test it before moving on:

Using Ahrefs, what is the current organic traffic
and referring domain count for ahrefs.com?

If a number comes back, you are wired up. If Claude answers from memory or hedges, the connector is not enabled in that chat.

What my SEO audit skill includes

Nine sections, roughly 13 API calls, one Word document at the end.

SectionWhat it pullsHowCalls
Company overviewWhat they sell, who they really compete with, leading channel, funding and newsNo Ahrefs. Web search plus your own knowledge0
Organic healthTraffic, keyword count, traffic value, then 6 months of history with month on month changeAhrefs pulls using site-explorer-metrics plus site-explorer-metrics-history2
What it ranks forTop organic keywords grouped into the 5 biggest clusters, plus which of them return an AI OverviewAhrefs pulls using site-explorer-organic-keywords with the serp_features field, then Claude clusters from that one pull1
Top pagesTop pages by traffic, with the primary keyword and position for eachAhrefs pulls using site-explorer-top-pages1
GeographyVisits, ranking keywords and share of total, by countryAhrefs pulls using site-explorer-metrics-by-country1
CompetitorsOverlap competitors, cross-checked against the real business rivals, then metrics for the top 3Ahrefs pulls using site-explorer-organic-competitors, then site-explorer-metrics once per competitor4
AuthorityReferring domains, total backlinks and DR for all 4 domainsAhrefs pulls using site-explorer-backlinks-stats, once per domain4
Content gapsOwn pages that are not ranking, then clusters competitors own outrightNo Ahrefs. Reuses the keyword and top pages data from sections 3 and 40
SummarySnapshot table, SWOT, up to 5 priority actions, open questionsNo Ahrefs. Synthesis only0

Three of those carry the audit, and they are the 3 people skip over:

  1. Traffic history is checked against confirmed Google updates: Any month on month move over 15% gets matched to a named update with its rollout dates, or the skill says plainly that no confirmed update lines up. It stops there on purpose, because timing is evidence of a link, never proof of one.
  1. The competitor list is cross-checked, deliberately: Ahrefs ranks competitors by keyword overlap. A design tool can share thousands of keywords with a project management tool while selling to completely different people. So the skill compares that list against the commercial competitors from section 1 and forces the real business rivals into the final 3 even where their overlap rank is lower.
  1. Content gaps make no new calls at all: The skill splits them into “fix first”, meaning pages that exist and do not rank, then “build next”, meaning clusters with nothing behind them. The first group is cheap while the second is a quarter of work, so an audit that lumps them together makes them look equally expensive.

The section I would keep above all the others is open questions. It lists everything the audit could not settle, written as questions rather than hedged statements: Revenue figures that do not agree, a traffic drop with 3 possible causes, an endpoint the plan would not open. Putting the doubts in one place means the rest of the report can say what it knows without hedging every line.

What the SEO audit output looks like

Here is a real audit with the client anonymised: A freemium SaaS with a large set of free tool pages, audited against 5 competitors.

The headline the skill produced:

Competitor A is 3.3x larger, fully recovered and growing, while the audited domain is still 6.5% below its October peak.

The competitor table, which is the section I read first every time:

DomainTraffic/movs auditedNet Oct to MarPos 1-3 %
Competitor A145M3.3x+0.6%47.4%
Competitor B127M2.9x-0.2%38.9%
Audited domain44Mbaseline-6.5%40.5%
Competitor C13M0.3x+9.1%20.9%
Competitor D10M0.2x+7.0%29.8%

Three of 5 competitors grew over the same window, so that single column turns “traffic is down” into “this is a site-specific problem rather than a market downturn”, which is a different conversation with a different owner.

Authority tells the same story: The audited domain has 6,500 more referring domains than Competitor A and a third of its traffic, so the skill is told to say “links are not your problem” out loud rather than report the count and move on.

The sharpest finding is usually a page the company already owns:

One of its own tool pages targets a 2.38M volume term that both large competitors rank on page one for. The page exists and is not surfacing at all. Check indexation, internal links and cannibalisation before writing anything new.

That is 13 API calls and about 10 minutes.

Download the full sample as a Word document to see the whole thing: All 9 sections, the flag system, the SWOT, the priority actions and the open questions. It is the real output with the client anonymised. It opens in Word, Pages and Google Docs.

3 rules for building an SEO audit skill that works

I did not get this right first time: The first version was vague, expensive to run and produced a different report every Tuesday. These 3 changes fixed it.

1. Write the audit by hand once, then describe what you did

Do not ask Claude to invent an audit structure for you. You will get a competent generic one, then stop opening it after a fortnight without ever deciding to, because it is not how you think. I wrote out the sections as I actually run them, then turned that into instructions.

2. Spend real effort on the description

It is the entire trigger mechanism and the field people rush. Put the phrasings you genuinely type in there, including the lazy ones. Mine covers “audit example.com”, “how big is competitor X” and “what does this domain look like organically”, because those are the versions I use when I cannot be bothered.

3. Give it a call budget in writing

Three lines do the work:

  • Limit every call to 10 results
  • Never repeat a call
  • Derive clusters from keywords you already pulled instead of fetching them again

Without those, it will make a fresh request for every question it thinks of, which on a Lite plan is your month.

Two more are already written into the file you are about to download: Name every column so 2 audits can sit side by side, then say what to do when data is missing, because a model left to fill a gap fills it plausibly.

Download the free mini SEO audit skill

No email form, no sign-up.

Inside: The 9 audit sections, the call budget rules, the flag system and the instruction to finish with a Word document.

How to install the SEO audit skill in 4 steps

Four steps, about 15 minutes.

Step 1: Connect and enable Ahrefs

Follow the connector section above, then run the test question. Do this before anything else, because a skill that calls a connector which is not enabled fails in a way that looks like the skill is broken.

Step 2: Download the skill file

Grab mini-seo-audit.zip from the section above. Do not unzip it, because Claude wants the zip.

Step 3: Upload it to Claude

In Claude, open Settings and find the Skills panel: It sits under Capabilities or Features depending on your plan and how recently the interface moved. Upload the file: Claude reads the name and description, then the skill appears in your list. Nothing else to configure.

If your Claude does not show a Skills panel, check you are on a paid plan and that code execution is enabled in settings.

Step 4: Run it on a domain

Type the domain into a normal chat: The skill matches on the phrasing and loads itself, so there is no menu to find:

Audit sitename.com

Any of these work too, because they are written into the description:

  • Run an SEO audit on sitename.com
  • How big is sitename.com compared to its competitors?

What happens next: Claude checks the domain and the connector, then works section by section, showing each table as it finishes. It states the API call count at the end. Expect about 10 minutes, most of it the competitor and authority calls.

The Word document is part of the skill, so you do not have to ask for it. What I would do instead is ask for the audit in the chat first, read it, then say now put that in the Word document once you are happy. Reviewing on screen is faster than opening a file, so anything you want changed costs nothing to fix before the file exists.

The audit stays in the conversation either way, so follow-ups like turn the priority actions into a 90 day plan cost no extra calls.

What the SEO audit skill will not do

An audit skill invites more trust than it has earned. Five limits worth knowing before you send one to a client:

  • It has no crawl data: Everything here is the view from outside, so broken links, redirect chains, oversized HTML, missing hreflang and duplicate titles are all invisible to it.
  • It has no Search Console: Ahrefs traffic is modelled, so every traffic figure is an estimate rather than a count.
  • Ten rows per call means no long tail: You are seeing the head of every list by design.
  • It tells you when something happened, then leaves why to you: A skill can flag a 15% drop in December and match it to a core update. Whether that update caused it is your call to make.
  • It does not check your own site’s technical health: For that you want a crawler. The next section covers how to feed one in.

The future possibilities of this SEO audit skill

The version I have shared is deliberately small so it runs on a Lite plan. Every limit in the section above has a fix: Each one is a line or two added to the same file.

Next steps that close the gaps

The limitWhat fixes itHow
No crawl dataBroken links, redirect chains, duplicate titles and missing hreflang, all folded into section 8Drop a Screaming Frog CSV into the chat, or use site-audit-issues plus site-audit-page-explorer if the domain is an Ahrefs project
Modelled traffic onlyReal clicks, impressions, CTR and average positionThe Ahrefs MCP exposes Search Console endpoints once you have connected GSC to Ahrefs, so gsc-keywords and gsc-pages replace the estimates
Ten rows means no long tailDepth on the clusters that matterRaise the row limit on a Standard plan or above, for sections 3 and 8 only
Tells you when, never whyA dated timeline you can read the drop againstsite-explorer-keywords-history and site-explorer-pages-history, annotated with confirmed Google update dates
Point in time onlyMovement you can act on weeklyrank-tracker-overview and rank-tracker-competitors-overview if the domain is a project in your account
AI searchThe audit already reports which keywords return an AI Overview, from the serp_features field on the section 3 call. What it cannot tell you is whether the domain is cited inside those overviews, or who is cited insteadAhrefs Brand Radar, which needs a plan that carries it
One search engine, one snapshot of the SERPLocal pack rankings, feature ownership by competitor, tracking on your own schedule. SERP features themselves already come through on the keywords call, so this is about going deeperAdd a DataForSEO MCP alongside Ahrefs and tell the skill which questions go where

Next steps that change the output

AddWhat it gives youHow
SlidesA deck for the people who will not read 9 sectionsAsk Claude to build the presentation directly, or pass the report to Gamma. Its MCP server works on every plan including Free, so you can connect it and generate straight from the report, though generation spends credits on every tier
SpreadsheetKeyword and competitor tables you can sort, filter and pivotAsk for the xlsx version, or add a line to the skill telling it to always produce one. It opens straight into Google Sheets
Monthly versionThe same 9 sections, run on a schedule, with a diff against last monthSave the report each time, then tell the skill to read the previous one and lead with what changed

None of these rewrite the skill: You add the new source or the new format to the list it already has, then a sentence saying when to use it. Mine has grown by 6 lines since I first wrote it.

Make it yours

The version I use day to day is bigger than this one. It carries technical health from a crawl, a deeper AI search section and a deck at the end. Yours should carry whatever you get asked for twice a month, which will not be my list.

  • Cut sections: If you never present geography, delete it. Every section you keep costs calls and reading time
  • Rewrite the description in your words: The phrasings that trigger it should be yours
  • Change the output: If your clients want a deck, say deck. If they want a one-page email, say that

Then run it on 3 domains in a row: The gaps show up immediately and each one is a sentence you add to the file.

The reminder from the top, because it matters more at this end: On your own research, run it and trust yourself to catch what it gets wrong. Before it reaches a client or your leadership team, read every finding and check the ones your experience questions. The skill pulls the data and lays it out. The analysis is still yours to stand behind.

SEO audit skill FAQs

Will this work with Semrush or Moz instead of Ahrefs?

The structure will, the tool calls will not: The 9 sections are a brief and they do not care where the numbers come from, so you swap the connector and rename the data you are asking for. The rules about call budgets and named columns carry over unchanged.

How do Ahrefs plans differ for API and MCP use?

Two things change as you go up: The monthly API unit allowance and the maximum rows a single request can return. Lite starts at 100,000 units with 100 rows per request, Standard and Advanced raise both, Enterprise lifts the row cap entirely. Every paid plan from Lite up includes the MCP server, so only free accounts are locked out.

The cost of one audit depends on which of those tiers you are on, so any number I quote will be wrong by next month. What I can tell you is that my skill asks for 10 rows per call, which sits well inside even the Lite cap. That is a deliberate budget rather than a plan limit, so leave it alone unless you are on Standard or above and genuinely need the long tail.

Current numbers are on the Ahrefs pricing page, your own position under Account settings, then Limits and usage.

Is a skill different to a project or a custom instruction?

Yes. Custom instructions apply to everything you do and a project applies to one workspace you have to remember to open. A skill sits dormant and loads itself when your message matches its description, so it works in any chat without you filing anything first.

What happens if the Ahrefs connector is off?

The skill tells you it cannot reach Ahrefs and stops, because that instruction is written into it. The alternative failure mode is a confident audit full of numbers from training data, which is far more expensive to catch later.


Work with me on your search visibility

If you want a second pair of eyes on the SEO and AI search side of a domain, or a hand turning a process you repeat into something you can hand to a machine, tell me what you are working on.