Audit a whole site by page type, so the fix lands on the template
A prompt that audits a site one page type at a time. Home, category, product and article each get their own checks, and every finding names the template.
- Works in
- ChatGPT, Claude, Gemini
- You need
- Your page types, with three to five example URLs each · The head HTML from one representative URL per type
- Written for
- chatgpt prompts for website seo
Scored by our own engine
This page, run through the audit we sell. Measured 4 August 2026.

A website is not a large number of pages. It is five or six templates, repeated. The prompt below audits the templates, one page type at a time, with a different set of checks for each and a rule that every finding has to name the place the fix goes.
The unit of work is the template, not the page
A site with 4,000 URLs usually has six page types. Audit the six and you have audited the site. Audit a sample of the 4,000 and you get a list sorted by how common a defect is, which is almost never the same as how much it costs you.
This is why per URL audit output is so hard to act on. Two hundred rows describing the same missing canonical is one ticket written two hundred times, and the engineer who opens it has to do the grouping you skipped.
Different page types get different checks
A product page with no price or availability in its markup is a real finding. An article with none is not. Run one checklist across every type and you generate false positives on the types the check was never meant for, then spend a meeting explaining that the 180 article pages flagged for missing product schema are fine.
Rule 2 makes the model declare, per type, which checks it is applying and which it is skipping. The skipped list is the useful half. When it says it skipped hreflang on your product template because you told it the site is single language, you know that decision was made rather than missed.
Three samples, or it is not a pattern
One sample tells you about one page. Three tells you whether the template does it every time, which is what decides whether the fix is one edit or four hundred. Sample from different periods, because a template that was corrected two years ago leaves the old markup on every page published before the change, and that is a backfill job rather than a template job.
Anything the model marks unconfirmed is a request for two more samples, not a finding you can brief. Once a pattern holds, check the representative URL of your money making type in the canonical checker before work starts, because a category template that canonicalises its product pages to itself is worth more than everything else on the list. The general crawl export audit is the companion to this one: that reads what a crawler found, this decides what should have been checked.
You are a technical SEO auditor working on a whole website. I am going to
give you my page types and a few sample pages from each. Audit the site one
page type at a time. The thing you are auditing is the template, not the
individual page.
Rules you must follow:
1. Treat each page type as the unit of work. A finding belongs to a page
type, and you say which template or component would have to change. Only
report a finding against a single URL when it is genuinely unique to that
URL, and then say so explicitly.
2. Different page types get different checks. Before auditing a type, list
the checks that apply to it and the checks you are deliberately skipping,
with one clause on why. A product page with no price or availability in
its markup is a finding. An article with none is not.
3. A pattern needs at least three samples. With one or two samples, label the
finding "unconfirmed pattern" and say it may be one page rather than the
template. Do not upgrade it because it looks likely.
4. Report only what is in the samples I pasted. You cannot crawl my site, you
cannot fetch a URL, you cannot see my response headers unless I pasted
them, and you cannot see Search Console. Anything that would need one of
those goes in the "Send me next" list at the end, named as the artefact
you need.
5. Do not invent page types. Audit the types I listed and nothing else. If
the samples suggest a type I did not name, say so in one line rather than
opening a section for it.
6. Do not estimate traffic, rankings, revenue or percentage uplift. Severity
is expressed as which page type is affected and roughly how many URLs that
type covers, using the count I gave you.
7. Anything wrong on every page type is a site wide finding and belongs once,
at the end. Do not repeat it inside each type.
Output format. One block per page type, in this exact shape, no table:
PAGE TYPE: name, number of samples, approximate URLs of this type
Checks that apply:
Checks skipped, and why:
Confirmed on every sample:
Varies between samples:
Unconfirmed pattern (fewer than three samples):
Fix at:
Then two closing sections:
SITE WIDE: findings true of every type, with the single place to fix each.
SEND ME NEXT: the specific artefact that would settle each thing you could
not determine, one line each, ordered by which page type it unblocks.
Constraints:
- Every finding quotes the value it came from. If you cannot quote it from
what I pasted, it is not a finding.
- Do not name a template or component I did not tell you about. Write
"unknown, I only have URLs" instead of guessing a file name.
- If two samples of the same type disagree, report both values rather than
picking the one that makes a cleaner finding.
My page types and counts: [LIST EACH PAGE TYPE, WITH ROUGHLY HOW MANY URLS]
Which type makes money: [ONE SENTENCE]
The samples: [FOR EACH TYPE, PASTE THE HEAD HTML OF ONE URL AND THE URLS OF THE OTHERS]What to change
Everything in square brackets is yours to replace. Nothing else needs editing.
[LIST EACH PAGE TYPE, WITH ROUGHLY HOW MANY URLS]- Write it as "home (1), category (40), product (3,200), article (180), location (12)". The counts are what turn a finding into a size. Without them a template bug on twelve location pages reads the same as the identical bug on three thousand product pages, and the model has nothing to order the output by.
[ONE SENTENCE]- Which page type takes the money. "Product pages convert, the blog is top of funnel" is enough. This is what stops the audit leading with a heading structure problem on the article template while the product template quietly canonicalises to the category page.
[FOR EACH TYPE, PASTE THE HEAD HTML OF ONE URL AND THE URLS OF THE OTHERS]- View source on one representative URL per type and paste everything between the opening head tag and the closing one, then list the other sample URLs beneath it. The head is where nearly every template level defect is visible: title, canonical, meta robots, hreflang, JSON-LD. Three to five samples per type is the number rule 3 is written against.
How to run it
- 01Write down your page types before you touch a crawler
Open your sitemap or your CMS and list the types by hand: home, category, product, article, location, whatever your site actually has. Most sites have five to eight, and the list is usually shorter than people expect. This list is the audit plan, and getting it wrong is the only mistake here that cannot be corrected later in the process.
- 02Pick samples that are not all the same age
For each type, take three to five URLs from different periods: one of the oldest, one recent, one in the middle. Templates change over time and old pages often carry markup the current template no longer emits, which is exactly the difference rule 3 is looking for when it separates a confirmed pattern from a varying one.
- 03Paste the head HTML, not the whole page
View source on the representative URL and copy the head element only. The full document is mostly body content the model does not need and will spend its attention on. If you are auditing product pages, keep any JSON-LD block that sits in the body too, since that is where a lot of platforms put it.
- 04Run one page type per conversation
Send the prompt with a single page type filled in, read the block, then start again for the next type. Sending all five at once produces shorter blocks for every type and the later ones get noticeably thinner. The site wide section can be assembled at the end from what repeated across the runs.
- 05Read the unconfirmed patterns as a list of things to sample again
Anything labelled unconfirmed is not a finding yet, it is a request for two more samples. Go back, pull two more URLs of that type, and rerun just that block. This is faster than it sounds and it is the difference between briefing an engineer on a template change and briefing them on a coincidence.
- 06Verify one representative URL per type on the live page
Take the highest severity finding for the money making type and check that URL in the canonical checker before anybody starts work. Category and product templates are where duplicate URLs and wrong canonicals actually live, and a canonical pointing at the wrong page is the one finding on this list that is worth more than all the others combined.
Questions people ask
What are the best ChatGPT prompts for website SEO?
Ones that audit a template rather than a page. A website is a handful of page types repeated, so a prompt that treats every URL as its own case produces a list sorted by how common a defect is rather than by what has to change. Give the model your page types, three samples of each, and a rule that findings must name a template.
Why audit by page type instead of crawling everything?
Because the fix happens in a template either way. A crawl of 4,000 URLs and an audit of the six templates behind them produce the same work order, except the second one is legible. Crawls are still worth running: use them to find which URLs belong to which type, then audit the types.
How many sample pages do I need per page type?
Three at minimum, five is comfortable. With one sample you cannot tell a template defect from a page somebody edited by hand, which is why the prompt marks anything under three as unconfirmed rather than reporting it. Choose samples of different ages, because old pages often carry markup the current template stopped emitting.
Can ChatGPT crawl my website to do this?
No. Most assistants either cannot fetch pages at all or fetch a single URL on request, and none of them crawl a site. Anything an assistant tells you about pages you did not paste was inferred from the ones you did. The prompt handles this by ending with a list of artefacts it needs rather than filling the gap.
Does this replace a crawler like Screaming Frog?
No, it works upstream and downstream of one. The crawler tells you which URLs exist and which are broken. This tells you which template is responsible and what a page of that type should have been checked for in the first place. Our own engine runs 36 checks against a single URL, which is the third piece.
Unsubscribe in one click. We never pass your address on.