Take our code. Seriously. It is MIT licensed.
Two of the engines behind our free tools, packaged as small, dependency-free JavaScript modules. Use them in your own projects, commercial or not.
Real sites, shipped as code. No page builders.
DenverSEO.io publishes two MIT-licensed JavaScript modules: robots-ai-check, which evaluates robots.txt rules for AI and search crawlers using RFC 9309 longest-match logic, and jsonld-lint, which checks JSON-LD structured data for syntax errors and missing properties. Both have no dependencies and run in browsers or Node.js.
robots-ai-check
Parse a robots.txt file and ask whether a given crawler may fetch a given path. Handles user-agent groups, wildcards, end anchors and Allow-wins ties. Ships with a list of 18 search and AI user agents.
import { parseRobots, isAllowed } from "./robots-ai-check.js";
const groups = parseRobots(robotsTxt);
isAllowed(groups, "GPTBot", "/blog/");
// { allowed: false, rule: "Disallow: /" }jsonld-lint
Lint JSON-LD for invalid JSON, missing @context, required properties on 25 common schema.org types, non-absolute URLs, non-ISO dates and duplicate @id definitions. Returns plain arrays of errors and warnings.
import { lintJsonLd } from "./jsonld-lint.js";
const r = lintJsonLd(jsonString);
r.errors; // ["LocalBusiness: missing address"]
r.warnings; // ["consider adding telephone"]Why open source?
Because the checking is not the secret. Anyone should be able to know whether their robots.txt blocks ClaudeBot or whether their schema parses. The value we add is deciding what to do about it, and building it right across a whole site.
Found a bug or improved something? Tell us. Contact us and we will credit you.
Where this connects
Bring us the problem. We'll bring the code.
Tell us what's stuck. We'll tell you what it would take to fix it.