SEO Audit Crawler: Site Audit, Broken Links & On-Page SEO avatar

SEO Audit Crawler: Site Audit, Broken Links & On-Page SEO

Pricing

from $2.10 / 1,000 audited pages

Go to Apify Store
SEO Audit Crawler: Site Audit, Broken Links & On-Page SEO

SEO Audit Crawler: Site Audit, Broken Links & On-Page SEO

Crawl a website and audit every page: titles, meta descriptions, H1, canonicals, noindex, broken links, redirects, alt text, structured data, speed. Per-page score plus an HTML report.

Pricing

from $2.10 / 1,000 audited pages

Rating

0.0

(0)

Developer

Momi

Momi

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 hours ago

Last modified

Categories

Features

Limited permissions

Share

Crawl any website and get a page-by-page SEO audit with a score from 0 to 100, a list of concrete issues for every page, and a ready-to-share HTML report. Built for SEO consultants, agencies, web developers and site owners who need a fast technical check without installing desktop software.

What does SEO Audit Crawler do?

It starts from a URL, follows internal links like a search engine would, and checks every HTML page for:

  • Status codes: 4xx and 5xx pages, redirect chains.
  • Titles: missing, too short, too long, duplicated across pages.
  • Meta descriptions: missing, too short, too long, duplicated.
  • Headings: missing or multiple H1.
  • Indexing: noindex in meta robots or X-Robots-Tag, canonical pointing elsewhere, missing canonical.
  • Links: broken internal links (with the pages that contain them), optional broken external links.
  • Images: images without alt text.
  • Mobile & security: missing viewport, plain HTTP, mixed content.
  • Content & sharing: thin content (under 200 words), missing Open Graph, missing JSON-LD structured data (detected types are listed).
  • Speed: server responses slower than your threshold.
  • International SEO: hreflang alternates and the html lang attribute.

Why use it?

  • Pay only for audited pages: no subscription. A 100-page audit costs a few cents (see the pricing tab).
  • Actionable output: pages are sorted from worst to best score, each issue has a severity (error, warning, notice) and details such as the broken URLs or the measured length.
  • Client-ready report: an HTML summary with the average score, issue totals and the pages to fix first.
  • Automate it: schedule weekly audits and send results to Google Sheets, Slack or email through Apify integrations, or call it from your own code and AI agents.
  • Polite crawling: own user agent, robots.txt respected, adjustable concurrency.

How to use it

  1. Enter the Website URL (for example https://example.com).
  2. Set Max pages (start with 50 to 200 for a first look).
  3. Optionally turn on Check external links.
  4. Click Start. When the run finishes, open the HTML audit report in the Output tab, or export the dataset to Excel, CSV or JSON.

Input

FieldDefaultDescription
startUrlrequiredPage to start from.
maxPages100Pages to audit; also caps the cost.
maxDepth5Clicks away from the start URL.
includeSubdomainsfalseAlso crawl subdomains.
excludePatterns[]Skip URLs containing these fragments.
checkExternalLinksfalseCheck outgoing links too.
maxExternalLinks200Limit of external URLs to check.
titleMin / titleMax30 / 60Title length thresholds.
descriptionMin / descriptionMax70 / 160Meta description thresholds.
slowPageMs2000Slow response threshold in milliseconds.
maxConcurrency5Parallel requests (1 to 10).
respectRobotsTxttrueSkip URLs disallowed by robots.txt.

Output

One dataset row per page (worst pages first):

{
"url": "https://example.com/blog",
"status": 200,
"score": 79,
"title": "Blog",
"titleLength": 4,
"metaDescription": null,
"h1": ["Latest posts"],
"canonical": "https://example.com/blog",
"wordCount": 412,
"imagesMissingAlt": 3,
"structuredDataTypes": ["BreadcrumbList"],
"responseTimeMs": 380,
"inboundInternalLinks": 12,
"issues": [
{ "code": "TITLE_TOO_SHORT", "severity": "warning", "message": "Title is shorter than the recommended minimum.", "details": "4 characters" },
{ "code": "MISSING_DESCRIPTION", "severity": "warning", "message": "Missing meta description." },
{ "code": "IMAGES_MISSING_ALT", "severity": "warning", "message": "Images without alt text.", "details": "3 of 8 images" }
]
}

The Issues dataset view lists one row per issue, handy for spreadsheets. The key-value store also contains SUMMARY (JSON) and REPORT (HTML).

Use it from code or AI agents

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('jobdata_labs/seo-audit-crawler').call({ startUrl: 'https://example.com', maxPages: 100 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

The Actor is also available to AI agents through the Apify MCP server.

Scoring

Each page starts at 100. Every error removes 15 points, every warning 6, every notice 2 (minimum 0). Thresholds for titles, descriptions and speed are configurable.

FAQ

Does it render JavaScript? No. It reads the HTML returned by the server, like most SEO crawlers in their default mode. Sites that build all content in the browser will show thin content.

Can I audit a site I don't own? Yes, for public pages. The crawler identifies itself and respects robots.txt. Keep concurrency low on small sites.

Why is an external link marked broken? Only clear failures count: 404, 410, 5xx or an unreachable host. Sites that block bots with 401, 403 or 429 are not reported.

How is this different from a sitemap tool? It follows real links and inspects each page's content. To track which pages appear or disappear over time, use Sitemap Change Monitor.