import type { Metadata } from "next"; import { PageHeader, Panel } from "@/components/ui"; export const metadata: Metadata = { title: "WebSensorBot", description: "About the WebSensor crawler: what it fetches, how often, and how to contact us." }; export default function BotPage() { return ( <>

User agent:

WebSensorBot/0.1 (+https://www.websensor.io/bot; contact@websensor.io)

Requests originate from a small, fixed set of addresses. Contact: contact@spboucher.ai (Simon-Pierre Boucher). WebSensor is hosted on MacLustr.

  • Official RSS/Atom feeds, sitemaps, status-page APIs, GitHub release feeds and public JSON APIs first.
  • A small number of high-value HTML pages (pricing, changelog, security, documentation) when no structured alternative exists.
  • No login, no CAPTCHAs, no paywalls, no private infrastructure. Robots directives and rate limits are honoured.
  • Conditional requests (If-None-Match / If-Modified-Since) whenever the server supports them — most checks are 304s.
  • Adaptive polling: from about once a minute for critical status feeds to a few times a day for slow-moving pages; at most 2 concurrent connections per host.
  • Back-off on errors and on HTTP 429 (Retry-After honoured).

Add a Disallow rule for WebSensorBot in your robots.txt, or email us and we will disable the sensors for your domain.

); }