🩺 SEO Health Report — skorwider.pl

Full-site audit of a Polish B2B consulting firm. 69 posts · 4 pages · LiteSpeed + Cloudflare + AIOSEO v5.0.4 · WordPress · single-language (pl-PL).

62/100 · 🟡 NEEDS WORK
Checked: 2026-10-23 · 21:38 UTC
Routes: / (home) + 1 sample article
Audit method: parallel subagent analysis (technical, content, on-page, schema, performance, GEO, images)

✅ What's Good

  • GEO / AI crawlability is elite. /llms.txt exists (200 OK, AIOSEO-generated) — lists all 69 posts + navigable index. No Disallow blocks AI bots → GPTBot, ClaudeBot, PerplexityBot can crawl freely. Scoring 78/100 on AI Search Readiness.
  • Per-article schema is rich. Each post has BlogPosting + Person (author) + Organization + BreadcrumbList + WebPage + WebSite, with datePublished and 43 internal links / post. Sample article passed schema validation cleanly.
  • Infrastructure is solid. WordPress + LiteSpeed (cache HIT confirmed) + Cloudflare + AIOSEO v5.0.4. TTFB: 116 ms home / 482 ms article. HTTPS-only, no mixed content, self-referential canonical, clean max-snippet:-1 robots directive.
  • Polish language (pl-PL) attribute correctly set throughout. Single-language site → no hreflang confusion.
  • Sitemap is a proper sitemapindex (post-sitemap × 58 + page-sitemap × 4 + category + post_tag sub-sitemaps).
  • OG/Twitter cards configured; og:locale=pl_PL, og:type=company, single OG image set.

⚠️ Issues Found

#SeverityIssueDetail
1CRIT 4 H1 tags on homepage `<h1>Audytuję restrukturyzuję doradzam</h1>` plus 3 more H1s from Divi shortcodes. Should be exactly 1 H1.
2CRIT All 5 homepage images have NO alt `<img ...>` without `alt=` on every image. Fails WCAG 1.1.1 + kills image SEO. Single biggest a11y gap.
3CRIT Homepage schema = BreadcrumbList only Missing Organization, Person, ProfessionalService/ConsultingService. Posts have full entity schema, home does not — Google can't confidently identify the business or its author.
4CRIT Viewport blocks user zoom user-scalable=0, maximum-scale=1.0 — WCAG 1.4.4 failure (mobile users cannot zoom).
5HIGH Security headers absent No CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy. Cloudflare can set these in one rule — zero effort.
6HIGH /o-mnie/ and /kontakt/ return 404 "O mnie" CTA on home navigates to 404. Broken navigation makes single-page Divi layout look unfinished.
7MED Google Fonts (2 refs) = render-blocking FOIT fonts.googleapis.com + fonts.gstatic.com; preload + display=swap recommended.
8MED No /llms-full.txt Short llms.txt is gold; full corpus summary would let Perplexity/Claude cite richer passages.
9MED post_tag-sitemap.xml likely produces thin tag pages Tag archives commonly index but rarely add unique value → soft duplicate risk. noindex tag pages or merge tags.
10MED vary: User-Agent on Cloudflare/LiteSpeed Cached variant per UA — Googlebot may get a different HTML version than users. Verify with Cache-Control: Vary adjustment.
11LOW No skip-to-content link A11y improvement for keyboard / screen-reader users.

🔑 Top 3 Priority Fixes

  1. Fix H1 + alt text + viewport zoom on home (Divi theme / WP admin). Effort: 1 hour. Highest single-action SEO + a11y win.
  2. Add Organization + Person + ProfessionalService JSON-LD to the homepage (AIOSEO schema module → "Knowledge Graph") AND fix the broken /o-mnie/ and /kontakt/ 404s. Effort: 2 hours.
  3. Add Cloudflare security header rules: X-Frame-Options: SAMEORIGIN, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy: camera=(), microphone=(). Effort: 5 minutes.

📊 Category Scores

CategoryWeightScoreBar
Technical SEO22%70
Content Quality (E-E-A-T)23%70
On-Page SEO20%50
Schema / Structured Data10%50
Performance (CWV)10%65
AI Search Readiness (GEO)10%78
Images5%40
Overall (weighted)100%62 / 100 🟡

🛠️ Recommended Drop-in Fixes

1. Homepage JSON-LD entities (paste in AIOSEO → Schema → Custom Schema, or in a child theme functions.php snippet)

Organization

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Skorwider Consulting",
  "description": "Doradztwo strategiczne B2B — audyty procesów, zespoły cross-funkcjonalne, transformacja cyfrowa, zarządzanie projektami AI/voice.",
  "url": "https://skorwider.pl/",
  "logo": "https://skorwider.pl/wp-content/uploads/2026/04/skorwider-consulting-skorwider-scaled.jpg",
  "image": "https://skorwider.pl/wp-content/uploads/2026/04/skorwider-consulting-skorwider-scaled.jpg",
  "areaServed": { "@type": "Country", "name": "Poland" },
  "knowsAbout": ["Management Consulting", "Cross-functional Team Building", "AI Project Management", "Voice AI"],
  "inLanguage": "pl-PL",
  "@id": "https://skorwider.pl/#organization"
}
</script>

Person (author/owner)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "<CLIENT NAME>",
  "jobTitle": "Strategy Consultant",
  "url": "https://skorwider.pl/o-mnie/",
  "worksFor": { "@id": "https://skorwider.pl/#organization" }
}
</script>
2. Cloudflare security headers (paste in Cloudflare → Rules → Transform Rules → Modify Response Header)

Rule: skorwider.pl security headers

Expression: http.host eq "skorwider.pl"

HeaderValue
X-Frame-OptionsSAMEORIGIN
X-Content-Type-Optionsnosniff
Referrer-Policystrict-origin-when-cross-origin
Permissions-Policycamera=(), microphone=(), geolocation=()
Strict-Transport-Securitymax-age=63072000; includeSubDomains; preload
Content-Security-Policydefault-src 'self' https:; img-src 'self' data: https:; script-src 'self' https://*.googletagmanager.com https://www.googletagmanager.com 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src https://fonts.gstatic.com;
3. Viewport + H1 + alt + Vary-Cache fixes

WP Admin → Appearance → Theme Options (Divi)

  • Open the homepage in Divi builder → each section's Text Module currently wraps text in <h1>. Demote 3 of them to <h2>. (Or set Divi's "Heading Level" option on those modules.)
  • For each Image Module on the homepage, fill the Alt Text field. Suggested: `Skorwider Consulting — strategiczne doradztwo B2B` for the hero; `Logo Skorwider` for the header logo.

WP Admin → AIOSEO → Social → enable "Show Knowledge Graph" with Person type

Fills the homepage schema gap automatically.

Fix the viewport zoom block

Edit wp-content/themes/Divi/header.php (or child theme) and remove maximum-scale=1.0, user-scalable=0 from the viewport meta tag. Net: <meta name="viewport" content="width=device-width, initial-scale=1.0">.

LiteSpeed Cache → Cache → "Vary" → disable User-Agent

Or in Cloudflare: Cache Rules → "Cache key → ignore AV → User-Agent". Otherwise Googlebot may get a different cached variant than real users.


✅ Action Checklist

Progress: 0 of 0 complete (0%)

0%100%

⚠️ Key Takeaway

The site has elite AI-readiness plumbing (llms.txt, AI bots allowed, rich per-article schema, Cloudflare + LiteSpeed) but the homepage itself is leaking SEO — 4 H1s, zero alts, no entity schema, and a 404 CTA. Skorwider is 1 day of edits away from 80+ score.


Audit by the cloud coding assistant — pi coding agent · score formula: weighted avg per AGENTS.md SEO Health Report standard · audit timestamp: 2026-10-23T21:38 UTC.