AEORank (aeorank.app) is an automated Technical SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO) diagnostic platform combining 62 deterministic rules with the AEORank Semantic Engine (AEO-Sem), live 4-AI citation checks, and automated Weekly Drift Guard monitoring.
Raw pillar weights sum to 115 and normalize to 100.0%: Overall = round(sum(Score_i * w_i) / 115). When semantic evaluation is active on Content & AI pillars, scores blend 70% AEO-Sem typed probabilistic judgment with 30% deterministic checks.
| Key | Evaluation Pillar | Raw Weight | Normalized Share |
|---|---|---|---|
crawl | Crawlability & Indexing | 20 | 17.39% |
onpage | On-Page SEO | 15 | 13.04% |
content | Content Quality | 20 | 17.39% |
links | Links & Architecture | 10 | 8.7% |
structured | Structured Data & Social | 8 | 6.96% |
ai | AI Search & GEO Readiness | 12 | 10.43% |
performance | Performance & Speed | 10 | 8.7% |
security | Security & Trust | 5 | 4.35% |
visibility | Search & AI Visibility | 15 | 13.04% |
curl -X POST "https://aeorank.app/api/v1/audit/sandbox" \
-H "Authorization: Bearer demo" \
-H "Content-Type: application/json" \
-d '{"url": "https://aeorank.app", "lang": "en"}'
GET https://aeorank.app/api/v1/rules?lang=en — Public JSON index of all 62 rules & normalized weights.GET https://aeorank.app/openapi.json — OpenAPI 3.0.3 specification for RapidAPI, Postman & AI Agents.GET https://aeorank.app/.well-known/api-catalog — RFC 9727 Linkset API Catalog.GET https://aeorank.app/llms.txt & /llms-full.txt — AI crawler context indexes.| Code | Rule ID | Pillar | Severity | Scope | Rule Title (English) |
|---|---|---|---|---|---|
AEO-001 | robots_missing | Crawlability & Indexing | low | single_page | Missing robots.txt file |
AEO-002 | robots_blocks_site | Crawlability & Indexing | critical | single_page | robots.txt blocks search crawlers across the site |
AEO-003 | sitemap_missing | Crawlability & Indexing | medium | single_page | XML sitemap not found |
AEO-004 | sitemap_errors | Crawlability & Indexing | medium | single_page | Sitemap is unreachable or contains malformed XML |
AEO-005 | sitemap_bad_urls | Crawlability & Indexing | medium | multi_page_sitemap | Sitemap contains redirecting, broken, or noindex URLs |
AEO-006 | not_in_sitemap | Crawlability & Indexing | low | single_page | Indexable pages missing from XML sitemap |
AEO-007 | http_errors | Crawlability & Indexing | high | single_page | Pages returning HTTP 4xx or 5xx errors |
AEO-008 | broken_internal_links | Links & Architecture | high | single_page | Internal links pointing to broken URLs |
AEO-009 | redirect_chains | Crawlability & Indexing | medium | single_page | Multi-hop redirect chains detected |
AEO-010 | links_to_redirects | Links & Architecture | low | single_page | Internal links pointing to redirecting URLs |
AEO-011 | noindex | Crawlability & Indexing | high | single_page | Pages excluded from search by noindex directive |
AEO-012 | canonical_missing | Crawlability & Indexing | low | single_page | Page missing rel=canonical tag |
AEO-013 | canonical_elsewhere | Crawlability & Indexing | medium | single_page | Canonical tag points to a different URL |
AEO-014 | canonical_broken | Crawlability & Indexing | high | single_page | Canonical target URL redirects or returns an error |
AEO-015 | soft_404 | Crawlability & Indexing | medium | single_page | Non-existent URL returns HTTP 200 (Soft 404) |
AEO-016 | host_temporary_redirect | Crawlability & Indexing | low | single_page | Domain or HTTPS redirect uses temporary status (302/307) |
AEO-017 | host_variant | Crawlability & Indexing | medium | single_page | Both www and non-www host variants resolve independently |
AEO-018 | no_https | Security & Trust | high | single_page | Site does not enforce HTTPS or HTTP fails to redirect to HTTPS |
AEO-019 | deep_pages | Links & Architecture | low | multi_page_sitemap | Important pages buried more than 3 clicks from the homepage |
AEO-020 | orphan_pages | Links & Architecture | medium | multi_page_sitemap | Sitemap pages with zero incoming internal links (Orphan pages) |
AEO-021 | js_dependent | Crawlability & Indexing | medium | single_page | Primary content requires client-side JavaScript rendering |
AEO-022 | title_missing | On-Page SEO | high | single_page | Page is missing a <title> tag |
AEO-023 | title_duplicate | On-Page SEO | medium | multi_page_sitemap | Duplicate <title> tags across multiple pages |
AEO-024 | title_length | On-Page SEO | low | single_page | <title> tag is too short or too long |
AEO-025 | multiple_titles | On-Page SEO | low | single_page | Multiple <title> tags found on the same page |
AEO-026 | meta_missing | On-Page SEO | medium | single_page | Page is missing a meta description |
AEO-027 | meta_duplicate | On-Page SEO | low | multi_page_sitemap | Duplicate meta descriptions across multiple pages |
AEO-028 | meta_length | On-Page SEO | low | single_page | Meta description is too short or too long |
AEO-029 | h1_missing | On-Page SEO | medium | single_page | Page is missing a primary H1 heading |
AEO-030 | h1_multiple | On-Page SEO | low | single_page | Page contains multiple H1 headings |
AEO-031 | heading_skips | On-Page SEO | low | single_page | Heading hierarchy skips levels (e.g. H1 directly to H3) |
AEO-032 | lang_missing | On-Page SEO | low | single_page | Missing HTML lang attribute on <html> |
AEO-033 | viewport_missing | On-Page SEO | high | single_page | Missing mobile meta viewport tag |
AEO-034 | thin_content | Content Quality | medium | single_page | Page has very thin body content |
AEO-035 | duplicate_content | Content Quality | medium | multi_page_sitemap | Pages with near-identical main body text |
AEO-036 | images_alt | On-Page SEO | medium | single_page | Images missing descriptive alt text |
AEO-037 | images_dimensions | Performance & Speed | low | single_page | Images missing explicit width and height attributes |
AEO-038 | lcp_image_lazy | Performance & Speed | low | single_page | Above-the-fold hero image uses loading="lazy" |
AEO-039 | no_structured_data | Structured Data & Social | medium | single_page | Homepage has no JSON-LD structured data |
AEO-040 | jsonld_errors | Structured Data & Social | high | single_page | Invalid JSON-LD syntax that cannot be parsed |
AEO-041 | schema_required | Structured Data & Social | low | single_page | Structured data is missing required Rich Result properties |
AEO-042 | schema_website_missing | Structured Data & Social | low | single_page | Homepage missing WebSite schema or Site Name |
AEO-043 | faq_rich_result_limited | Structured Data & Social | info | single_page | FAQPage schema note: Google restricts FAQ Rich Results to gov/health sites |
AEO-044 | og_missing | Structured Data & Social | low | single_page | Missing Open Graph tags (og:title or og:image) |
AEO-045 | hreflang_issues | Structured Data & Social | medium | single_page | Incomplete or non-reciprocal hreflang annotations |
AEO-046 | ai_bots_blocked | AI Search & GEO Readiness | info | single_page | AI search crawlers are blocked in robots.txt |
AEO-047 | llms_txt_missing | AI Search & GEO Readiness | info | single_page | No /llms.txt context file found at the root |
AEO-048 | llms_txt_no_links | AI Search & GEO Readiness | info | single_page | /llms.txt contains no Markdown links to core pages |
AEO-049 | api_catalog_invalid_mime | AI Search & GEO Readiness | info | single_page | /.well-known/api-catalog does not return application/linkset+json |
AEO-050 | schema_sameas_missing | AI Search & GEO Readiness | low | single_page | Primary entity schema is missing external sameAs verification links |
AEO-051 | entity_name_inconsistent | AI Search & GEO Readiness | low | single_page | Brand entity name is inconsistent across Schema, Open Graph, and <title> |
AEO-052 | thin_sections_for_ai | AI Search & GEO Readiness | info | single_page | Sub-sections (H2/H3) are too brief for standalone AI passage citation |
AEO-053 | hsts_missing | Security & Trust | low | single_page | Missing Strict-Transport-Security (HSTS) header |
AEO-054 | security_headers | Security & Trust | low | single_page | Missing baseline HTTP security headers |
AEO-055 | mixed_content | Security & Trust | high | single_page | HTTPS page loads insecure HTTP subresources (Mixed Content) |
AEO-056 | favicon_missing | Security & Trust | low | single_page | Missing favicon declaration on homepage |
AEO-057 | slow_ttfb | Performance & Speed | medium | single_page | Slow server Time to First Byte (TTFB > 800ms) |
AEO-058 | heavy_html | Performance & Speed | low | single_page | HTML document payload exceeds 500 KB |
AEO-059 | generic_anchors | Links & Architecture | low | single_page | Internal links use non-descriptive anchor text ('click here', 'read more') |
AEO-060 | broken_external_links | Links & Architecture | low | single_page | Outbound external links return HTTP errors |
PFA-01 | protected_field_year_conflict | On-Page SEO | medium | single_page | Stale year in <title> or H1 conflicts with newer year in body content |
CFA-02 | sitemap_uniform_lastmod | Crawlability & Indexing | low | single_page | All sitemap URLs share an identical <lastmod> timestamp |