# SEO checks

Plain-language notes for the rows on AI Recommendations. Pass means the latest sync looked and did not find the problem. Fail means it did. Not checked means that measurement never ran. A missing measurement is not a pass.

Live HTML is a sample of up to 50 URLs. Search Console daily totals lag about two days.

- Sitemap: missing, unused, or a visited URL left off the list
- Index coverage: crawled and not indexed, or visits with zero search impressions
- Stale crawl: last reported crawl older than 90 days (EventDash's line, not a Google rule)
- Noindex: a URL with traffic is marked noindex
- Canonical: the canonical points at a different URL. A glossary definition and its blog stay both indexable
- Title: missing, or under 15 or over 65 characters, only when the URL has search demand
- Description: meta description missing
- H1: no H1
- Duplicate titles: two sampled URLs share a title
- Thin content: under 150 visible words when the URL already has impressions. A glossary definition of at least 100 words is enough
- Schema: no JSON-LD
- Internal links: too few links to other pages on the site
- Cannibalization: two indexable URLs for one query. Do not point rel=canonical between a glossary and its long-form
- Title mismatch: the title does not cover the query. EventDash does not invent a title
- Striking distance: a query near page 1 needs more depth on the URL that already exists
- Clicks with no goal: search clicks are not tied to a signup or other goal
- llms.txt: /llms.txt is missing. It is a site map for models, not a Google ranking signal
- AI crawler blocks: robots.txt blocks a known AI crawler. That is access, not a citation count

Human docs: https://www.eventda.sh/docs/features/seo-checks
Search Console: https://www.eventda.sh/docs/features/seo
