Small Business Website Readiness Audit
Pricing
Pay per usage
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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
alttext; - Open Graph / Twitter card social-share tags;
- JSON-LD structured data and a
LocalBusinessschema.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;
SUMMARYin key-value storage;REPORT.mdin 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.testGenerated: 2026-07-05T18:00:00ZPages analyzed: 5/10Audit 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 coverThis 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 betrue.
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 -vpython3 -m py_compile src/website_audit.py src/main.py src/__main__.py tests/test_website_audit.pyAPIFY_CLI_DISABLE_TELEMETRY=1 npx --yes apify-cli validate-schema