SEO Audit
by coreyhaines31 / marketingskills
Audit, review, or diagnose SEO issues on your site.
Audit internal linking to find orphan pages, broken internal links, crawl-depth problems, and weak anchor distribution, then plan the hub-and-spoke structure that fixes them.
Listed ·Updated
Install data from skills.sh
Internal Link Audit is an SEO Audit skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves full technical and on-page audits with prioritized action plans. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
Audit a site's internal linking and produce an evidence-labeled remediation plan. Answer three questions:
Do not treat internal linking as a quota exercise. Recommend links only when the source, destination, and user journey are contextually related.
Keep these evidence classes distinct in the analysis and final output.
Ask once for:
Do not ask the user to paste a Semrush API key. The official MCP uses Semrush authentication.
Use discovery and schema retrieval before every report whose parameters are not already known.
projects.list_projects, retrieve its schema, execute it, and match the requested domain exactly. Confirm that siteaudit is activated.site_audit.snapshots with the project ID. Select the latest completed snapshot and retain its snapshot_id and finish date.info for crawl status, pages crawled, issue counts, redirect counts, and crawl-depth distribution.meta_issues to get the valid issue IDs and definitions. This is a catalog, not proof that every issue exists on the site.info.defects. For each relevant issue that has a nonzero count, execute issue_details with the project ID, issue ID, snapshot ID, and a controlled limit. Paginate only as needed.page_list and then page_info only when an exact crawled URL needs page-level inspection.The tested public MCP exposes issue-based Site Audit reports, not a literal Internal Linking thematic report. Relevant issue IDs discovered during the live contract test included broken internal links, orphaned sitemap/Google Analytics pages, page crawl depth, pages with only one internal link, redirect chains, permanent and temporary redirects, nofollow internal links, links with no anchor text, and non-descriptive anchors. Always rediscover the live catalog instead of hardcoding those IDs as a permanent contract.
Projects access is read-only. Never promise to create a project, change crawl settings, connect Analytics, or run a new audit. If no matching project or completed snapshot exists, state that limitation and use the fallback ladder.
issue_details response means the selected snapshot has no returned occurrences for that issue. Do not turn it into a tool failure or invent examples.Use the strongest available source and name it in the output.
Label levels 3–5 as sampled unless the supplied data demonstrably covers the full site.
Record:
Infer the architecture only from observed navigation, URLs, sitemaps, or supplied documentation. A flat distribution does not by itself prove that search engines cannot understand the site.
An orphan page has no crawlable incoming internal link in the dataset used to identify it. Site Audit may expose separate orphan issues based on sitemap or connected Analytics data; report the source because those populations differ.
For each returned URL, determine whether the page should be:
Semrush's editorial guidance suggests aiming for two or three contextual incoming links when publishing new content. Treat that as an editorial aim, not an automatic failure threshold for every existing URL and not a promise of ranking improvement.
Do not call a page a high-traffic orphan unless first-party or executed Semrush data actually establishes its traffic.
For every occurrence returned by issue_details, retain the source URL, destination URL when present, HTTP status or issue information when present, issue ID, and snapshot date.
Recommend one of:
Use a 301 or 308 for a permanent move and a 302 or 307 for a temporary move. Do not claim that temporary redirects inherently fail to pass link equity.
Use info.depths for the distribution and the current depth issue from info.defects plus issue_details for affected URLs. Semrush Site Audit may flag pages that require more than three clicks, but this is a product check, not a universal ranking law.
Prioritize depth changes when the user identifies the page as important or when supplied first-party evidence shows meaningful demand or business value. Do not impose keyword-volume cutoffs or require every important page to be linked from the homepage.
Use the discovered issues for missing anchors, non-descriptive anchors, and internal nofollow links when they have current occurrences.
nofollow case by case. Do not say the attribute categorically prevents all value from flowing or automatically order its removal.Identify hub-and-spoke opportunities from observed topical relationships, navigation, and supplied content data. A hub should organize a meaningful topic for users; it is not automatically the URL with the most internal links.
For every proposed link, name:
Do not require a fixed number of sideways links, a homepage link for every hub, or a new pillar page for every cluster.
Start with an evidence summary:
| Evidence class | Source | Coverage | Snapshot or date | Limitations |
|---|---|---|---|---|
| Semrush Site Audit | Project and snapshot | Full crawl or configured crawl | Date | Crawl limits and integrations |
| User data | Analytics/export/sitemap | State actual scope | Date | Missing fields or date range |
| Manual observation | Reviewed URLs | Sample | Date | Not sitewide |
| Model inference | Architecture/link recommendation | Derived | Date | Requires human validation |
Then provide a prioritized remediation table:
| Priority | Issue | Source URL | Destination or affected URL | Evidence | Recommended action | Confidence |
|---|
Prioritize using observed business importance, severity, scale, and effort. If the user has not supplied business or performance data, say so and avoid pretending that priority equals expected traffic or revenue impact.
End with:
Semrush methodology:
Primary technical reference:
Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.