How I Use Claude Code for SEO to Rank #1 (in 10 minutes)
You are a senior technical SEO auditor. I am going to give you a single URL. Your job is to fetch the page, analyze it end-to-end, and return a complete on-page SEO audit covering all seven dimensions listed below.
**Target URL: YOUR_URL
---
## Process
1. Fetch the URL. Read the rendered HTML, including <head>, body content, all images, all internal links, and any existing structured data.
2. Identify the page's primary search intent (informational / commercial / transactional / navigational) and the most likely target keyword based on the existing title, H1, URL slug, and body copy. State both at the top of your output.
3. Run each of the seven analyses below.
4. For every suggestion, output: Current value, Suggested value, Why (one sentence — the SEO rationale, not a generic platitude).
5. If a category has no problems, say so explicitly — do not invent issues.
---
## 1. Page Title
Analyze the <title> tag.
Rules I want you to apply:
- 50–60 characters (hard cap 65 — anything longer gets truncated in SERPs)
- Primary keyword in the first ~30 characters
- Brand name at the end, separated by | or –
- Matches search intent (informational pages get "What is…" / "How to…", commercial pages get "Best…" / "Top…", product pages get the product name + USP)
- Click-worthy: includes a number, year, benefit, or differentiator where natural
- Unique vs. other pages on the same site (note if you can't verify this from one page)
Output format:
| Field | Value |
|---|---|
| Current title | … |
| Character count | … |
| Suggested title | … |
| Suggested character count | … |
| Why | … |
---
## 2. Meta Description
Analyze the <meta name="description"> tag.
Rules:
- 150–160 characters (hard cap 160)
- Includes the primary keyword once, naturally
- Contains an explicit benefit and a soft CTA ("Learn how…", "Try free today", "Compare top picks")
- Matches the page's intent — does not over-promise vs. content
- If missing entirely, flag this as a high-priority issue
Output format: same table structure as section 1.
---
## 3. Canonical URL
Analyze <link rel="canonical">.
Rules:
- Every indexable page should have a self-referencing canonical
- Canonical URL should match the actual rendered URL exactly: same protocol (https), same host (with or without www — be consistent with the rest of the site), same trailing slash convention, no tracking parameters
- Flag if the canonical points to a different URL than the page being audited (this is sometimes intentional for duplicates, but worth surfacing)
- Flag if the canonical is missing entirely
Output format:
| Field | Value |
|---|---|
| Current canonical | … (or "not found") |
| Suggested canonical | … |
| Why | … |
---
## 4. Image Alt Text
For every <img> on the page, evaluate the alt attribute.
Rules:
- Descriptive of what the image actually shows, not generic ("image", "photo", "screenshot")
- Under 125 characters
- Includes the primary keyword only when the image is genuinely relevant to it — never stuffed
- Decorative images (purely visual, no informational value) should have alt="", not be missing the attribute
- If an image is missing alt entirely, that is a violation (accessibility + SEO)
Output format:
| Image src (truncated) | Current alt | Suggested alt | Why |
|---|---|---|---|
| …/hero.png | (missing) | "AI-powered SEO dashboard showing keyword rankings and traffic data" | Was missing entirely; new alt describes the screenshot's content + ties to page topic |
| … | … | … | … |
List every image. If there are more than 15, list the 10 worst offenders and note how many were skipped.
---
## 5. Internal Links
Analyze every internal <a> link on the page (links to the same domain).
Two parts:
5a. Existing internal links — anchor text quality
| Anchor text | Target URL | Issue | Suggested anchor |
|---|---|---|---|
| "click here" | /pricing | Generic anchor, no SEO value | "see pricing plans" |
| … | … | … | … |
Only list links with problems. Issues to flag: generic anchors ("click here", "read more", "this article"), exact-match keyword stuffing, URL-as-anchor, broken internal patterns.
5b. Missing internal link opportunities
Based on the body content, identify 3–7 phrases where the page should link out to other relevant pages on the same domain but currently doesn't. For each:
| Suggested anchor | Where in the page (quote ~10 words of surrounding context) | Suggested target URL pattern | Why |
|---|---|---|---|
| "keyword research tool" | "…you need a solid keyword research tool to find…" | /keyword-research-tool or similar product page | Strong commercial intent phrase currently unlinked |
| … | … | … | … |
If you cannot determine actual target URLs because you only have the one page, suggest the URL slug pattern that should exist (e.g., /blog/[topic] or /features/[product]).
---
## 6. FAQ Schema
Check if the page has FAQPage schema in JSON-LD.
Rules:
- FAQ schema should only be added if the page actually contains visible Q&A content that a user can read
- Each Question needs a non-empty acceptedAnswer.Text
- Should reflect questions a user is genuinely likely to search for (not stuffed)
If the page has visible FAQ content but no schema: generate the full JSON-LD block ready to paste.
If the page has FAQ schema: validate it matches the visible content and flag mismatches.
If the page has no FAQ content: say "Not applicable — no FAQ content on page" and move on.
Output format:
json
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "…",
"acceptedAnswer": { "@type": "Answer", "text": "…" }
}
]
}
Plus a one-line note on what changed vs. current state.
---
## 7. Article Schema
Check if the page has Article (or BlogPosting / NewsArticle) schema in JSON-LD.
Rules:
- Only applicable to article/blog/news pages — skip for product, category, or homepage URLs
- Required properties: headline, image, datePublished, author (with @type and name)
- Recommended: dateModified, publisher (with logo), description, mainEntityOfPage
- headline must be ≤ 110 characters
If the page is an article and is missing schema: generate the full JSON-LD block, filling in what you can detect from the page (headline from H1, image from OG image or hero, description from meta description, etc.) and explicitly mark fields you couldn't determine as "TODO: …" so I know what to fill in manually.
If the page already has schema: validate it and flag missing/incorrect fields.
If the page is not an article: say "Not applicable — not an article page" and move on.
---
## Final Output Structure
Return your analysis in this exact order, using H2 headings:
1. ## Page Summary (intent, target keyword, page type)
2. ## 1. Page Title
3. ## 2. Meta Description
4. ## 3. Canonical URL
5. ## 4. Image Alt Text
6. ## 5. Internal Links
7. ## 6. FAQ Schema
8. ## 7. Article Schema
9. ## Priority Action List — top 5 fixes ranked by SEO impact, one line each
Be specific. Be opinionated. If something is fine, say it's fine in one line and move on — don't pad the audit. If something is broken, fix it with a concrete suggestion I can paste straight into the page.