Website profiles · Technology insights · Alternatives

heritrix.readthedocs.io

No paid content found
Visit website
Profile views 9 Outbound visits 2 Normal
Heritrix 3 Documentation Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2014
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Heritrix 3?

Heritrix 3 is an open-source, extensible web crawler from the Internet Archive, documented at Heritrix 3 Documentation. You configure a crawl job, run the crawler, and it fetches and archives web content to a chosen fidelity — making it a tool for building web archives rather than a general-purpose scraper.

What it does

According to the documentation's contents, Heritrix 3 covers the full crawl lifecycle: getting started and installation, operating the crawler, configuring crawl jobs, a bean reference, a REST API, and a glossary. Practical capabilities visible in the docs include:

  • Crawl scoping and rules — decide rules, decide-rule sequences, and crawl scope control what gets fetched.
  • Politeness and limits — robots.txt honoring policy, retry policy, bandwidth limits, and crawl limits such as maxToeThreads.
  • Frontier and queues — the frontier manages which URIs are pending, with politeness settings.
  • Protocols — HTTP, HTTP/2, HTTP/3, FTP, SFTP, and WHOIS.
  • Job control — checkpointing, restarting from a checkpoint, and crawl recovery (full or split recovery).
  • Site-specific settings — "sheets" for per-site configuration, plus authentication and cookies via a credential store, HTTP basic/digest, HTML form auth, and cookie loading.
  • Reporting and logs — crawl summary, seeds, hosts, mimetypes, response codes, processors, frontier summary, and thread reports, alongside logs like crawl.log and progress-statistics.log.

Who it suits

Heritrix 3 fits archivists, librarians, digital-preservation teams, and researchers who need reproducible, policy-driven crawls of defined scope. It is less suited to quick one-off scraping: the documentation describes a Java-based system with configuration files, beans, and an operator interface, so expect setup effort and a learning curve. The docs also note that more Heritrix documentation currently lives on the GitHub wiki, while structured guides are being migrated — so some topics may be split across two places.

A useful next step

If you are evaluating it, start with the "Getting Started with Heritrix" section: check system requirements, install, run it, open the user interface, and complete "Your First Crawl." Then look at "Configuring Crawl Jobs" and the decide rules to see whether its scoping and politeness controls match your collection policy. For comparison, the Internet Archive also maintains related crawling and archiving tools; if your goal is replay rather than crawling, see Internet Archive.

How do I install and run my first crawl with Heritrix?

Install Heritrix by meeting the Java runtime requirements, unpacking the distribution, and setting the environment variables the documentation lists. Then start the crawler, open the web user interface, and create a job with a seed list. The "Getting Started with Heritrix" section of Heritrix 3 Documentation covers exactly these steps: System Requirements, Installation, Environment Variables, Running Heritrix, Accessing the User Interface, Your First Crawl, and Exiting Heritrix.

A practical first run

  1. Check the system requirements and install a compatible Java runtime.
  2. Download and unpack the Heritrix distribution.
  3. Set the documented environment variables, including where Heritrix stores its jobs directory.
  4. Launch Heritrix from the command line (the docs also describe running it under Docker).
  5. Open the user interface in a browser and log in with the credentials you configured.
  6. Create a job, add your seed URLs, and start it.
  7. Watch the logs and reports, then stop the crawler when the crawl finishes.

Before you point it at the open web

The documentation's security section is worth reading first: network access control, login authentication, and access control matter because the interface can control a crawler that fetches external sites. For a first crawl, keep the scope narrow — one host or a small set of pages — and set crawl limits so a mistake in scope rules does not turn into a long, wide crawl.

Where to look when something goes wrong

Heritrix writes separate logs for different problems: alerts.log, crawl.log, progress-statistics.log, runtime-errors.log, and uri-errors.log. Reports such as crawl-report.txt, seeds-report.txt, hosts-report.txt, responsecode-report.txt, and threads-report.txt summarize what happened. If the crawl stops unexpectedly, the checkpointing and crawl recovery material explains how to restart from a checkpoint rather than from zero.

Next step

Once the first crawl completes, read Configuring Crawl Jobs: Basic Job Settings, Crawl Scope, Decide Rules, Frontier, Politeness, and Retry Policy. Those settings are what separate a toy crawl from a controlled one, and the docs also describe Sheets for site-specific settings and a scripting console for modifying a running job.

How can I configure crawl limits and scope to avoid overloading a target site?

Heritrix gives you two separate levers for not hammering a target: crawl scope (which URLs you follow at all) and crawl limits and politeness (how fast and how broadly you hit them). Both are set per job, so the practical answer is to tighten scope first, then cap concurrency and rate.

Scope: decide what is even eligible

Scope is controlled by decide rules, typically assembled in a DecideRuleSequence. In the job configuration you get a Crawl Scope section that includes Decide Rules and a DecideRuleSequence, plus Sheets for site-specific settings. The documentation's Bean Reference lists many individual rules, including AcceptDecideRule and a family of matchers such as ContentTypeMatchesRegexDecideRule, ContentTypeNotMatchesRegexDecideRule, ContentLengthDecideRule, and ClassKeyMatchesRegexDecideRule.

A scope approach that keeps load low:

  • Restrict to the host(s) you actually need, rather than letting the frontier wander.
  • Exclude large or expensive types (video, archives, big PDFs) with a content-type or content-length rule.
  • Keep the seed list narrow; every extra seed multiplies the frontier.
  • Use robots.txt honoring policy as configured in the job, rather than assuming it is on.

Limits and politeness: cap the pressure

The Crawl Limits section includes maxToeThreads, and the job settings also cover Frontier Politeness, Retry Policy, and Bandwidth Limits. maxToeThreads is the direct concurrency cap — fewer ToeThreads means fewer simultaneous requests. Politeness settings control per-host delays and how many requests a host can receive in a window. Bandwidth limits cap bytes per second, which matters if your crawler is saturating a shared link.

A simple mental model:

Concern Setting area Effect
Too many parallel requests Crawl Limits / maxToeThreads Caps simultaneous fetches
Hitting one host too fast Frontier Politeness Adds per-host delay and queues
Crawler eats all bandwidth Bandwidth Limits Throttles throughput
Retrying failing hosts repeatedly Retry Policy Controls retry count and backoff
Crawling irrelevant URLs Crawl Scope / Decide Rules Shrinks what is fetched

A concrete starting scenario

If you are archiving a single small site, set a low maxToeThreads, keep politeness conservative, restrict scope to that host, and exclude large binaries. Run a short job and check the reports — crawl-report.txt, hosts-report.txt, responsecode-report.txt, threads-report.txt, and frontier-summary-report.txt — to see actual request rates and any error spikes. hosts-report.txt is the quickest way to spot one host receiving disproportionate traffic.

Start with the Getting Started with Heritrix and Configuring Crawl Jobs sections in Heritrix 3 Documentation, then adjust based on the reports rather than guessing.

What is the best way to recover or restart a crawl from a checkpoint?

Use Heritrix’s built-in checkpoint and recovery workflow rather than trying to hand-restart a stopped crawl. The documentation treats checkpointing as a first-class operational feature, with both manual and automated options, and separates recovery into full and split modes.

How the pieces fit together

Situation Mechanism What it does
You want a restart point before stopping Checkpointing (Action Directory) Writes crawl state so the job can be resumed
You want restarts without manual steps Automated Checkpointing Triggers checkpoints on a schedule or condition
You stopped cleanly Restarting from a Checkpoint Resumes from the saved state
The crawl or machine failed Crawl Recovery Rebuilds state; full recovery or split recovery depending on scope

Practical sequence

  1. Confirm the job has a checkpoint directory configured and that a checkpoint actually exists.
  2. Stop the crawler in a way that lets it finish writing state, if you have the choice.
  3. Restart the job and select the checkpoint-based resume path rather than starting a fresh crawl.
  4. If the checkpoint is unusable or the failure was severe, use crawl recovery; choose full recovery when you need the whole frontier and state rebuilt, split recovery when you can recover in parts.
  5. Verify progress by checking the frontier summary and crawl reports before letting the job run unattended.

Decision criteria

  • Clean shutdown, recent checkpoint: restart from checkpoint.
  • Crash or corrupted state: recovery, and expect some re-crawling of recently fetched URIs.
  • Long-running crawl with limited disk: enable automated checkpointing so you always have a recent restart point.
  • Politeness and retry settings are reapplied from the job configuration, so review them after recovery if the crawl was throttled.

For exact command syntax, environment variables and bean settings, work from the official guides: Heritrix 3 Documentation.

How do I set up authentication and cookies for crawling protected content?

Authentication and cookies in Heritrix are configured through the Credential Store and the Authentication and Cookies section of a crawl job. The documentation covers HTTP Basic and Digest Authentication, HTML Form Authentication, and loading cookies, so you can handle both simple protected pages and login-form-based sites.

How the pieces fit together

  • Credential Store — holds the login credentials Heritrix should use for matching hosts or realms.
  • HTTP Basic/Digest — for servers that challenge requests directly with a 401 response.
  • HTML Form Authentication — for sites that require filling in a username/password form and following the resulting session.
  • Loading Cookies — for supplying pre-existing cookies (for example, a session token) rather than logging in programmatically.

Choosing an approach

Situation Configuration to use
Server returns HTTP auth challenge Credential Store with Basic or Digest
Login page with form fields HTML Form Authentication
Already have a valid session cookie Load cookies into the job
Multiple hosts with different logins Separate credential entries per host/realm

A practical next step: start a small test crawl against one protected URL, then check crawl.log and uri-errors.log in the logs directory to confirm whether authentication succeeded or requests were rejected. If you see repeated 401 or 403 responses, revisit the credential entry or form field mapping before scaling up the job.

For the exact bean names and fields, see Heritrix 3 Documentation — the Bean Reference and "Authentication and Cookies" pages are the authoritative source.

When should I use the REST API or scripting console instead of the web UI?

Use the REST API or scripting console when you need to automate a crawl, change a running job, or inspect state that the web UI only exposes as a form or report. The web UI is the right tool for learning and for one-off jobs; the API and console are for repeatability and control.

REST API

  • Start, pause, stop, or check a job from a script or CI pipeline.
  • Integrate crawling with another system, such as triggering a crawl after a content release.
  • Retrieve status and reports programmatically instead of reading pages manually.

Scripting console

  • Inspect and modify a running job's beans: adjust limits, scope rules, or politeness settings without a restart.
  • Explore the live object model when you are unsure which bean or setting controls a behavior.
  • Apply a change once, observe the effect, then encode it in a job configuration if it works.

Web UI

  • First crawls, guided setup, and visual review of reports.
  • Occasional jobs where you want to see the forms and defaults.

A practical decision rule: if you will do it more than twice, or if another system must trigger it, script it; if you are still discovering what the setting does, use the UI or console first. For example, a digital-preservation team scheduling a monthly crawl of a partner site would drive the REST API from a scheduler, while an archivist tuning robots.txt honoring for a new site might experiment in the scripting console and then save the result into the job configuration.

The trade-off is that the API and console assume you already know the bean names and job structure; the web UI teaches those. Start with the Getting Started and Configuring Crawl Jobs sections to learn the model, then move to the REST API and Bean Reference when you need automation. The documentation also notes that more material still lives on the project's GitHub wiki, so check there for gaps: GitHub.

Related questions

More questions →
How to Get Started with Heritrix 3 According to Its Documentation

The Heritrix 3 documentation at heritrix.readthedocs.io provides a "Getting Started with Heritrix" guide that walks through system requirements, installation, environment variables, running the crawler, accessing the user interface, performing a first crawl, and exiting. This article summarizes those documented steps so you can go from a fresh install to a completed first crawl. The documentation notes that more Heritrix documentation currently lives on the GitHub wiki, and that structured guides are being migrated to the Read the Docs site over time.

System Requirements and Installation

The documentation's Getting Started section lists system requirements and installation as the first two topics, followed by environment variables. The exact supported platforms, Java version, and installation commands are specified in those pages on the site rather than in the top-level index, so consult the "System Requirements" and "Installation" pages directly before you begin. The documentation also covers running Heritrix under Docker as an alternative to a local install, which is documented under "Operating Heritrix."

Environment Variables and Running Heritrix

After installation, the documented flow is:

  1. Set the required environment variables (covered in the "Environment Variables" page under Getting Started).
  2. Run Heritrix, either directly or via the documented Docker configuration.
  3. Access the user interface, which is the next topic in the Getting Started sequence.

The "Operating Heritrix" section expands on this with command-line options, environment variables, Docker configurations, and security considerations.

Accessing the User Interface and Running Your First Crawl

The Getting Started guide ends with "Accessing the User Interface," "Your First Crawl," and "Exiting Heritrix." Once the crawler is running and you can reach the UI, the documented path to a first crawl is to configure a crawl job. The "Configuring Crawl Jobs" section covers basic job settings, profiles, crawl limits, robots.txt honoring policy, crawl scope, decide rules, logging, frontier politeness, retry policy, bandwidth limits, extractor parameters, sheets (site-specific settings), and authentication and cookies.

Security Considerations Before You Expose the UI

The documentation includes a "Security Considerations" section under Operating Heritrix that covers understanding the risks, network access control, login authentication, and access control. Review this before making the user interface reachable beyond your local machine, since the crawler's UI and REST API can control crawl behavior.

Logs and Reports You Can Check After a Crawl

The documentation lists the log files and reports Heritrix produces, which are useful for verifying that your first crawl behaved as expected:

Log file Purpose (as listed)
alerts.log Alerts
crawl.log Crawl activity
progress-statistics.log Progress statistics
runtime-errors.log Runtime errors
uri-errors.log URI errors

Reports include Crawl Summary (crawl-report.txt), Seeds (seeds-report.txt), Hosts (hosts-report.txt), SourceTags (source-report.txt), Mimetypes (mimetype-report.txt), ResponseCode (responsecode-report.txt), Processors (processors-report.txt), FrontierSummary (frontier-summary-report.txt), and ToeThreads (threads-report.txt).

Where to Go Next

Beyond Getting Started, the documentation covers the Bean Reference, the REST API, a Glossary, and advanced topics such as checkpointing, crawl recovery, modifying a running job, scripting console, and configuring HTTP/SOCKS5 proxies and DNS over HTTP (DoH). Because the site notes that more documentation still lives on the GitHub wiki, check both locations if a topic you need is not yet migrated.

Where to Find the Heritrix 3 REST API and Bean Reference

Both references live in the table of contents on heritrix.readthedocs.io: REST API and Bean Reference are top-level sections, alongside Getting Started, Operating Heritrix, Configuring Crawl Jobs, and Glossary. The site also notes that more Heritrix documentation currently lives on the GitHub wiki, and that structured guides are being edited and migrated to Read the Docs — so treat the wiki as a companion source, not a replacement.

What each reference section is for

REST API

This is the section to open when you need to drive or inspect a running crawler over HTTP rather than through the web UI. In Heritrix 3, the user interface itself is built on the REST API, so this section is the authoritative description of the endpoints the UI calls.

Bean Reference

This section documents the configuration objects (beans) that make up a crawl job. It is split into two parts in the contents:

  • Core Beans — the components that run a crawl, such as CrawlController, BdbFrontier, BdbModule, CheckpointService, CredentialStore, DecideRuleSequence, SheetOverlaysManager, StatisticsTracker, TextSeedModule, CrawlLimitEnforcer, CrawlMetadata, DiskSpaceMonitor, ActionDirectory, BdbCookieStore, BdbServerCache, BdbUriUniqFilter, CrawlerLoggerModule, and RulesCanonicalizationPolicy.
  • Decide Rules — the rules that accept or reject URIs during a crawl, such as AcceptDecideRule, ContentLengthDecideRule, ContentTypeMatchesRegexDecideRule, ContentTypeNotMatchesRegexDecideRule, ExpressionDecideRule (contrib), ExternalGeoLocationDecideRule, FetchStatusDecideRule, FetchStatusMatchesRegexDecideRule, and ClassKeyMatchesRegexDecideRule.

Use Core Beans when you are assembling or editing a job configuration and need to know which properties a component accepts. Use Decide Rules when you are tuning crawl scope — for example, when you want to exclude content by MIME type or by fetch status.

How the two references relate to the rest of the docs

Section Use it for
Getting Started with Heritrix System requirements, installation, environment variables, running Heritrix, accessing the UI, your first crawl
Operating Heritrix Command-line options, Docker, security considerations, log files, reports, checkpointing and recovery
Configuring Crawl Jobs Job settings, profiles, crawl limits, robots.txt policy, scope, decide rules, logging, frontier, politeness, retry policy, bandwidth limits, extractor parameters, sheets, authentication and cookies, other protocols, modifying a running job
Bean Reference Property-level detail for core beans and decide rules
REST API Programmatic control and monitoring of a running crawler
Glossary Terminology used across the other sections

A practical reading order: start with Configuring Crawl Jobs to understand the shape of a job, then jump into Bean Reference for the exact property names, and keep REST API open if you intend to script the crawler instead of clicking through the UI.

Finding a specific bean or endpoint

The Read the Docs contents list is the fastest index. If you already know the component name — say BdbFrontier or ContentTypeMatchesRegexDecideRule — scan the Core Beans or Decide Rules list in the contents and open that page directly. If you only know the behavior you want, work backwards from Configuring Crawl Jobs: the topic pages there (scope, politeness, retry policy, and so on) point at the beans involved.

Because the site states that migration from the GitHub wiki is still in progress, a bean or endpoint you expect may not yet have a page here. In that case, check the GitHub wiki before assuming the feature is undocumented.

What Is the Heritrix 3 Documentation Website?

heritrix.readthedocs.io is the official documentation site for Heritrix 3, the web crawler used for archival and large-scale crawling work. It hosts structured guides on installing, running, and configuring Heritrix, plus a bean reference and REST API documentation. Use it when you need authoritative, versioned reference material for operating a crawl job or tuning crawler behavior. Note that the site itself states more Heritrix documentation currently lives on the GitHub wiki and is being migrated here, so some topics may still be incomplete.

What the site covers

The documentation is organized into these main sections:

  • Getting Started with Heritrix — system requirements, installation, environment variables, running Heritrix, accessing the user interface, your first crawl, and exiting Heritrix
  • Operating Heritrix — running from the command line, command-line options, environment variables, running under Docker, and security considerations
  • Configuring Crawl Jobs — basic job settings, profiles, crawl limits, robots.txt honoring policy, crawl scope, decide rules, logging, frontier politeness, retry policy, bandwidth limits, extractor parameters, sheets for site-specific settings, and authentication/cookies
  • Bean Reference — core beans (for example CrawlController, BdbFrontier, BdbModule, CheckpointService, CredentialStore, DecideRuleSequence, StatisticsTracker) and decide rules (for example AcceptDecideRule, ContentTypeMatchesRegexDecideRule, FetchStatusDecideRule)
  • REST API — programmatic control of a running crawl
  • Glossary

The page also lists operational detail that matters when you run a crawl in production: log files (alerts.log, crawl.log, progress-statistics.log, runtime-errors.log, uri-errors.log), reports (crawl summary, seeds, hosts, source tags, mimetypes, response codes, processors, frontier summary, ToeThreads), and recovery procedures including checkpointing, automated checkpointing, restarting from a checkpoint, and full or split recovery.

When to use it

Reach for this site when you are:

  • Setting up Heritrix for the first time and need installation and first-crawl steps
  • Configuring scope, decide rules, politeness, retries, or bandwidth for a specific job
  • Looking up a specific bean or decide rule by name to understand what it does
  • Integrating with a running crawl through the REST API
  • Diagnosing a crawl by interpreting the standard log files and reports
  • Recovering a crawl from a checkpoint after an interruption

Practical caveats

Two things are worth knowing before you rely on it:

  1. Coverage is still being migrated. The site explicitly notes that more documentation lives on the GitHub wiki and that structured guides are being moved over. If a topic looks thin, check the wiki.
  2. Version context matters. The documentation is labeled for Heritrix 3 (shown as 3.17.2-SNAPSHOT), so confirm that the bean names and options match the version you are actually running before applying them.

For day-to-day operation, the most useful starting points are the Getting Started section for a first crawl and the Configuring Crawl Jobs section once you move beyond defaults. The Bean Reference is the place to look up a specific setting by name when a job configuration references it.

What Crawl Job Settings Can I Configure in Heritrix 3?

Heritrix 3 lets you configure a crawl job across several layers: basic job identity and limits, crawl scope and robots.txt policy, decide rules that accept or reject individual URIs, and operational controls such as frontier politeness, retry policy, bandwidth limits, and extractor parameters. The official documentation groups these under "Configuring Crawl Jobs," with the full bean-level detail in the Bean Reference. Settings can be set before a crawl starts or, for many of them, modified on a running job through the Scripting Console or by editing beans.

Basic job settings and profiles

Every crawl job starts with basic settings that identify the job and define its operator context. The documentation lists these under Basic Job Settings, and includes metadata.operatorContactUrl as an example of job metadata you can set. This value is typically used to identify who is responsible for the crawl, which matters for politeness and for sites that want to contact an operator.

Profiles are reusable configuration bundles. Instead of setting every bean by hand, you can apply a profile that pre-configures a known-good combination of scope, rules, and limits. The documentation treats Profiles as a distinct topic under Configuring Crawl Jobs, so you can select or define one rather than building a job from scratch.

Crawl limits

Crawl limits bound how much work a job can do. The documentation names maxToeThreads as a configurable limit. Toe threads are the worker threads that fetch and process URIs, so maxToeThreads caps how many URIs are processed concurrently. Raising it increases parallelism and load on both Heritrix and the target hosts; lowering it reduces concurrency and is the usual first response to overloading a target or your own machine.

Crawl limits sit alongside the broader Crawl Limits section, which is where you should look for the full set of bounds rather than assuming maxToeThreads is the only one.

Robots.txt honoring policy

Heritrix 3 has an explicit Robots.txt Honoring Policy setting. This controls whether the crawler respects robots.txt directives and how it behaves when a site's robots.txt is missing, unreachable, or ambiguous. Because this is a policy setting rather than a fixed behavior, you should decide it deliberately: honoring robots.txt is the default expectation for polite crawling, and changing the policy is a decision with consequences for the sites you crawl.

Crawl scope and decide rules

Scope and decide rules are the core of what a job actually collects.

  • Crawl Scope defines the overall boundary of the crawl — which hosts, paths, or domains are eligible.
  • Decide Rules are the individual accept/reject tests applied to candidate URIs.
  • DecideRuleSequence is the ordered list of decide rules. Order matters, because rules are evaluated in sequence and the first decisive result determines whether a URI is accepted.

The Bean Reference lists many decide rules, including:

Rule What it decides on
AcceptDecideRule Accepts matching URIs
ContentLengthDecideRule Based on content length
ContentTypeMatchesRegexDecideRule Content type matches a regex
ContentTypeNotMatchesRegexDecideRule Content type does not match a regex
ClassKeyMatchesRegexDecideRule Class key matches a regex
FetchStatusDecideRule / FetchStatusMatchesRegexDecideRule Based on fetch status
ExternalGeoLocationDecideRule Based on external geolocation
ExpressionDecideRule (contrib) Based on a custom expression

A practical way to think about it: scope sets the outer boundary, and the DecideRuleSequence refines it rule by rule. If a URI is unexpectedly excluded, the sequence order and the specific rules in it are the first place to look.

Frontier politeness, retry policy, and bandwidth

These settings control how aggressively and how persistently the crawler behaves.

  • Frontier Politeness governs the delay and ordering applied to requests to the same host, so you do not hammer a single server.
  • Retry Policy defines how failed fetches are retried — how many times and under what conditions.
  • Bandwidth Limits cap the total data rate the crawler uses.

Together these determine the load you place on targets. Politeness and bandwidth limits are the main levers for reducing impact; retry policy affects how much repeated traffic a struggling host receives.

Extractor parameters

Extractor Parameters configure the extractors that pull outlinks, embedded resources, and other data from fetched content. Changing extractor parameters changes what the crawler discovers and therefore what it goes on to fetch, so they interact directly with scope and decide rules.

Site-specific settings and authentication

Two further areas are part of job configuration:

  • Sheets (Site-specific Settings) let you apply settings to particular sites rather than the whole job.
  • Authentication and Cookies covers the Credential Store, HTTP Basic and Digest Authentication, HTML Form Authentication, and Loading Cookies, so the crawler can reach content behind login.

Modifying a running job

You are not limited to pre-crawl configuration. The documentation covers Modifying a Running Job through Browse Beans and the Scripting Console. Browse Beans lets you inspect and edit the live bean configuration, and the Scripting Console lets you issue commands against the running crawler. This is useful for adjusting limits or rules without restarting, but changes made this way are not automatically the same as editing the job configuration file, so treat them as runtime adjustments.

How to approach configuration

  1. Start from a profile rather than an empty job.
  2. Set basic job settings, including operator contact metadata.
  3. Define crawl scope, then build the DecideRuleSequence to refine it.
  4. Set crawl limits such as maxToeThreads, and decide the robots.txt honoring policy explicitly.
  5. Tune frontier politeness, retry policy, and bandwidth limits to control load.
  6. Adjust extractor parameters if you need different discovery behavior.
  7. Use sheets for site-specific overrides and the credential store for authenticated content.
  8. Use Browse Beans or the Scripting Console for runtime changes.

The authoritative reference for exact bean names and available properties is the Bean Reference on the Heritrix 3 documentation site. Note that the documentation itself states that more Heritrix documentation currently lives on the GitHub wiki, and that structured guides are still being migrated to the Read the Docs site — so for topics not yet covered there, the wiki is the place to check.

What Security Considerations Does the Heritrix 3 Documentation Cover?

The Heritrix 3 documentation treats security as a first-class operational topic, not an afterthought. Under Operating Heritrix → Security Considerations, it groups the material into four areas: understanding the risks of running a crawler, network access control, login authentication and access control, and security-relevant log files. If you are about to expose a Heritrix instance beyond localhost, or you need to explain to a security reviewer what a running crawler exposes, these four sections are the ones to read first.

Understanding the risks of running Heritrix

The documentation frames crawling as an inherently exposed activity: Heritrix is a long-running network service that also makes outbound requests on your behalf. The "Understanding the Risks" section is the conceptual starting point — it establishes why the controls that follow exist, rather than listing them as optional hardening. Read it before you change any defaults, because the remaining subsections assume that framing.

Network access control

This section covers restricting who can reach the Heritrix web interface at the network layer. It is the outermost control: if the operator UI is not reachable from an untrusted network, the authentication questions below matter far less. Practical implication: decide your exposure model (localhost only, internal network, or public) before configuring anything else, since that choice determines how much weight the remaining controls must carry.

Login authentication and access control

The documentation separates two related but distinct concerns:

Concern What it governs
Login authentication Verifying the identity of whoever connects to the operator UI
Access control What an authenticated (or unauthenticated) user is permitted to do

Keeping these separate matters because a deployment can authenticate correctly and still grant more capability than intended. Treat them as two configuration decisions, not one.

Security-related log files

The documentation lists several logs, and two are directly relevant to security monitoring:

  • alerts.log — alert-level events; the first place to look when something anomalous happens.
  • runtime-errors.log — runtime failures that may indicate misconfiguration or unexpected behavior.

The other logs in the same list (crawl.log, progress-statistics.log, uri-errors.log) are primarily operational, but they provide context when you investigate an entry in alerts.log or runtime-errors.log. A workable routine is to monitor the two security-relevant logs continuously and consult the operational logs only when one of them fires.

Where these sections sit in the documentation

The Security Considerations material lives under Operating Heritrix, alongside running Heritrix, command-line options, environment variables, Docker operation, and configurations. That placement is a useful signal: security is documented as part of operating a crawl, not as a separate appendix you visit once. The same top-level structure also contains Configuring Crawl Jobs, which is where per-job settings such as crawl scope, robots.txt policy, and credential handling are defined — relevant because a job's scope and credential configuration directly affect what your crawler touches.

A caveat about coverage

The documentation itself notes that more Heritrix documentation currently lives on the GitHub wiki, and that structured guides are being edited and migrated to this site. So if a security topic you need is not covered here, the wiki is the documented fallback rather than an assumption that the topic is unaddressed. Check both before concluding that a control is undocumented.

What this means in practice

If your goal is to run Heritrix safely, the documentation's own ordering gives you a sequence: understand the risks, constrain network reachability, then configure authentication and access control, then wire up monitoring on alerts.log and runtime-errors.log. Each step reduces reliance on the ones after it. The documentation does not present these as optional extras, and the structure makes clear they are meant to be decided before a crawl job runs, not retrofitted afterward.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Registered in 2014, this domain has about 12 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is Cloudflare, Inc, a widely used domain service provider. The domain uses the common .io extension, which is not an independent safety signal.

DNS and Email

MX records exist, but SPF, DKIM and DMARC were not detected. Protection against domain impersonation may be incomplete. Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Google Workspace email service. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, Permissions-Policy, clickjacking protection. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Docutils 0.18.1: http://docutils.sourceforge.net/, Cloudflare without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

No homepage meta description was detected, leaving snippet selection more dependent on page text. The Generator tag identifies Docutils 0.18.1: http://docutils.sourceforge.net/, making the publishing system easier to fingerprint. No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. No Open Graph metadata was detected, so social previews may depend on platform inference. The title has 52 characters, within a common display range.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 2606:4700::6810:fd78

Registration details

RDAP / WHOIS

RegistrarCloudflare, Inc
Registered2014-06-14
Expires2028-06-14
Domain statusclientTransferProhibited https://icann.org/epp#clientTransferProhibited
Nameserversivan.ns.cloudflare.com、tegan.ns.cloudflare.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Aheritrix.readthedocs.io104.16.253.120300—
Aheritrix.readthedocs.io104.16.254.120300—
AAAAheritrix.readthedocs.io2606:4700::6810:fd78300—
AAAAheritrix.readthedocs.io2606:4700::6810:fe78300—
MXreadthedocs.ioaspmx.l.google.com3001
MXreadthedocs.ioalt1.aspmx.l.google.com3005
MXreadthedocs.ioalt2.aspmx.l.google.com3005
MXreadthedocs.ioaspmx2.googlemail.com30010
MXreadthedocs.ioaspmx3.googlemail.com30010
NSreadthedocs.ioivan.ns.cloudflare.com86400—
NSreadthedocs.iotegan.ns.cloudflare.com86400—
CAAreadthedocs.io0 issue " amazontrust.com"300—
CAAreadthedocs.io0 issue "comodoca.com"300—
CAAreadthedocs.io0 issue "digicert.com; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issue "letsencrypt.org"300—
CAAreadthedocs.io0 issue "pki.goog; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issue "ssl.com"300—
CAAreadthedocs.io0 issuewild "amazonaws.com"300—
CAAreadthedocs.io0 issuewild "comodoca.com"300—
CAAreadthedocs.io0 issuewild "digicert.com; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issuewild "letsencrypt.org"300—
CAAreadthedocs.io0 issuewild "pki.goog; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issuewild "ssl.com"300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectreadthedocs.io
IssuerGoogle Trust Services
Valid until2026-12-23T14:03 · Remaining when checked: 83 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlmax-age=1800, stale-if-error=86400, public
servercloudflare
strict-transport-securitymax-age=31536000; includeSubDomains; preload
x-content-type-optionsnosniff
referrer-policyno-referrer-when-downgrade
access-control-allow-origin*

Identified technologies

Docutils 0.18.1: http://docutils.sourceforge.net/Cloudflare

Pages, Search and Sharing

Meta descriptionNot detected
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected

Unknown

All bots 0 allowed · 0 disallowed

Recent Updates

  • Website Name
  • Website Name

User reviews (0)

  • No reviews yet.