Complete SEO Audit Tool - Technical Website Audit
Pricing
from $100.00 / 1,000 complete seo audits
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
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.
issueslists each finding withseverity,category,code,message,evidenceUrland arecommendation. - Scores you can track.
overallScoreandcategoryScoresgive a triage view, andpreviousSnapshotaddsscoreChangeFromPreviousSnapshotfor before-and-after checks. - Page-level detail. Each entry in
pagescarries 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.
internalLinkskeeps source, destination, anchor text and rel directives;internalLinkSummarycounts nofollow, empty-anchor, redirected and broken internal links and lists orphan candidates in the sample. - AI crawler signals.
checkAiReadinessaddsllmsStatusand anaiReadinesscategory 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 }}
| Field | Type | What it controls |
|---|---|---|
siteUrl | string | Public website origin or homepage to audit. Required. |
maxPages | integer | Same-origin HTML pages to sample, homepage included, from 1 to 50. Default 10. |
checkLinks | boolean | Check a sample of discovered links and classify each response. Default true. |
maxLinksPerPage | integer | Links sampled per page for link checks, from 1 to 50. Default 10. |
maxInternalLinksPerPage | integer | Internal-link details kept per page, from 1 to 100. Default 25. |
includeExternalLinks | boolean | Add off-domain links to the link-check sample. Default false. |
checkAiReadiness | boolean | Check AI crawler directives, llms.txt and structured data. Default true. |
respectRobotsTxt | boolean | Keep pages disallowed by robots.txt out of the sample. Default true. |
requestTimeoutMs | integer | Time allowed per request, from 3,000 to 30,000 ms. Default 15,000. |
previousSnapshot | object | Earlier summary such as {"overallScore": 76} to calculate the score change. |
demoMode | boolean | Return a sample report without fetching a site, for integration testing. Default false. |
Output
One dataset row per audit.
| Field | What it contains |
|---|---|
siteUrl, auditedAt | Audited origin and report time |
pagesRequested, pagesAudited, crawlStatus | Sample size requested, pages inspected and crawl completeness |
overallScore, categoryScores | Triage scores, overall and per category |
robotsStatus, sitemapStatus, sitemapUrlCount, llmsStatus, https | Site-level signals |
issueCounts | Critical, warning and info totals |
issues | Prioritized findings with evidence URL and recommendation |
pages | Page-level metadata, headings, images, links, structured data and response time |
internalLinkSummary | Internal-link totals, link health counts and orphan candidates |
internalLinks | Source-to-destination link details with anchor text and rel |
linkChecks | Sampled link responses with status, final URL and classification |
scoreChangeFromPreviousSnapshot | Signed score change when previousSnapshot is supplied |
warnings | Notes 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 ApifyClientclient = 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 situation | Helpful action | Expected outcome |
|---|---|---|
| Before and after a release | Keep the same siteUrl and settings, and pass previousSnapshot | A clean score comparison |
| A large site | Raise maxPages toward 50 and keep respectRobotsTxt on | A wider sample of the public pages |
| Content-only review | Set checkLinks to false | Metadata, headings and indexation in a lighter run |
| Outbound link QA | Turn on includeExternalLinks | Off-domain links in linkChecks |
| Classic SEO only | Set checkAiReadiness to false | Scores without the AI readiness category |
| Wiring an integration | Set demoMode to true | A 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.