SEO Audit Tool: Bulk Website Checker for CSV, Sheet or Dataset
Pricing
from $3.50 / 1,000 page auditeds
SEO Audit Tool: Bulk Website Checker for CSV, Sheet or Dataset
Returns a 0-100 SEO score, grade and issues to fix (title, meta description, H1, noindex, HTTPS, mobile, schema, sitemap, broken links) for every website in an Apify dataset, CSV or Google Sheet, keeping your columns. Inputs: datasetId, fileUrl or urls. $0.005 per page. Agent-ready: x402, MCP.
Pricing
from $3.50 / 1,000 page auditeds
Rating
0.0
(0)
Developer
Adam Pearce
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Give it a list of websites, from a lead list, a Google Sheet, a CSV or another Actor's dataset, and get back a 0-100 SEO score, a grade and a plain-English list of what to fix for every one, written onto your own rows. One run audits ten sites or fifty thousand.
Most SEO audit tools crawl one website at a time. This one is built for lists: agencies checking prospects, marketers checking a portfolio of client sites, and pipelines that run straight after a Google Maps or directory scrape.
What you get for each website
| Column | What it tells you |
|---|---|
seoScore, grade | 0-100 score and A to F grade. Starts at 100 and loses points per issue (weights below). |
issues, issueSummary | Issue codes, plus a sentence for each one, worst first: "No meta description: Google will pick a snippet itself (-10)". |
pageTitle, titleLength | The page title and its length (Google cuts titles after about 60 characters). |
metaDescription, metaDescriptionLength | The meta description and its length. |
h1, h1Count, h2Count | Main heading and heading counts. |
isHttps, hasViewport, noindex, robotsMeta, canonicalUrl | The checks that decide whether Google can index and trust the page, and whether it works on phones. |
wordCount, imageCount, imagesMissingAlt | Thin content and image alt text. |
hasOpenGraph, ogImage, hasTwitterCard | Whether links shared on Facebook, LinkedIn and WhatsApp show a proper preview. |
structuredDataTypes | Schema.org types found (LocalBusiness, Organization, Product...). |
robotsTxtFound, sitemapUrl | Site-level checks, once per website. |
brokenLinkCount, brokenLinks | Broken links on the page, when you switch the link check on. |
auditedUrl, finalUrl, responseTimeMs, pageSizeKb, httpStatus | The address audited, where it redirected to, download time and size. |
Every original column is kept, so the company name, phone and address from your lead list sit next to the score. The audit's own columns have distinct names (pageTitle, auditedUrl), so a Google Maps title or url is never overwritten.
Typical uses
- Find prospects with weak websites: run it on a Google Maps lead list and keep only scores below 70 (
keep: below_score). Those are the businesses that need your SEO or web design service, each with a ready-made list of problems to open the conversation with. - Monthly client reporting: audit every client site on a schedule, append to a named dataset and watch the scores over time.
- Agent and automation step: an AI agent or an n8n, Make or Zapier flow sends a list of URLs and gets structured scores back.
Input
Use one of these:
- Dataset: pick any Apify dataset (for example a Google Maps scraper run). The website column is found automatically (
website,domain,url...). - File or Google Sheet URL: CSV, TSV, Excel, JSON or JSON Lines, or a Google Sheet shared as "Anyone with the link can view".
- Website URLs: a plain list for a quick check. Bare domains like
example.comare fine.
Options: check for broken links (off by default), check robots.txt and sitemap (on), keep all rows / only audited / only below a score / only problems, CSV or Excel export, a webhook when the run finishes, and an optional proxy.
Pricing
Pay per event, no subscription:
| Event | Price |
|---|---|
| Page audited (fetched and checked) | $0.005 (Bronze $0.0045, Silver $0.004, Gold $0.0035) |
| Link checked (only when the broken-link check is on) | $0.0005 |
| Export file (CSV or Excel, only if you ask) | $0.01 |
Never charged: rows with no website, values that are not web addresses, sites that do not exist or do not answer, error pages (404, 500), sites that refuse automated access, pages robots.txt asks us not to read, and repeats of a page already in the run.
Worked examples: 1,000 leads is $5.00. The same 1,000 with up to 50 links checked on each is about $30. A 20-row test list is $0.10.
How the score works
The score starts at 100 and loses: noindex 25, missing title 15, not HTTPS 10, missing meta description 10, broken links 2 each (up to 10), missing H1 8, no mobile viewport 8, slow download over 3 s 5, thin content under 250 words 5, images without alt text 1 each (up to 5), title too long or short 3, several H1s 3, no canonical 3, no Open Graph 3, no structured data 3, no sitemap 3, HTML over 3 MB 3, meta description too long or short 2, canonical pointing elsewhere 2, no lang attribute 2, no robots.txt 2, no favicon 1.
Good to know
- The page is read the way a search engine first reads it: the HTML as served, without running JavaScript. Sites built entirely in JavaScript can show few words and no headings; that is also what many crawlers see.
- This is an on-page audit. For Core Web Vitals and Lighthouse performance scores, use our Bulk PageSpeed & Lighthouse Checker.
- Some sites put every visitor through a bot check (Cloudflare's "Just a moment..." page); those rows come back as
blockedand cost nothing. Sites that only ask us to slow down (HTTP 429, common on Wix) are retried patiently before giving up. - At most two requests at a time go to any one website.
For AI agents
Pay per event through Apify's x402 and MCP support. Send urls (or datasetId / fileUrl), read seoScore, grade, issues and auditedUrl from the dataset, and the run summary (AUDIT_SUMMARY) gives the average score, grade bands and the most common issues across the list.