# Technical SEO Playbook

Platform-specific technical guidance, audit checklists, schema patterns, and the dual-optimization framework for traditional search + AI search readiness.

## Table of Contents

1. [Technical Audit Checklist](#1-technical-audit-checklist)
2. [Site Architecture Patterns](#2-site-architecture-patterns)
3. [Schema Markup Library](#3-schema-markup-library)
4. [On-Page Optimization Template](#4-on-page-optimization-template)
5. [Core Web Vitals Guide](#5-core-web-vitals-guide)
6. [AI Search Readiness](#6-ai-search-readiness)
7. [Platform-Specific Checklists](#7-platform-specific-checklists)
8. [Keyword Strategy Framework](#8-keyword-strategy-framework)
9. [Content Brief Template](#9-content-brief-template)

---

## 1. Technical Audit Checklist

Score each item: Pass / Fail / Warning. Provide specific evidence and fix instructions for failures.

### Crawlability
- [ ] robots.txt exists, is accessible, and doesn't block critical resources
- [ ] XML sitemap exists, is submitted to Search Console, and is up to date
- [ ] No critical pages returning 4xx or 5xx errors
- [ ] No orphan pages (pages with no internal links pointing to them)
- [ ] Crawl budget efficient: no infinite crawl traps (faceted nav, session IDs in URLs)
- [ ] Pagination uses proper next/prev or scroll-based loading that exposes links

### Indexability
- [ ] Important pages are indexable (no accidental noindex)
- [ ] Canonical tags are present and correct on all pages
- [ ] No duplicate content issues (www vs non-www, http vs https, trailing slashes)
- [ ] Thin content pages are either improved, consolidated, or noindexed
- [ ] URL parameters are handled (Search Console parameter tool or canonical tags)

### Performance
- [ ] LCP (Largest Contentful Paint) under 2.5s on mobile
- [ ] CLS (Cumulative Layout Shift) under 0.1
- [ ] INP (Interaction to Next Paint) under 200ms
- [ ] Images are optimized (WebP/AVIF, lazy loaded, properly sized)
- [ ] Critical CSS inlined, non-critical CSS deferred
- [ ] JavaScript is not blocking render on key pages

### Structured Data
- [ ] Organization schema on homepage
- [ ] Appropriate page-type schema (Product, Article, FAQ, etc.)
- [ ] BreadcrumbList schema matches visible breadcrumbs
- [ ] Schema validates in Google's Rich Results Test
- [ ] No schema errors in Search Console

### Security & Infrastructure
- [ ] HTTPS enforced site-wide (no mixed content)
- [ ] HTTP → HTTPS redirects in place
- [ ] www/non-www redirect is canonical
- [ ] No redirect chains (max 1 hop)
- [ ] SSL certificate is valid and not expiring soon

### Mobile
- [ ] Site is mobile responsive (not just mobile-friendly)
- [ ] Tap targets are appropriately sized (48px minimum)
- [ ] No horizontal scroll on mobile
- [ ] Font sizes readable without pinch-to-zoom
- [ ] Mobile navigation is accessible and usable

### AI Search Readiness
- [ ] AI crawlers (Perplexitybot, ChatGPT-User, Claudebot) allowed in robots.txt
- [ ] Key pages lead with BLUF summary paragraphs
- [ ] Entity information (brand, products, people) is consistent across site
- [ ] Structured data is comprehensive (helps AI understand entities)
- [ ] Content is authoritative and citable (original data, expert analysis)

---

## 2. Site Architecture Patterns

### Ecommerce (Shopify/DTC)

```
Homepage
├── /collections/
│   ├── /collections/category-1/          ← targets category keyword
│   │   └── /products/product-name/       ← targets product + long-tail
│   ├── /collections/category-2/
│   └── /collections/sale/                ← seasonal, can noindex if thin
├── /pages/
│   ├── /pages/about/
│   ├── /pages/contact/
│   └── /pages/faq/                       ← FAQ schema opportunity
├── /blogs/journal/                       ← rename from /blogs/news/
│   ├── /blogs/journal/post-slug/
│   └── /blogs/journal/post-slug/
└── /policies/
    └── (noindex these)
```

Rules:
- Every product reachable via collection → product (2 clicks max)
- Collections are the primary SEO targets for category keywords
- Cross-link related collections ("You might also like" blocks)
- Blog posts link to relevant collections and products
- Avoid deeply nested collections (/collections/mens/shoes/running/trail/ - too deep)

### SaaS Product Site

```
Homepage
├── /features/
│   ├── /features/feature-1/              ← targets feature keyword
│   └── /features/feature-2/
├── /solutions/
│   ├── /solutions/use-case-1/            ← targets use-case keyword
│   └── /solutions/industry-1/
├── /pricing/                              ← high-intent, optimize carefully
├── /integrations/
│   └── /integrations/partner-name/        ← scalable SEO surface
├── /customers/
│   └── /customers/case-study-name/
├── /blog/
│   └── /blog/post-slug/
├── /docs/ or /help/
│   └── (proper heading hierarchy, internal links)
├── /about/
├── /contact/
└── /changelog/                            ← index if feature-rich
```

Rules:
- Feature pages and solution pages serve different intents - features = what it does, solutions = how it helps a specific audience
- Integration pages scale horizontally (one per partner) and capture long-tail "[tool] + [your category]" queries
- Documentation is an SEO asset - don't hide it behind auth or noindex it
- Pricing page should target "[category] pricing" and "[brand] pricing" keywords

### Content / Blog Site

```
Homepage (or blog index)
├── /[topic-cluster-1]/                    ← pillar page
│   ├── /[topic-cluster-1]/subtopic-a/     ← supporting post
│   └── /[topic-cluster-1]/subtopic-b/
├── /[topic-cluster-2]/                    ← pillar page
│   └── ...
├── /about/
├── /newsletter/                           ← conversion page
└── /archive/                              ← chronological index
```

Rules:
- Pillar pages are comprehensive (2000-4000 words) and link to all supporting posts
- Supporting posts link back to pillar and to each other
- Don't use date in URLs (/2025/03/post-name/) - it dates content and complicates updates
- Category/tag pages need unique introductory content, not just post lists

---

## 3. Schema Markup Library

### Organization (homepage)

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "[Brand Name]",
  "url": "https://[domain]",
  "logo": "https://[domain]/logo.png",
  "description": "[Boilerplate from positioning]",
  "sameAs": [
    "https://twitter.com/[handle]",
    "https://linkedin.com/company/[handle]",
    "https://instagram.com/[handle]"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "[email]"
  }
}
```

### Product (Shopify/DTC)

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "[Product Name]",
  "image": "[Product Image URL]",
  "description": "[Product Description]",
  "brand": { "@type": "Brand", "name": "[Brand]" },
  "offers": {
    "@type": "Offer",
    "price": "[Price]",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "[Product URL]"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "[Rating]",
    "reviewCount": "[Count]"
  }
}
```

### Article (blog posts)

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "[Title]",
  "description": "[Meta description]",
  "author": { "@type": "Person", "name": "[Author]" },
  "publisher": {
    "@type": "Organization",
    "name": "[Brand]",
    "logo": { "@type": "ImageObject", "url": "[Logo URL]" }
  },
  "datePublished": "[ISO date]",
  "dateModified": "[ISO date]",
  "image": "[Hero image URL]"
}
```

### FAQ (any page with Q&A content)

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "[Question text]",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "[Answer text]"
      }
    }
  ]
}
```

### SoftwareApplication (SaaS)

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "[Product Name]",
  "applicationCategory": "[Category]",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "[Starting price]",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "[Rating]",
    "reviewCount": "[Count]"
  }
}
```

### BreadcrumbList (all multi-level pages)

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://[domain]/" },
    { "@type": "ListItem", "position": 2, "name": "[Parent]", "item": "https://[domain]/[parent]/" },
    { "@type": "ListItem", "position": 3, "name": "[Current Page]" }
  ]
}
```

---

## 4. On-Page Optimization Template

For each page being optimized, produce this spec:

```
PAGE: [URL]
TARGET KEYWORD: [Primary keyword]
SECONDARY KEYWORDS: [2-3 related terms]
INTENT: [Informational / Commercial / Transactional / Navigational]

TITLE TAG: [Under 60 chars. Primary keyword front-loaded. Brand at end.]
  Variant A: ...
  Variant B: ...
  Variant C: ...

META DESCRIPTION: [Under 155 chars. Includes keyword naturally. Has CTA.]
  Variant A: ...
  Variant B: ...

H1: [One per page. Can differ from title tag. Compelling for users.]

HEADING HIERARCHY:
  H2: [Subtopic]
  H2: [Subtopic]
    H3: [Sub-subtopic]
  H2: [Subtopic]

BLUF SUMMARY: [First 1-2 sentences that directly answer the user's query.
  This is what AI systems will likely extract for citations.]

INTERNAL LINKS:
  Link TO: [3-5 related pages to link to from this page]
  Link FROM: [Pages that should link to this page]

SCHEMA: [Which schema type(s) to implement]

IMAGE OPTIMIZATION:
  Hero image alt: [Descriptive, includes keyword naturally]
  File name: [keyword-descriptive-name.webp]

URL SLUG: /[short-keyword-slug]/
```

---

## 5. Core Web Vitals Guide

### LCP (Largest Contentful Paint) - Target: < 2.5s
The time it takes for the largest visible element to render. Usually a hero image or heading block.

Fixes: preload hero images, use WebP/AVIF, inline critical CSS, optimize server response time (TTFB), avoid lazy-loading above-the-fold images.

### CLS (Cumulative Layout Shift) - Target: < 0.1
How much the page layout shifts during loading. Caused by images without dimensions, dynamic content injection, and web fonts loading.

Fixes: always set width/height on images and videos, reserve space for dynamic content, use `font-display: swap` with size-adjusted fallback fonts.

### INP (Interaction to Next Paint) - Target: < 200ms
How quickly the page responds to user interactions. Replaced FID in March 2024 and is now the primary responsiveness metric.

Fixes: break long JavaScript tasks, defer non-critical JS, use web workers for heavy computation, optimize event handlers.

---

## 6. AI Search Readiness

### BLUF Content Structure

Every important page should lead with a concise summary before expanding into detail:

```
[1-2 sentence direct answer to the page's core question]
[Supporting context - who, what, why]
[Detailed sections follow below]
```

This structure serves both human readers (who scan) and AI systems (which extract lead paragraphs for citations).

### Entity Consistency

AI systems build entity graphs. Ensure consistency across:
- Site-wide: brand name, tagline, key claims appear identically everywhere
- Third-party: Google Business Profile, social bios, Crunchbase, Wikipedia (if applicable), industry directories
- Schema: Organization, Person, Brand schema reinforce entity facts

### Citability Signals

AI systems prefer to cite:
- Original data and research (surveys, benchmarks, proprietary analysis)
- Expert attribution (named authors with credentials)
- Structured, scannable content (clear headings, concise paragraphs)
- Authoritative domains (established sites with E-E-A-T signals)
- Pages that directly answer specific questions

---

## 7. Platform-Specific Checklists

### Shopify Quick Wins
1. Install and configure an SEO app for automated meta tags and schema
2. Rename blog from `/blogs/news/` to `/blogs/[relevant-name]/`
3. Write unique descriptions for every collection page (avoid empty collection pages)
4. Compress all product images and convert to WebP
5. Set up Google Merchant Center and submit product feed
6. Add FAQ schema to product pages (use actual customer questions)
7. Create a `/pages/sitemap/` HTML sitemap for internal linking
8. Audit and fix collection structure - no more than 2 levels deep
9. Add alt text to all images (product images AND content images)
10. Set up proper 301 redirects for any removed products or pages

### SaaS Site Quick Wins
1. Verify SSR/SSG is working for all public pages (view-source should show content)
2. Implement Organization + SoftwareApplication schema
3. Create individual integration pages for top 10-20 partner tools
4. Optimize pricing page for "[category] pricing" keyword
5. Make documentation publicly indexable with proper heading hierarchy
6. Add BreadcrumbList schema to all multi-level pages
7. Create comparison pages: "[your brand] vs [competitor]"
8. Set up blog with topic cluster architecture
9. Allow AI crawlers in robots.txt
10. Add BLUF summaries to all key pages

---

## 8. Keyword Strategy Framework

### Cluster Model

Organize keywords into clusters, not flat lists:

```
CLUSTER: [Topic]
  Pillar keyword: [High-volume, competitive - targets pillar page]
  Supporting keywords:
    - [Long-tail variant 1] → [Assigned page/post]
    - [Long-tail variant 2] → [Assigned page/post]
    - [Question variant] → [FAQ section or dedicated post]
    - [Comparison variant] → [vs page or buying guide]
```

### Prioritization Matrix

Score each cluster on two axes:

**Business Value (1-5)**
- 5: Directly drives revenue (transactional intent, product-aligned)
- 3: Builds authority and trust (informational, adjacent to product)
- 1: Tangentially related (high volume but low conversion potential)

**Feasibility (1-5)**
- 5: Low competition, strong existing authority in topic
- 3: Medium competition, some existing content to build on
- 1: Extremely competitive, no existing authority

Plot clusters and prioritize: High Value + High Feasibility first. Low Value + Low Feasibility last (or skip).

---

## 9. Content Brief Template

```
BRIEF: [Working Title]
TARGET CLUSTER: [Cluster name]
PRIMARY KEYWORD: [Keyword] - Volume: [X] - Difficulty: [X]
SECONDARY KEYWORDS: [List]
SEARCH INTENT: [What is the searcher trying to accomplish?]

COMPETITIVE GAP: [What are top 5 results missing or doing poorly?]

BLUF: [Write the 1-2 sentence summary that should open the piece]

RECOMMENDED STRUCTURE:
  H1: [Title - compelling for humans, includes primary keyword]
  H2: [Section 1]
  H2: [Section 2]
    H3: [Subsection]
  H2: [Section 3]
  H2: [FAQ section - 3-5 questions from "People Also Ask"]

INTERNAL LINKS:
  Link TO: [Related pages/posts to link to]
  Link FROM: [Existing pages that should link to this new content]

WORD COUNT: [Range, e.g., 1500-2000]
SCHEMA: [Article, FAQ, HowTo - as appropriate]
CTA: [What action should the reader take?]

DIFFERENTIATION: [What makes this content worth publishing vs. what already exists?
  Original data? Expert perspective? Unique angle? Better structure?]
```
