WebComp.pl — score 92 → 95 przez Selpio + Claude Code
Software house webcomp.pl (Next.js + NestJS + PostgreSQL) użył Selpio do wygenerowania mega-planu naprawy własnej strony, a następnie Claude Code IDE do zaimplementowania fixów w repo. Total time: ~30 minut na 3 iteracje. Bonus: po dogfood getmepost zidentyfikowano bug w backend parser FAQ Selpio (false positive dla accordion structures) — naprawiono w llm-seo-analyzer i webcomp dostało dodatkowy +1 score (schema 23 → 25 max). Każdy dogfood loop ulepsza analyzer dla wszystkich klientów platformy.
Stan początkowy: score 92/100, baseline 19 kwietnia 2026
Webcomp.pl już od początku miał "good" tier — schema.org Organization + LocalBusiness + Service obecne, FAQPage z 9 pytaniami, blog SEO z keywords.json. Ale dimensions semantyczne i Schema.org były na 22-23/25 zamiast max — strony marketing z fluff'em ("100% zadowolonych klientów"), nieprzepisane treści blogowe (błędy diakrytyczne), ogólne CTA bez konkretów.
Cel: dogfood Selpio — pokazać że własne narzędzie podnosi własną infrastrukturę. Plus walidacja workflow "klient + Claude Code IDE + per-issue prompty".
Krok 1: Wygenerowanie mega-planu w Selpio (3 minuty)
Plan Agency (299 zł/mc) ma dostęp do generatora mega-planu. Workflow:
- Otwórz raport
app.selpio.com/r/{hash}dla webcomp.pl. - Sekcja "Naprawa przez Claude Code" → przycisk 🤖 Wygeneruj plan naprawy całej strony.
- Modal otwiera się, AI generuje plan markdown w ~25 sekund (Anthropic Claude Sonnet 4.6, max_tokens 2500).
- Stack picker auto-detected:
nextjs. Plan zawiera ścieżki plików dopasowane do Next.js (np.app/components/HeroSection.tsxa nie generyczne "znajdź plik"). - Klik 📋 Skopiuj plan dla Claude Code — markdown w clipboardzie.
Mega-plan dla webcomp zawierał 7 numerowanych kroków (z 5-10 maks): usunięcie niezweryfikowanych claims, korekta błędów diakrytycznych w KB, synchronizacja FAQ Schema z HTML, rozszerzenie odpowiedzi FAQ o timeline'y, definicja "MVP" przy pierwszym użyciu, rozszerzenie LocalBusiness Schema, pogłębienie case studies o kontekst branżowy.
Krok 2: Iteracja 1 — implementacja w Claude Code IDE (~15 min)
Otwarcie repo webcomp-www w Claude Code (claude.com/claude-code).
Wklejenie skopiowanego mega-planu w czat. Claude Code samodzielnie:
- Zidentyfikował 6 plików do edycji (Next.js app router structure)
- Każdą zmianę pokazał jako diff przed zastosowaniem
- Zachował styl kodu projektu (Tailwind + framer-motion)
- Zaproponował commit message dla każdej grupy zmian
Konkretne fixy z iteracji 1 (commit 61424a5):
-
AboutSection.tsxUsunięto nieweryfikowalny claim "100% zadowolonych klientów" — zastąpione metrykami które można powtórzyć (10+ lat zespołu, 50+ projektów, 4 SaaS, 30+ klientów B2B).
-
data/blogPosts.tsBulk fix błędów diakrytycznych w Knowledge Base — 100+ wzorców (wplywa→wpływa, szybkosc→szybkość, doswiadczenia→doświadczenia, ktore→które, uzytkownik→użytkownik). Diacritic count 85→215.
-
FAQSection.tsxSchema FAQPage już używał single source of truth (faqSchema.mainEntity = faqs.map). Dodano komentarz dokumentujący. Rozszerzono odpowiedź "Jak wygląda proces realizacji?" z ogólników na 6 etapów z konkretnymi tygodniami (1-2 tyg analiza, 2-3 tyg UX/UI itd.).
-
HeroSection.tsxMVP przy pierwszym wystąpieniu dostał <abbr title="Minimum Viable Product..."> + inline expansion.
-
layout.tsxLocalBusiness schema rozszerzony o 9 nowych pól: description, legalName, slogan, currenciesAccepted, paymentAccepted, foundingDate, areaServed, sameAs (LinkedIn+GitHub), aggregateRating bestRating/worstRating.
-
ReferencesSection.tsxCase studies rozszerzone o branżę, kategorię, użyte technologie (tag list), czas realizacji, mierzalne wyniki biznesowe (np. "rezerwacje 0→180/mc w 90 dni", "skrócenie księgowania faktury 3min→25sek -86%"). Plus Review schema per testimonial.
Build Next.js zielony (12 routes static + SSG). Tests: 17/17 passing.
bash deploy.sh → rsync na shared host produkcyjny. Smoke curl https://webcomp.pl/ HTTP/2 200.
Krok 3: Re-crawl (iteracja 1 wynik)
Skasowanie cache w Selpio DB, fresh crawl: score 92 → 92 (stable). Wymiary się przebalansowały — schema 22→23, ale rozszerzona treść (FAQ z timeline'ami, case studies) dała analizator semantyki więcej tekstu do oceny, co podniosło różne warning subjective. Net 0.
Ważne: headline issues znacząco się oczyściły. Wszystkie 7 fixów z mega-planu zostały zaadresowane — analyzer nie flaguje już nieweryfikowalnych claims, błędów diakrytycznych, ani niekompletnego LocalBusiness schema. Pozostały głównie subjective semantic warnings i 1-2 info.
Krok 4: Iteracja 2 — info issues + parser fix (~10 min)
Z raportu po iter 1 wybrano 5 issues (1 warning + 4 info) wymagających strukturalnych zmian:
-
public/llms.txtUtworzony plik wg standardu llmstxt.org dla LLM crawlers (GPTBot/ClaudeBot/PerplexityBot). Zawiera oferta (MVP/Standard/Enterprise + ceny), modele rozliczeń, 6 etapów procesu, 3 case studies, kontakt, FAQ. Naprawia MISSING_LLMS_TXT — llm_access 23→25 max.
-
FAQSection.tsx<span> → <h3> dla pytań w accordion. Backend Selpio parser szuka FAQ jako h2/h3 zakończone "?" + następny <p>. Single source of truth + semantyczna struktura.
-
HowWeWorkSection.tsxSHALLOW_CONTENT warning→info. 3 kroki rozszerzone z ogólników na konkretne deliverables: czas trwania per krok (call 45min, 3-5 dni analiza), narzędzia (Figma, Linear/Notion), konkretny output per krok (notatka 1-2 A4, deck koncepcji, podpisany kontrakt).
-
ContactSection.tsxINCOMPLETE_SENTENCES — urwane "Opowiedz nam jak pracujecie dziś" rozszerzone na complete CTA z konkretnymi pytaniami + co dostają w 24h (2-3 obszary do usprawnienia + ROI w msc + wstępna wycena) + warunki (bezpłatna, bez zobowiązań).
-
AboutSection.tsxAMBIGUOUS_CLAIMS pricing breakdown — MVP 90 000 PLN netto z warunkami płatności 50/50, lista 8 konkretnych deliverables ("w cenie"), 4 add-ons ("wykracza poza cenę"), alternative T&M 300/h.
Drugi bash deploy.sh. Re-crawl: SCORE 92 → 94 (+2).
Dimensions: structure 25/25 (max), schema 23/25, llm_access 23 → 25 (max!),
seo 19/20, authority 25/25 (max). SHALLOW_CONTENT downgrade warning → info.
ALE schema utknęło na 23/25 — analyzer flagował FAQ_SCHEMA_MISMATCH
mimo że FAQPage JSON-LD był poprawny. Powód: parser szukał <p>
jako bezpośredni sibling <h3>, ale w accordion struct
FAQSection h3 jest wewnątrz <button> → false positive.
Bonus iteracja: backend FAQ parser fix → schema 23 → 25 MAX
Po analogicznym dogfood case getmepost.com (gdzie ten sam bug objawiał się głębiej) wprowadziłem fix do backend Selpio. Parser FAQ teraz ma 3-level escalation:
- Level 1: sibling pattern —
<h3>Q?</h3><p>A</p>(markdown/prose) - Level 2: accordion — h3 w
<button>, p w next<div>wrapper (webcomp pattern) - Level 3: deeper nested — h3 → button → div.trigger → outer div.faq-item (getmepost pattern)
Helper findParagraphInSiblings szuka <p> w siblings
+ nested descendants. Stop conditions: znajdź <p>, znajdź
kolejny heading, koniec siblings. Commit 6057d4a, +6 testów
accordion patterns (suite 1502 → 1508). Re-crawl webcomp.pl po backend deploy:
SCORE 94 → 95 (+1), schema 23 → 25 MAX, FAQ_SCHEMA_MISMATCH znikło.
Strategiczna wartość dogfood: bug ujawniony w jednej dogfood iteracji (webcomp iter 2) → naprawiony dzięki kolejnej (getmepost iter 2) → korzyść dla wszystkich klientów Selpio używających accordion UI (większość modern landing pages w React/Vue/Svelte).
Porównanie dimensions baseline → po dwóch iteracjach + backend bonus
| Wymiar | Baseline | Iter 1 | Iter 2 | + Backend fix | Max |
|---|---|---|---|---|---|
structure | 22 | 25 | 25 | 25 MAX ✓ | 25 |
schema | 22 | 23 | 23 | 25 MAX ✓ +2 bonus | 25 |
semantics | 19 | 19 | 19 | 19 | 25 |
llm_access | 23 | 23 | 25 | 25 MAX ✓ | 25 |
seo | 19 | 19 | 19 | 19 | 20 |
authority | 25 | 25 | 25 | 25 MAX ✓ | 25 |
technical_seo | 16 | 16 | 16 | 16 | 20 |
content_schema_candidates | 0 | 50 | 50 | 50 | 100 |
| TOTAL | 92 | 92 | 94 | 95 | 100 |
Bonus: 4 backend improvements w Selpio z dogfood feedback
Podczas tych 2 iteracji odkryliśmy 4 false positives i missing prompts w naszym własnym analyzerze. Każdy stał się commitem w Selpio backend repo:
- Schema whitelist extension —
LocalBusiness/Service/Review/SoftwareApplication/Event/Course/JobPostingdodane doRECOGNIZED_TYPESiHIGH_VALUE_TYPES. Eliminuje false positive UNRECOGNIZED_SCHEMA_TYPE dla legit business landing pages. - FAQ fuzzy matching — substring match zastąpiony token-based Jaccard similarity (≥60% schema tokens w HTML tokens, asymmetric żeby tolerować CSS-truncate'owany accordion text). Naprawia FAQ_SCHEMA_MISMATCH false positives.
- Image alt parser fix — szanuje ARIA decorative markers (
role="presentation",aria-hidden="true").alt=""z marker = świadomie decorative, NIE liczone jako missing. Zgodnie z WCAG 2.1. - FIX_PROMPT_TEMPLATES expansion — z 20 → 30 codes. Dodane custom action plans dla: MISSING_LLMS_TXT, NO_LISTS, SITEMAP_NO_LASTMOD, FAQ_SCHEMA_MISMATCH, AMBIGUOUS_CLAIMS, INCOMPLETE_SENTENCES, MISSING_DEFINITIONS, JARGON_HEAVY, NO_HIGH_VALUE_SCHEMA, META_DESCRIPTION_TOO_LONG.
+18 nowych testów backend (image alt, schema whitelist, questionsMatch fuzzy). Suite 1484 → 1502. Wszystkie klienci Selpio dostają teraz dokładniejszą analizę dzięki temu dogfood loopowi.
Co z tego wynika dla Twojej firmy?
- Score 94/100 na good tier landing jest realny dla Next.js/Astro/Nuxt strony marketing — nie wymaga przepisywania od zera, tylko ukierunkowanych fixów.
- 30 minut dla 3 iteracji = ~10 min na iterację. Większość czasu to Claude Code wykonujący zmiany, nie ty.
- 0 zł LLM cost dla per-issue templates — działa nawet w planie Free. Mega-plan generator wymaga Agency 299 zł/mc (Anthropic API koszt).
- Twoja strona = lepszy QA dla Selpio — każda iteracja może odkryć bug w analyzer parsera (false positive). Reporting w GitHub Issues mile widziany.
🚀 Wygeneruj raport dla swojej strony Zobacz plan Agency (mega-plan)