skorwider.pl — SEO Audit + Action Checklist
🩺 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).
✅ What's Good
- GEO / AI crawlability is elite.
/llms.txtexists (200 OK, AIOSEO-generated) — lists all 69 posts + navigable index. NoDisallowblocks 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
datePublishedand 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:-1robots 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
| # | Severity | Issue | Detail |
|---|---|---|---|
| 1 | CRIT | 4 H1 tags on homepage | `<h1>Audytuję restrukturyzuję doradzam</h1>` plus 3 more H1s from Divi shortcodes. Should be exactly 1 H1. |
| 2 | CRIT | 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. |
| 3 | CRIT | 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. |
| 4 | CRIT | Viewport blocks user zoom | user-scalable=0, maximum-scale=1.0 — WCAG 1.4.4 failure (mobile users cannot zoom). |
| 5 | HIGH | Security headers absent | No CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy. Cloudflare can set these in one rule — zero effort. |
| 6 | HIGH | /o-mnie/ and /kontakt/ return 404 |
"O mnie" CTA on home navigates to 404. Broken navigation makes single-page Divi layout look unfinished. |
| 7 | MED | Google Fonts (2 refs) = render-blocking FOIT | fonts.googleapis.com + fonts.gstatic.com; preload + display=swap recommended. |
| 8 | MED | No /llms-full.txt |
Short llms.txt is gold; full corpus summary would let Perplexity/Claude cite richer passages. |
| 9 | MED | 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. |
| 10 | MED | 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. |
| 11 | LOW | No skip-to-content link | A11y improvement for keyboard / screen-reader users. |
🔑 Top 3 Priority Fixes
- Fix H1 + alt text + viewport zoom on home (Divi theme / WP admin). Effort: 1 hour. Highest single-action SEO + a11y win.
- Add
Organization+Person+ProfessionalServiceJSON-LD to the homepage (AIOSEO schema module → "Knowledge Graph") AND fix the broken/o-mnie/and/kontakt/404s. Effort: 2 hours. - 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
| Category | Weight | Score | Bar |
|---|---|---|---|
| Technical SEO | 22% | 70 | |
| Content Quality (E-E-A-T) | 23% | 70 | |
| On-Page SEO | 20% | 50 | |
| Schema / Structured Data | 10% | 50 | |
| Performance (CWV) | 10% | 65 | |
| AI Search Readiness (GEO) | 10% | 78 | |
| Images | 5% | 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"
| Header | Value |
|---|---|
| X-Frame-Options | SAMEORIGIN |
| X-Content-Type-Options | nosniff |
| Referrer-Policy | strict-origin-when-cross-origin |
| Permissions-Policy | camera=(), microphone=(), geolocation=() |
| Strict-Transport-Security | max-age=63072000; includeSubDomains; preload |
| Content-Security-Policy | default-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%)
⚠️ 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.