SEO Audit & Broken Link Checker - Site Score 0-100 avatar

SEO Audit & Broken Link Checker - Site Score 0-100

Pricing

from $10.00 / 1,000 page auditeds

Go to Apify Store
SEO Audit & Broken Link Checker - Site Score 0-100

SEO Audit & Broken Link Checker - Site Score 0-100

Crawl any website and audit every page for technical SEO: titles, meta descriptions, H1, canonicals, noindex, alt text, HTTPS, speed, broken links and duplicates. Get a 0-100 score per page and per site, plus a shareable HTML report.

Pricing

from $10.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

Officina Tools

Officina Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

SEO Audit & Broken Link Checker

Crawl any website and get a technical SEO audit of every page in seconds. You get a 0–100 score for each page and for the whole site, and a list of issues explained in plain English. It finds broken links and shows which pages link to them. It also checks the XML sitemap and hreflang tags, and gives you an HTML report ready to share.

No browser, no setup, no API key: paste a URL and press Start. The first 5 pages of every run are free, and 50 pages take about 10 seconds.

It starts from your home page and follows internal links, as a search engine would. It reads robots.txt and the sitemap, then audits each page it finds. You get:

  • a site score and a score for every page, so you know where to start;
  • every issue found on each page, with severity (error, warning, notice) and a clear explanation, like "Title is 107 characters (recommended 30-60)";
  • broken internal links (and, if you want, external ones), each with the pages that link to it;
  • sitemap problems: orphan pages, sitemap URLs that return errors or redirect, pages missing from the sitemap;
  • hreflang problems on multilingual sites: invalid language codes, missing return links, alternates that are broken or not canonical;
  • duplicate titles and meta descriptions across the site;
  • a REPORT.html you can open in the browser or send to a client, plus a SUMMARY JSON for automations and AI agents.

Who is it for?

  • SEO consultants and agencies: run a first audit before a sales call, or check a client site every week.
  • Website owners and marketers: find what to fix before it hurts rankings, without learning a desktop crawler.
  • Developers: check a site after a migration or release. You can call it from CI, cron jobs or webhooks.
  • AI agents and automations: one call returns a compact JSON summary an agent can reason about (via the Apify API or MCP).

Why use it?

  • Fast and cheap. It fetches pages over plain HTTP without a browser. 50 pages take about 10 seconds.
  • Checks that cheap audits usually skip. It compares the sitemap with the crawl and checks hreflang return links, as well as the usual on-page checks.
  • Results you can act on. A ranked list of top issues, the worst pages to fix first, and for every broken link the pages that link to it.
  • A report you can share. A clean HTML report, ready to send to a client or your team.
  • Safe by design. It respects robots.txt, stays on the site you give it and never logs in anywhere.

How much does it cost?

The first 5 pages of every run are free. After that you pay $0.01 per page audited, plus a tiny $0.00005 fee per run. Platform usage is included: there is nothing else to pay.

Pages auditedCost
5free (only the $0.00005 run fee)
50$0.45
100 (default limit)$0.95
500$4.95
1,000$9.95

The Apify free plan includes monthly platform credits, enough to audit a few hundred pages for free. Maximum pages caps the cost of each run. The run also stops cleanly at the maximum cost you set in Apify. Sitemap URLs the crawl did not reach are only status-checked, for free.

How to run an SEO audit

  1. Click Try for free (or Start). Set Maximum pages to 5 for a free first look.
  2. Paste the website you want to audit, for example https://example.com.
  3. Optionally set Maximum pages (default 100) and turn on Check external links.
  4. Press Start and wait a few seconds.
  5. Open REPORT.html in the Storage tab for the readable report, or the dataset for one row per page (export to Excel, CSV or JSON).

Example: a real run

Audit of https://crawlee.dev/ with Maximum pages set to 50:

  • Site score 87/100, average page score 94, 50 pages audited in about 10 seconds.
  • 1 error (/blog has no <h1>), 48 warnings, 28 notices.
  • Top issues: titles too long on 47 pages (up to 107 characters), short meta descriptions on 16 pages, one page with 19 <h1> headings.
  • Sitemap: 4,848 URLs read from the sitemap index, no errors. hreflang: present on all 50 pages, no missing return links.

One row of the dataset (shortened):

{
"url": "https://crawlee.dev/python/docs/quick-start",
"statusCode": 200,
"score": 94,
"loadTimeMs": 47,
"title": "Quick start | Crawlee for Python · Fast, reliable Python web crawlers.",
"titleLength": 70,
"metaDescriptionLength": 256,
"h1Count": 1,
"canonical": "https://crawlee.dev/python/docs/quick-start",
"lang": "en",
"hreflang": [
{ "lang": "en", "href": "https://crawlee.dev/python/docs/quick-start" },
{ "lang": "x-default", "href": "https://crawlee.dev/python/docs/quick-start" }
],
"wordCount": 978,
"imagesTotal": 12,
"imagesMissingAlt": 0,
"issueCounts": { "error": 0, "warning": 1, "notice": 1 },
"issues": [
{ "code": "title-long", "severity": "warning", "message": "Title is 70 characters (recommended 30-60)." },
{ "code": "description-long", "severity": "notice", "message": "Meta description is 256 characters (recommended 70-160)." }
]
}

What it checks

On every page

CheckSeverity
HTTP errors (4xx, 5xx, unreachable)error
Missing <title>, or title too short / too long (30–60 characters)error / warning
Missing <h1>, or more than one <h1>error / warning
Page not served over HTTPSerror
Missing meta description, or too short / too long (70–160 characters)warning / notice
noindex in meta robotswarning
Missing mobile viewportwarning
Images without alt textwarning
Mixed content (HTTP resources on an HTTPS page)warning
Slow HTML response (over 3 seconds)warning
Invalid hreflang codes (e.g. en_US, en-UK), the same language pointing to two URLs, no self-referencing hreflang, hreflang on a page whose canonical points elsewherewarning
Missing canonical, or canonical pointing to another URLnotice
Missing hreflang="x-default", self hreflang that contradicts <html lang>notice
Missing lang, JSON-LD structured data, Open Graph tagsnotice
Thin content (under 200 words), redirects, heavy HTMLnotice

Across the site

  • Broken internal links, with up to 5 pages that link to each one
  • Broken external links (optional, up to 300 checked)
  • Duplicate titles and meta descriptions
  • robots.txt and XML sitemap presence
  • Sitemap check (reads sitemap indexes and .xml.gz files): orphan pages listed in the sitemap but not linked from any audited page, sitemap URLs that return errors or redirect, sitemap URLs marked noindex, and indexable pages missing from the sitemap
  • hreflang check: alternate-language pages that do not link back (missing return links), and alternates that return errors, redirect, are not canonical or are marked noindex. Same-site alternates are audited even when no menu links to them
  • Top issues ranked by severity and number of pages affected
  • Worst pages to fix first

How the score works

Each page starts at 100 and loses 15 points per error, 5 per warning and 1 per notice (minimum 0). The site score is the average page score, minus capped penalties for a missing sitemap or robots.txt, broken internal links, sitemap URLs that return errors, missing hreflang return links, and duplicate titles or descriptions.

Input

FieldDefaultDescription
Website to audit—Start URL, usually the home page
Maximum pages to audit100Hard cap on pages, and so on cost
Check external linksoffAlso report broken outbound links (free)
Include subdomainsoffTreat blog.example.com as the same site
Max parallel requests10Lower it for slow sites

Output

  • Dataset: one row per page with its score, status, title, description, headings, canonical, hreflang, word count, load time, link counts and the full list of issues. Two views: Pages and Issues (one row per issue, easy to filter in a spreadsheet). Export to JSON, CSV, Excel or XML.
  • SUMMARY (key-value store): site score, totals, top issues, broken links, sitemap and hreflang findings, duplicates and worst pages, as JSON. Ideal for AI agents and automations.
  • REPORT.html (key-value store): a clean report you can open in the browser or send to a client.

Integrations and API

Run it from your code, on a schedule, or from no-code tools:

  • Schedule a weekly audit in Apify and get the results by email, Slack or webhook.
  • Make, Zapier, n8n: start a run and send the SUMMARY wherever you need it.
  • API: start a run and get the page rows in one call:
curl -X POST "https://api.apify.com/v2/acts/officina-tools~seo-audit-broken-link-checker/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://example.com"}],"maxPages":50}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('officina-tools/seo-audit-broken-link-checker').call({ startUrls: [{ url: 'https://example.com' }], maxPages: 50 });
const summary = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('SUMMARY');
console.log(summary.value.siteScore, summary.value.topIssues);

Use it with AI agents (MCP)

Add this Actor to the Apify MCP server and your assistant (Claude, Cursor and others) can audit a site from a plain request like "audit example.com and tell me the three most urgent fixes". The SUMMARY record gives the agent everything it needs in one read.

FAQ

Does it render JavaScript? No. It reads the HTML as the server sends it, which is fast and cheap, and close to what search engines see on their first pass. Sites that build all their content in the browser may show up as thin content.

Is this the same as Lighthouse or Core Web Vitals? No. Load time here is the server response time for the HTML, measured from Apify's servers. Use it to find technical SEO problems, not to measure rendering speed.

Why is my site score lower than the average page score? Site-wide problems lower it: a missing sitemap or robots.txt, broken internal links, sitemap URLs with errors, missing hreflang return links, and duplicate titles or descriptions. Each penalty is capped.

Can I audit a big site? Yes, up to 10,000 pages per run. Start with 100 pages to see the main problems, since most issues repeat across page templates.

Is it legal to run an SEO audit on any site? It only reads public pages, respects robots.txt and collects no personal data. Use it on your own sites, client sites, or sites you have permission to audit.

Something looks wrong? Open an issue on the Issues tab with the URL and what you expected, and we will look into it.

Good to know

  • The crawler respects robots.txt and only follows links on the same site.
  • Files such as PDFs and images are not audited as pages.
  • Sitemap URLs the crawl did not reach are only status-checked (up to 200, free), not audited or charged as pages.