SEO checks
A short read of every row on AI Recommendations. Fail means we saw it. Not checked means we never measured it.
I kept the checklist short on purpose. SEO checklists on the internet run to a hundred items, and most of them we cannot see from your Search Console property plus a fetch of the page. AI Recommendations only marks what that sync actually measured.
Three states. Pass: we looked, and the problem was not there. Fail: we looked, and it was. Not checked: we did not look. A missing measurement is never a pass. Live HTML is a sample of up to 50 URLs, not a crawl of the whole site. The Search Console page covers how the connection and the sample work.
Crawl and index
Sitemap. A sitemap is a list of URLs you want crawled. Google’s sitemap overview is the reference. We flag a missing sitemap, one Search Console is not using, or a URL people already visit that never made the list.
Index coverage. Google crawled a URL and did not index it, or the page gets EventDash visits and zero search impressions. Google still decides what is indexed. The sample is the same URL Inspection pass described on the Search Console page. The long version of the traffic case is pages with traffic Google never indexed.
Stale crawl. The last crawl Search Console reports is older than 90 days. That 90 days is our line. Google does not publish a rule that says recrawl by day 90.
Noindex. A URL that gets traffic is marked noindex. Google documents how that tag keeps a page out of the index in block indexing.
Canonical. The canonical points at a different URL. Use that when two URLs are the same page. Google’s guide is consolidate duplicate URLs. A glossary definition and its long-form post are not duplicates. We leave both indexable.
On-page
Title. Missing, or shorter than 15 characters or longer than 65, and only when the URL already has impressions or is a high-traffic page. A quiet page with a long title does not get a warning. Google may rewrite a title that does not describe the page. Their note is influences on title links. We do not write a new title for you.
Description. The meta description is missing. Google can write the snippet from the page anyway. See snippets.
H1. The fetched HTML has no H1.
Duplicate titles. Two sampled URLs share a title. Same Google title doc: the title should describe that URL, not a neighbor.
Thin content. Under 150 visible words on a URL that already has search impressions, or on a high-traffic page. A glossary definition of at least 100 words is enough. Google’s page on this is about being helpful, not about hitting a word count: creating helpful content.
Schema. No JSON-LD. Structured data can make a page eligible for a rich result. It is not a promise you will rank. Google explains the limit in intro to structured data.
Internal links. Too few links to other pages on the same site. Google can only follow links it can crawl: crawlable links.
Queries
These rows need Search Console and the HTML sample. If either one is missing, they stay not checked.
Cannibalization. Two indexable URLs show up for one query. If they are the same document, Google’s consolidate guide is the right move. A short definition and a long post about the same idea are not that case. Both stay indexable, and we do not tell you to point rel=canonical from one at the other.
Title mismatch. The title does not cover the query that brings the impressions. Close wording can still count. We do not invent a title, and we do not pull keywords from a database we do not have.
Striking distance. A query is close to page 1 and the page is thin for it. The fix is more depth on the URL you already have. We do not open a new page for a query that already ranks somewhere.
Clicks with no goal. Search clicks land, and none of them are tied to a signup or another goal. I wrote that up as clicks with no signup.
AI search
llms.txt. The file at /llms.txt is missing. llmstxt.org is a proposal for a short map of a site that a model can read. Google does not treat that file as a ranking signal. Our own notes for agents live at For agents.
AI crawler blocks. robots.txt blocks a known AI crawler. The format is the same one Google documents in robots.txt intro. This is access. It is not a count of times an answer cited you. Referral visits from those products are a different report: AI referral traffic.
What we leave off
Backlinks, keyword volume, local packs, and store feeds. If we cannot see it from your property and your HTML, it is not a row. The buyer page for the product is Search Console analytics.