Scan
Point it at a codebase, a live URL, or both. Orino resolves your framework and reads routes, metadata exports and build output the way a crawler never could.
reading source…
Orino is a developer-first audit for SEO and GEO: the signals that decide whether search ranks you and whether AI engines cite you. Deterministic checks, no account, nothing leaves your machine.
$npx orino-cli audit“How do I audit SEO in a Next.js project?”
Run npx orino-cli audit in the project root. It detects the App Router, runs 54 checks and returns a scored report with fixes.
orino.app
Orino — SEO & GEO audits from your terminal
One command, 54 deterministic checks, a score out of 100 and every fix spelled out.
seo score
Excellent
One command across every stack, auto-detected
Search happens in two places now. Google ranks your pages and AI engines quote them. Orino audits both surfaces with one deterministic command.
Rule-based checks that read your source and your live HTML. No crawl quotas, no dashboards, no login screens.
Orino reads your codebase and your live URL, runs every check in parallel and hands back a weighted score, with the file, the finding and the fix for anything that fails.
$ npx orino-cli audit
Detected Next.js (App Router) · 54 checks queued
Runs locally. The only network request is to the URL you choose to audit.
Rules, not a language model. Scores never drift between runs, so they belong in CI.
Point it at the repo — Orino works out the framework and applies the checks that fit.
robots · sitemaps · canonicals
Can engines reach every page you care about? Robots rules, XML sitemaps, canonical tags, redirect chains and status codes.
titles · descriptions · open graph
Titles and descriptions on every route, Open Graph and Twitter cards, with length and uniqueness rules applied per page.
json-ld · rich results
JSON-LD presence and validity — Organization, Article, FAQ and breadcrumbs, matched against what each page type needs.
core web vitals
LCP, CLS and INP, render-blocking assets and image weight — the speed signals that gate rankings.
headings · alt text · links
Heading order, alt text, internal linking and content depth — including the H1 a crawler actually receives.
gptbot · llms.txt
GPTBot, ClaudeBot and PerplexityBot access, llms.txt, and whether your content survives without JavaScript.
framework · rendering
Framework config, route structure and client-only rendering traps that hide finished pages from every crawler.
Can engines reach every page you care about? Robots rules, XML sitemaps, canonical tags, redirect chains and status codes.
Titles and descriptions on every route, Open Graph and Twitter cards, with length and uniqueness rules applied per page.
JSON-LD presence and validity — Organization, Article, FAQ and breadcrumbs, matched against what each page type needs.
LCP, CLS and INP, render-blocking assets and image weight — the speed signals that gate rankings.
Heading order, alt text, internal linking and content depth — including the H1 a crawler actually receives.
GPTBot, ClaudeBot and PerplexityBot access, llms.txt, and whether your content survives without JavaScript.
Framework config, route structure and client-only rendering traps that hide finished pages from every crawler.
Point it at a codebase, a live URL, or both. Orino resolves your framework and reads routes, metadata exports and build output the way a crawler never could.
reading source…
Every check is weighted and rolled into a score out of 100, with a band per category, so a regression is a diff in CI, not a feeling.
Findings arrive with the file, the line and the remediation. Paste the fix into your editor, or hand the report straight to your agent.
Run your first audit→export const metadata = {
- title: "Home",
+ title: "Meridian — Architecture studio in Oslo",
+ description: "Practice, projects and contact.",
}
Questions about Orino, partnership ideas, or just want to say hello? Drop us a line. No ticket queue, no chatbot.
support@bynaree.dev