SEO Audit Tool — Metadata, Links & Technical Checks avatar

SEO Audit Tool — Metadata, Links & Technical Checks

Pricing

from $13.00 / 1,000 page auditeds

Go to Apify Store
SEO Audit Tool — Metadata, Links & Technical Checks

SEO Audit Tool — Metadata, Links & Technical Checks

Audit webpages for titles, meta descriptions, headings, canonicals, images, structured data, robots, sitemaps, and broken-link SEO issues.

Pricing

from $13.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

0

Monthly active users

6 days ago

Last modified

Share

SEO Audit Tool performs a structured on-page SEO analysis of public website pages. Point it at one or more URLs and it audits title tags, meta descriptions, heading hierarchy, image metadata, links, canonical URLs, Open Graph tags, Twitter Cards, structured data (JSON-LD), meta robots directives, HTTPS usage, viewport configuration, URL structure, and word count. Each successfully audited page receives a score from 0 to 100 based on the issues found.

Optional site-level checks include robots.txt analysis, sitemap.xml detection, and bounded internal broken-link checks. Paid page audits are written to the dataset. Each site's aggregate score, issue totals, and robots.txt/sitemap status are written to the key-value store as a non-billable summary.

Features

  • 16 on-page SEO checks — title tag, meta description, headings, images, links, canonical URL, Open Graph, Twitter Card, structured data, meta robots, language, viewport, HTTPS, URL structure, and word count
  • SEO scoring — each page scored 0-100 based on issue severity and count
  • Site-level checks — robots.txt existence and disallow rules, sitemap.xml detection and URL count
  • Broken link detection — optionally check up to 20 internal links per audited page
  • Multi-page crawling — follow internal links to discover and audit up to 100 pages per site
  • Multiple starting URLs — audit several websites in a single run
  • Issue categorization — issues grouped by severity (error, warning, info) and category
  • Site summary report — non-billable key-value-store aggregate with scores, issue totals, robots.txt and sitemap status
  • Configurable concurrency — adjust parallel crawling speed and request delays
  • Pay-per-page pricing — only pay for pages successfully audited

Input Configuration

{
"urls": ["https://example.com"],
"maxSites": 1,
"maxPages": 1,
"followLinks": false,
"checkBrokenLinks": false,
"checkRobotsTxt": true,
"checkSitemap": true,
"maxConcurrency": 1,
"requestDelay": 500
}
ParameterTypeDefaultDescription
urlsstring[]["https://crawlee.dev"]List of website URLs to audit
maxSitesinteger1Maximum starting websites to process (1-20)
maxPagesinteger1Maximum pages to crawl per starting URL (1-100)
followLinksbooleanfalseFollow internal links to discover additional pages
checkBrokenLinksbooleanfalseCheck up to 20 internal links per audited page
checkRobotsTxtbooleantrueFetch and analyze the site's robots.txt
checkSitemapbooleantrueFetch and analyze the site's sitemap.xml
maxConcurrencyinteger1Maximum pages to crawl in parallel (1-10)
requestDelayinteger500Delay between requests in ms (0-10000)

Output Format

The dataset contains paid per-page audit results. A page is charged before its row is written.

Page audit result:

{
"type": "page",
"url": "https://example.com/about",
"statusCode": 200,
"responseTimeMs": 342,
"title": { "text": "About Us | Example", "length": 18, "isOptimal": true },
"metaDescription": { "text": "Learn about our company...", "length": 89, "isOptimal": false },
"headings": { "h1Count": 1, "h2Count": 3, "h3Count": 5, "hierarchyValid": true, "h1Text": "About Us" },
"images": { "total": 8, "withAlt": 6, "withoutAlt": 2, "withDimensions": 5, "withLazyLoad": 3 },
"links": { "internal": 12, "external": 4, "broken": 1, "nofollow": 0 },
"canonical": { "exists": true, "url": "https://example.com/about", "isSelfReferencing": true },
"openGraph": { "hasTitle": true, "hasDescription": true, "hasImage": true, "hasUrl": true },
"twitterCard": { "hasCard": true, "hasTitle": true, "hasDescription": true },
"structuredData": { "found": true, "types": ["Organization", "WebPage"] },
"metaRobots": { "index": true, "follow": true },
"language": "en",
"hasViewport": true,
"isHttps": true,
"wordCount": 850,
"score": 82,
"issues": [
{ "severity": "warning", "message": "Meta description is too short (89 chars, recommended 120-160)", "category": "meta" },
{ "severity": "error", "message": "2 images missing alt text", "category": "images" }
],
"scrapedAt": "2026-03-11T12:00:00.000Z"
}

Non-billable site summary:

The actor stores this object under a SEO_AUDIT_SUMMARY_* key in the default key-value store; it is not a dataset row:

{
"type": "summary",
"siteUrl": "https://example.com",
"pagesAudited": 15,
"averageScore": 78,
"totalIssues": 42,
"issuesBySeverity": { "error": 8, "warning": 22, "info": 12 },
"robotsTxt": { "exists": true, "disallowCount": 3 },
"sitemap": { "exists": true, "urlCount": 127 },
"scrapedAt": "2026-03-11T12:05:00.000Z"
}

Usage Examples / Use Cases

  • Website launch audit — run a full SEO check before launching a new site to catch missing meta tags, broken links, and missing structured data
  • Ongoing monitoring — schedule regular audits to detect SEO regressions after content or code changes
  • Competitor analysis — audit competitor websites to understand their SEO strategy, structured data usage, and technical quality
  • Client reporting — generate structured audit data for SEO agency client reports
  • Content optimization — identify pages with low word counts, missing headings, or poor meta descriptions
  • Technical SEO — find broken links, missing canonical tags, HTTPS issues, and robots.txt problems across an entire site

Ready-to-run public tasks

  • Audit the Apify homepage — one page with core SEO checks only.
  • Audit Crawlee discovery files — one page plus bounded robots.txt and sitemap checks.
  • Audit a minimal example page — one stable page with all expansion checks disabled.

Every task caps the run at one site and one page, disables link following, and uses concurrency one.

Pricing

This actor uses Pay-Per-Event (PPE) pricing with the page-audited event: $13.00 per 1,000 pages audited ($0.013 per page) in the live Store pricing entry.

Apify platform usage is passed through according to the live Store pricing entry because SEO audits can spend extra compute on crawling, robots.txt checks, sitemap checks, and broken-link requests. You are only charged for successfully audited page results; site summaries, failed pages, and crawl errors are non-billable key-value-store diagnostics.

FAQ

How is the SEO score calculated?

Each page starts at 100 and loses points for each issue found. Errors deduct more points than warnings, and warnings more than info-level issues. The score is a deterministic assessment from this actor's checks, not a search-ranking guarantee. The site summary provides an average across paid audited pages.

Can I audit multiple websites in one run?

Yes. Add multiple URLs to the urls array and increase maxSites deliberately. The actor produces separate paid page results and key-value-store summaries for each accepted starting URL.

When checkBrokenLinks is enabled, the actor sends HEAD requests to up to 20 same-origin links found on each audited page and reports links that fail or return 4xx/5xx status codes. It does not validate external links.

How many pages can I audit per run?

Up to 100 pages per starting URL, controlled by maxPages, and up to 20 starting sites, controlled by maxSites. Both defaults are 1 for a bounded first run.

Does the audit check page speed or Core Web Vitals?

No. This actor focuses on on-page SEO factors like meta tags, headings, links, structured data, and content quality. For performance auditing and Core Web Vitals analysis, use a dedicated performance tool like Website Performance Analyzer.