seo-audit-skills

skill
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 2 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Claude Code skills for technical SEO audits — WordPress, PrestaShop, GA4, GTM, Screaming Frog, SE Ranking, Semrush, robots.txt. Anonymized patterns from real audits.

README.md

SEO Skills for Claude Code

Desarrollado por Zythos Media — Especialistas en SEO & IA Search

A knowledge base of 22 skills for technical SEO audits with Claude Code.
Each skill encodes real-world patterns: documented CMS bugs, fix-ready code
snippets, audit checklists, and edge cases that generic AI training data misses.

Covers the full audit stack — CMS mechanics, JS-framework sites, Core Web Vitals,
schema markup, cache architecture, hreflang, third-party script management, and
the tools SEOs actually use.

  • CMS: WordPress (Divi, Elementor, WooCommerce), PrestaShop, Shopify
  • JS frameworks: React/Next.js, Vue/Nuxt on Vercel/Netlify — no CMS, no plugin
  • Analytics & tracking: GA4, Google Tag Manager
  • SEO tools: Screaming Frog, SE Ranking, Semrush
  • Technical: robots.txt (+ indexability), sitemap, canonical tags, redirects, on-page fundamentals, Core Web Vitals, cache, images, SSL/HTTPS, schema markup, hreflang, third-party scripts, JavaScript SEO
  • AI/GEO: GEO (Generative Engine Optimization), AI crawler access, llms.txt, Wikidata entity, brand citation signals

All knowledge is anonymized and GDPR compliant — no client data, no domains,
no identifying information. The pattern matters, not the source.


Skills

CMS — WordPress + Divi

File: skills/wordpress-divi/SKILL.md

Covers WordPress sites built with Divi Theme (Elegant Themes) 4.27.x.

  • Missing H1 — Divi does not generate H1 automatically. Fix: module > Design > Heading Tag
  • Massive inline CSS — Divi Dynamic CSS injects hundreds of KB per page. Fix: Critical CSS + Improved Asset Loading
  • Render-blocking JS — 10-20 scripts without async/defer. PHP snippets with script_loader_tag hook (WP 4.1+) to defer by handle, with jQuery exclusion
  • Hero as CSS background-image — invisible to the preload scanner. Fix: <link rel="preload"> or convert to real <img>
  • Security — <meta generator>, X-Powered-By, open REST API, user enumeration, pingback. PHP snippets with wp_robots (WP 5.7+) and rest_authentication_errors (WP 4.4+) hooks
  • Virtual robots.txt — WordPress generates robots.txt without a physical file. robots_txt hook (WP 3.0+) to add AI crawler rules
  • Conditional loading — Ninja Forms, Dashicons and GDPR plugins load on all pages. Fix: wp_enqueue_scripts with priority 100+
  • Audit checklist by criticality + common positives + Divi/Yoast configuration paths

CMS — WordPress + Elementor

File: skills/wordpress-elementor/SKILL.md

Covers WordPress sites built with Elementor (free and Pro), including stacks with WP Rocket and WooCommerce.

  • Lazy-loaded LCP hero — Elementor and WP Rocket replace src with SVG placeholder. fetchpriority="high" becomes useless even when present. Fix: e-no-lazyload, exclude in WP Rocket > Media > LazyLoad
  • fetchpriority on wrong element — assigned to decorative images (separators, dividers) instead of the real LCP image
  • Excessive CSS/JS — 40-90+ resources. Fix: Improved Asset Loading (Elementor > Settings > Performance)
  • Massive HTML payload — WP Rocket injects RocketLazyLoadScripts and elementorFrontendConfig inline. Observed up to 1.4 MB
  • Elementor lazy load on backgrounds — .e-con.e-parent:nth-of-type(n+4) hides backgrounds of sections 4+ until JS marks them. Causes CLS
  • Missing security headers — consistent pattern. Snippets for Nginx and Apache
  • Version exposure — Elementor in meta generator. PHP snippet to remove it
  • REST Link header — exposes internal WordPress IDs. Fix: remove_action('template_redirect', 'rest_output_link_header', 11)
  • DOM size — Section/Column (4 divs) vs Flexbox Containers (2 divs). Fix: Elementor > Tools > Converter
  • WooCommerce — duplicate BreadcrumbList (Yoast + Schema Pro), FAQPage without rich results in e-commerce since 2023, missing Product schema, /my-account/ in sitemap
  • PHP EOL — 7.4 EOL since Nov 2022. Fix: update in hPanel/cPanel/Plesk
  • Keyword cannibalization on location pages — Elementor makes it easy to duplicate templates by city
  • Audit checklist by criticality + common positives + configuration paths

CMS — PrestaShop

File: skills/prestashop-seo/SKILL.md

Covers PrestaShop 1.7.x / 8.x, including stacks with CreativeElements and Nginx/Plesk.

  • sitemap.xml 404 — PrestaShop generates the sitemap at /1_index_sitemap.xml. The standard path does not exist by default. Fix: 301 redirect in Nginx or .htaccess
  • Cache-Control: no-store — disabled by default on all HTML pages. Fix: CCC in Advanced Parameters > Performance (Smart cache CSS/JS, Minify HTML, Move JS to end)
  • URLs with numeric ID — /217-slug is PrestaShop standard. Not an error if the canonical points to the URL with ID. Migration requires a redirect plan
  • Controllers in sitemap — CreativeElements and sitemap modules include internal AJAX endpoints. Fix: exclude from the module or block in robots.txt
  • PHPSESSID with decade-long expiry — GDPR/ePrivacy. Fix: session.cookie_lifetime = 0 in php.ini
  • Missing OG tags — PrestaShop does not generate them by default. Smarty snippets for head.tpl
  • Hero as background-image — native sliders and CreativeElements. Fix: displayHeader hook to inject preload
  • Security — Nginx headers, CSP in report-only mode, expose_php = Off
  • Schema Product + Offer — generated natively in PS8 if enabled. AggregateRating requires a reviews module
  • IndexNow — implementation via actionObjectProductUpdateAfter hook
  • Backoffice route table + checklist by criticality + common positives

Tracking — Google Tag Manager

File: skills/google-tag-manager/SKILL.md

GTM debugging and configuration, focused on the "event not reaching GA4" scenario.

  • Diagnostic tree — 7 ordered steps: paused tag → restrictive trigger → Preview Mode → Consent Mode → firing order → Measurement ID → DebugView
  • Preview vs Production — Preview bypasses ad blockers and Consent Mode. Always test in incognito. ?gtm_debug=x for debugging in the real environment
  • dataLayer — structure, naming rules, GA4 reserved events, how to read the dataLayer in console and in the Preview tab
  • Consent Mode v2 — mandatory in EEA since March 2024. analytics_storage: denied blocks GA4 tags. Difference between Basic and Advanced Consent Mode. Default + update snippets
  • Firing order — GA4 Configuration Tag must fire on "Initialization - All Pages" before Event Tags. Tag Sequencing to guarantee it. Full trigger hierarchy
  • DebugView — how to activate via GTM, Chrome Extension or URL param
  • Common cases — AJAX forms vs traditional submit, Contact Form 7 (wpcf7mailsent), Elementor Forms, clicks on tel: and mailto:
  • Container installation verification via console and Network tab

Tracking — GA4 Analysis

File: skills/ga4-analysis/SKILL.md

GA4 data analysis for SEO audits, focused on organic vs paid acquisition.

  • UA to GA4 differences — sessions vs events, bounce rate vs engagement rate, goals vs conversions, sampling vs BigQuery
  • Organic vs paid — channel groups, how to isolate Organic Search, why misconfigured UTMs inflate organic
  • Attribution models — Data-driven (default), Last click, First click, Linear, Time decay. Lookback windows. Why GA4 and Google Ads show different numbers
  • Engagement — definition of engaged session (>=10s or >=2 pages or conversion), difference from UA bounce rate
  • GSC integration — Reports > Acquisition > Search Console. Limitation: only sessions where GA4 recorded the visit
  • Google Ads integration — remarketing audiences, conversion import, organic vs paid side-by-side analysis
  • DebugView — activation, latency, parameter validation
  • Useful SEO reports — organic landing pages, organic queries, pages with high organic bounce rate
  • Common errors — paid traffic in Organic, self-referral, inflated sessions, duplicate conversions, excessive direct traffic
  • BigQuery export, key dimensions and metrics

Tool — SE Ranking

File: skills/se-ranking/SKILL.md

SE Ranking data interpretation in the context of SEO audits.

  • Rank tracking — normal volatility (+-3) vs real drop (>5 positions sustained 7+ days) vs sudden drop (possible update). Diagnostic tree before acting
  • SERP Features — position 4 with Featured Snippet can outperform position 1 without feature in real CTR
  • Site Audit — static crawler (no JS rendering). Issues = signals, not conclusions. Prioritization table: high/medium/low priority by real impact
  • Documented false positives — H1 missing in Divi/Elementor, duplicate content from pagination, broken links in JS, dynamic meta description
  • Traffic estimation — error margin +-40-60%. Use as trend, not absolute figure. Comparison with GA4 and GSC
  • Keyword research — recommended flow from seed keywords to intent assignment. Volume differences between SE Ranking, Semrush and Google Ads
  • Competitor analysis — Share of Voice, Keyword Gap, when to use Semrush for discovery and SE Ranking for precise tracking
  • Integration with GSC, Screaming Frog and Semrush

Tool — Screaming Frog

File: skills/screaming-frog/SKILL.md

Technical use of Screaming Frog SEO Spider in audits.

  • Spider vs JS Rendering — Spider: fast, does not execute JS. JS Rendering: uses Chromium, 5-10x slower, mandatory for Divi/Elementor. Selective crawl by URL list for large sites
  • CMS configuration — WordPress (exclusions for wp-admin, feeds, searches; JS timeout 10s) and PrestaShop (session/currency/language parameters to exclude; Accept-Language header)
  • Key reports — Response Codes (302->301 redirects, linked 404s, 500s), Page Titles (missing, duplicate, length), Meta Description, H1 (missing, multiple), Canonicals (pointing to 404, missing canonical), Directives (unintentional noindex), Images (alt text, size)
  • Orphan pages — Bulk Export > All Inlinks. Pages without internal links that rank in SE Ranking = opportunity to improve internal PageRank
  • Integration — GSC (impressions/clicks columns in crawl), GA4 (sessions per URL), PSI (selective crawl only)
  • False positives — H1 missing in Divi/Elementor, duplicate content in pagination without canonical, broken links in JS modals, slow page without CDN cache, images missing alt in CSS backgrounds
  • Performance — estimated time table by site size and crawl mode. Minimum 8GB RAM for JS rendering

Tool — Semrush

File: skills/semrush/SKILL.md

Semrush use and interpretation as a complementary tool in the audit stack.

  • Organic Research — position distribution (top 3 / 4-10 / 11-100), top pages, historical trend, branded vs non-branded. Precision: +-40%, use as trend
  • Keyword Gap — Missing (biggest opportunity), Weak (improve position), Untapped (validate demand). Intents: Informational, Navigational, Commercial, Transactional
  • Backlink Gap — domains linking to competitors but not the client. Filter by Authority Score >30
  • Site Audit — basic crawler. In the audit flow, Screaming Frog is the main crawler. Semrush Site Audit as secondary check
  • Traffic Analytics — total traffic estimation (not just organic). Useful for channel comparison with competitors. Do not use as real figures
  • Authority Score — proprietary metric, not PageRank. Range table. Use as comparative reference, not as a target
  • SE Ranking vs Semrush — SE Ranking for precise tracking of defined keywords, Semrush for full domain discovery. Flow: Semrush discovers, SE Ranking tracks
  • Why positions differ — measurement date, datacenter, request location
  • Useful exports, limitations to communicate to the client

Technical — robots.txt + Indexability

File: skills/robots-txt/SKILL.md

Full technical specification and templates by site type, with focus on Google Merchant Center. Includes meta robots and X-Robots-Tag indexability control.

  • Google specification — Allow/Disallow precedence (longest rule wins), user-agent matching (specific does not inherit from *), * and $ wildcards, AdsBot outside the * wildcard
  • Merchant Center — MC error table and its cause in robots.txt, official solution (Googlebot + Googlebot-image with empty Disallow:), * block directives that cause disapprovals
  • Templates — informational site/blog, e-commerce without MC, e-commerce with MC (with "what NOT to include" section)
  • AI governance — table of training bots (block) vs AI search bots (allow). Difference between GPTBot and ChatGPT-User
  • Indexability — meta robots directives (noindex, nofollow, noarchive, noimageindex), X-Robots-Tag HTTP header, LiteSpeed Cache noindex bug, Disallow vs noindex conflict resolution
  • GSC coverage report — indexability states interpretation, "Google chose different canonical", noindex on pages that should be indexed
  • Screaming Frog — Indexability column, Non-Indexable filter, URLs in Sitemap Non-Indexable
  • WordPress — how to edit: SEO plugin, physical file, PHP hook
  • Evaluation checklist by criticality (critical / high / medium / low)

Technical — Canonical Tags

File: skills/canonical/SKILL.md

Canonical tag implementation, auditing, and CMS-specific bugs.

  • Fundamentals — when to use canonical vs 301, mandatory rules (absolute URL, one per page, self-reference, sitemap/hreflang coherence)
  • Pagination — self-referencing canonical on page 2+, why canonical to page 1 removes paginated pages from the index
  • URL parameters — tracking/UTM parameters, WooCommerce faceted navigation, PrestaShop LayerNavigation
  • WordPress — Yoast (relative canonical bug in subdirectory), Rank Math + Elementor duplicate canonical bug
  • WooCommerce — products in multiple categories (primary category required), variation URLs, transactional endpoint canonicals
  • PrestaShop — URL with numeric ID, LayerNavigation facet URLs, PS_CANONICAL_REDIRECT and PS_LAYERED_FULL_TREE
  • Canonical chains — how chains form, PageRank deprecation per hop, fix via direct canonical to final URL
  • JavaScript rendering — canonical injected by JS vs static HTML, GSC URL Inspection to verify rendered canonical
  • Common errors — canonical to redirect, canonical to 404, canonical to noindex, multiple canonicals, relative canonical
  • GSC signals — "Duplicate without user-selected canonical", "Google chose different canonical"
  • Audit checklist by criticality

Technical — Redirects

File: skills/redirects/SKILL.md

301/302 redirect implementation, chains, loops, and migration planning.

  • Redirect types — 301/302/307/308 comparison table with PageRank transmission and correct use cases
  • Redirect chains — how they form (migrations, HTTP→HTTPS, multiple rebrands), crawl budget impact, fix
  • Redirect loops — causes (bad .htaccess rules, bidirectional migration), detection with curl, fix
  • WordPress — Redirection plugin (limitations vs server-level), .htaccess RewriteRule patterns, Nginx return 301, multisite subdirectory handling
  • PrestaShop — Tráfico > Redirecciones SEO & URLs, Friendly URLs activation, category/product URL mapping from database
  • Legacy permalink internal links — after a category→flat permalink change, old in-content links still 301 so they never show up as errors, yet they burn a hop and fragment link-graph analysis into phantom nodes; verify each flat destination with HEAD before rewriting
  • PageRank transmission — 301 transmits ~99% (2016 update), 302 not guaranteed, chain impact on crawl budget not on PageRank
  • Migration checklist — pre-migration crawl, URL mapping priorities (by inlinks), implementation, link update, sitemap update, GSC Change of Address
  • Crawl budget — GSC crawl stats high redirect %, Screaming Frog All Inlinks to Redirects report
  • Special cases — HTTPS+www in one hop vs two, soft 404 vs redirect, redirect to homepage as weak fallback
  • Audit checklist by criticality

Technical — On-Page Fundamentals

File: skills/on-page-fundamentals/SKILL.md

Title tags, meta descriptions, and H1: optimization rules, common errors, and audit workflow.

  • Title tag — length (50-60 chars), structure by page type (homepage/category/product/article/local), Google rewrite causes, keyword stuffing
  • Meta description — length (140-155 chars), when Google ignores it, structure by page type, why absence is not always bad
  • H1 — one per page rule, H1 ≠ title tag relationship, hierarchy structure, H1 in theme header on all pages
  • CMS bugs — Divi H1 not auto-generated, Elementor H1 conflict with theme, WP Rocket + Elementor template H1 duplication
  • WooCommerce — product title template without purchase keyword, PrestaShop category meta title defaulting to category name
  • Cannibalization — GSC query appearing across two URLs, detection in Screaming Frog, fix options (differentiate vs consolidate)
  • Screaming Frog — missing/duplicate/overlength titles, missing/duplicate meta descriptions, missing/multiple H1
  • GSC CTR analysis — pages with >100 impressions and CTR <2% in position 1-5 as title optimization candidates
  • Audit checklist by criticality

Technical — Sitemap XML

File: skills/sitemap/SKILL.md

Technical audit knowledge for XML sitemaps, covering discovery, structural validation, URL quality, and live sampling.

  • Discovery — robots.txt Sitemap: directive first, standard path fallback (/sitemap_index.xml, /sitemap.xml, PrestaShop /1_index_sitemap.xml)
  • Critical blockers — X-Robots-Tag noindex on the sitemap (HTTP 200 but unprocessable), HTTP status != 200, XML parse errors. Fixes for LiteSpeed Cache, Apache, Nginx
  • Sitemap index — sub-sitemaps returning 404, empty sub-sitemaps, authors sub-sitemap (thin content)
  • URL quality — HTTP/HTTPS mixing, www/non-www inconsistency, trailing slash inconsistency, uppercase paths, UTM/tracking parameters, staging URLs, cross-domain URLs, robots.txt Disallow conflicts
  • lastmod integrity — presence rate, 1970-01-01 Rank Math bug, invalid format, future dates, all-identical dates (static generation), all very old dates
  • Sampling — live checks for broken URLs, redirects (>20%), noindex pages in sitemap, canonical mismatch, slow response times (crawl budget impact)
  • CMS patterns — WordPress/Yoast, WordPress/Rank Math (documented bugs), WordPress/WooCommerce (/my-account/, product variations, out-of-stock, product tags, endpoints), PrestaShop default path, Shopify limitations, Magento
  • Audit checklist by criticality (critical / high / medium / low) + common positives

Technical — Hreflang

File: skills/hreflang/SKILL.md

Hreflang implementation and auditing for multilingual or multi-regional WordPress sites.

  • Fundamentals — when to implement, when not to, mandatory syntax, reciprocity rule and self-reference
  • WPML — configuration, indexable test page issue, conflict with page builders
  • TranslatePress — duplicate hreflang conflict with Yoast. Solution: disable in one of the two
  • Yoast + independent installations — incorrect WebSite schema @id in subdirectory. PHP snippet fix
  • HFCM (manual implementation) — when to use instead of a global plugin. Per-page setup
  • Hreflang Manager Lite — global mode risk with partial translation: generates massive broken reciprocity
  • Common errors — broken reciprocity, URLs with 404/redirect, incorrect language code, missing x-default, duplicate hreflang
  • Validation — Screaming Frog Hreflang tab (noreturn, incorrect code, non-canonical), GSC > International, manual JS verification snippet
  • Single-language multi-region — es-ES / es-MX / es-AR structure, x-default placement, canonical per region, WordPress implementation options
  • Checklist by criticality (critical / high / medium / low)

Technical — Schema Markup

File: skills/schema-markup/SKILL.md

JSON-LD structured data implementation, validation, and E-E-A-T signals.

  • Type selection — by page type: Organization/LocalBusiness, Article, FAQPage, BreadcrumbList, Product+Offer, MedicalWebPage, AggregateRating
  • Documented bugs — Rank Math datePublished=1970-01-01, Rank Math lowercase @type, logo <112×112px, relevantSpecialty/specialty with text or wrong enum URL (PhysicalTherapy is a business @type, not a MedicalSpecialty value — correct: Physiotherapy), sameAs with dead URLs (Google+), duplicate @id in subdirectory Yoast installations
  • Cached schema snapshots — Schema Pro (and Rank Math) store rendered JSON-LD in postmeta and re-saving the post does NOT regenerate it, so bulk content fixes silently leave structured data stale; detection, repair via a temporary REST route, and the _wp_old_slug / serialized-value traps
  • FAQPage — rich results restricted to gov/health since 2023, but still valuable for semantic understanding, Bing, and AI extraction (ChatGPT, Perplexity, AI Overviews)
  • E-E-A-T — author schema with jobTitle, description, consistent @id across Article and Person pages; embedded Person schema (no @id) when author archive page does not yet exist
  • Multi-domain entity consolidation — same @id/name/legalName/sameAs replicated across a parent brand's product/satellite domains (only alternateName changes), the legal-name-vs-brand-name mixup, and the known url-varies-per-domain limitation
  • CMS implementation — Yoast, Rank Math, WooCommerce, PrestaShop; output buffer fix pattern deployable via functions.php, Code Snippets plugin, HFCM, or must-use plugin
  • Validation workflow — validator.schema.org vs Rich Results Test vs GSC Enhancements (different tools, different purposes)
  • MedicalWebPage — does not generate GSC enhancement report; value is semantic, E-E-A-T, and AI extraction
  • Audit checklist by criticality

Technical — JavaScript SEO

File: skills/javascript-seo/SKILL.md

Technical SEO for sites built on JS frameworks (React/Next.js, Vue/Nuxt) deployed on
Vercel/Netlify or similar — no CMS, no SEO plugin, every signal depends on framework
configuration.

  • Incomplete hydration — nav/H1/schema existing only in the hydration payload, never
    reaching the served HTML; 3-step verification method (raw HTML vs JS-executing
    crawler vs real Google data) to tell "needs JS rendering" apart from a real bug
  • UI-interaction-gated content — pages only reachable through a dropdown/click that
    no crawler simulates, invisible even to crawlers that fully execute JavaScript
  • Systemic soft-404 — two distinct variants from catch-all dynamic routes: an
    invented top-level segment returning the full homepage with HTTP 200, and an
    invented sub-route rendering a real "not found" page but still with HTTP 200
  • Canonical/hreflang without a plugin — framework metadata API patterns, and the
    307-on-host-normalization bug that breaks canonical consolidation in multi-language
    redirect chains
  • Headers and redirects as project config — behavior-first framing for
    next.config.js/vercel.json-based security headers and redirects
  • fetchpriority misuse — applied to a text LCP element (heading, paragraph) has
    zero effect; only works on elements that fetch a resource
  • Audit checklist by severity

AI / GEO — Generative Engine Optimization

File: skills/geo-ai-discoverability/SKILL.md

Optimize for citation by AI assistants (Google AI Overviews, ChatGPT, Perplexity, Bing Copilot).

  • AI crawler access — robots.txt rules for GPTBot, OAI-SearchBot, PerplexityBot, Google-Extended, Anthropic-AI; decision logic for training vs citation access
  • llms.txt — file structure, implementation for WordPress and static sites, linking from robots.txt
  • Wikidata entity — minimum viable entity for brand/publication authority, required statements, linking to Organization schema via sameAs
  • NewsMediaOrganization schema — publishingPrinciples, masthead, description, ISSN for publications
  • Passage-level citability — answer-first structure, named statistics format, anti-patterns that reduce AI extraction
  • E-E-A-T for AI — author jobTitle + description as primary authority signals, about/masthead requirements
  • Platform-specific — Google AI Overviews (organic ranking matters), Perplexity (authorship + dates), ChatGPT/SearchGPT (Bing index + OAI-SearchBot), Bing Copilot (FAQ schema weighted)
  • Wikipedia — notability threshold, approach, Wikidata link
  • Citation monitoring — manual spot-check method, DataForSEO LLM mentions API
  • Audit checklist by criticality

Performance — Core Web Vitals

File: skills/core-web-vitals/SKILL.md

LCP, CLS, INP, and TTFB diagnosis and optimization across CMS platforms.

  • Field vs lab data — CrUX vs Lighthouse, when each is authoritative, minimum traffic threshold for CrUX data
  • LCP diagnostic tree — LCP element identification, lazy-loaded hero image, fetchpriority placement, preload hints, format and file size
  • CLS causes and fixes — missing image dimensions, web font FOUT, dynamic content injection, Elementor lazy background shift, cookie banners
  • Ad-driven CLS — using CrUX experimental_ad_density/ad_cpu/ad_kilobytes to tell ad-caused CLS apart from the consent banner in one API call, without reproducing it in a browser
  • Reserving ad slot height — why ins.adsbygoogle alone is the wrong selector when Auto Ads is on, where to source real slot heights, why ads never fill in automation
  • LiteSpeed Delay JS Execution — breaks jQuery-dependent sliders, leaves content invisible to non-interacting visitors and bots; exclusion field lives in the Tuning tab, plus ?LSCWP_CTRL=before_optm to get real script paths
  • INP — long tasks, third-party script competition, DOM size, forced reflows. Replaced FID in March 2024
  • TTFB — relationship to LCP, OPcache, page cache, CDN for HTML
  • CMS-specific — Divi (inline CSS, background hero), Elementor (lazy LCP, WP Rocket conflict, DOM size), PrestaShop (Cache-Control: no-store, CCC), Shopify (app scripts)
  • Measurement tools (PSI, CrUX, DevTools, WebPageTest) and audit checklist

Performance — Cache Headers

File: skills/cache-headers/SKILL.md

Cache-Control strategy, CDN configuration, and CMS-specific caching setup.

  • Cache-Control directives — max-age, s-maxage, no-cache, no-store, immutable, stale-while-revalidate with use cases per content type
  • Cache layers architecture — browser cache → CDN → reverse proxy → page cache → object cache → OPcache → database
  • ETag and Last-Modified — validation mechanics, Googlebot crawl budget impact, multi-server inode ETag problem
  • WordPress — WP Rocket (cache exclusions for WooCommerce), LiteSpeed Cache (X-Robots-Tag bug on XML), Redis object cache
  • LiteSpeed + Cloudflare — LiteSpeed emits only a proprietary header Cloudflare cannot read, so Edge TTL: respect origin has no directive to respect and HTML is barely cached; how to confirm it with a cookie-based origin probe, and the permanent x-litespeed-cache: miss case
  • PrestaShop — CCC options table, Smarty cache, Varnish and full-page cache options
  • Nginx — FastCGI page cache snippet, static asset cache headers, cache bypass for logged-in users
  • CDN — what CDNs cache by default (assets yes, HTML no), Cloudflare "Cache Everything" rule, cache invalidation strategies
  • Diagnosing cache issues with curl and response headers

Performance — Image Optimization

File: skills/image-optimization/SKILL.md

Format selection, responsive images, LCP handling, and CMS-specific optimization.

  • Format selection — WebP vs AVIF vs JPEG/PNG comparison, file size targets by image type
  • Responsive images — srcset, sizes attribute explanation, what happens when sizes is missing
  • LCP images — never lazy-load, fetchpriority="high", <link rel="preload"> in <head>, only one fetchpriority per page
  • Lazy loading — when to use and when not to. Elementor and WP Rocket lazy-loading paradox on hero images
  • alt text — content vs decorative images, keyword-stuffing pitfalls, WooCommerce product alt
  • CLS prevention — explicit width + height, aspect-ratio CSS alternative
  • CSS background-image vs <img> — preload scanner visibility, when each is appropriate
  • CMS specifics — WordPress (ShortPixel, Smush, attachment page noindex), PrestaShop (thumbnail regeneration), WooCommerce gallery

Security — SSL/HTTPS

File: skills/ssl-https/SKILL.md

Certificate management, mixed content, HTTPS migration, and security headers.

  • Certificate types — DV, OV, EV, wildcard, SAN. Let's Encrypt auto-renewal
  • HTTPS redirect — correct single-hop chain, redirect loops, WordPress and Nginx configuration
  • Mixed content — active (blocked) vs passive (warning), detection via DevTools and Screaming Frog, WordPress database search-replace, PrestaShop ps_configuration table
  • HSTS — directives, preload list requirements, risks of includeSubDomains with non-HTTPS subdomains
  • Security headers — HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-Powered-By removal
  • HTTPS migration checklist — pre-migration, redirects, mixed content, WordPress config, GSC, monitoring

Performance — Third-Party Scripts

File: skills/third-party-scripts/SKILL.md

Script loading strategies, CWV impact by vendor, GTM optimization, and script auditing.

  • Loading strategies — async vs defer vs blocking, dynamic import for interaction-triggered scripts
  • CWV impact by vendor — analytics (GA4, Matomo), advertising (Meta Pixel, Hotjar, Clarity), chat widgets, fonts (Google Fonts self-hosting), maps (facade pattern), video embeds
  • Facade pattern — lazy-load maps and YouTube players on user interaction
  • GTM tag audit — identifying unused tags, trigger optimization (DOM Ready vs Window Loaded), tag sequencing
  • Auditing third-party footprint — Chrome DevTools Coverage tab, PSI "Reduce third-party code", Screaming Frog source code extraction
  • Audit checklist by impact level

Installation

Manual install — Unix / macOS / Linux

git clone --depth 1 https://github.com/carlosuhart/seo-audit-skills.git
bash seo-audit-skills/install.sh

Manual install — Windows (PowerShell)

git clone --depth 1 https://github.com/carlosuhart/seo-audit-skills.git
powershell -ExecutionPolicy Bypass -File seo-audit-skills\install.ps1

All scripts copy each skills/*/SKILL.md to ~/.claude/skills/[name]/SKILL.md.
Running them again updates existing skills.

Works well with

Works standalone. For broader SEO coverage (AI search optimization, local SEO, programmatic SEO), combine with claude-seo.

Privacy

All knowledge is anonymized. No client names, domains, or identifying data.
GDPR compliant.

Contributing

Enrich the skills with real patterns as new issues appear.
Rule: knowledge is added anonymized — the pattern matters, not the source.

Yorumlar (0)

Sonuc bulunamadi