technical-seo-audit · git:20261001.a762959 · 2026-10-01 · sha256 e37a1856d7c314cd

technical-seo-audit git:20261001.a762959A

Immutable. This exact content never changes and is served at /api/v1/blob/e37a1856d7c314cd.

---
name: technical-seo-audit
description: >
  Audit a page's technical SEO fundamentals — meta tags, canonical URLs, structured data,
  heading hierarchy, mobile basics. Use when auditing any page's on-page technical setup, when
  a user asks "is my technical SEO okay," or as part of a full site audit alongside
  page-quality-audit and internal-linking-audit (this pack). This dimension changes over time
  (Google periodically deprecates rich-result types) — verify current status rather than
  trusting a fixed list.
---

# Technical SEO Audit

Checks the mechanical/structural SEO layer: does Google's crawler and renderer get what they
need from this page, cleanly and without contradictions.

---

## Step 0 — Ask before assuming

1. What platform/CMS renders the pages? (Determines whether fixes are template-level, one-time
   fixes that scale, or truly per-page.)
2. Is there an existing sitemap/robots.txt, and when was it last checked for correctness?
3. Does structured data (schema/JSON-LD) already exist anywhere on the site?
4. Roughly how many distinct page templates exist? A technical issue found on one template
   instance is usually present on every page using that template — fix at the template level,
   don't patch instances one at a time.

**If any of the above is unknown:** check by examining a handful of live rendered pages directly
(view source, or fetch the page) rather than needing the platform/CMS named — most of what this
skill checks (meta tags, schema, heading structure) is directly observable from the rendered
page itself, and doesn't require background knowledge about the site's tech stack.

---

## Step 1 — Meta tags

- **Title**: Google truncates by *pixel width*, not character count — roughly 600px desktop /
  540px mobile, which works out to roughly 50–60 characters as a rough proxy (wide characters
  like "W" cost more width than narrow ones like "i"). Unique per page, primary term near the
  front. Verify current pixel/character guidance before treating any specific number as fixed —
  this shifts as Google's SERP rendering changes.
- **Meta description**: similarly pixel-width truncated (roughly 920px desktop / 680px mobile,
  ≈120–158 characters as a rough proxy). Unique per page, states the actual value proposition,
  not keyword-stuffed.
- **Canonical URL**: present, absolute, points to *this* page (not a different one — check for
  the common bug of every page on a template canonicalizing to the same wrong URL), consistent
  trailing-slash convention with the rest of the site.
- **Viewport tag**: present (`width=device-width, initial-scale=1.0`) — required for mobile-first
  indexing.

---

## Step 2 — Structured data (schema.org / JSON-LD)

Google periodically deprecates which schema types produce a *visual* rich result — deprecation
usually means the rich-result display stops, not that the underlying markup becomes invalid or
harmful. **Before recommending or auditing any schema type, check Google's current structured
data documentation for its live status** rather than assuming a type still produces a rich
result (FAQPage and HowTo, for example, no longer do — verify what else has changed since).
Check: valid JSON-LD syntax, required fields present for whatever type is used, and that the
markup actually matches what's visible on the page (mismatched schema is itself a violation).

---

## Step 3 — Heading hierarchy and on-page structure

- Exactly one H1 per page, containing the actual topic, not a generic template string.
- Logical nesting (H1 → H2 → H3, no skipped levels).
- **H2/H3 text should use semantic variants and related entities, not the primary keyword
  repeated verbatim** — this signals topical depth to Google rather than keyword stuffing, and
  is also just better for a human reader scanning the page.
- Target topic/term appears naturally in the opening content, not buried.

---

## Step 4 — Mobile and rendering basics

- No horizontal scroll at mobile viewport widths.
- Tap targets and text sized for mobile use without zooming.
- Confirm the page actually renders the same content to Google's crawler as to a browser
  (check for any client-side-only content that wouldn't be in the initial render).

---

## Output shape

Per template family (not per page, unless template-level fixes don't explain a specific
instance): meta tag issues (length/truncation, duplication, wrong canonical), structured data
status (valid/invalid, using a currently-supported type or not), heading hierarchy issues,
mobile-rendering issues. Flag anything found on one template instance as likely present
site-wide on that template.