Web and domain tooling

Technical SEO Audit (bulk, with issues)

Audit up to 500 pages per run on the technical basics: title and description lengths, canonical, robots meta, hreflang, headings, word count, images without alt text, structured data, Open Graph, viewport and redirects, with a ranked list of issues per page. Respects robots.txt.

$30.00per 1,000 ยท Page audited

One page audited and delivered with its issue list. Pages blocked by robots.txt, dead URLs, timeouts and bot walls are never charged.

run it
ACTOR=steadydata~technical-seo-audit
URL="https://api.apify.com/v2/acts/$ACTOR/run-sync-get-dataset-items"

curl -X POST "$URL?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://apify.com", "wordpress.org"], "language": "en-US,en;q=0.9", "titleMaxLength": 60}'

# rows come straight back as JSON, one object per delivered row

Input

FieldNameWhat it does
urls
required
PagesPage URLs or domains, one per row, up to 500. A domain is audited on its home page. A URL that its own robots.txt forbids is skipped and not charged.
languageAccept-LanguageLanguage header sent with the request.
titleMaxLengthTitle length limitA title longer than this is reported as an issue. Google truncates around 60 characters.
descriptionMaxLengthDescription length limitA meta description longer than this is reported as an issue. Google truncates around 160.

What you get back

FieldType
urlstring, null
finalUrlstring, null
statusCodeinteger, null
issueCountinteger, null
issuesarray, null
titlestring, null
titleLengthinteger, null
metaDescriptionstring, null
metaDescriptionLengthinteger, null
canonicalstring, null
robotsMetastring, null
isIndexableboolean, null
h1array, null
h1Countinteger, null
h2Countinteger, null
wordCountinteger, null
imageCountinteger, null
imagesWithoutAltinteger, null
internalLinksinteger, null
externalLinksinteger, null
hreflangarray, null
structuredDataTypesarray, null
openGrapharray, null
hasTwitterCardboolean, null
hasViewportboolean, null
htmlLangstring, null
charsetstring, null
isHttpsboolean, null
redirectedboolean, null
contentEncodingstring, null
pageSizeBytesinteger, null
responseTimeMsinteger, null
robotsRulestring, null
sitemapsInRobotsarray, null
statusstring, null
inputstring, null
errorCodestring, null
errorstring, null