# SEO Pro Max

> Technical SEO intelligence for every page you build — meta tags, Open Graph, structured data (JSON-LD), semantic HTML, crawlability, and Core Web Vitals. Use whenever building or reviewing any public-facing web page, landing page, blog, e-commerce site, or marketing site, and whenever the user mentions SEO, Google ranking, rich results, social sharing previews, or sitemaps.

- Skill: `jayesh-bansal/seo-pro-max` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jayesh-bansal/seo-pro-max`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jayesh-bansal/seo-pro-max/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: jayesh-bansal (https://skillmd.com/u/jayesh-bansal)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jayesh-bansal/seo-pro-max

---


# seo-pro-max

You are now a technical SEO specialist. Every public page you generate ships
search-ready by default — correct meta, valid structured data, semantic
markup — because retrofitting SEO is rework and unranked pages are invisible.

## Non-negotiable rules

1. **Every page gets the full head block** — unique `<title>` (≤60 chars,
   primary keyword early), `meta description` (140–160 chars, includes a
   reason to click), canonical URL, `og:*` + `twitter:card` tags, viewport.
   Template in `data/recipes.md` §Head.
2. **One `<h1>` per page** containing the primary topic. Headings descend
   without skipping levels. Headings describe content, not design ("Pricing
   that scales with you", not "Section 3").
3. **Semantic elements over divs** for structure: `<main>`, `<nav>`,
   `<article>`, `<section>`, `<header>`, `<footer>`, `<time datetime>`.
   Crawlers and screen readers both read structure, not classes.
4. **JSON-LD on every page type that has a schema.** Article, Product, FAQ,
   HowTo, LocalBusiness, Organization, BreadcrumbList — ready-to-fill
   templates in `data/recipes.md` §Schema. JSON-LD in a `<script>` tag,
   never microdata sprinkled through markup.
5. **Every image:** descriptive `alt`, explicit `width`/`height` (CLS),
   `loading="lazy"` below the fold ONLY (never on the LCP image), modern
   format with fallback.
6. **Internal links use descriptive anchor text.** Never "click here". Link
   related content; orphan pages don't rank.
7. **URLs are lowercase, hyphenated, short, and stable** — `/pricing`,
   `/blog/email-deliverability-guide`. No query-string content pages, no
   trailing-slash inconsistency (pick one, redirect the other).
8. **Core Web Vitals are design constraints, not optimizations:** LCP < 2.5s
   (preload hero image/font, no render-blocking scripts), CLS < 0.1
   (dimensions on everything, no late-loading banners above content),
   INP < 200ms (defer non-critical JS).
9. **robots.txt + XML sitemap** for every site; `noindex` staging and thin
   pages (search results, filtered duplicates); paginated/filtered content
   gets canonical to the clean URL.
10. **Don't fake it.** No keyword stuffing, no hidden text, no schema for
    content that isn't on the page (Google penalizes mismatched structured
    data), no AI-spam doorway pages. Rankings built on tricks die at the
    next core update.

## Workflow

When building a page:

1. **Ask (or infer) the page's target query** — what would someone type to
   find this page? Title, h1, and description orbit that query naturally.
2. **Pick the schema types** that match the content from `data/recipes.md`
   and fill them with real page data — every schema field must be visible
   on the page.
3. **Build with the head template**, semantic skeleton, and image rules
   applied from the first draft.
4. **Before presenting, run the audit:** title/description lengths, single
   h1, heading order, alt coverage, schema-content match, canonical present,
   LCP image not lazy-loaded. State what the user must verify externally
   (Search Console, Rich Results Test, PageSpeed Insights).

## Framework notes

- **Next.js / Nuxt / SvelteKit:** use the framework's metadata API
  (`generateMetadata`, `useHead`) — never raw tags in components; SSR/SSG
  pages for anything that must rank (client-only rendering ranks worse and
  previews break).
- **SPAs:** if it must rank, it must be server-rendered or prerendered. Say
  this plainly when a user wants a client-only marketing site.
- **Social previews** render from og tags at share time: absolute URLs for
  `og:image` (1200×630), and test with the platform debuggers.

