Features
Site audit and the NeoRank Engine
The site audit summarises the latest finished crawl of the NeoRank Engine, NeoRank's crawler: what it reads, what it checks page by page and how it scores your site.
How the NeoRank Engine crawls
- It identifies itself as
NeoRankBot/1.0 (+https://neorank.ai/bot). - It reads your robots.txt first and honours its rules for every URL. If the file asks for a delay between requests (Crawl-delay), pages are fetched one at a time with that delay.
- It discovers the sitemaps declared in robots.txt and /sitemap.xml (up to five sitemap files followed).
- It does not run JavaScript: it reads the HTML served. A site whose content appears only after JavaScript gets the
CLIENT_RENDEREDwarning. - It reads public pages only: no CAPTCHA bypass, no proxy rotation.
| Crawl type | Pages |
|---|---|
| Quick | 12 pages, whatever the plan |
| Full | Up to your plan's pages-per-audit cap |
Crawled pages also count against a monthly page quota: they are reserved before the crawl and unused pages are returned. Caps: see the “Plan usage” panel and the Plans and billing page.
The checks
| Code | Severity | Trigger |
|---|---|---|
TITLE_MISSING | Error | No title tag |
TITLE_LENGTH | Warning | Title outside 15 to 65 characters |
TITLE_DUPLICATE | Warning | Same title on several pages |
META_DESCRIPTION_MISSING | Warning | No meta description |
META_DESCRIPTION_LENGTH | Notice | Description outside 50 to 170 characters |
H1_MISSING / H1_MULTIPLE | Warning / Notice | No H1, or several |
CANONICAL_MISSING | Warning | No canonical |
CANONICAL_INVALID | Error | Unreadable canonical |
CANONICAL_CROSS_ORIGIN | Warning | Canonical to another domain |
NOINDEX | Notice | Page excluded from the index by the robots directive |
HTML_LANG_MISSING | Notice | Language not declared |
VIEWPORT_MISSING | Warning | No viewport tag (mobile) |
IMAGE_ALT_MISSING | Warning | Image without an alt attribute |
HREFLANG_INVALID / HREFLANG_DUPLICATE | Warning / Notice | Invalid or duplicated hreflang |
JSON_LD_INVALID | Error | JSON-LD block that does not parse (syntax check, not Schema.org conformance) |
INTERNAL_LINKS_MISSING | Notice | Page with no crawlable internal link |
CLIENT_RENDERED | Warning | Content rendered in the browser |
HTTP_ERROR | Error | HTTP status 400 or above |
CONTENT_EXACT_DUPLICATE | Warning | Content identical to another page's |
ORPHAN_PAGE_CANDIDATE | Notice | In the sitemap, but no internal link to it observed |
The health score
Each page starts at 100 and loses 15 points per error, 8 per warning and 3 per notice, never going below 0. The site score is the rounded average of the page scores. “Overall health” shows that score out of 100 and the change since the previous crawl:
| Score | Status |
|---|---|
| 80 and above | Healthy index |
| 50 to 79 | To watch |
| Below 50 | Critical |
Core Web Vitals
They come from the Google PageSpeed Insights API: field data (CrUX) when Google has it, otherwise a lab measurement (Lighthouse), with the measured URL and date. This capture is enabled or not depending on the platform; without a capture, the card shows “Not measured”.
The audit views
- Site audit: overall health, findings by severity, engine readings (JSON-LD, words, links, language), AI crawler access, recommendations.
- Issues and alerts: every issue with its finding count, “New” (change since the previous crawl) and “Trend”. Filters by category (AI search, Crawlability, Content, Meta tags) and severity. CSV export.
- Crawled pages: every URL with status, response time, internal inbound links and issues; the page report also shows the JSON-LD, answer candidates, question / answer pairs and the heading outline.
- Robots directives, simulator and generator: robots.txt reading for eight AI crawlers, testing a path, a proposed file. Nothing is published on your site.
Fix, then verify
- Open Resolve on an issue: impact, why, where, before / after, steps and affected pages (CSV export).
- On paid plans, “Generate the fix with AI” proposes a fix marked “AI-generated · to check”; it uses your AI quota.
- Fix and publish.
- Click “Run the crawl again” (paid plans, monthly page quota): the issue disappears when the next crawl no longer finds it.