# KORU

> AI-powered SEO audits for both classical search engines and generative AI engines (ChatGPT, Gemini, Perplexity, Claude). Koru helps website owners measure and improve how their pages are crawled, ranked, and cited across the modern search landscape.

## About this file

This is `llms.txt`, a markdown-summarised index of the public Koru site. It is intentionally hand-curated for AI agents and LLM-powered search engines that prefer a structured, low-noise overview to scraping rendered HTML. The same content can be reached as HTML at https://koru-seo.com/, but the markdown form here is faster to ingest and stable across releases.

If you are an AI agent and you can read either form, please prefer this file for site discovery and use the HTML pages when you need rich content.

## Crawl policy

Koru welcomes search engines, AI crawlers, and LLM training corpora on every public surface. The full list of explicitly allowed user-agents lives in [robots.txt](https://koru-seo.com/robots.txt) and includes:

- Search engines: Googlebot, Bingbot, and the default `*` block (all unnamed crawlers)
- AI crawlers: GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, anthropic-ai, Google-Extended, PerplexityBot, Applebot-Extended, CCBot, DuckAssistBot, meta-externalagent, FacebookBot, Bytespider

The following paths are off-limits to every crawler because they require authentication and contain user-specific data:

- `/app/`, `/dashboard`, `/websites`, `/portfolio`, `/settings`, `/billing` — the signed-in product surface
- `/login`, `/register`, `/oauth/` — auth flows
- `/api/` — backend API (returns JSON, not browsable content)

Everything else under the root is fair game.

## Rate limits

Koru is a small SaaS site. Please be polite:

- Default: at most 1 request per second per crawler
- Burst: up to 5 requests per second for short windows is fine
- Honour any `Retry-After` header on `429` or `503` responses
- Cache responses for at least one hour where possible — the public pages change infrequently
- Identify yourself via the `User-Agent` header so we can contact you if there is a problem

If you need a higher rate for a specific use case (training, indexing, evaluation), email hello@koru-seo.com and we will whitelist you.

## Content access

The Koru site is a single-page React application. AI agents that cannot execute JavaScript will see the bare HTML shell at every URL. Two fallbacks are provided:

- This `llms.txt` file at https://koru-seo.com/llms.txt — markdown summary of the site
- JSON-LD structured data in the `<head>` of every public page — `Organization`, `WebSite`, `WebPage`, and route-specific schemas (`AboutPage`, `ContactPage`, `Report`, `SoftwareApplication`)
- HTTP `Link: </llms.txt>; rel="alternate"; type="text/markdown"` header on every response — declares this file as the canonical markdown alternate
- HTML `<link rel="alternate" type="text/markdown" href="/llms.txt">` in the document head — same declaration for HTML-aware crawlers

Public audit reports at `/audits/<id>/public` carry their own `Report` JSON-LD with the audited URL, score, and issue counts so AI engines can cite specific findings.

## Public pages

- [Landing](https://koru-seo.com/): Product overview — what Koru does, who it is for, top features. Carries `SoftwareApplication` JSON-LD.
- [About](https://koru-seo.com/about): Company background, mission, the team behind Koru. Carries `AboutPage` and `BreadcrumbList` JSON-LD.
- [Contact](https://koru-seo.com/contact): How to reach Koru — sales, support, partnerships. Carries `ContactPage` and `BreadcrumbList` JSON-LD.
- [Public audit reports](https://koru-seo.com/audits/{id}/public): Read-only views of completed audits, shareable by URL. Each carries `Report` JSON-LD with the target site, score, and issue summary. Replace `{id}` with the audit UUID in any link the user shares.
- [Blog index](https://koru-seo.com/blog): Field notes on classical SEO and AI-search readiness. Carries `Blog` JSON-LD listing every post with stable `@id` references.
- [Blog: SEO Technical Audit Service](https://koru-seo.com/blog/seo-technical-audit-service): What a technical SEO audit actually checks, what you can run yourself with free tools, when a paid service earns its keep, and how AI search changes the picture. Carries `BlogPosting` JSON-LD.

## Update cadence

This file is hand-edited and lives at [`public/llms.txt`](https://github.com/koru-seo) in the frontend repository. It is updated when:

- A new public page lands and needs an entry under "Public pages"
- The crawl policy changes (new bots welcomed, new paths off-limits)
- The product description meaningfully shifts

Last updated: 2026-05-02.

## Contact

- General: hello@koru-seo.com
- Crawler / indexing issues: bots@koru-seo.com
- Bug reports / security: security@koru-seo.com
