SEO · Technical SEO
The Best Prompt for a Technical SEO Audit
The best prompt for a technical SEO audit makes the model work from evidence instead of a generic checklist. This prompt takes your crawl export, key URLs and any Search Console notes, checks crawling, indexing, canonicalization, redirects, rendering and performance in that order, and requires every finding to quote the rows it is based on. You get a prioritized issue table with fixes and verification steps, plus a list of what the data could not show.
Technical SEO Audit Prompt
Reviews crawl exports, URL lists and Search Console notes you supply, and returns evidence-backed findings ranked by impact with a fix and a check for each.
- Works with
- ChatGPT, Claude, Gemini
- Difficulty
- Advanced
- Complexity
- Multi-part reply
- Variables
- 6
- Version
- 1.0
Customize this prompt
Fill in what you know. Anything left blank stays as a [bracketed placeholder]. Nothing you type leaves your browser.
6 variables · fields marked * matter most
# Role You are a technical SEO consultant auditing a site from exported data. You have not crawled the site and cannot fetch URLs in this conversation; everything you conclude must come from what I paste below. # Site - Site, platform and size: [Site, platform and size] - Why this audit is happening: [Reason for the audit] - Templates or URLs that matter most: [Priority templates or URLs] - Constraints on fixes: [Constraints on fixes] <crawl_data> [Crawl data] </crawl_data> <search_console_notes> [Search Console notes] </search_console_notes> # Method First, state in two or three lines what the data contains (columns, row count, URL types) and what it lacks. Then check these areas in order, skipping any the data cannot speak to: 1. Crawl access: robots.txt rules, status codes, server errors, redirect chains and loops. 2. Indexing signals: noindex directives, canonical tags, and conflicts between them, redirects, sitemaps and internal links. 3. Duplication: parameter, trailing-slash, protocol and host variants; near-identical titles across indexable URLs. 4. Discovery: sitemap coverage, click depth, pages with few or no internal links. 5. Rendering: content or links that appear to depend on JavaScript. 6. Mobile and page experience: use Core Web Vitals only if I supplied field data. 7. Structured data and international tags, if present in the data. # Rules - Every finding cites evidence: the column values and up to three example URLs from my data. No evidence, no finding. - Mark each finding CONFIRMED (the data shows it) or SUSPECTED (the pattern suggests it; say what would confirm it). - Group by cause, not by URL. One template bug affecting many URLs is one finding with a count. - Do not repeat tool warnings as problems unless you can explain the effect on crawling, indexing or users. - Keep these distinct: a robots.txt disallow stops crawling, not indexing, and a noindex only works if the page can be crawled. - Do not invent URLs, counts, scores or metrics, and do not predict ranking or traffic gains. # Output format 1. Data summary 2. Findings table: Issue | Status | Evidence | URLs affected | Why it matters | Fix | How to verify | Priority (P1 to P3) 3. Fix order: the first five actions, respecting my constraints 4. Not checkable from this data: what to export or test next
Use it when you are
- Making sense of a large crawler export before writing tickets for developers
- Investigating why pages are missing from the index after a migration or redesign
- Reviewing a set of templates for canonical, noindex and redirect conflicts
- Turning Search Console indexing report notes into a prioritized fix list
Why this prompt works
No evidence, no finding
Generic audits list every issue a site could have. Requiring column values and example URLs for each row means a finding exists only if your export supports it. It also makes the output checkable: you can open the cited URLs and confirm the pattern before anyone writes a ticket.
The model is told what it has not done
The role line states that the site has not been crawled and URLs cannot be fetched. Without that, models tend to describe pages as if they had loaded them. The opening data summary reinforces the point by making the model describe the export before interpreting it.
The order follows how a page reaches the index
Crawl access comes before indexing signals, which come before duplication and discovery. A blocked or erroring URL makes later checks on it irrelevant, so working in this order keeps the model from recommending canonical fixes on pages that cannot be crawled in the first place.
Two commonly confused mechanisms are spelled out
Google's documentation separates blocking crawling from preventing indexing, and mixing them up leads to fixes that backfire, such as disallowing a page that carries a noindex tag. Stating the distinction inside the prompt keeps recommendations consistent with how those directives behave.
Causes are grouped and gaps are listed
A template bug appearing on hundreds of URLs is reported once with a count, which matches how developers fix things. The closing section on what the data could not show stops silence from being read as a clean bill of health.
How to use it
- Run a crawl with your usual crawler and export the internal URL report with status code, indexability, canonical, meta robots, title, inlinks and depth columns.
- If the export is large, filter it to the section or template with the problem, and include a sample of healthy URLs for comparison.
- Paste the robots.txt file and the sitemap index into the crawl data field along with the export rows.
- Add Search Console details: the reasons and counts from the page indexing report, and URL Inspection output for two or three affected pages.
- Open the example URLs for each P1 finding and confirm the issue in the page source or with URL Inspection before assigning work.
- Use section 4 to decide what to export next, then rerun the prompt with the extra data.
AI model compatibility
| Model | Status | Notes |
|---|---|---|
| ChatGPT | Expected to work | For exports too long to paste, attach the CSV and ask the model to report the column names and row count before it audits, so you can confirm it read the whole file. |
| Claude | Expected to work | The crawl_data and search_console_notes tags keep pasted exports separate from instructions, as Anthropic's prompting guidance recommends. Leave a block empty rather than deleting it. |
| Gemini | Expected to work | Keep the numbered method intact. If the reply covers only some areas, ask it to continue from the next numbered step. |
“Expected to work” means the prompt uses plain, model-independent structure and has been reviewed for that — not that it has been run on that model. A model is marked Tested only when a test record is published below.
Worked example
Scenario: An illustrative case: a SaaS company whose new blog posts stopped appearing in search after a framework migration.
# Role You are a technical SEO consultant auditing a site from exported data. You have not crawled the site and cannot fetch URLs in this conversation; everything you conclude must come from what I paste below. # Site - Site, platform and size: B2B SaaS marketing site rebuilt on Next.js, about 1,200 URLs - Why this audit is happening: Blog posts published since the migration are not being indexed - Templates or URLs that matter most: /blog/[slug] template, /blog/ listing pages - Constraints on fixes: One front-end developer; fixes must ship within the current sprint <crawl_data> Crawler export filtered to /blog/ with columns URL, status, indexability, canonical, meta robots, inlinks, depth; robots.txt contents; sitemap index </crawl_data> <search_console_notes> Page indexing report shows a growing count under 'Alternate page with proper canonical tag' for blog URLs; URL Inspection for two posts pasted </search_console_notes> # Method First, state in two or three lines what the data contains (columns, row count, URL types) and what it lacks. Then check these areas in order, skipping any the data cannot speak to: 1. Crawl access: robots.txt rules, status codes, server errors, redirect chains and loops. 2. Indexing signals: noindex directives, canonical tags, and conflicts between them, redirects, sitemaps and internal links. 3. Duplication: parameter, trailing-slash, protocol and host variants; near-identical titles across indexable URLs. 4. Discovery: sitemap coverage, click depth, pages with few or no internal links. 5. Rendering: content or links that appear to depend on JavaScript. 6. Mobile and page experience: use Core Web Vitals only if I supplied field data. 7. Structured data and international tags, if present in the data. # Rules - Every finding cites evidence: the column values and up to three example URLs from my data. No evidence, no finding. - Mark each finding CONFIRMED (the data shows it) or SUSPECTED (the pattern suggests it; say what would confirm it). - Group by cause, not by URL. One template bug affecting many URLs is one finding with a count. - Do not repeat tool warnings as problems unless you can explain the effect on crawling, indexing or users. - Keep these distinct: a robots.txt disallow stops crawling, not indexing, and a noindex only works if the page can be crawled. - Do not invent URLs, counts, scores or metrics, and do not predict ranking or traffic gains. # Output format 1. Data summary 2. Findings table: Issue | Status | Evidence | URLs affected | Why it matters | Fix | How to verify | Priority (P1 to P3) 3. Fix order: the first five actions, respecting my constraints 4. Not checkable from this data: what to export or test next
What a good response should contain
- A short data summary noting which columns are present and that no Core Web Vitals field data was supplied
- Findings grouped by template, each quoting canonical or meta robots values from the export with example URLs and a count
- A clear CONFIRMED or SUSPECTED status on each row, with the test that would confirm suspected ones
- A fix order limited to what one developer can do in a sprint
- A list of unchecked areas, such as rendering and server logs, with the export needed for each
This is an illustrative scenario showing how to fill in the prompt and what to look for. It is not a recorded model output. Recorded outputs will be published here once this prompt has a test record.
Testing and editorial review
Status: Untested. Reviewed for structure and clarity by the editorial team. No recorded model test yet.
No test record has been published for this prompt yet. When it is tested, this section will show the model and version, the date, the inputs, the actual output and notes against our seven-point rubric. We do not publish numerical scores.
| Author | TheBestPromptFor Editorial Team — The editorial team writes, reviews and maintains the prompts and guides on TheBestPromptFor. Prompts are drafted with AI assistance and reviewed against published editorial standards. |
|---|---|
| Published | November 15, 2026 |
| Last reviewed | November 15, 2026 |
| Last tested | Not yet tested |
| Version history |
|
Limitations and things to check
- The audit is only as complete as the export. Issues outside the pasted data will not appear.
- The model cannot fetch pages, render JavaScript or read server logs, so rendering and crawl-rate findings stay suspected until you test them.
- Counts are read from pasted text and can be miscounted on large exports. Confirm totals in your crawler or spreadsheet.
- Fixing technical issues removes obstacles; it does not guarantee indexing or better rankings.
- Platform-specific fix instructions may not match your CMS or framework version. Check them against its documentation.
Alternative prompts
SEO
On-Page SEO Review Prompt
Reviews one existing page against its target query and returns specific before-and-after edits to the title, headings, opening, coverage, links and images.
- ChatGPT
- Claude
- Gemini
SEO
Internal Linking Plan Prompt
Builds an internal link plan from your page inventory: topic groups, hub pages and specific source-to-target links with anchor text, using only real URLs.
- ChatGPT
- Claude
- Gemini
SEO
Schema Markup (JSON-LD) Prompt
Generates JSON-LD that mirrors what is visibly on your page, maps every property to its source text and refuses to add ratings or details that are not there.
- ChatGPT
- Claude
- Gemini
Web Development
Core Web Vitals Diagnosis Prompt
Works from your own field and lab data to rank likely causes of poor LCP, INP or CLS, with a way to confirm each one before you change code.
- ChatGPT
- Claude
- Gemini
- Cursor
Related resources
Guide
How to Improve AI Responses
A diagnostic approach to weak AI answers: name the fault, trace it to the gap in your prompt, then follow up precisely or rewrite and start again.
Technical guide
Prompt Chaining: Breaking a Task Into Linked Prompts
How to split a large task into a sequence of focused prompts, design the handoffs between them, and debug the chain when a step goes wrong.
Frequently asked questions
Can the model crawl my site for me?
Not from a pasted prompt. Some products can browse individual pages, but that is not a site crawl and misses status codes, canonicals and link data at scale. Run a crawler, export the results and paste them in; the prompt is built to analyze that export.
What should the crawl export include?
At minimum: URL, status code, indexability, canonical URL, meta robots, title, number of internal links pointing in, and crawl depth. Redirect targets, hreflang and structured data columns help if those areas are in scope. Add robots.txt and sitemap contents as plain text.
Why are Core Web Vitals only covered if I supply data?
Core Web Vitals are measured from real user visits, and the model has no access to those measurements. If you paste figures from the Search Console report or another field data source, the prompt will use them; otherwise it lists performance as not checkable.
Sources and references
- Google Search Essentials — Google Search Central
- SEO Starter Guide — Google Search Central
- Web Vitals — web.dev
Was this prompt useful?
No account needed. Do not include personal information.