GEO tools
Page Citability Check
Paste one URL. This checks whether the crawlers that answer questions can read the page at all, and whether what they read can be lifted out as an answer. It does not run JavaScript, and it says so on every row where that matters.
Page URL
One page, not a whole site. The page has to return 200 and be HTML.
Fill this in and the opening-answer row is checked against it. Leave it empty and that row reports itself as not applicable rather than failing.
Advisory rows are shown but never counted: training-crawler access and /llms.txt do not decide whether an answer can cite this page.
What this check does not do
- It does not run JavaScript. A page whose copy only appears after hydration is reported as HTML without copy, because that is what a crawler that does not render sees.
- It reads one page plus that host's robots.txt and llms.txt. It does not crawl the site and does not fetch the canonical target.
- It says nothing about ranking, traffic or whether any model has actually cited the page. It describes the page, not the market.
- Training-crawler rows and /llms.txt are shown but not counted, because neither decides whether an answer can cite this page.
- Two rows match patterns rather than reading meaning: the opening answer and the quantified conditions. They are marked, and they are worth looking at rather than obeying.
- It reads a bounded slice of the page. When a document exceeds it, every check that would report an absence says it could not read instead.
Questions about this check
- Does passing every row mean a model will cite the page?
- No. These rows describe access and shape: whether a crawler is allowed in, whether the copy is in the HTML, and whether a claim can be lifted out. Whether any model actually answers with your page depends on the question asked and on what else exists on the web. This tool never claims otherwise.
- Why is GPTBot shown but not counted?
- GPTBot and Google-Extended govern training-corpus collection. The crawlers that fetch a page in order to answer with it are OAI-SearchBot, ChatGPT-User, PerplexityBot and ClaudeBot, and those are the four rows that count. Blocking GPTBot does not stop you being cited.
- Why does a missing robots.txt pass?
- RFC 9309 treats an unavailable robots.txt as full allowance, so a site with no file is not blocking anyone. An unreachable robots.txt, such as a 500, is different: the site's rules are unknown, and that row says so rather than guessing.
- The page looks fine in my browser but the HTML row failed.
- Your browser runs JavaScript. This check does not, and neither do most crawlers when they first fetch a page. If the copy only exists after hydration, the row is telling you what a non-rendering reader receives.
Where to go next
This check answers one question about one page. The rest is elsewhere.