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.
| Tool | What it does | Cost | Worth knowing |
|---|---|---|---|
| Claude Pro or Max | Runs the skill and writes the report | Paid plan | You cannot upload a skill on the free plan |
| Ahrefs, Lite or above | Every number in the audit | Paid plan | The remote MCP server is unavailable on free and Starter accounts |
| Ahrefs MCP connector | Wires Ahrefs into Claude | Included on Lite and above | It spends your API units. Lite gives you 100,000 a month with 100 rows per request |
| The docx skill | Turns the finished report into a Word file | Included with Claude | Nothing to set up |
| A plain text editor | Where the SKILL.md lives, for both you and Claude to read and change | Free | Any 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:
- In Claude, open Settings, then Connectors
- Search for Ahrefs and click Connect
- 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:
- Generate an MCP key in Ahrefs under Account settings, then API keys
- Point Claude at
https://api.ahrefs.com/mcp/mcpwith 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.
| Section | What it pulls | How | Calls |
|---|---|---|---|
| Company overview | What they sell, who they really compete with, leading channel, funding and news | No Ahrefs. Web search plus your own knowledge | 0 |
| Organic health | Traffic, keyword count, traffic value, then 6 months of history with month on month change | Ahrefs pulls using site-explorer-metrics plus site-explorer-metrics-history | 2 |
| What it ranks for | Top organic keywords grouped into the 5 biggest clusters, plus which of them return an AI Overview | Ahrefs pulls using site-explorer-organic-keywords with the serp_features field, then Claude clusters from that one pull | 1 |
| Top pages | Top pages by traffic, with the primary keyword and position for each | Ahrefs pulls using site-explorer-top-pages | 1 |
| Geography | Visits, ranking keywords and share of total, by country | Ahrefs pulls using site-explorer-metrics-by-country | 1 |
| Competitors | Overlap competitors, cross-checked against the real business rivals, then metrics for the top 3 | Ahrefs pulls using site-explorer-organic-competitors, then site-explorer-metrics once per competitor | 4 |
| Authority | Referring domains, total backlinks and DR for all 4 domains | Ahrefs pulls using site-explorer-backlinks-stats, once per domain | 4 |
| Content gaps | Own pages that are not ranking, then clusters competitors own outright | No Ahrefs. Reuses the keyword and top pages data from sections 3 and 4 | 0 |
| Summary | Snapshot table, SWOT, up to 5 priority actions, open questions | No Ahrefs. Synthesis only | 0 |
Three of those carry the audit, and they are the 3 people skip over:
- 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.
- 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.
- 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:
| Domain | Traffic/mo | vs audited | Net Oct to Mar | Pos 1-3 % |
|---|---|---|---|---|
| Competitor A | 145M | 3.3x | +0.6% | 47.4% |
| Competitor B | 127M | 2.9x | -0.2% | 38.9% |
| Audited domain | 44M | baseline | -6.5% | 40.5% |
| Competitor C | 13M | 0.3x | +9.1% | 20.9% |
| Competitor D | 10M | 0.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.
- mini-seo-audit.zip is the file you upload to Claude. It is a zip holding a single
SKILL.md - Read it as plain text first if you would rather see what you are installing. It is one page and there is nothing hidden in it
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.comHow 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 limit | What fixes it | How |
|---|---|---|
| No crawl data | Broken links, redirect chains, duplicate titles and missing hreflang, all folded into section 8 | Drop 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 only | Real clicks, impressions, CTR and average position | The 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 tail | Depth on the clusters that matter | Raise the row limit on a Standard plan or above, for sections 3 and 8 only |
| Tells you when, never why | A dated timeline you can read the drop against | site-explorer-keywords-history and site-explorer-pages-history, annotated with confirmed Google update dates |
| Point in time only | Movement you can act on weekly | rank-tracker-overview and rank-tracker-competitors-overview if the domain is a project in your account |
| AI search | The 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 instead | Ahrefs Brand Radar, which needs a plan that carries it |
| One search engine, one snapshot of the SERP | Local 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 deeper | Add a DataForSEO MCP alongside Ahrefs and tell the skill which questions go where |
Next steps that change the output
| Add | What it gives you | How |
|---|---|---|
| Slides | A deck for the people who will not read 9 sections | Ask 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 |
| Spreadsheet | Keyword and competitor tables you can sort, filter and pivot | Ask for the xlsx version, or add a line to the skill telling it to always produce one. It opens straight into Google Sheets |
| Monthly version | The same 9 sections, run on a schedule, with a diff against last month | Save 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.
