SEO Crawler - Technical SEO Audit Tool & On-Page Checker avatar

SEO Crawler - Technical SEO Audit Tool & On-Page Checker

Pricing

from $30.00 / 1,000 page audits

Go to Apify Store
SEO Crawler - Technical SEO Audit Tool & On-Page Checker

SEO Crawler - Technical SEO Audit Tool & On-Page Checker

Crawl a website and check its SEO: an SEO crawler with a technical and on-page audit of titles, meta descriptions, canonicals, robots, hreflang, headings, alt text, structured data, broken links, robots.txt and sitemap; 0-100 score and issues per page. $30 per 1,000 pages; failed pages free.

Pricing

from $30.00 / 1,000 page audits

Rating

0.0

(0)

Developer

Tenfold Fleet

Tenfold Fleet

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

What does SEO Crawler do?

SEO Crawler (SEO Audit Tool) crawls a site and runs a technical and on-page SEO audit of any website and returns one row per page with a 0-100 SEO score, a prioritized issue list (error / warning / notice) and every on-page signal search engines read: title and meta description length, canonical URL, robots meta and X-Robots-Tag, hreflang, H1-H3 headings, word count, image alt text, internal and external links, broken links, mixed content, Open Graph and Twitter Card tags, JSON-LD structured data, robots.txt and XML sitemap.

Audit a list of URLs, or switch on crawl mode to audit a whole site: it starts from your URL and follows internal links and the sitemap.xml, breadth-first, up to the page limit you set. Plain HTTP requests, no browser, so it's fast: about 100 pages per minute. Use it as an SEO audit API, a bulk website SEO checker, or a lightweight Screaming Frog alternative in the cloud.

Why use an SEO audit tool?

  • 🔎 Technical SEO audits for clients: get structured, sortable findings instead of a PDF, then export to Google Sheets or Excel.
  • 🏷️ Find missing or duplicate titles and meta descriptions across a whole site (see the SUMMARY record).
  • 🔗 Find broken links (404, 410, 5xx, dead domains, bad SSL) on every page.
  • 🚦 Check indexability: noindex tags, X-Robots-Tag headers, robots.txt blocks and canonicals pointing elsewhere.
  • 🛠️ Monitor SEO in CI or on a schedule: run after each deploy and alert when the score drops.
  • 🤖 Feed AI agents and SEO dashboards with a factual, scored snapshot of any page via API or MCP.

Runs on the Apify platform, so you get an API, scheduling, webhooks and integrations with Make, Zapier, n8n, Google Sheets and Slack.

What data can it extract?

FieldWhat you get
score, issues[], errorCount, warningCount, noticeCount0-100 SEO score and issues with code, severity and a plain-English message
statusCode, redirectChain[], responseTimeMs, pageSizeBytesHTTP status, every redirect hop with its status, server response time, HTML size
isHttps, mixedContent[]HTTPS check and HTTP resources loaded on HTTPS pages
title, titleLength, metaDescription, metaDescriptionLengthTitle and description with character counts
canonicalUrl, canonicalIsSelf, metaRobots, xRobotsTag, isIndexable, blockedByRobotsTxtIndexability signals
hreflang[], lang, viewport, charsetInternational and mobile signals
h1, h2, h3 (+ counts), wordCountHeading texts and visible word count
imagesCount, imagesMissingAlt, imagesMissingAltSample[]Image alt-text coverage
internalLinks, externalLinks, nofollowLinks, brokenLinks[]Link counts and broken links (optional check)
openGraph, twitterCardAll og: and twitter: tags
schemaTypes[]Structured data types from JSON-LD and microdata (Organization, Product, Article...)
robotsTxt, sitemaps[]Site-level robots.txt and XML sitemap presence

How to run an SEO audit of a website

  1. Click Try for free.
  2. Paste one or more URLs into URLs to audit.
  3. To audit a whole site, switch on Crawl each site and set Max pages per site.
  4. Optionally switch on Check for broken links.
  5. Click Start, then sort the table by Score to see the weakest pages first. Download as JSON, CSV, Excel or HTML, or fetch results through the API.

How much does it cost?

You pay $0.03 per page successfully audited ($30 per 1,000 pages), Apify platform usage included. Pages that fail are free: unreachable sites, timeouts, HTTP 4xx/5xx responses and bot-protection pages are returned as error rows and never charged. Set a maximum cost per run in the run options and the audit stops when it is reached. Apify's free plan includes monthly credit, enough to audit hundreds of pages at no cost.

How is the SEO score calculated?

Every page starts at 100. Each issue found subtracts a fixed number of points (minimum score 0):

Issue codeSeverityPoints
title-missingerror-15
not-httpserror-15
noindexerror-15
blocked-by-robots-txterror-15
mixed-contenterror-10
viewport-missingerror-10
broken-linkserror-10
meta-description-missingwarning-8
h1-missingwarning-8
redirect-chain (2+ redirects)warning-5
slow-response (over 2,000 ms)warning-5
images-missing-altwarning-5
title-too-long (over 60 characters)warning-4
page-too-large (HTML over 1 MB)warning-4
structured-data-invalid (JSON-LD that doesn't parse)warning-4
canonical-missingnotice-3
lang-missingnotice-3
thin-content (under 200 words)notice-3
title-too-short (under 30 characters)notice-2
meta-description-too-long (over 160 characters)notice-2
meta-description-too-short (under 70 characters)notice-2
multiple-h1notice-2
canonical-points-elsewherenotice-2
open-graph-missing (no og:title or og:image)notice-2
structured-data-missingnotice-2
robots-txt-missingnotice-2
sitemap-missingnotice-2

noindex counts robots meta tags (robots, googlebot) and X-Robots-Tag headers that apply to Google. broken-links is only checked when Check for broken links is on.

Input

{
"urls": ["https://www.example.com"],
"crawl": true,
"maxPagesPerSite": 50,
"checkBrokenLinks": true,
"maxLinksToCheck": 50
}

With crawl off (default), only the listed URLs are audited, which is ideal for checking a set of landing pages.

Output

One row per page. Example (shortened):

{
"url": "http://bbc.co.uk/",
"finalUrl": "https://www.bbc.co.uk/",
"statusCode": 200,
"score": 93,
"errorCount": 0,
"warningCount": 1,
"noticeCount": 1,
"issues": [
{ "code": "redirect-chain", "severity": "warning", "message": "URL goes through 2 redirects before the final page." },
{ "code": "title-too-short", "severity": "notice", "message": "Title is 10 characters; aim for 30-60." }
],
"redirectChain": [{ "url": "http://bbc.co.uk/", "statusCode": 301 }, { "url": "https://bbc.co.uk/", "statusCode": 301 }],
"responseTimeMs": 606,
"title": "BBC - Home",
"titleLength": 10,
"metaDescriptionLength": 144,
"canonicalUrl": "https://www.bbc.co.uk/",
"canonicalIsSelf": true,
"isIndexable": true,
"hreflang": [{ "lang": "en-gb", "url": "https://www.bbc.co.uk/" }],
"h1Count": 1,
"h1": ["BBC Homepage"],
"wordCount": 1405,
"imagesCount": 87,
"imagesMissingAlt": 0,
"internalLinks": 121,
"externalLinks": 16,
"schemaTypes": ["CollectionPage", "NewsMediaOrganization", "ItemList"],
"robotsTxt": true,
"sitemaps": ["https://www.bbc.co.uk/sitemap.xml"],
"error": null
}

The run also saves a SUMMARY record in the key-value store with, per site: pages audited, average score, the most common issues, and duplicate titles and meta descriptions with the URLs that share them.

Tips

  • Bare domains work: example.com is fetched as https://example.com, with an http:// fallback.
  • Crawl mode skips files (PDF, images, ZIP), pages disallowed by robots.txt, and links that redirect to another domain.
  • Broken-link results are cached, so links in the site header and footer are checked only once per run.
  • If a site blocks datacenter traffic, enable Apify Proxy in the input.

Use it with AI agents (MCP)

Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add https://mcp.apify.com?tools=tenfoldfleet/seo-audit-tool as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the results itself; you pay the same per-event price as a normal run.

FAQ

Does it render JavaScript?

No. It reads the HTML the server returns, the same first view Google gets before rendering. That keeps it fast and cheap. Pages built entirely in the browser (empty HTML shells) will show low word counts and missing headings, which is itself a useful SEO signal.

Does it measure Core Web Vitals?

No. It reports server response time and HTML size. For lab Core Web Vitals use Google PageSpeed Insights.

Some servers reject automated requests. To avoid false alarms, only definite failures count as broken: HTTP 404, 410 and 5xx (except 503), dead domains, refused connections and invalid SSL certificates. Bot-blocking responses (400, 401, 403, 429, 999...) and timeouts are not reported. Failed HEAD requests are retried with GET.

Can I audit thousands of pages?

Yes. Add as many URLs as you like, or set Max pages per site up to 5,000 in crawl mode. At about 100 pages per minute, 5,000 pages take close to an hour, so raise the run Timeout for very large crawls (the SUMMARY record is saved as the run goes). Use the run's maximum-cost setting to cap spend.

Disclaimer

This tool reads publicly available web pages only, the same way a search engine crawler does. Only audit sites you own or have permission to test, and respect each site's terms of service.

More tools from Tenfold Fleet

ActorOutput
ALDI Australia Scraper - AU Products, Unit Prices & Catalogueproduct
Alibaba Image Search - Reverse Lookup of Suppliers by Photomatched product
Alibaba Products Scraper: Wholesale Suppliers, MOQ, Price Tiersproduct
AliExpress Keyword Scraper - Exact Sold Counts by Search Termproduct
Amazon Product Scraper - Details, Prices & Search by ASINproduct
Applicant Tracking Jobs Scraper - Greenhouse, Lever & 6 Morejob posting
Backlinks Checker - Referring Domains, Anchors & Domain Rankbacklink
Bilibili Scraper - Videos, Comments, Danmaku & Searchvideo or comment
Businesses Without Websites - Local Leads with Phone & Ratinglead
Contact Details Scraper - One Lead Record per Company Websitewebsite with contacts
Facebook Ads Library Scraper for Marketersad
Facebook Page Contact Finder - Business Leads from Page Linkspage with contact details
Google Ads Transparency Center Scraper - Competitor Ads by Sitead
Google AI Overviews Checker - Citations & Domain Trackerkeyword checked
Google Flights Scraper - All Fares per Route & Date (API)route search
Google Hotels Scraper - Nightly Prices, Stars & Booking Siteshotel
Google for Jobs Scraper - Openings by City, Pay & Job Boardjob listing
Google Keyword Planner Alternative - Ideas, Bids & Volumekeyword idea
Google Maps Extractor - Business Leads, Phones & Websitesplace
Google News Scraper - Articles, Real URLs & Full Textarticle
Google Travel Hotel Rate Tracker - OTA Prices for Every Nightoffer
Search Trends by Region & Time - Google Trends Data Scraperkeyword
Instagram Reels Search - Keyword to Top Reels, Plays & Creatorsreel
Instagram Reels Transcript - Speech to Text for Public Reelsreel transcript
Keyword Ideas & Related Keywords - Difficulty, Volume & CPCkeyword idea
Keyword Search Volume, CPC & Difficulty Checker (Bulk)keyword with data
Likee Scraper - Creators by Country, Video Views & Likesvideo
LinkedIn Ads Library Scraper - Competitor Ad Copy & Targetingad
Reddit Brand Monitoring - Keyword Alerts for Posts & Commentsmention
Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sitesunique remote job
SEEK Jobs Scraper - Salaries & Hiring Across 8 APAC Job Boardsjob listing
SEO Agent - AI Keyword Research & Competitor Reportsresearch report
SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gapkeyword
Shopify Inventory Scraper - SKUs, Variants & In-Stock Statusproduct
Shopify App & Theme Detector - Store Analyzer & Contactsshopify store
Sitemap URL Extractor - All URLs from sitemap.xml & robots.txturl
Website Built With Checker - Find Any Site's CMS & Tech Stackwebsite
Threads Search - Keyword & Profile Posts Scraper (No Login)post
TikTok Transcripts - Captions or Speech to Text for Any Videovideo transcript
HTML to Text & URL to Markdown - LLM Ready Web Contentpage
Website Traffic Checker - Bulk Domain Traffic Estimatedomain with traffic data
WeChat Official Account Articles - Keyword Search to Markdownarticle found
Weibo Scraper - Comment Threads, Hot Search Ranks & User Statscomment
Woolworths Product Scraper - AU Shelf Prices, Specials & GTINsproduct
Workday Jobs Scraper - myworkdayjobs.com API with Salaryjob posting
YouTube Channel Email Scraper - Creator Contact Extractorchannel with email
YouTube Livestream & Channel Scraper - Videos, Likes & Statsvideo
YouTube Comments Scraper - Replies, Likes & Sort by Newestcomment
YouTube Shorts Analytics Scraper - Views, Likes & Hashtagsshort
YouTube Captions Downloader - Transcript & Subtitles Scrapertranscript