Your AI Junior SEO Analyst: A Working Prompt Library for Semantics, Technical Audits, and Content Strategy in 2026
Most SEOs I talk to fall into one of two camps. Either they paste a keyword dump into ChatGPT, get back a confident-sounding wall of text, and quietly discover two weeks later that half the clusters were invented — or they refuse to touch LLMs at all because "it hallucinates." Both camps are leaving time on the table.
The mental model that actually works in 2026 is this: an LLM is a junior SEO analyst who has read an enormous amount of the public web, types faster than any human, and never gets bored of formatting tables. It is also an analyst who will cheerfully make things up, cannot see your server logs, and has no idea which of your pages actually converts. So you delegate the routine — clustering, drafting, checklists, formatting — and you keep the strategy, the judgment calls, and the final verification for yourself.
What follows is a working library of prompts organized from basic to advanced, each with the task it solves, the exact prompt, and what a good result looks like. Everything assumes you feed the model real data you already have (Search Console exports, Screaming Frog crawls, keyword tool CSVs) rather than asking it to recall facts about your site. That single habit removes most hallucination risk.
Basic tier: turning raw exports into usable structure
1. Keyword intent classification at scale
Task: Sort a messy keyword list into informational / commercial / transactional / navigational buckets before you touch clustering.
Prompt:
You are an SEO analyst. Below is a list of search queries collected from
Google Search Console for a B2B SaaS site. For each query, classify intent as:
informational, commercial_investigation, transactional, or navigational.
Add a one-line justification. If ambiguous, mark "mixed" and explain.
Return a Markdown table: query
| intent | justification.
Do not invent queries that are not in the list.
QUERIES:
[PASTE UP TO 200 QUERIES]
Example result: the model returns something like `crm for small business
| commercial_investigation | comparing tools, likely pre-purchase`. The justification column is the value — it forces the model to commit to a reason you can sanity-check, instead of silently guessing.
Why it works: intent classification is pattern recognition over language, which is exactly what LLMs are good at. Keep batches under ~200 rows; beyond that, quality degrades and the model starts dropping items.
2. Cleaning and normalizing a keyword export
Task: Strip duplicates, lowercase, remove brand terms and junk before analysis.
Prompt:
Normalize this keyword list:
1) lowercase everything;
2) remove exact duplicates and near-duplicates (same words, different order);
3) remove queries containing these brand terms: [brand1, brand2];
4) flag queries that look like misspellings or typos with "typo?" in a column.
Output a table: cleaned_query
| original_query | flag.
Never add queries that were not in the input.
This is unglamorous but saves real hours, and because the transformation is mechanical you can spot-check it in seconds.
3. Meta title and description generation with constraints
Task: Draft titles and descriptions that respect pixel-length limits and include the target query naturally.
Prompt:
Write 3 title variants and 2 meta description variants for a page targeting
the query "[query]". Constraints:
- Title: 50-60 characters, must contain the exact query.
- Description: 140-160 characters, must include a benefit and a soft CTA.
- No clickbait, no ALL CAPS, no emoji.
Return a table: variant
| text | character count.
Verify each count yourself before answering.
Example result: Remote Team Onboarding Checklist (Free Template) | 54 chars. Asking the model to count characters explicitly cuts down on the classic over-length failures, though you should still eyeball the SERP preview.
4. Extracting entities and subtopics from a competitor page
Task: Understand what a top-ranking page actually covers, so you can plan coverage.
Prompt:
Here is the text of a competitor page that ranks top-3 for "[query]".
Extract:
1) the main entities (people, products, concepts) mentioned;
2) the subtopics covered, in order of appearance;
3) questions the page answers;
4) questions a searcher would still have after reading it.
Return as a bulleted outline. Quote the page where relevant.
PAGE TEXT:
[PASTE]
Point 4 is your content-gap goldmine — those unanswered questions are your angle.
Advanced tier: clustering, audits, and briefs
5. Semantic clustering with a hard rule against invention
Task: Group keywords into topic clusters for site structure and content planning.
Prompt:
Cluster the keywords below into topic groups suitable for separate pages.
Rules:
- Every keyword must appear in exactly one cluster.
- Do not invent keywords. Only use what is in the list.
- Name each cluster with a head term that already exists in the list.
- If a keyword fits two clusters, pick one and note the alternative.
Output: cluster name
| keywords (comma-separated) | total count.
Sort clusters by total count descending.
KEYWORDS:
[PASTE]
Example result: `project management software
| project management software, best project management software, ... | 34`. The "do not invent" rule and the "head term must exist" rule together keep the output grounded. For large sets (thousands of queries), cluster in batches and merge manually — or use an embedding-based tool first and let the LLM name and validate the clusters.
6. Technical audit checklist from a crawl summary
Task: Turn a crawl export into a prioritized fix list.
Prompt:
You are a technical SEO auditor. Below is a summary from a site crawl
(status codes, duplicate titles, missing meta, redirect chains, orphan pages).
Produce a prioritized issue list with: issue | affected URLs (count) |
SEO impact (high/med/low)
| recommended fix | effort (S/M/L).
Base every row strictly on the data provided. If data is missing for an
issue category, say so instead of guessing.
CRAWL SUMMARY:
[PASTE]
Why it works: you are not asking the model to "audit a site" (which it cannot do) but to reason over numbers you already collected. This is the single most reliable technical-SEO prompt pattern.
7. Redirect-chain and status-code triage
Task: Decide which redirects to keep, collapse, or remove.
Prompt:
Here is a list of URL pairs: source -> target, with HTTP status.
Identify:
1) chains (target is itself a source of another redirect);
2) loops;
3) 302s that should be 301s;
4) redirects pointing to 404s.
Output a table: source
| target | problem | suggested action.
Do not invent URLs.
DATA:
[PASTE source,target,status rows]
Redirect hygiene is exactly the kind of tedious cross-referencing that eats an afternoon; the model does it in seconds, and you verify the flagged rows.
8. Content brief generation
Task: Produce a writer-ready brief from a cluster and SERP analysis.
Prompt:
Create a content brief for the target query "[query]".
Include: search intent, recommended H1, H2/H3 outline, entities to mention,
questions to answer, target word range, internal link suggestions (from the
URL list I provide), and 3 example meta descriptions.
Use only the entities and URLs I supply. Mark anything uncertain as "verify".
TARGET QUERY: [query]
COMPETING OUTLINES: [paste headings from top 3 pages]
INTERNAL URLS: [paste]
9. Cannibalization detection
Task: Find pages competing for the same query.
Prompt:
Below are queries with the URLs that received impressions for each in
Search Console. Flag cases where 2+ URLs from my site compete for the same
query. For each, suggest which URL should own it and why.
Table: query
| competing URLs | impressions split | recommendation.
This is a high-value, low-glamour task. The model spots patterns in the impression split; you make the consolidation call.
Expert tier: strategy support and QA
10. Log-file sampling interpretation
Task: Understand which sections Googlebot actually crawls.
Prompt:
Here is a pre-aggregated count of Googlebot hits by URL path for the last
7 days. Identify: paths with zero crawl, paths with abnormally high crawl
frequency, and likely crawl-budget waste (faceted URLs, params).
Propose a prioritized list of actions. Only use the paths provided.
DATA:
[PASTE path,hits]
11. Internal linking opportunity map
Task: Suggest links between related pages.
Prompt:
I give you page titles + target queries. Suggest internal links: from page A
to page B with a natural anchor text. Only link pages whose topics are
genuinely related. Output: source
| target | anchor text | reason.
Reject weak matches explicitly rather than forcing a link.
PAGES:
[PASTE title | query rows]
12. Adversarial self-review of a draft
Task: Catch weak spots before publishing.
Prompt:
Review this draft as a skeptical SEO editor. List: claims without evidence,
keyword stuffing, thin sections, missing questions, and any statements that
could be factually wrong. Be blunt. Do not rewrite — just critique.
DRAFT:
[PASTE]
13. Structured-data snippet drafting (with verification caveat)
Task: Draft JSON-LD for FAQ or Article pages.
Prompt:
Draft valid JSON-LD for an Article page using schema.org types.
Fields: headline, author, datePublished, image, mainEntityOfPage.
Output raw JSON only. Then list which fields I must verify manually.
Always validate the output in Google's Rich Results Test — the model writes plausible JSON, but schema requirements change and only the official validator is authoritative.
14. Prompt chaining for a full mini-report
Task: Combine steps into a repeatable workflow: clean → cluster → brief → outline.
Prompt:
Step 1: normalize and dedupe the list below.
Step 2: cluster into page-level topics (no invented keywords).
Step 3: for the top 3 clusters by size, output a one-paragraph brief.
Pause after each step and wait for my "continue".
LIST: [PASTE]
Chaining with explicit pauses keeps you in the loop and prevents compound errors from snowballing.
Where the human stays in the loop
The pattern across all fourteen prompts is the same: the model reasons over data you supply, formats it, and drafts; you verify, decide, and own the strategy. Never ask it for facts about your site, never trust statistics it volunteers, and always run technical outputs through real validators (Google Search Console, Rich Results Test, your crawler). Used this way, an LLM genuinely behaves like a competent junior analyst who works at 3 a.m. and never complains about a 4,000-row CSV.
Start with prompts 1, 2, and 6 — they pay back time on day one. Then build your own library around the tasks that repeat in your workflow, and keep a notes file of what worked. The SEOs who win in 2026 won't be the ones with the cleverest single prompt; they'll be the ones with a disciplined, documented process for delegating routine work to AI while keeping judgment firmly human.
Comments