-
Notifications
You must be signed in to change notification settings - Fork 0
Home
OmniRank audits a website's SEO, AEO, GEO, performance and security signals against its
real HTML, generates llms.txt, llms-full.txt and facts.json for citation, and
locates the exact source file behind each finding. Version 0.4.0 ships two Claude Code
skills, audit and geo-artifacts, plus the omnirank fix diff preview, which writes
nothing.
Three audiences — search crawlers, answer engines, and generative AI systems — parse the
same rendered HTML. A page that is crawlable, has a liftable answer near the top, and
publishes machine-readable ground truth wins all three at once, which is why OmniRank
audits one artifact instead of running three separate tools. Since v0.3.0 it can also say
which file is wrong, via the locator described in The-Locator. v0.4.0's theme is
"OmniRank finds where your site contradicts itself" — five new gates catch a site's own
declarations disagreeing with each other, at 100% precision, plus a new security layer
and Google rich-result validation. See Contradictions and Security-Layer.
| Skill | Status | What it does |
|---|---|---|
audit |
Shipped | Scores SEO, AEO, GEO, performance and security gates against a site's real HTML, including a site-level cross-URL pass and an indexability-contradictions pass, and reports observed / expected / fix for every gap. See Audit-Skill. |
geo-artifacts |
Shipped | Generates llms.txt, llms-full.txt and facts.json, each with an explicit citation licence. See GEO-Artifacts-Skill. |
omnirank fix (CLI preview)
|
Shipped | Resolves a finding's URL to its source file and prints the diff it would apply for the four mechanical findings. Writes nothing — there is no --write flag. See Fix-Preview. |
That is the entire shipped surface of v0.4.0. fix is a CLI subcommand of the audit
skill's package, not a third registered Claude Code skill — .claude-plugin/plugin.json
still declares exactly two skills. No package is published to PyPI, npm, or a container
registry, and no benchmarks, user counts, or testimonials exist for this project —
everything on this wiki is either transcribed from source or explicitly marked as
unverified.
-
A
securitylayer — five content layers now, not four: SEO, AEO, GEO, perf and security. Eight new finding ids; four response-header gates are inventory-only and never graded, two (mixed-content,https-redirect) are graded because they break crawling or rendering. See Security-Layer. -
Five indexability-contradiction gates — a sitemap URL its own
robots.txtdisallows, a canonical pointing at a noindexed/missing/redirecting page, anhreflangalternate that is itself noindexed. 100% precision by construction. See Contradictions. -
Google rich-result required-property validation —
seo.schema-required.missing-propertychecks Google's documented requirements, distinct from schema.org validity. -
Four on-page accessibility-overlap gates — missing
alt, skipped heading levels, empty/generic link text, missinglang. - A corrected scoring model — each layer's budget now scales with its own gate count instead of a flat 100-point constant. Scores from v0.3.0 and v0.4.0 are not comparable. See Audit-Skill#how-is-the-score-computed.
67 finding ids total (up from 48), across 42 --fail-on gate names (up from 28).
| Skill | Target | What it will do |
|---|---|---|
aeo-onpage |
v0.2 (slipped) | Emit JSON-LD by entity type; draft AnswerBlocks and FAQs; Next.js codegen |
indexing |
v0.3 | IndexNow, GSC URL Inspection, Bing Submit, Wayback, hash-based freshness |
offsite-entity |
v0.4 |
sameAs gap analysis, peer mention-gap detection, outreach drafts for human review |
measure |
v0.5 | Rank tracking plus real AI-citation testing across engines |
smm-content |
v0.6 | Repurpose published pages into platform-native assets |
smm-publish |
v0.7 | Gated publishing — dry-run by default, human approval required |
Two targets have already slipped. aeo-onpage's "v0.2" predates this table: 0.2.0 shipped
as a site-gates/AnswerBlock-bands/perf release instead, folded into the existing audit
skill. offsite-entity's "v0.4" also slipped: v0.4.0 shipped, and it spent its budget on
the security layer, the contradiction gates, and the scoring fix instead — nothing about
offsite-entity is built. Treat every target version as directional, not a commitment.
None of these six skills exist in the installed package today — asking Claude Code to
"write our JSON-LD" or "submit this URL to Google" will not trigger anything. Full detail:
Roadmap.
Three commands, no configuration file required:
git clone https://github.com/bemoshiur/OmniRank.git && cd OmniRank
python3 -m venv .venv && source .venv/bin/activate && make install
python3 -m omnirank.cli audit https://example.comTo see what OmniRank would fix, without writing anything:
python3 -m omnirank.cli fix https://example.com --root .Full walkthrough with real pasted output, exit codes, and what to do if a step fails: Quick-Start.
| Page | What it covers |
|---|---|
| Quick-Start | Zero to first audit, numbered steps, real terminal output |
| Configuration-Reference | Every omnirank.config.json field, generated from the JSON Schema |
| Audit-Skill | The audit skill and CLI: every gate, severity, trigger and fix; the scoring formula |
| Security-Layer | The new security layer: what each gate detects, and its honest limits |
| Contradictions | The new indexability-contradiction gates: a real true positive, and their limits |
| GEO-Artifacts-Skill |
llms.txt / llms-full.txt / facts.json; Python vs Node paths; the OpenNext 403 trap |
| Fix-Preview | What omnirank fix does, its flags, and why it writes nothing |
| Fix-Tiers-and-Applicability | The fixTier × applicability model that decides what is safe to fix |
| The-Locator | How OmniRank resolves a URL to the source file that owns it |
| Finding-Reference | All 67 finding ids, generated from the registry — layer, gate, severity, fixTier |
| Report-Schema | The finding shape, the <layer>.<gate>.<condition> id convention, notEvaluated
|
| CI-Recipes | GitHub Actions, GitLab CI, generic shell, and choosing --fail-on gates |
| Claude-Code-Setup | Installing via the release ZIP or a clone; real trigger phrases per skill |
| Troubleshooting | Real error text for likely failures, with the fix for each |
| FAQ | Direct, honest answers — including what OmniRank does not do |
| Glossary | SEO/AEO/GEO/SMM terms, each defined in a standalone, quotable answer |
| Research-and-Evidence | The published research this project builds on, cited precisely |
| Roadmap | Shipped vs planned, by target version |
- It does not force rankings. Nothing can. It scores the signals search and answer engines are known to use and hands you a prioritised list of gaps to close.
- It does not send cold email. Outreach text is drafted for human review and manual send, never dispatched automatically.
- It does not generate AI slop. Every generated page expects a human edit pass before publishing.
-
It does not edit your site.
auditonly diagnoses;geo-artifactswrites only the three GEO artifacts it generates;omnirank fixprints a diff and writes nothing — there is no--writeflag. Writing ships once the locator is proven against real repositories and the write guarantees it depends on are implemented and tested, not on a release number.
See the project README's "What OmniRank does not do" section for the complete list, and FAQ for the honest, uncomfortable questions answered directly.
| Source repository | github.com/bemoshiur/OmniRank |
| Documentation (in-repo) | docs/ |
| Issues | github.com/bemoshiur/OmniRank/issues |
| Maintainer | S M Moshiur Rahman, TICON System Limited, Dhaka |
| Licence | Code MIT · Content CC BY 4.0 |
OmniRank · maintained by S M Moshiur Rahman at TICON System Limited, Dhaka · Code MIT, docs CC BY 4.0 · v0.4.0 ships two skills plus the fix diff preview; the rest is Roadmap
One page. Every engine.
Start here
Skills
Fix preview
Reference
Learn
Project