Loud Interactive
Built by technical SEOs for very large websites

See every page.
As fast as possible.

Crawl Perfect is Loud Interactive's exhaustive, HTML-only website crawler. It discovers millions of URLs, adapts to the real capacity of the origin, and produces a clean inventory you can actually work through.

No artificial speed ceiling. The site's health—not a marketing number—sets the safe rate.

CrawlPerfect's friendly spider mascot with an orange halo
Adaptive RPSAccelerates, samples, protects, repeats.
Millionsof URLs per resumable crawl
HTML onlyverified full pages in the final export
Same hostexact hostname scope by design
Crash-safedisk-backed frontier and NAS checkpoints

The mission

The fastest possible crawler is an adaptive crawler.

A fixed rate is either slower than necessary or reckless. Crawl Perfect continually measures the origin and its own pipeline, then searches for the fastest stable operating point.

01

Discover broadly

Seed from robots.txt and nested XML sitemaps, then follow eligible internal links across the exact hostname. Normalize duplicates and strip tracking parameters before they enter the frontier.

02

Push intelligently

Ramp concurrent requests toward the requested ceiling while sampling latency, timeouts, 429s, 5xx responses, writer pressure, and event-loop lag every ten seconds.

03

Back off automatically

When the origin or local pipeline shows distress, reduce launch rate. Defer slow URLs instead of letting them monopolize sockets, then recover them in staged retry passes.

Built-in crawl-trap containment

Exhaustive does not mean recklessly infinite.

Facets, internal search, sorting controls, calendars, session state, and navigation parameters can create millions of permutations without creating millions of useful pages. Crawl Perfect makes the frontier policy explicit, configurable, and auditable.

01

Normalize before enqueue

Resolve relative links, enforce the exact hostname, normalize paths and query ordering, remove known tracking state, reject non-page resources and sensitive routes, then deduplicate before a URL reaches the frontier.

02

Bound recursive expansion

Choose which page families may discover more work and set a facet-combination ceiling. Deeper or known recursive search states can be recorded without being allowed to generate the next combinatorial layer.

03

Preserve the evidence

Guardrails do not silently erase the problem. Blocked and excluded discoveries retain their URL, source, state, and reason so the final report can quantify crawl traps and support specific technical recommendations.

How the boundary is chosen: deterministic rules identify URL structure; crawl configuration defines the allowed expansion policy; live telemetry confirms whether discovery is converging. Crawl Perfect distinguishes completion of the approved crawl frontier from the theoretical end of every URL an application could generate.

Open technology notes

What is under the hood.

No mystery box. Crawl Perfect separates its lightweight public control plane from a high-throughput local crawl engine, keeping private crawl credentials out of the browser and public cloud.

Engine

Python asyncio + aiohttp

Asynchronous networking and configurable connection concurrency allow thousands of in-flight requests when response latency demands it.

Parsing

lxml, off the event loop

HTML parsing, directive analysis, canonical handling, and link extraction run in worker threads so CPU work does not stall network scheduling.

Frontier

SQLite in WAL mode

A disk-backed, deduplicated crawl frontier supports multi-million-URL jobs, batched writes, checkpoints, and clean resume after interruption.

Control plane

Cloudflare Workers + D1

The public interface queues and monitors jobs. A private runner claims work, reports telemetry, and writes verified final exports to Loud's NAS.

Scope

Strict HTML-page filtering

Known image, video, font, document, archive, feed, stylesheet, and script extensions are excluded before fetch. Only HTML/XHTML responses enter the page export.

Identity

LoudSEOBot fingerprint

A named User-Agent plus a private verification header lets an origin distinguish authorized Loud traffic from spoofed bots without relying on rotating IP addresses.

Public interfaceD1 job queuePrivate runnerAdaptive engineSQLite/WALVerified NAS export

A useful inventory, not a URL dump

Every confirmed page arrives with context.

The final CSV contains full HTML pages only. It can be sliced into actionable segments without re-crawling the site.

url + final_urlRequested and resolved full-page URLs
categoryHomepage, category, product, editorial, search, or other
status_codeHTTP response status from the crawl
indexabilityTechnical verdict and specific reason
followabilityFollow or nofollow from robots directives
canonical_urlDeclared canonical and cross-canonical detection
meta_robotsPage-level robots directives
x_robots_tagHTTP header robots directives
titleExtracted document title
depth + source_urlDiscovery path through the site
GSC presenceWhether the URL appears in connected Search Console data
first + last GSC dateFirst-known and last-known dates in available GSC history

Important: “Indexable” is a technical crawl verdict. It does not claim that Google currently indexes the URL. GSC presence is reported separately.

Fast without being careless

The origin gets a vote.

GET requests only

No form submissions, mutations, carts, checkout, accounts, login, admin, or obvious API paths.

Robots-aware

LoudSEOBot reads robots.txt and records robots, canonical, and HTTP directive behavior.

Automatic throttle signals

429, 5xx, timeout rate, latency, write pressure, and local loop lag all influence acceleration and backoff.

Client guardrails

Set an RPS ceiling, crawl window, exact hostname, URL limit, and excluded paths for each engagement.

LoudSEOBot configuration guide

Let verified crawls through—without weakening security.

Give this section to the person who manages your CDN, WAF, hosting, or Shopify store. Most configurations take under ten minutes.

The shared authentication key is intentionally not published. The secure tool below first checks whether your hostname is already configured. It requests DNS verification only when no credential exists. Never put a key in public analytics, source code, screenshots, or tickets.

Check or get your LoudSEOBot key

Sign in and enter the exact hostname. Existing credentials and pending challenges are remembered; you will not be asked to configure DNS again unnecessarily.

Bot identity

Match the private key and User-Agent together. IP allowlists alone are not reliable because crawl traffic may use distributed or rotating egress.

User-Agent: Mozilla/5.0 (compatible; LoudSEOBot/1.0; +https://pageperfect.ai/bot)
LoudSEOBot-Key: <PROVIDED PRIVATELY BY LOUD>
loud-int: true

Recommended hardening: restrict the exception to GET and HEAD, exclude authentication/checkout/admin paths, and apply an agreed per-origin ceiling. Crawl Perfect itself currently performs page requests with GET.

Cloudflare WAF

  1. Open the Cloudflare dashboard, select the domain, then choose Security → WAF → Custom rules.
  2. Create a custom rule named Allow verified LoudSEOBot.
  3. Use the expression below, replacing the placeholder with the key Loud provided privately.
  4. Choose Skip. Select managed rules, rate limiting rules, Browser Integrity Check, Security Level, and Managed Challenge as appropriate for your policy.
  5. Deploy the rule above broader challenge/block rules, then tell Loud it is ready for validation.
(http.request.headers["loudseobot-key"][0] eq "<PROVIDED PRIVATELY BY LOUD>") and
(http.user_agent contains "LoudSEOBot/") and
(http.request.method in {"GET" "HEAD"})

Shopify

Shopify limits direct server configuration, so check both the theme's robots template and any third-party security or bot-blocking app.

  1. In Shopify Admin, go to Online Store → Themes, open the active theme menu, and choose Edit code.
  2. Open templates/robots.txt.liquid. If it does not exist, create a custom robots template only after reviewing Shopify's generated defaults.
  3. Ensure LoudSEOBot is not blocked. Retain exclusions for admin, accounts, carts, and checkout.
  4. Review installed security, anti-bot, and fraud apps. Add LoudSEOBot using its UA and private key where supported.
  5. Shopify Plus clients can ask their Merchant Success or support contact for infrastructure-level allowlisting.
User-agent: LoudSEOBot
Allow: /
Disallow: /admin/
Disallow: /account/
Disallow: /cart
Disallow: /checkout/

AWS WAF, Akamai, F5, and other platforms

Create a high-priority positive-match rule requiring all of these conditions:

  • LoudSEOBot-Key exactly equals the key provided privately.
  • User-Agent contains LoudSEOBot/.
  • Method is GET or HEAD.

Set the action to allow or bypass bot/challenge controls. Keep application authorization controls in force and exclude sensitive paths. In AWS WAF, use an AND statement with byte-match statements for the header, UA, and method. In Akamai Bot Manager or F5, use the equivalent positive header match and bypass only the bot challenge layer.

Nginx and Apache

These examples create a verified flag. Connect that flag to your existing WAF/rate-limit configuration; exact directives vary by stack.

Nginx

map $http_user_agent $is_loudseobot {
    default 0;
    ~*LoudSEOBot/ 1;
}
map "$is_loudseobot:$http_loudseobot_key" $loud_bot_verified {
    default 0;
    "1:<PROVIDED PRIVATELY BY LOUD>" 1;
}
# Use $loud_bot_verified in your WAF/rate-limit policy to bypass
# bot challenges for GET and HEAD only. Keep auth/admin paths excluded.

Apache

SetEnvIf User-Agent ".*LoudSEOBot/.*" is_loudseobot
SetEnvIfExpr "%{HTTP:LoudSEOBot-Key} == '<PROVIDED PRIVATELY BY LOUD>' && reqenv('is_loudseobot') == '1'" loud_bot_verified
# Reference loud_bot_verified in your WAF or ModSecurity allow/skip rule.
# Limit the exception to GET/HEAD and exclude auth, checkout and admin.

Validate before scaling

  1. Deploy the rule in staging first when available, then production.
  2. Loud runs a small smoke crawl across representative templates.
  3. Confirm 200 responses and zero CAPTCHA, 403, 429, or managed-challenge responses in WAF logs.
  4. Agree on the initial ceiling and crawl window.
  5. Scale while Crawl Perfect's adaptive controller monitors origin and pipeline health.

Success: sustained throughput, complete page coverage, zero challenge pages, and no measurable impact on real users.

Run Crawl Perfect

Start with a hostname. Let telemetry find the pace.

Crawl jobs require a verified Google sign-in. The marketing page and configuration guide remain public.

The maximum is a ceiling, not a promise. Auto-tuning searches below it for the fastest stable rate.

Your private crawl jobs

Client hostnames and internal runner notes are intentionally hidden to keep screenshots, demos, and shared screens confidential.

CrawlStatusDiscoveredHTML pagesRateErrorsUpdated
Loading…