Blog, który pisze się sam: AI zamienia moją pracę we wpisy SEO
Przez pierwsze miesiące pracy z Claude Code rozwiązywałem z AI po kilka problemów dziennie: zamówienia w sklepie, które system oznaczał jako nieopłacone, choć klient zapłacił, zaporę hostingu, która odcinała cały serwer, zadania cykliczne, które znikały bez śladu. Każdy z tych problemów ktoś kiedyś wpisze w Google. I żaden nie trafiał na bloga, bo pisanie to osobna robota, na którą nigdy nie było czasu. Dlatego zbudowałem automatyczne pisanie bloga z AI: skill, który wyłapuje temat w trakcie pracy, zapisuje całą historię w moim CRM-ie i oddaje mi gotowy szkic wpisu SEO do przeczytania.
W tym wpisie pokazuję, jak ten system jest zbudowany, dlaczego AI u mnie nigdy nie publikuje samo i jakie bramki musiałem dopisać w kodzie, bo pierwsze wersje produkowały błędy, których nie widać ani w edytorze, ani w bazie danych.
Kontekst: najlepsze tematy powstają przy pracy, nie przy biurku
Na co dzień prowadzę wdrożenia platform kursowych, automatyzacje i strony na WordPressie. Większość technicznej roboty robi ze mną Claude Code. Po każdym dniu zostaje kilka historii z prawdziwym przebiegiem: objaw, ślepa uliczka, odkrycie, poprawka. To jest dokładnie to, czego ludzie szukają w wyszukiwarce, kiedy mają ten sam problem.
Blog na kosari.pl ruszył 10 sierpnia 2026 roku. Od połowy października system obsługuje trzy blogi: kosari.pl (usługi i automatyzacje), platformykursowe.pl (wszystko o platformach kursowych) i ten, na którym jesteś – o pracy z AI. Jedno założenie było od początku nienegocjowalne: żadnych tekstów typu „10 sposobów na…”. Jeśli za artykułem nie stoi prawdziwa historia z mojej pracy, artykuł nie powstaje.
Żeby AI wiedziało, co jest tematem, a co nie, w skillu zapisałem trzy warunki. Temat jest, gdy spełnia wszystkie naraz:
- ktoś to googla – da się wyobrazić realne zapytanie, na przykład „WordPress nie wysyła maili po zmianie hostingu”,
- mamy historię – był objaw, była ślepa uliczka, było odkrycie i poprawka, a nie samo „zrobiliśmy funkcję”,
- prowadzi do usługi – czytelnik z tym problemem to ktoś, komu realnie mogę pomóc.
Architektura: skill, CRM i harmonogram
System składa się z trzech części. Każda robi jedną rzecz i żadna nie wie więcej, niż musi.
1. Skill /blog w Claude Code
Skill to plik z procedurą, który Claude Code wczytuje, gdy zadanie do niego pasuje. Mój skill bloga ma trzy tryby. Radar odpala się po zamknięciu ciekawego zadania albo gdy pytam „czy jest z tego temat”: AI sprawdza trzy warunki i zapisuje pomysł. Pisanie zamienia pomysł w artykuł według stałego szkieletu: scena z objawem, kontekst, diagnoza ze ślepymi uliczkami, moment odkrycia, rozwiązanie do skopiowania, efekt, checklista dla czytelnika, FAQ i wezwanie do kontaktu. Publikacja to już tylko wysłanie szkicu przez CRM.
2. Moduł „Blog i pomysły” w CRM
Kolejka tematów nie leży w notatkach ani w plikach. Leży w moim CRM-ie, w jednej tabeli, gdzie każdy pomysł ma status: pomysł, zaakceptowany, szkic, opublikowany albo odrzucony. Najważniejsze pole to historia. AI ma ją zapisać tak obszernie, żeby za miesiąc dało się napisać artykuł bez dostępu do rozmowy, z której temat się wziął.
Każda z trzech domen ma w CRM-ie swój profil: krótki opis, o czym pisze ten blog i dokąd prowadzą wezwania do działania. Zmieniam profil i zmieniają się tematy, bez ruszania automatyzacji.
3. Puls, czyli harmonogram zadań AI
Puls to mój harmonogram zadań dla Claude’a na serwerze. Do bloga ma trzy zadania tygodniowo: w poniedziałek kosari.pl, w środę platformykursowe.pl, w piątek grzegorzrowinski.pl. Zadanie pobiera kontekst domeny, szuka tematu wśród zadań zamkniętych w ostatnich siedmiu dniach, a gdy nic świeżego nie pasuje – bierze najważniejszy czekający pomysł. Pisze artykuł, zapisuje go w CRM i wysyła na stronę jako szkic. Jeśli nie ma nic sensownego do napisania, kończy się słowem „CISZA” i nie dostaję żadnej wiadomości.
Na stronę wpis trafia przez osobne konto WordPressa z rolą Autora i hasłem aplikacji zapisanym w CRM w formie zaszyfrowanej. Tytuł SEO, opis i frazy idą do Rank Math przez jego API. Stan wpisów wraca ze strony do CRM co godzinę, więc widzę w jednym miejscu, co czeka, a co już jest publicznie.
Dlaczego szkic, a nie automatyczna publikacja
Najczęstsze pytanie, jakie słyszę: skoro AI pisze, sprawdza SEO i wysyła na stronę, to po co ja w tym procesie? Odpowiedź jest prosta. Artykuł idzie pod moim nazwiskiem i opisuje pracę dla prawdziwych klientów. AI potrafi źle zrozumieć przebieg historii, przypisać sobie coś, czego nie zrobiliśmy, albo zostawić szczegół, który zdradza, o którą klientkę chodzi. Tego nie wyłapie żadna bramka SEO.
Dlatego zasada jest twarda: AI tworzy wyłącznie szkice. Publikuję ja, jednym przyciskiem w karcie wpisu w CRM. Ten sam panel ma przycisk „Cofnij do szkicu”, gdy po publikacji coś mi się nie spodoba. Ten tekst też przeszedł tę drogę: powstał z pomysłu w kolejce, a zanim go czytasz, przeczytałem go ja.
Jeśli chcesz zbudować podobny system u siebie – z AI, które pisze na podstawie Twojej realnej pracy, a nie ogólników – na konsultacji 1:1 przejdziemy przez Twoją sytuację i zaplanujemy pierwszą wersję.
Diagnoza: co poszło nie tak w pierwszych tygodniach
Pierwsza wersja działała. Artykuły powstawały, szkice lądowały na stronie, wyglądały dobrze w edytorze. Problem w tym, że część błędów było widać dopiero tam, gdzie nikt z nas nie patrzył: u czytelnika albo w polach, których AI nie traktowało poważnie.
Pomysły bez polskich znaków
Automatyczne zadanie, które zbierało tematy, zapisało w jeden dzień 25 z 27 pomysłów bez ogonków. AI uznało, że pomysł w CRM to „notatka wewnętrzna”, więc pisało jak w kodzie. Tyle że z tych pól powstaje tytuł i treść wpisu, a ja je czytam. Poprawiłem je hurtem, a do zapisu dodałem bramkę: tekst bez polskich znaków przerywa zapis z komunikatem błędu.
Diagramy, które u czytelnika były pustą ramką
Grafiki w moich wpisach to SVG wklejone w treść – schematy rysowane kodem, bez zdjęć ze stocku. W bazie danych były całe. W edytorze były całe. Moja kontrola po zapisie sprawdzała, czy żaden SVG nie zginął, i przechodziła. A czytelnik widział pustą ramkę, pod którą napisy z diagramu wisiały jako zwykłe akapity.
Winna była funkcja WordPressa, która automatycznie zamienia puste linie na akapity. Wstawiała znaczniki akapitu do środka grafiki, a przeglądarka na takim znaczniku „wychodzi” z SVG. Na trzech opublikowanych wpisach zepsute było 14 z 15 grafik. Zauważyłem to na zrzucie ekranu, nie w żadnym raporcie.
Wezwanie do działania, którego nie dało się przeczytać
W ramce z wezwaniem do kontaktu pogrubiony tekst odziedziczył ciemny kolor treści i wylądował na ciemnozielonym tle. Kontrast wynosił 1,2 – praktycznie zero. Dla porównania: standard dostępności WCAG wymaga 4,5 dla zwykłego tekstu.
Zapora, która odrzucała treść
Artykuły techniczne zawierają przykłady kodu. Zapora na stronach WordPress odrzuca treść z surowym znacznikiem skryptu, kodem PHP czy zapytaniem SQL, bo wygląda to jak atak. Wysyłka kończyła się błędem 403, choć w treści nie było nic groźnego.
Odkrycie, które zmieniło cały system: AI pisze dobrze, ale nie widzi strony tak jak czytelnik. Każdą rzecz, którą wcześniej oceniałem okiem, musiałem zamienić w kod, który sprawdza efekt tam, gdzie patrzy człowiek – na żywej stronie, a nie w bazie danych.
Rozwiązanie: bramki, które nie dają się ominąć
Każda z tych wpadek skończyła się kodem, a nie kolejnym zdaniem w instrukcji dla AI. To ta sama zasada, którą opisałem przy hookach Claude Code: reguła zapisana zdaniem działa tylko wtedy, gdy model akurat ją czyta.
Dziś artykuł przechodzi przez kilka warstw kontroli, zanim w ogóle zobaczę go jako szkic:
- Polskie znaki w tytule, haczyku, historii i treści – bez nich zapis się nie uda.
- SEO: tytuł SEO ma 30-60 znaków i zawiera frazę główną, opis meta ma 120-160 znaków i też ją zawiera, są frazy dodatkowe, slug bez polskich znaków i kategoria, która naprawdę istnieje na stronie.
- Wezwanie do działania: w treści musi być link do kontaktu albo usługi na tej samej domenie, pełnym adresem. Sam odnośnik do kotwicy „#kontakt” się nie liczy.
- Linki: każdy link do moich stron musi odpowiadać poprawnie, bez błędu 404 i bez przekierowania.
- Grafiki: SVG tylko z dozwolonych elementów i atrybutów, bez stylów i skryptów. Specjalna wtyczka na stronie chowa grafiki przed automatycznymi akapitami WordPressa.
- Okładka: CRM sam generuje obrazek wyróżniający w formacie WebP, 1200 na 630 pikseli, z tytułu i kategorii. Bez okładki wpis nie wyjdzie publicznie.
- Kontrola po publikacji: po kliknięciu „Opublikuj” CRM otwiera wpis tak, jak zobaczy go czytelnik, a przy rozbitych grafikach cofa go do szkicu. Codziennie o 9:00 to samo sprawdzenie leci po wszystkich opublikowanych wpisach, razem z kontrastem tekstu.
Od strony technicznej cała wymiana z CRM to trzy polecenia. Pierwsze daje kontekst domeny, drugie zapisuje artykuł z walidacją, trzecie wysyła szkic:
flask blog-kontekst grzegorzrowinski.pl
flask blog-zapisz < artykul.json
flask blog-wyslij 123
Polecenie zapisu odpowiada albo „OK” z numerem pomysłu, albo „BLAD” z konkretnym powodem: za długi tytuł, brak frazy w opisie, link z przekierowaniem. AI poprawia i próbuje jeszcze raz. Nie ma trzeciej drogi, w której coś przechodzi „prawie dobrze”.
Jak nie produkować generycznego AI-slopu
Bramki pilnują formy. Treść pilnuje skill, i tu zasady są równie twarde:
- Historia przede wszystkim. Bez prawdziwego przebiegu z mojej pracy artykuł nie powstaje. Poradnik ogólny to nie jest ten blog.
- Zero zmyślonych liczb. Jeśli nie ma pomiaru, AI pisze jakościowo („z kilku minut do sekund”), zamiast wymyślać procenty.
- Anonimizacja klientów. „Klientka prowadząca studio tańca”, „sklep na WooCommerce” – nazwa własna tylko za zgodą.
- Zero sekretów. Hasła, tokeny, adresy IP i ścieżki z nazwą użytkownika podmieniane na zastępniki.
- Długość wynika z tematu. Lepiej 1200 słów konkretu niż 3000 słów waty.
- Ślepe uliczki zostają w tekście. To one budują wiarygodność. Udawanie, że od razu wiedziałem, gdzie jest błąd, czytelnik wyczuwa natychmiast.
Efekt
Zamiast pustego bloga, na który „kiedyś coś napiszę”, mam kolejkę tematów w CRM, z których każdy ma pełną historię. W dniu, w którym piszę ten tekst, w kolejce czekało 21 pomysłów na trzy domeny, a ich przerobienie na artykuły było jednym poleceniem: kilka sesji AI pisało równolegle, każda swoje tematy, a bramka w CRM sprawdzała każdy wynik.
Moja rola przesunęła się z pisania na czytanie i decyzję. Nie siedzę nad pustą stroną. Czytam szkic, poprawiam to, czego AI nie mogło wiedzieć, i klikam „Opublikuj” albo odrzucam. Ile ruchu z wyszukiwarki to przyniesie, pokażą kolejne miesiące – nie podaję liczb, których jeszcze nie mam.
Jak zacząć u siebie – checklista
- Zapisz trzy warunki tematu: ktoś to googla, masz historię, prowadzi do Twojej usługi. Bez nich AI wygeneruje poradnik jak tysiąc innych.
- Trzymaj pomysły w jednym miejscu ze statusem i polem na pełną historię – nie w notatkach rozsianych po rozmowach.
- Daj AI stały szkielet artykułu zamiast ogólnego polecenia „napisz wpis”.
- Ustaw osobne konto WordPressa z rolą Autora i hasłem aplikacji. AI nie potrzebuje uprawnień administratora, żeby zapisać szkic.
- Każdą rzecz, którą sprawdzasz okiem, zamień w kontrolę w kodzie: długość tytułu, obecność frazy, linki, kontrast, wygląd grafik u czytelnika.
- Publikację zostaw sobie. Szkic to bezpieczny bufor między AI a Twoją marką.
Czego nauczyła mnie ta historia
Automatyzacja bloga nie polega na tym, żeby AI pisało szybciej. Polega na tym, żeby wiedza z codziennej pracy przestała przepadać, a ja przestałem być wąskim gardłem. Najwięcej czasu nie kosztowało mnie pisanie skilla, tylko odkrywanie, że „wygląda dobrze w edytorze” nie znaczy nic. Od tej pory każda kontrola sprawdza efekt tam, gdzie patrzy czytelnik.
FAQ
Czy AI może samo pisać bloga firmowego?
Może pisać szkice, i to dobrze, jeśli dostaje prawdziwy materiał: przebieg problemu, ślepe uliczki, rozwiązanie. Bez takiego materiału powstają ogólniki, które niczym nie różnią się od tysięcy innych tekstów. Publikację i odpowiedzialność za treść zostawiam sobie.
Czy automatycznie pisane artykuły szkodzą SEO?
Szkodzą teksty bez wartości, niezależnie od tego, kto je napisał. Artykuł oparty na realnej historii, z konkretnym rozwiązaniem i checklistą, odpowiada na prawdziwe pytanie czytelnika. Dlatego u mnie bez historii artykuł w ogóle nie powstaje.
Jak połączyć Claude Code z WordPressem?
U mnie Claude Code nie łączy się z WordPressem bezpośrednio. Zapisuje artykuł w CRM, a CRM wysyła szkic przez REST API WordPressa z osobnego konta z rolą Autora i hasłem aplikacji. Dzięki temu AI nie ma dostępu administratora do strony.
Ile czasu zajmuje mi teraz jeden wpis?
Nie mierzyłem tego precyzyjnie, więc nie podam liczby. Różnica jest jakościowa: zamiast pisać od zera, czytam gotowy szkic i decyduję. Najwięcej uwagi wymaga sprawdzenie, czy historia zgadza się z tym, co naprawdę się wydarzyło.
Co, jeśli AI nie znajdzie tematu w danym tygodniu?
Wtedy niczego nie pisze. Zadanie kończy się słowem „CISZA” i nie dostaję żadnej wiadomości. Wolę tydzień bez wpisu niż wpis napisany na siłę.
Chcesz, żeby Twoja praca sama zamieniała się w treści?
Jeśli codziennie rozwiązujesz problemy, o których nikt się nie dowie, bo pisanie bloga zawsze przegrywa z bieżącą robotą – to dobry moment, żeby to zmienić. Na konsultacji 1:1 pokażę Ci, jak zbudować skill, kolejkę tematów i bramki jakości, dzięki którym AI pisze z Twojej realnej pracy, a Ty tylko zatwierdzasz. Masz pytanie przed konsultacją? Napisz do mnie.
A jeśli wolisz, żeby agenci AI i automatyzacje w Twojej firmie zostali po prostu wdrożeni za Ciebie, zajrzyj do wdrożeń agentów AI w Kosari albo do automatyzacji procesów.
Masz podobny problem? Napisz do mnie
Automatyzacje, AI w firmie, strona albo platforma - odpowiem osobiście, zwykle w ciągu 24 godzin.
