---
name: seo-best-practices
description: SEO patterns, conventions, and audit for web applications. Use when implementing meta tags, structured data, Core Web Vitals, sitemaps, Open Graph, auditing SEO, or optimizing pages for search engines. Triggers on "audit SEO", "check SEO", "review SEO", or tasks involving search optimization, schema markup, or social sharing meta tags.
license: MIT
metadata:
author: agent-skills
version: "1.2.0"
---
# SEO Best Practices
Comprehensive SEO patterns for web applications built with React and Laravel. Contains 31 rules across 8 categories covering Core Web Vitals, technical SEO, structured data, performance, social sharing, and mobile-first indexing. Supports both **coding reference** and **audit mode**.
## Metadata
- **Version:** 1.2.0
- **Scope:** Laravel Blade and Laravel + Inertia.js + React
- **Rule Count:** 31 rules across 8 categories
- **License:** MIT
## How to Audit
When the user asks to "audit SEO", "check SEO", or "review SEO" — run the checklist below against their codebase.
### Audit Step 1: Determine Scope
- If arguments provided (`$ARGUMENTS`): audit only those pages or files
- If no arguments: audit all pages and layouts in the codebase
### Audit Step 2: Detect Project Type
Use the detection logic in "Step 1: Detect Project Type" below to determine Laravel Blade vs Laravel + Inertia + React.
### Audit Step 3: Run SEO Checklist
Work through every item below. For each, output:
- **PASS** — brief confirmation of what was verified
- **FAIL** — exact `file:line`, description of the issue, and fix recommendation
- **N/A** — if the check does not apply to this project
#### Core Web Vitals
- [ ] Hero/above-the-fold images use `fetchpriority="high"` and are preloaded (LCP < 2.5s)
- [ ] No long-running JavaScript tasks blocking interaction (INP < 200ms)
- [ ] All images and embeds have explicit `width`/`height` attributes (CLS < 0.1)
- [ ] No dynamically injected content that shifts layout without reserved space
#### Technical SEO
- [ ] Every page has a unique `
` tag (50-60 characters)
- [ ] Every page has a `` (150-160 characters)
- [ ] Every page has a `` pointing to the correct URL
- [ ] `robots.txt` exists and does not block important pages
- [ ] XML sitemap exists and includes all indexable pages
- [ ] URLs are clean, lowercase, hyphenated — no query params for indexable pages
#### On-Page SEO
- [ ] One `
` per page containing the primary keyword
- [ ] Heading hierarchy is sequential (h1 → h2 → h3) — no skipped levels
- [ ] Images have descriptive `alt` text (not empty, not "image", not filename)
- [ ] Internal links use descriptive anchor text (not "click here")
- [ ] Semantic HTML used (``, ``, `