On-Page SEO Checker - Bulk Website SEO Audit
Pricing
from $4.50 / 1,000 page audits
On-Page SEO Checker - Bulk Website SEO Audit
Audit any list of URLs for on-page SEO: 0-100 score, prioritized issues with a fix for each, title/meta/H1 checks, keyword placement, page speed, structured data. 50+ checks, no crawl limits, from $0.006 per page.
Pricing
from $4.50 / 1,000 page audits
Rating
0.0
(0)
Developer
Wrenfield Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
On-Page SEO Checker audits a list of URLs (up to 2,000 per run) and returns one row per page with an SEO score (0-100) and A-F grade, every issue ranked by severity with the exact fix, title / meta description / H1 checks, target-keyword placement, content depth, structured data, and technical health. Run it on a whole site's key pages in minutes and export to CSV, Excel or Google Sheets.
Built for SEO audits, agency client reports, pre-launch QA and monitoring pages after a release. From $0.006 per page ($6 per 1,000), no crawl limits, no subscription, no API key.
- 🧮 SEO score and grade per page: starts at 100 and loses points for each critical, high, medium and low issue, so a page with no H1 and no description cannot score an A.
- 🛠️ Prioritized fix list: every issue has a severity and a one-line fix, ready to paste into a ticket or client report.
- 🎯 Target keyword check: is the keyword in the title, H1, meta description and URL? Set one keyword for all pages or one per line (
url | keyword). - 📝 Page facts: title and description length, H1s, heading counts, canonical, word count, readability, internal / external links, images, Open Graph tags.
- 🧩 Structured data: lists the schema.org types found (Organization, FAQPage, Product, Article...) and flags pages with none.
- ⚡ Technical health: HTTP status, HTML fetch time, page size, render-blocking resources, compression, HTTPS, mixed content, broken links.
- 🌐 JavaScript rendering (optional) for React / Vue / single-page sites, with a browser-measured load time.
- 📊 Run summary: average score, the lowest-scoring pages, and the issues that repeat across most of your pages.
How to run a bulk on-page SEO audit
- Paste your URLs (one per line;
https://is added when missing). - Optionally add a target keyword, or write
https://example.com/page | keywordfor per-page keywords. - Click Start. About 50 pages take under a minute. Export the dataset, or read the Run summary for the site-wide issue list.
Input example
{"urls": ["https://www.helpscout.com/pricing/","https://www.helpscout.com/ | help desk software"],"targetKeyword": "customer support software","renderJavaScript": false}
Output example
One dataset row per page (shortened here):
{"url": "https://www.helpscout.com/pricing/","status": "ok","http_status": 200,"seo_score": 69,"grade": "D","technical_score": 94.2,"issues_high": 1,"issues_medium": 5,"issues": [{"id": "keyword_not_in_title","severity": "high","issue": "Target keyword \"help desk pricing\" is not in the title","fix": "Work the exact keyword into the title, ideally near the start."},{"id": "duplicate_meta_tags","severity": "medium","issue": "Duplicate meta tags","fix": "Remove repeated title/description/robots meta tags so each appears once."}],"title": "Help Scout Pricing: Affordable Customer Support Software","title_length": 56,"meta_description": "Discover Help Scout’s pricing plans for customer support software that’s built for growing businesses at a fraction of the cost of competitive tools.","meta_description_length": 149,"h1": ["Deliver delightful support at every stage of growth"],"word_count": 1836,"html_fetch_ms": 46,"page_size_bytes": 658234,"broken_links": false,"target_keyword": "help desk pricing","keyword_in_title": false,"keyword_in_h1": false,"keyword_in_description": false,"keyword_in_url": false}
The Run summary (key-value store record SUMMARY) lists the average score, the 10 lowest-scoring pages and the top site-wide issues with how many pages each affects.
What is checked
| Area | Examples |
|---|---|
| Title and snippet | missing, too short (under 30), too long (over 60), duplicate or mismatched title; missing or mismatched meta description |
| Headings | missing H1, several H1s, no H2s |
| Keyword placement | keyword missing from title, H1, meta description or URL |
| Content | thin content, low text-to-HTML ratio, hard-to-read copy, placeholder text |
| Images and links | images without alt text, broken links, HTTPS pages linking to HTTP |
| Indexing | canonical tag, redirects, 4xx / 5xx errors, meta-refresh redirects |
| Markup | schema.org types present or missing, Open Graph tags, doctype, charset, favicon, deprecated tags |
| Speed and delivery | slow server response, render-blocking resources, no gzip / brotli, pages over 3 MB |
Pricing
Pay-per-event pricing. Paid Apify plans get automatic volume discounts (Bronze, Silver, Gold).
| Event | Price |
|---|---|
Page audit (page-audit) | $0.006 per URL audited ($6 per 1,000) |
JavaScript render (javascript-render) | $0.004 extra per URL, only when Render JavaScript is on |
Pages that cannot be fetched (domain not found, blocked, timed out) are never charged. Set the maximum cost per run in the run options and the Actor stops cleanly when it is reached.
Free Apify plan: 10 URLs per run.
Use it through the API, on a schedule or with AI agents
One-link MCP setup: https://mcp.apify.com?tools=wrenfield-data/on-page-seo-checker (Claude, Cursor, VS Code or any MCP client). Set maxTotalChargeUsd on the run to cap what it can charge.
Schedule a weekly audit of your money pages, call it from the Apify API, or connect it to Make, Zapier, n8n and Google Sheets. One page takes about 2-5 seconds.
FAQ
How is the SEO score calculated?
Every page starts at 100. Each critical issue costs 20 points, high 8, medium 4 and low 1. A score of 90+ is an A, 80+ B, 70+ C, 60+ D. The technical_score field also gives the crawler's own 0-100 health score for HTML, speed and markup.
Does it crawl my whole site? No. It audits exactly the URLs you give it, so you pay only for the pages you care about. To audit a full site, paste the URLs from your sitemap.
Why do I need JavaScript rendering? Pages built with React, Vue or Angular may show an empty shell without it. Turn it on when word counts or headings look empty.
Why was my page not audited? The domain does not exist, the site blocks automated requests, or it timed out. The row says which, and failed pages are not charged.
Is a high score a ranking guarantee? No. The score measures page-level SEO hygiene. Rankings also depend on links, competition and search intent.
Related tools
From the same developer:
- Bulk PageSpeed & Core Web Vitals Checker: Lighthouse scores and real-user Core Web Vitals
- Website Tech Stack Detector: CMS, frameworks, analytics and ad tags
- Keyword Search Volume: pick the target keyword before you audit the page
- SEO Toolkit All-in-One: traffic, keywords, competitors and backlinks of any domain
Feedback and support
Missing a check, hit an error, or want another output field? Open an issue on the Issues tab and include the run ID. We read every issue and reply there.
Acceptable use
- This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by Google.
- Only audit websites you own or have a legitimate reason to audit, and don't use it to load-test or attack websites.
- The Actor may not be used from, or for people or organizations in, Russia, Belarus, Cuba, Iran, Syria, Myanmar, North Korea, Crimea or the Russian-occupied territories of Ukraine.
- You are responsible for using the results lawfully.