Small Business Website Readiness Audit avatar

Small Business Website Readiness Audit

Pricing

Pay per usage

Go to Apify Store
Small Business Website Readiness Audit

Small Business Website Readiness Audit

Audit any small-business website in seconds — no browser, no API keys, no bloat. Get a structured dataset and owner-readable Markdown report covering contact signals, broken links, service page presence, metadata quality, and HTTPS basics.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ori8 Automations

Ori8 Automations

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Audit any small-business website in seconds — no browser, no API keys, no bloat. Pages are fetched concurrently, seeded from the site's sitemap, and checked for contact signals, broken links, service-page presence, metadata quality, mobile/viewport and accessibility basics, social-share and schema.org markup, security headers, robots/sitemap basics, and HTTPS. You get a structured dataset plus an owner-readable Markdown report.

This actor is built for agencies, MSPs, freelancers, and automation pipelines that need a fast public-site health check before deeper work. Instead of eyeballing every page by hand, run the same bounded check every time and get repeatable JSON plus a plain-English report you can hand to a client or feed into another workflow.

Why run it?

Use it when you need:

  • a repeatable first-pass website readiness check;
  • structured output for intake, QA, or automation pipelines;
  • a simple report a non-technical owner can understand;
  • quick signals before a redesign, SEO cleanup, or agency handoff;
  • a lightweight alternative to full browser/Lighthouse platforms.

What it checks

For same-host public HTML pages within the page cap, the actor checks:

  • page status and fetch success/failure (with a retry on transient errors);
  • title, title length, meta description, H1s, canonical URL, and robots meta;
  • duplicate titles and meta descriptions across the crawled pages;
  • mobile/viewport meta tag and <html lang> presence;
  • images missing alt text;
  • Open Graph / Twitter card social-share tags;
  • JSON-LD structured data and a LocalBusiness schema.org signal;
  • favicon presence;
  • HTTPS usage per page (flags plain-HTTP pages) and recommended security headers (HSTS, X-Content-Type-Options, CSP);
  • robots.txt and sitemap presence when enabled;
  • obvious broken internal links when enabled (HEAD-first, results cached);
  • contact/service/location readiness signals (word-boundary matched, no geo hardcoding);
  • form presence counts;
  • likely JavaScript/client-rendered pages that may need browser-mode review later.

Pages are discovered from both in-page links and the site's sitemap.xml/sitemap_index.xml, so pages that aren't linked from the homepage are still found. When enabled, the crawler respects robots.txt Disallow rules for its user agent, and every request (including redirects) is checked so it cannot be bounced onto a private/internal host.

Output

Outputs include:

  • default dataset rows for each analyzed page;
  • a summary row in the dataset;
  • SUMMARY in key-value storage;
  • REPORT.md in key-value storage when Markdown reporting is enabled.

Page rows include fields such as url, status_code, redirect_count, page_bytes, title, meta_description, h1_texts, html_lang, viewport_meta_present, favicon_present, open_graph_present, twitter_card_present, structured_data_present, local_business_schema_present, images_count, images_missing_alt_count, security_headers, broken_internal_links_count, forms_count, contact_signal, service_page_signal, location_signal, duplicate_title, duplicate_meta_description, needs_browser_mode, and findings.

The dataset ships with a "Pages" table view so the results render as a clean table in the Apify console, not just raw JSON.

Summary output includes pages analyzed, readiness score, robots/sitemap/HTTPS signals, top findings, and a static-crawl limitation note.

Example report excerpt

# Website Readiness Audit: exampleplumbing.test
Generated: 2026-07-05T18:00:00Z
Pages analyzed: 5/10
Audit type: Static public-page readiness audit
## Executive summary
- Overall readiness: 74/100 — Needs a few fixes
- Broken internal links found within cap: 2
- Pages that may need browser mode: 0
## Highest-priority fixes
| Priority | Area | Count | Finding |
|---|---|---:|---|
| high | `BROKEN_INTERNAL_LINKS` | 2 | Two internal links appear broken within the crawl cap. |
| medium | `MISSING_META_DESCRIPTION` | 3 | Meta description is missing. |
## Contact and conversion readiness
- Contact page/signals detected: yes
- Forms detected: yes
- Obvious service signals: yes
## What this audit does not cover
This is not a full SEO audit, ranking forecast, legal/accessibility certification, performance/Lighthouse report, or security/vulnerability scan.

Input

Required:

  • startUrl — public homepage or starting URL for a website you own or are authorized to audit.
  • acknowledgeAuthorizedUse — must be true.

Useful optional settings:

  • maxPages — default 10, maximum 50.
  • crawlConcurrency — pages fetched in parallel; default 5, maximum 10.
  • useSitemapForDiscovery — seed the crawl from sitemap.xml; default true.
  • respectRobotsDisallow — obey robots.txt Disallow rules; default true.
  • includeRobotsAndSitemapChecks — default true.
  • includeBrokenInternalLinkCheck — default true.
  • retryFailedRequests — retry once on transient errors; default true.
  • includeMarkdownReport — default true.
  • requestTimeoutSeconds — default 15 seconds.

Example input:

{
"startUrl": "https://example.com",
"maxPages": 10,
"crawlConcurrency": 5,
"useSitemapForDiscovery": true,
"respectRobotsDisallow": true,
"includeRobotsAndSitemapChecks": true,
"includeBrokenInternalLinkCheck": true,
"includeMarkdownReport": true,
"acknowledgeAuthorizedUse": true,
"requestTimeoutSeconds": 15
}

What this does not do

This v1 does not perform:

  • browser rendering, Playwright, Lighthouse, screenshots, Core Web Vitals, or proxy mode;
  • full SEO, accessibility, security, privacy, legal, or performance audits;
  • credentialed/private-page access;
  • form submission;
  • contact/email/phone harvesting;
  • Google Search, Maps, reviews, SERP, or directory scraping;
  • outreach, enrichment, lead generation, or vulnerability scanning;
  • paid API, LLM, or third-party enrichment calls.

Limitations

Best results are on standard HTML sites. JavaScript-heavy sites, React/SPAs, and pages that render most content client-side may return incomplete or sparse results in v1. The actor exposes needs_browser_mode and content_may_be_incomplete instead of pretending a static crawl saw everything.

The crawl is same-host only and capped at 50 pages to keep runtime and cost predictable.

Local development

python3 -m unittest discover -s tests -v
python3 -m py_compile src/website_audit.py src/main.py src/__main__.py tests/test_website_audit.py
APIFY_CLI_DISABLE_TELEMETRY=1 npx --yes apify-cli validate-schema