Complete SEO Audit Tool - Technical Website Audit avatar

Complete SEO Audit Tool - Technical Website Audit

Pricing

from $100.00 / 1,000 complete seo audits

Go to Apify Store
Complete SEO Audit Tool - Technical Website Audit

Complete SEO Audit Tool - Technical Website Audit

Audit one public website for crawlability, indexation, metadata, headings, links, images, structured data, hreflang, security, response-time and optional AI-crawler signals. Returns a prioritized, source-linked report. It does not query AI answers or claim rankings.

Pricing

from $100.00 / 1,000 complete seo audits

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

What is Complete SEO Audit Tool - Technical Website Audit?

Complete SEO Audit Tool - Technical Website Audit returns one source-linked technical SEO report per public website as a dataset row: an overall score, category scores for crawlability, indexation, on-page, links, structured data, performance, security and AI readiness, robots.txt, sitemap and llms.txt status, page-level metadata and headings, a sampled internal-link graph with anchor text, link-health checks, and a prioritized issue list with evidence URLs and recommendations. SEO leads, agencies, developers and AI agents use it for release checks, client baselines and repair queues on a focused sample of same-origin pages.

Why teams use this SEO audit

  • One report, ready to act on. issues lists each finding with severity, category, code, message, evidenceUrl and a recommendation.
  • Scores you can track. overallScore and categoryScores give a triage view, and previousSnapshot adds scoreChangeFromPreviousSnapshot for before-and-after checks.
  • Page-level detail. Each entry in pages carries title and meta description with lengths, canonical status, robots directives, H1 and H2 text, word count, image alt coverage, Open Graph fields, Twitter card and structured-data types.
  • Internal linking you can fix. internalLinks keeps source, destination, anchor text and rel directives; internalLinkSummary counts nofollow, empty-anchor, redirected and broken internal links and lists orphan candidates in the sample.
  • AI crawler signals. checkAiReadiness adds llmsStatus and an aiReadiness category score alongside classic SEO checks.

Best fit for this Actor

  • Best fit for a focused technical audit of one public website across up to 50 same-origin HTML pages.
  • Designed for public HTTP evidence: what the pages, robots.txt, sitemap and links return when fetched. Ranking, Search Console and AI answer data live in other tools.
  • Use it before launches and migrations, for client onboarding baselines, and for re-checks after fixes.
  • When you need a whole-site inventory, continue with Website SEO Crawler — Screaming Frog Alternative for a deeper crawl.
  • When link rot is the main concern, then use Broken Link Checker for Technical SEO Audits to check every link on the site.

Example workflow: from a release candidate to a repair queue

An SEO lead at an online store starts with siteUrl set to the store's homepage, maxPages at 25 and checkLinks on, the day before a template release. The report returns overallScore, categoryScores and an issues list with evidence URLs. They sort issues by severity, assign metadata fixes to content owners and empty-anchor links to the front-end team, and export the list to their ticket tracker. After deployment they run the same input again with previousSnapshot holding the first score, then compare scoreChangeFromPreviousSnapshot and the remaining issue codes.

Input

{
"siteUrl": "https://example.com",
"maxPages": 10,
"checkLinks": true,
"maxLinksPerPage": 10,
"maxInternalLinksPerPage": 25,
"includeExternalLinks": false,
"checkAiReadiness": true,
"respectRobotsTxt": true,
"requestTimeoutMs": 15000,
"previousSnapshot": { "overallScore": 76 }
}
FieldTypeWhat it controls
siteUrlstringPublic website origin or homepage to audit. Required.
maxPagesintegerSame-origin HTML pages to sample, homepage included, from 1 to 50. Default 10.
checkLinksbooleanCheck a sample of discovered links and classify each response. Default true.
maxLinksPerPageintegerLinks sampled per page for link checks, from 1 to 50. Default 10.
maxInternalLinksPerPageintegerInternal-link details kept per page, from 1 to 100. Default 25.
includeExternalLinksbooleanAdd off-domain links to the link-check sample. Default false.
checkAiReadinessbooleanCheck AI crawler directives, llms.txt and structured data. Default true.
respectRobotsTxtbooleanKeep pages disallowed by robots.txt out of the sample. Default true.
requestTimeoutMsintegerTime allowed per request, from 3,000 to 30,000 ms. Default 15,000.
previousSnapshotobjectEarlier summary such as {"overallScore": 76} to calculate the score change.
demoModebooleanReturn a sample report without fetching a site, for integration testing. Default false.

Output

One dataset row per audit.

FieldWhat it contains
siteUrl, auditedAtAudited origin and report time
pagesRequested, pagesAudited, crawlStatusSample size requested, pages inspected and crawl completeness
overallScore, categoryScoresTriage scores, overall and per category
robotsStatus, sitemapStatus, sitemapUrlCount, llmsStatus, httpsSite-level signals
issueCountsCritical, warning and info totals
issuesPrioritized findings with evidence URL and recommendation
pagesPage-level metadata, headings, images, links, structured data and response time
internalLinkSummaryInternal-link totals, link health counts and orphan candidates
internalLinksSource-to-destination link details with anchor text and rel
linkChecksSampled link responses with status, final URL and classification
scoreChangeFromPreviousSnapshotSigned score change when previousSnapshot is supplied
warningsNotes on partial discovery, when any

Example report (arrays trimmed to one entry each):

{
"siteUrl": "https://apify.com",
"auditedAt": "2026-10-01T12:12:44.086Z",
"pagesRequested": 10,
"pagesAudited": 1,
"crawlStatus": "complete",
"overallScore": 99,
"categoryScores": { "crawlability": 100, "indexation": 100, "onPage": 100, "links": 90, "structuredData": 100, "performance": 100, "security": 100, "aiReadiness": 100 },
"robotsStatus": "present",
"sitemapStatus": "present",
"sitemapUrlCount": 16,
"llmsStatus": "present",
"https": true,
"issueCounts": { "critical": 0, "warning": 1, "info": 0 },
"pages": [
{
"url": "https://apify.com/",
"status": 200,
"responseTimeMs": 348,
"title": "Apify: Marketplace of ready-to-run tools for AI",
"titleLength": 47,
"metaDescriptionLength": 143,
"canonicalStatus": "self",
"h1Count": 1,
"wordCount": 1540,
"imageCount": 78,
"imagesMissingAlt": 0,
"structuredDataTypes": ["Organization", "WebSite", "SoftwareApplication"]
}
],
"internalLinkSummary": { "totalInternalLinks": 79, "uniqueInternalDestinations": 47, "emptyAnchorInternalLinks": 2, "healthyInternalLinks": 46, "redirectedInternalLinks": 1, "brokenInternalLinks": 0, "orphanCandidatePages": [] },
"internalLinks": [
{ "url": "https://apify.com/", "sourceUrl": "https://apify.com/", "anchorText": "Skip to content", "rel": [], "isNofollow": false, "destinationAudited": true }
],
"linkChecks": [
{ "url": "https://apify.com/", "sourceUrl": "https://apify.com/", "linkType": "internal", "status": 200, "classification": "ok", "responseTimeMs": 109 }
],
"issues": [
{
"severity": "warning",
"category": "links",
"code": "internal-link-empty-anchor",
"message": "2 internal link(s) have no text anchor in the fetched HTML.",
"evidenceUrl": "https://apify.com/",
"recommendation": "Give navigational links descriptive visible text or an appropriate accessible name so the destination context is clear."
}
],
"scoreChangeFromPreviousSnapshot": null,
"warnings": []
}

Each run also writes OUTPUT and RUN_SUMMARY records to the default key-value store.

Pricing

This Actor uses Pay per event plus Apify platform usage. You pay one Complete SEO audit event for each persisted report, one Actor Start event per run, and the platform usage of the run. The audit event is the same whether you sample 10 pages or 50; larger samples and more link checks add platform usage. For example, a weekly audit of one site is one audit event per week plus start events and usage. The live Pricing tab on this page shows the current event prices.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~complete-seo-audit/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"siteUrl": "https://example.com", "maxPages": 10, "checkLinks": true}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/complete-seo-audit").call(run_input={"siteUrl": "https://example.com", "maxPages": 10})
report = next(client.dataset(run["defaultDatasetId"]).iterate_items())
for issue in report["issues"]:
print(issue["severity"], issue["code"], issue["evidenceUrl"])

Use with AI agents (MCP)

Connect the Actor to Claude, ChatGPT or Cursor through Apify MCP and ask:

Audit https://example.com with a 10-page sample. Give me the overall score, the category scores, and the top five issues with their evidence URLs and recommendations.

The agent sends siteUrl and maxPages, reads the single report with get-dataset-items, and answers from overallScore, categoryScores and issues, citing each evidenceUrl. The scope is the sampled public pages, and each report is one audit event.

Best results

Starting situationHelpful actionExpected outcome
Before and after a releaseKeep the same siteUrl and settings, and pass previousSnapshotA clean score comparison
A large siteRaise maxPages toward 50 and keep respectRobotsTxt onA wider sample of the public pages
Content-only reviewSet checkLinks to falseMetadata, headings and indexation in a lighter run
Outbound link QATurn on includeExternalLinksOff-domain links in linkChecks
Classic SEO onlySet checkAiReadiness to falseScores without the AI readiness category
Wiring an integrationSet demoMode to trueA sample report shape with no site fetch

Builder's note

I designed the report as one row per audit so a team can store, diff and ticket it without stitching pages together. I found that issue counts alone rarely change anything, so every finding carries the page that proves it and a plain-language recommendation, and internal links keep their anchor text so fixes can be made link by link.

FAQ

Does it measure rankings or Core Web Vitals?

It measures what public pages return over HTTP, including response time. Rankings and field Core Web Vitals come from search engine and browser data sources.

Can I compare audits over time?

Yes. Pass previousSnapshot with the earlier overallScore to get scoreChangeFromPreviousSnapshot.

How many pages does it inspect?

Up to maxPages, from 1 to 50 same-origin HTML pages found from the homepage, its links and the sitemap.

Responsible use

Audit public websites you own or are authorized to evaluate, and respect site terms, robots.txt and applicable laws. Keep credentials, cookies and private-network addresses out of the input.