
Seo
- 66 installs
- 46 repo stars
- Updated March 14, 2026
- norahe0304-art/30x-seo
Helps with marketing & seo tasks.
About
seo is a Claude Code skill for marketing & seo. It helps solo builders move faster with AI-assisted development.
- seo
- Marketing & SEO
- AI-coding skill
Seo by the numbers
- 66 all-time installs (skills.sh)
- +3 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #1,244 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/norahe0304-art/30x-seo --skill seoAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 66 |
|---|---|
| repo stars | ★ 46 |
| Last updated | March 14, 2026 |
| Repository | norahe0304-art/30x-seo ↗ |
What it does
Helps with marketing & seo tasks.
Files
SEO — Master Orchestrator (24 Sub-Skills)
[PROTOCOL]: Update this header on changes
Comprehensive SEO analysis across all industries (SaaS, local services, e-commerce, publishers, agencies). Orchestrates 24 specialized sub-skills organized in 9 categories, plus 6 parallel subagents for audits.
---
Quick Reference
1. Audit
| Command | What it does |
|---|---|
/seo audit <url> | Full-site audit — first run squirrelscan audit <url> --format llm (if installed), then spawn subagents for deep analysis |
/seo page <url> | Deep single-page analysis: title, meta, headings, links, images, Schema, E-E-A-T |
squirrelscan audit <url> | Full-site 230+ rules audit via CLI (npm i -g squirrelscan) |
2. Technical SEO
| Command | What it does |
|---|---|
/seo technical <url> | 8-category audit: crawl, index, security, URLs, mobile, CWV, structured data, JS |
/seo sitemap <url> | Validate XML sitemaps, detect issues, generate new ones |
/seo hreflang <url> | Multi-language SEO: self-refs, return tags, x-default, ISO codes |
/seo schema <url> | Detect, validate, generate JSON-LD structured data |
/seo geo-technical <url> | AI crawler management: GPTBot, ClaudeBot, llms.txt, SSR check |
3. Links
| Command | What it does |
|---|---|
/seo internal-links <url> | Orphan pages, click depth, anchor text, link equity |
/seo backlinks profile <domain> | Backlink profile analysis (DataForSEO) |
/seo backlinks gap <domain> <competitor> | Find link gap opportunities (DataForSEO) |
/seo redirects <url> | Chains, loops, 301/302 mix, protocol issues, trailing slashes |
4. Content
| Command | What it does |
|---|---|
/seo content-audit <url> | E-E-A-T scoring + AI citability analysis |
/seo images <url> | Alt text, file sizes, formats (WebP/AVIF), lazy loading, CLS |
/seo content-decay <url> | Detect declining content, recommend refresh priorities |
/seo cannibalization <domain> | Find keyword conflicts between pages |
/seo content-brief <keyword> | Analyze SERP top 10, generate content briefs |
/seo content-writer | SEO + AI optimized writing guidelines |
5. Planning
| Command | What it does |
|---|---|
/seo plan <business-type> | Competitor analysis, keyword strategy, content calendar, 4-phase roadmap |
/seo architecture <url> | URL structure, navigation design, internal linking strategy |
6. Programmatic SEO
| Command | What it does |
|---|---|
/seo programmatic plan | Scale content: data sources, templates, quality gates, index control |
/seo competitor-pages generate | X vs Y comparisons, alternatives pages, feature matrices |
7. Monitoring
| Command | What it does |
|---|---|
/seo monitor overview | Monitor your site: rankings, clicks, CTR, position changes (GSC) |
/seo serp check <keyword> | Live SERP check for any keyword (DataForSEO) |
/seo ai-visibility domain <domain> | Track mentions in ChatGPT, Claude, Perplexity, AI Overview (DataForSEO) |
8. Local SEO
| Command | What it does |
|---|---|
/seo local <business> <url> | GBP audit, NAP consistency, reviews, local schema, competitor benchmarking, Ask Maps optimization |
9. Data
| Command | What it does |
|---|---|
/seo keywords research <seed> | Ideas, volume, difficulty, intent, trends (DataForSEO) |
/seo keywords site <domain> | Keywords a site ranks for (DataForSEO) |
/seo keywords gap <domain> <competitor> | Find keyword opportunities (DataForSEO) |
---
Command → Skill Routing
| Command | Loads Skill |
|---|---|
page | 30x-seo-page |
technical | 30x-seo-technical |
sitemap | 30x-seo-sitemap |
hreflang | 30x-seo-hreflang |
schema | 30x-seo-schema |
geo-technical | 30x-seo-geo-technical |
internal-links | 30x-seo-internal-links |
backlinks | 30x-seo-backlinks |
redirects | 30x-seo-redirects |
content-audit | 30x-seo-content-audit |
images | 30x-seo-images |
content-decay | 30x-seo-content-decay |
cannibalization | 30x-seo-cannibalization |
content-brief | 30x-seo-content-brief |
content-writer | 30x-seo-content-writer |
plan | 30x-seo-plan |
architecture | 30x-seo-architecture |
programmatic | 30x-seo-programmatic |
competitor-pages | 30x-seo-competitor-pages |
monitor | 30x-seo-monitor |
serp | 30x-seo-serp |
ai-visibility | 30x-seo-ai-visibility |
keywords | 30x-seo-keywords |
local | 30x-seo-local |
audit | squirrelscan (CLI) + subagents |
---
Orchestration Logic
MANDATORY: /seo audit Execution Order
CRITICAL: When user says "audit", "full audit", "SEO audit", or `/seo audit`, you MUST follow this exact sequence. Do NOT skip Step 1. Do NOT jump directly to sub-skills.
Step 1 — Squirrelscan (BLOCKING — run this BEFORE anything else):
which squirrelscan && squirrelscan audit <url> --format llm- If installed: run it FIRST, wait for results, then proceed to Step 2
- If NOT installed: tell user
npm i -g squirrelscanto get 230+ rule full-site scan, then proceed to Step 2 - This step provides the global health score (0-100) that frames the entire audit
Step 2 — Industry Detection: Detect business type from homepage (SaaS, local, ecommerce, publisher, agency, other)
Step 3 — Local Business Check: If local business detected → also trigger 30x-seo-local for GBP/Maps/Ask Maps audit
Step 4 — Spawn Sub-Skill Agents (parallel): technical, content, schema, sitemap, performance, visual
Step 5 — Unified Report: Combine squirrelscan score + sub-skill results into SEO Health Score (0-100)
Step 6 — Action Plan: Prioritized: Critical → High → Medium → Low
---
Industry Detection
Detect business type from homepage signals:
- SaaS: pricing page, /features, /integrations, /docs, "free trial", "sign up"
- Local Service: phone number, address, service area, "serving [city]", Google Maps embed
- E-commerce: /products, /collections, /cart, "add to cart", product schema
- Publisher: /blog, /articles, /topics, article schema, author pages, publication dates
- Agency: /case-studies, /portfolio, /industries, "our work", client logos
---
Quality Gates
Hard rules:
- WARNING at 30+ location pages (enforce 60%+ unique content)
- HARD STOP at 50+ location pages (require user justification)
- Never recommend HowTo schema (deprecated Sept 2023)
- FAQ schema only for government and healthcare sites
- All Core Web Vitals references use INP, never FID
---
Scoring Methodology
SEO Health Score (0-100)
| Category | Weight |
|---|---|
| Technical SEO | 25% |
| Content Quality | 25% |
| On-Page SEO | 20% |
| Schema / Structured Data | 10% |
| Performance (CWV) | 10% |
| Images | 5% |
| AI Search Readiness | 5% |
Priority Levels
- Critical: Blocks indexing or causes penalties (immediate fix)
- High: Significantly impacts rankings (fix within 1 week)
- Medium: Optimization opportunity (fix within 1 month)
- Low: Nice to have (backlog)
---
Sub-Skills (24 Total, 9 Categories)
1. Audit (1 skill + CLI)
| Skill | What it does |
|---|---|
| 30x-seo-page | Deep single-page analysis |
| squirrelscan (CLI) | Full-site 230+ rules audit |
2. Technical SEO (5 skills)
| Skill | What it does |
|---|---|
| 30x-seo-technical | 8-category technical audit |
| 30x-seo-sitemap | Sitemap validation and generation |
| 30x-seo-hreflang | International SEO / hreflang |
| 30x-seo-schema | Schema.org JSON-LD |
| 30x-seo-geo-technical | AI crawler management |
3. Links (3 skills)
| Skill | What it does |
|---|---|
| 30x-seo-internal-links | Internal link analysis |
| 30x-seo-backlinks | Backlink profile (DataForSEO) |
| 30x-seo-redirects | Redirect chain analysis |
4. Content (6 skills)
| Skill | What it does |
|---|---|
| 30x-seo-content-audit | E-E-A-T + AI citability |
| 30x-seo-images | Image optimization |
| 30x-seo-content-decay | Content freshness analysis |
| 30x-seo-cannibalization | Keyword conflict detection |
| 30x-seo-content-brief | SERP-based content briefs |
| 30x-seo-content-writer | SEO writing guidelines |
5. Planning (2 skills)
| Skill | What it does |
|---|---|
| 30x-seo-plan | Strategic SEO planning |
| 30x-seo-architecture | Site structure planning |
6. Programmatic SEO (2 skills)
| Skill | What it does |
|---|---|
| 30x-seo-programmatic | Scale content with templates |
| 30x-seo-competitor-pages | X vs Y comparison pages |
7. Monitoring (3 skills)
| Skill | What it does |
|---|---|
| 30x-seo-monitor | Your site via GSC |
| 30x-seo-serp | Any site via DataForSEO |
| 30x-seo-ai-visibility | AI search visibility |
8. Local SEO (1 skill)
| Skill | What it does |
|---|---|
| 30x-seo-local | GBP audit, NAP, reviews, local schema, competitors, Ask Maps, AI Local Pack |
9. Data (1 skill)
| Skill | What it does |
|---|---|
| 30x-seo-keywords | Keyword research (DataForSEO) |
---
Dependencies
| Category | Skills | Dependency |
|---|---|---|
| Audit | 1 | WebFetch |
| Technical SEO | 5 | WebFetch |
| Links | 3 | WebFetch + DataForSEO (backlinks) |
| Content | 6 | WebFetch |
| Planning | 2 | WebFetch |
| Programmatic SEO | 2 | WebFetch |
| Local SEO | 1 | WebFetch |
| Monitoring | 3 | GSC + DataForSEO |
| Data | 1 | DataForSEO |
19 skills work without any API. 4 skills require DataForSEO. 1 skill requires Google Search Console.
---
Subagents
For parallel analysis during audits:
seo-technical— Crawlability, indexability, security, CWVseo-content— E-E-A-T, readability, thin contentseo-schema— Detection, validation, generationseo-sitemap— Structure, coverage, quality gatesseo-performance— Core Web Vitals measurementseo-visual— Screenshots, mobile testing, above-fold
<!-- Updated: 2026-02-07 -->
Core Web Vitals Thresholds (February 2026)
Current Metrics
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤2.5s | 2.5s–4.0s | >4.0s |
| INP (Interaction to Next Paint) | ≤200ms | 200ms–500ms | >500ms |
| CLS (Cumulative Layout Shift) | ≤0.1 | 0.1–0.25 | >0.25 |
Key Facts
- INP replaced FID (First Input Delay) on March 12, 2024. FID was fully removed from all Chrome tools (CrUX API, PageSpeed Insights, Lighthouse) on September 9, 2024. INP is the sole interactivity metric.
- Evaluation uses the 75th percentile of real user data (field data from CrUX).
- Google assesses at the page level and the origin level.
- Core Web Vitals are a tiebreaker ranking signal — they matter most when content quality is similar between competitors.
- Thresholds unchanged since original definitions — ignore claims of "tightened thresholds" from SEO blogs.
- December 2025 core update appeared to weight mobile CWV more heavily.
- As of October 2025: 57.1% desktop sites and 49.7% mobile sites pass all three CWV.
LCP Subparts (February 2025 CrUX Addition)
LCP can now be broken into diagnostic subparts:
| Subpart | What It Measures | Target |
|---|---|---|
| TTFB | Time to First Byte (server response) | <800ms |
| Resource Load Delay | Time from TTFB to resource request start | Minimize |
| Resource Load Time | Time to download the LCP resource | Depends on size |
| Element Render Delay | Time from resource loaded to rendered | Minimize |
Total LCP = TTFB + Resource Load Delay + Resource Load Time + Element Render Delay
Use this breakdown to identify which phase is causing LCP issues.
Soft Navigations API (Experimental)
Chrome 139+ Origin Trial (July 2025) — First step toward measuring CWV in SPAs.
- Addresses the long-standing SPA measurement blind spot
- Currently experimental, no ranking impact yet
- Detects "soft navigations" (URL changes without full page load)
- May affect future SPA CWV measurement
Detection: Check for SPA frameworks (React, Vue, Angular, Svelte) and warn about current CWV measurement limitations.
Measurement Sources
Field Data (Real Users)
- Chrome User Experience Report (CrUX)
- PageSpeed Insights (uses CrUX data)
- Search Console Core Web Vitals report
Lab Data (Simulated)
- Lighthouse
- WebPageTest
- Chrome DevTools
Field data is what Google uses for ranking. Lab data is useful for debugging.
Common Bottlenecks
LCP (Largest Contentful Paint)
- Unoptimized hero images (compress, use WebP/AVIF, add preload)
- Render-blocking CSS/JS (defer, async, critical CSS inlining)
- Slow server response (TTFB >200ms — use edge CDN, caching)
- Third-party script blocking (defer analytics, chat widgets)
- Web font loading delay (use font-display: swap + preload)
INP (Interaction to Next Paint)
- Long JavaScript tasks on main thread (break into smaller tasks <50ms)
- Heavy event handlers (debounce, use requestAnimationFrame)
- Excessive DOM size (>1,500 elements is concerning)
- Third-party scripts hijacking main thread
- Synchronous XHR or localStorage operations
- Layout thrashing (multiple forced reflows)
CLS (Cumulative Layout Shift)
- Images/iframes without width/height dimensions
- Dynamically injected content above existing content
- Web fonts causing layout shift (use font-display: swap + preload)
- Ads/embeds without reserved space
- Late-loading content pushing down the page
Optimization Priority
1. LCP — Most impactful for perceived performance 2. CLS — Most common issue affecting user experience 3. INP — Matters most for interactive applications
Tools
# PageSpeed Insights API
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=URL&key=API_KEY"
# Lighthouse CLI
npx lighthouse URL --output json --output-path report.jsonPerformance Tooling Updates (2025)
- Lighthouse 13.0 (October 2025): Major audit restructuring with reorganized performance categories and updated scoring weights. Lighthouse is a lab tool (simulated conditions) — always cross-reference with CrUX field data for real-world performance.
- CrUX Vis replaced the CrUX Dashboard (November 2025). The old Looker Studio dashboard was deprecated. Use CrUX Vis or the CrUX API directly.
- LCP subparts added to CrUX (February 2025): Time to First Byte (TTFB), resource load delay, resource load time, and element render delay are now available as sub-components of LCP in CrUX data.
- Google Search Console 2025 features (December 2025): AI-powered configuration for automated analysis. Branded vs. non-branded queries filter. Hourly data available in API. Custom chart annotations. Social channels tracking.
Mobile-first indexing is 100% complete as of July 5, 2024. Google now crawls and indexes ALL websites exclusively with the mobile Googlebot user-agent. Ensure your mobile version contains all critical content, structured data, and meta tags.
E-E-A-T Evaluation Framework
Updated per Google Quality Rater Guidelines — September 11, 2025
Plus December 2025 Core Update Implications
Overview
E-E-A-T = Experience, Expertise, Authoritativeness, Trustworthiness
Trustworthiness is the most important factor. It is assessed based on the other three signals plus direct trust indicators.
CRITICAL: December 2025 Core Update
E-E-A-T now applies to ALL competitive queries, not just YMYL.
The December 2025 core update was described as a "watershed moment" that:
- Extended E-E-A-T evaluation to virtually all competitive queries
- Made author attribution standards tighter across all categories
- Penalized anonymous or generic authorship even for non-YMYL content
- Significantly improved AI content quality detection
Impact by industry:
| Industry | Traffic Drops |
|---|---|
| Affiliate sites | 71% average decline |
| Health/YMYL | 67% average decline |
| E-commerce | 52% average decline |
Key takeaway: Even entertainment and lifestyle content now requires demonstrated expertise. Generic content no longer ranks.
YMYL (Your Money or Your Life)
Topics requiring highest E-E-A-T standards (but E-E-A-T now matters everywhere):
- Health and safety
- Financial advice and transactions
- Legal information
- News and current events
- Elections and civic trust (added Sept 2025)
- Democratic processes (added Sept 2025)
- Groups of people (potential for harm)
---
Experience (Weight: 20%)
First-hand knowledge and personal involvement with the topic.
Signals to Check
- [ ] Author has demonstrable first-hand experience with the topic
- [ ] Content includes original photos, screenshots, or data
- [ ] Case studies or real-world examples with specific details
- [ ] Personal process documentation or methodology descriptions
- [ ] Before/after results or outcome data
- [ ] Specific anecdotes that couldn't be fabricated
Scoring
- Strong: Multiple first-hand experience signals, original content
- Moderate: Some personal experience evident
- Weak: Generic information, no personal touch
- None: Clearly AI-generated or scraped content
---
Expertise (Weight: 25%)
Formal qualifications, training, and demonstrated knowledge.
Signals to Check
- [ ] Author credentials relevant to topic (bio, certifications)
- [ ] Technical accuracy and depth appropriate for audience
- [ ] Claims supported by evidence or sources
- [ ] Specialized vocabulary used correctly
- [ ] Up-to-date with current developments in the field
- [ ] Byline with author name and credentials visible
Scoring
- Strong: Verified credentials, deep technical accuracy
- Moderate: Demonstrable knowledge, some credentials
- Weak: Surface-level information, no credentials
- None: Factual errors, misinformation
---
Authoritativeness (Weight: 25%)
Recognition by others as a go-to source.
Signals to Check
- [ ] Site recognized as authority in its niche
- [ ] Author recognized as expert (external citations, speaking, publications)
- [ ] Content cited by other authoritative sources
- [ ] Industry awards, certifications, or accreditations
- [ ] Consistent publication history in the topic area
- [ ] Featured in reputable media outlets
- [ ] Professional affiliations
Scoring
- Strong: Widely recognized authority, cited by others
- Moderate: Growing recognition, some external validation
- Weak: No external recognition
- None: Negative reputation, known for misinformation
---
Trustworthiness (Weight: 30%)
The most important factor — overall reliability and transparency.
Signals to Check
- [ ] Clear contact information (physical address, phone, email)
- [ ] Privacy policy and terms of service
- [ ] HTTPS with valid certificate
- [ ] Transparent about who creates content and why
- [ ] Customer reviews and testimonials
- [ ] Corrections and update history visible
- [ ] No deceptive practices (hidden ads, clickbait)
- [ ] Secure payment processing (for e-commerce)
- [ ] Return/refund policy visible
Scoring
- Strong: Full transparency, verified business, positive reputation
- Moderate: Good trust signals, minor gaps
- Weak: Missing key trust signals
- None: Deceptive practices, scam indicators
---
September 2025 QRG Updates
AI Content Assessment
Raters now formally evaluate whether content appears AI-generated:
- AI content is acceptable if it demonstrates genuine E-E-A-T
- Low-quality AI content (generic, no unique value) is penalized
- The presence of AI-generated content is not inherently penalizing
- What matters: does the content provide unique value regardless of creation method?
Markers of Low-Quality AI Content
- Generic phrasing without specificity
- Lack of original insight or unique perspective
- No first-hand experience signals
- Factual inaccuracies
- Repetitive structure across multiple pages
- No author attribution or expertise signals
New Spam Categories
- Expired domain abuse: Buying expired domains for their backlinks
- Site reputation abuse: Using reputable site to host low-quality content
- Scaled content abuse: Mass-producing content without value
AI Overview Evaluation
Raters assess quality of AI-generated summaries in search results.
RSL 1.0 (Really Simple Licensing)
New machine-readable content licensing standard (December 2025) for AI training:
- Backed by: Reddit, Yahoo, Medium, Quora, Cloudflare, Akamai, Creative Commons
- Allows publishers to specify AI licensing terms
- Augments robots.txt for AI-specific permissions
---
Experience Signals Are Critical Differentiators
The December 2025 update elevated the "Experience" dimension as a key differentiator:
- First-person narrative ("I tested this...", "In my experience...")
- Original photos and screenshots (not stock images)
- Specific examples with verifiable details
- Process documentation showing actual work done
Why: AI can generate expertise-sounding content but cannot fabricate genuine experience.
---
Overall Scoring Guide
| Score | Description |
|---|---|
| 90-100 | Exceptional E-E-A-T — authority site, recognized expert, full transparency |
| 70-89 | Strong E-E-A-T — demonstrated expertise, good trust signals |
| 50-69 | Moderate E-E-A-T — some signals, room for improvement |
| 30-49 | Weak E-E-A-T — minimal signals, significant gaps |
| 0-29 | Very low E-E-A-T — no visible signals, potential trust issues |
---
Improvement Recommendations by Score
0-29 (Critical)
1. Add contact information and about page 2. Establish author identity with credentials 3. Implement HTTPS 4. Remove deceptive elements
30-49 (Major)
1. Add author bios with credentials 2. Include first-hand experience content 3. Get external citations/mentions 4. Add customer testimonials
50-69 (Moderate)
1. Deepen content with original research 2. Build topical authority through content clusters 3. Pursue industry recognition 4. Document processes and methodologies
70-89 (Minor)
1. Maintain freshness with regular updates 2. Expand author presence across platforms 3. Pursue speaking/publication opportunities 4. Add video/multimedia demonstrating expertise
90-100 (Maintenance)
1. Continue publishing high-quality content 2. Monitor and respond to reputation issues 3. Keep credentials and certifications current
Content Quality Gates
Minimum Word Counts by Page Type
| Page Type | Min Words | Unique Content % | Notes |
|---|---|---|---|
| Homepage | 500 | 100% | Must clearly communicate value proposition |
| Service / Feature Page | 800 | 100% | Detailed explanation of offering |
| Location (Primary) | 600 | 60%+ | City headquarters or main service area |
| Location (Secondary) | 500 | 40%+ | Satellite locations |
| Blog Post | 1,500 | 100% | In-depth, valuable content |
| Product Page | 400 | 80%+ | Unique descriptions, specs |
| Category Page | 400 | 100% | Unique intro, not just product listings |
| About Page | 400 | 100% | Company story, team, values |
| Landing Page | 600 | 100% | Focused conversion content |
| FAQ Page | 800 | 100% | Comprehensive Q&A |
---
Location Page Thresholds
Warning Level (30+ pages)
- ⚠️ WARNING at 30+ location pages
- Enforce 60%+ unique content per page
- Content must include:
- Unique local information (landmarks, neighborhoods)
- Location-specific services or offerings
- Local team or staff information
- Genuine customer testimonials from that area
Hard Stop (50+ pages)
- 🛑 HARD STOP at 50+ location pages
- Require explicit user justification
- Must demonstrate:
- Legitimate business presence in each location
- Unique content strategy for each page
- Local signals (Google Business Profile, local reviews)
Why This Matters
Google's doorway page algorithm penalizes programmatic location pages with thin/duplicate content. Signs of doorway pages:
- Only city/state name changed between pages
- No unique local information
- No local business signals
- Keyword-stuffed URLs
---
Safe vs. Risky Programmatic Pages
Safe at Scale ✅
| Page Type | Why It's Safe |
|---|---|
| Integration pages | Real setup documentation, unique technical content |
| Template/tool pages | Downloadable assets, unique functionality |
| Glossary pages | 200+ word unique definitions |
| Product pages | Unique specs, images, reviews |
| User profile pages | User-generated unique content |
Penalty Risk ❌
| Page Type | Why It's Risky |
|---|---|
| Location pages with only city swapped | Duplicate content, doorway pages |
| "Best [tool] for [industry]" | Often thin, no industry-specific value |
| "[Competitor] alternative" | Requires genuine comparison data |
| AI-generated mass content | No unique value, E-E-A-T failure |
---
Title Tag Requirements
| Aspect | Requirement |
|---|---|
| Minimum length | 30 characters |
| Maximum length | 60 characters (Google truncates ~60) |
| Primary keyword | Near the beginning |
| Brand name | At end (if included) |
| Uniqueness | Each page must have unique title |
Good Examples
- "Emergency Plumbing Services in Austin | ABC Plumbing"
- "How to Fix a Leaky Faucet: Step-by-Step Guide"
- "Enterprise SEO Software | Comprehensive Platform"
Bad Examples
- "Home" (too short, not descriptive)
- "Best Plumbing Services for All Your Plumbing Needs in Austin Texas and Surrounding Areas" (too long)
- "ABC Plumbing - Plumbing - Plumber - Plumbing Services" (keyword stuffing)
---
Meta Description Requirements
| Aspect | Requirement |
|---|---|
| Minimum length | 120 characters |
| Maximum length | 160 characters (Google truncates ~155-160) |
| Call-to-action | Include compelling CTA |
| Primary keyword | Include naturally |
| Uniqueness | Each page must have unique description |
---
Image Alt Text Requirements
| Aspect | Requirement |
|---|---|
| Required on | All non-decorative images |
| Length | 10-125 characters |
| Content | Describe the image content, not "image" or filename |
| Keywords | Include naturally where relevant |
| Decorative images | Use alt="" or role="presentation" |
Good Examples
- "Professional plumber repairing kitchen sink faucet"
- "Red 2024 Toyota Camry sedan front view"
- "Team meeting in modern office conference room"
Bad Examples
- "image.jpg" (filename, not description)
- "plumber plumbing plumber services" (keyword stuffing)
- "Click here" (not descriptive)
---
Internal Linking Guidelines
| Page Type | Internal Links Target |
|---|---|
| Blog post (1,500+ words) | 5-10 internal links |
| Service page | 3-5 internal links |
| Category page | Links to all child pages |
| Product page | 2-4 internal links |
Anchor Text Rules
- Use descriptive anchor text (not "click here")
- Vary anchor text (don't always use exact match keywords)
- Link to relevant, related content
- Ensure no orphan pages (every page linked from at least one other page)
---
Content Freshness Signals
| Content Type | Update Frequency |
|---|---|
| News/current events | Within hours/days |
| Blog posts (evergreen) | Review annually |
| Product pages | When specs change |
| Service pages | Review quarterly |
| Company info | When changes occur |
Required Elements
- Publication date visible (for articles/blogs)
- Last updated date (if significantly revised)
- Changelog for major updates (optional but good)
<!-- Updated: 2026-02-07 -->
Schema.org Types — Status & Recommendations (February 2026)
Schema.org Version: 29.4 (December 8, 2025)
Format Preference
Always use JSON-LD (<script type="application/ld+json">). Google's documentation explicitly recommends JSON-LD over Microdata and RDFa.
AI Search Note: Content with proper schema has ~2.5× higher chance of appearing in AI-generated answers (confirmed by Google and Microsoft, March 2025).
---
Active — Recommend freely
| Type | Use Case | Key Properties |
|---|---|---|
| Organization | Company info | name, url, logo, contactPoint, sameAs |
| LocalBusiness | Physical businesses | name, address, telephone, openingHours, geo, priceRange |
| SoftwareApplication | Desktop/mobile apps | name, operatingSystem, applicationCategory, offers, aggregateRating |
| WebApplication | Browser-based SaaS | name, applicationCategory, offers, browserRequirements, featureList |
| Product | Physical/digital products | name, image, description, sku, brand, offers, review |
| Offer | Pricing | price, priceCurrency, availability, url, validFrom |
| Service | Service businesses | name, provider, areaServed, description, offers |
| Article | Blog posts, news | headline, author, datePublished, dateModified, image, publisher |
| BlogPosting | Blog content | Same as Article + blog-specific context |
| NewsArticle | News content | Same as Article + news-specific context |
| Review | Individual reviews | reviewRating, author, itemReviewed, reviewBody |
| AggregateRating | Rating summaries | ratingValue, reviewCount, bestRating, worstRating |
| BreadcrumbList | Navigation | itemListElement with position, name, item |
| WebSite | Site-level | name, url, potentialAction (SearchAction for sitelinks search) |
| WebPage | Page-level | name, description, datePublished, dateModified |
| Person | Author/team | name, jobTitle, url, sameAs, image, worksFor |
| ContactPage | Contact pages | name, url |
| VideoObject | Video content | name, description, thumbnailUrl, uploadDate, duration, contentUrl |
| ImageObject | Image content | contentUrl, caption, creator, copyrightHolder |
| Event | Events | name, startDate, endDate, location, organizer, offers |
| JobPosting | Job listings | title, description, datePosted, hiringOrganization, jobLocation |
| Course | Educational content | name, description, provider, hasCourseInstance |
| DiscussionForumPosting | Forum threads | headline, author, datePublished, text, url |
| ProductGroup | Variant products | name, productGroupID, variesBy, hasVariant |
| ProfilePage | Author/creator profiles | mainEntity (Person), name, url, description, sameAs |
---
Restricted — Only for specific site types
| Type | Restriction | Since |
|---|---|---|
| FAQPage | Government and healthcare authority sites ONLY | August 2023 |
Google severely limited FAQ rich results. Only authoritative sources (government, health organizations) now receive FAQ rich results. Do NOT recommend FAQPage schema for commercial sites.
---
Deprecated — Never recommend
| Type | Status | Since | Notes |
|---|---|---|---|
| HowTo | Rich results fully removed | September 2023 | Google stopped showing how-to rich results |
| SpecialAnnouncement | Deprecated | July 31, 2025 | COVID-era schema, no longer processed |
| CourseInfo | Retired from rich results | June 2025 | Merged into Course |
| EstimatedSalary | Retired from rich results | June 2025 | No longer displayed |
| LearningVideo | Retired from rich results | June 2025 | Use VideoObject instead |
| ClaimReview | Retired from rich results | June 2025 | Fact-check markup no longer generates rich results |
| VehicleListing | Retired from rich results | June 2025 | Vehicle listing structured data discontinued |
| Book Actions | Deprecated then REVERSED | June 2025 | Still functional as of Feb 2026 — historical note only |
| Practice Problem | Retired from rich results | Late 2025 | Educational practice problems no longer displayed |
| Dataset | Retired from rich results | Late 2025 | Dataset Search feature discontinued |
---
Recent Additions (2024-2026)
| Type/Feature | Added | Notes |
|---|---|---|
| Product Certification markup | April 2025 | Energy ratings, safety certifications. Replaced EnergyConsumptionDetails. |
| ProductGroup | 2025 | E-commerce product variants with variesBy, hasVariant properties |
| ProfilePage | 2025 | Author/creator profile pages with mainEntity Person for E-E-A-T |
| DiscussionForumPosting | 2024 | For forum/community content |
| Speakable | Updated 2024 | For voice search optimization |
| LoyaltyProgram | June 2025 | Member pricing, loyalty card structured data |
| Organization-level shipping/return policies | November 2025 | Configure via Search Console without Merchant Center |
| ConferenceEvent | December 2025 | Schema.org v29.4 addition |
| PerformingArtsEvent | December 2025 | Schema.org v29.4 addition |
E-commerce Requirements (Updated)
| Requirement | Status | Since |
|---|---|---|
returnPolicyCountry in MerchantReturnPolicy | Required | March 2025 |
| Product variant structured data | Expanded | 2025 — includes apparel, cosmetics, electronics |
Note: Content API for Shopping sunsets August 18, 2026. Migrate to Merchant API.
---
Validation Checklist
For any schema block, verify:
1. ✅ @context is "https://schema.org" (not http) 2. ✅ @type is a valid, non-deprecated type 3. ✅ All required properties are present 4. ✅ Property values match expected data types 5. ✅ No placeholder text (e.g., "[Business Name]") 6. ✅ URLs are absolute, not relative 7. ✅ Dates are in ISO 8601 format 8. ✅ Images have valid URLs