Fill in before sending
[site URL][Search Console property][competitor domain, or "none"][country][language code][3 commercial queries][homepage, one service page, one blog post URL][domain][page limit]
Audit my site [site URL] end to end for classic search, answer engines (AEO) and AI search (GEO). My Search Console property: [Search Console property]. Main competitor: [competitor domain, or "none"]. Market: [country], language: [language code]. The 3 searches that bring me the most business: [3 commercial queries]. My most important page templates: [homepage, one service page, one blog post URL]. This is read-only.
Credit rule: before starting, check earlier runs with seo_history and call the reusable ones again with the same arguments. Show me once the list of new calls that will spend credits and get my approval.
Data collection:
1. Run the bundled analysis with seo_full_analysis, passing domain, competitor, location and language. Its AI visibility section measures the single keyword the site ranks for most, which may have nothing to do with my business; do not use that section for scoring, and instead measure my 3 commercial queries with seo_ai_overview and target=[domain]. If references is empty, count the domains of the links inside ai_answer.
2. Run seo_site_crawl with max_pages close to the site's page count (at most [page limit]). It returns a task_id; call it again with the same task_id after 60 to 90 seconds and wait until the summary arrives. Pull the full URL list of an issue with the issue parameter when needed. If the crawl limit does not cover the whole site, say the results are a sample.
3. Read robots.txt, sitemap.xml and llms.txt with site_read_url. Read my template pages with text=true (if truncated is true, again with max_bytes=1000000) and with outline=true. For JSON-LD, read the same pages with max_bytes=1000000 and extract the blocks.
4. Measure the homepage and the service page with seo_audit and strategy='mobile'. For Core Web Vitals use real-user (field) data where it exists, otherwise the lab value, and say which one you used.
5. Use get_report with platform='search_console' and breakdown 'query by impressions' and 'page by impressions' for the last 90 days. Inspect the 10 pages with the most impressions with gsc_inspect_urls. Get the sitemap status with gsc_sitemaps.
6. Remember that different tools can see different versions of the same page: if seo_technical_audit or seo_site_crawl measures a title in a different language from what site_read_url shows, record it as a finding, because the site may be redirecting visitors by country.
Scorecard: six areas, five checks each, each check pass (1) or fail (0). If a check has no data, write "not measured" and drop it from the denominator; never score by guessing.
1. Access and crawlability: robots.txt is open to search-role AI crawlers; key pages return 200 with at most one redirect; no noindex on key pages; the sitemap has no errors and contains the key pages; the main content is visible without JavaScript.
2. Technical health and speed: mobile LCP under 2.5 seconds; CLS under 0.1; INP under 200 ms; no broken pages or broken internal links in the crawl; no duplicate titles or descriptions.
3. Structured data and entity: an Organization or LocalBusiness node exists; nodes are linked by @id; the schema fits the page type (Service, Article, Product); schema facts match the visible text; sameAs URLs work.
4. Quotability of content: the first paragraph of key pages answers the question directly; headings name the topic or question clearly; comparable facts are in a table; a page-specific FAQ exists; there are concrete numbers and dates.
5. Trust signals: the about page is concrete (who, where, since when); contact details are on the site and consistent; posts show an author or publisher; publish and update dates are visible; legal pages are reachable from the footer through static links.
6. Measured AI visibility: cited in Google's AI answer for at least one of the 3 commercial queries; cited for the brand query; llms.txt exists and is accurate; Search Console shows clicks from non-brand queries; if the main competitor is cited on these queries, there is at least one where I am cited too.
Format the output like this. First a five-sentence executive summary. Then the score table: area, score (e.g. 3/5), failed checks. Then the evidence table: area, check, result, evidence (tool name and returned value), affected URLs. Then the fix list: for each item the impact (high, medium, low), the effort (hours, days, weeks) and who does it; high impact and low effort first. At the end, the first three fixes and why they come first. Do not pass judgement on anything that was not measured.
Example result
An example of the output this prompt produces. Its structure comes from the tools' real output; numbers and names are fictional.
Example output (based on a fictional site, not real customer data)
Executive summary. atlaslanguage.example is technically healthy and fast but almost invisible in AI search. It is not cited in Google's AI answer for any of the three commercial queries, while the competitor is cited on two of them. There are two root causes: the schema nodes are not linked and the service pages open with a long introduction instead of a direct answer. The crawl, limited to 120 pages, covered all 120 pages. The first three fixes can be done within a week.
| Area | Score | Failed checks |
|---|
| Access and crawlability | 4/5 | Price table not visible without JavaScript |
| Technical health and speed | 4/4 | INP not measured (no real-user data) |
| Structured data and entity | 2/5 | No @id, schema address differs from visible text, no Service schema |
| Quotability of content | 1/5 | First paragraph does not answer, no table, no FAQ, no dates |
| Trust signals | 3/5 | No author information, no update date |
| Measured AI visibility | 1/5 | No citation on 3 commercial queries, no llms.txt, competitor cited |
| Area | Check | Result | Evidence | Affected URLs |
|---|
| Data | Nodes linked by @id | Fail | site_read_url: 3 JSON-LD blocks, none has an @id | All pages |
| Visibility | Cited on a commercial query | Fail | seo_ai_overview "english course manchester": target_cited false, not in the in-text links either | /courses/english/ |
| Speed | Mobile LCP | Pass | seo_audit: field LCP 2.1 s | / |
First three fixes
1. A 40 to 60 word answer paragraph on the service pages (high impact, a few hours).
2. A single @id graph and Service schema (high impact, one day).
3. Move the price table into the server HTML (medium impact, one day).