Przejdź do treści

Ile naprawdę kosztuje przerobienie strony po freelancerze

12 min czytaniaŚredni

Co znajdujemy najczęściej w stronach po freelancerach, kiedy naprawiać a kiedy przepisywać. Dwa studia przypadku z naszego portfolio i framework decyzyjny, bez sztucznych liczb.

Kadr podzielony pionową szmaragdową linią: po lewej splątane szare kable i fragmenty kodu, po prawej uporządkowany szklany dashboard

TL;DR

Decyzja o tym, czy stronę naprawiać, czy pisać od nowa, sprowadza się do trzech rzeczy: stanu kodu, wieku frameworka i tego, jak zaprojektowana jest baza danych. Jeśli kod ma TypeScript, aktualną wersję frameworka i sensowną bazę, naprawa jest tańsza i szybsza. Jeśli wszystko trzeba zaczynać od początku, lepiej zaplanować to porządnie, w kawałkach krótszych niż trzy miesiące, najlepiej z wykorzystaniem wzorca Strangler Pattern.

Reszta tego tekstu opisuje to, co widzimy w kodzie najczęściej, jakie problemy są wciąż aktualne w 2026 roku, jak wygląda framework decyzyjny oraz dwa konkretne przykłady z naszego portfolio.

Po co ten artykuł

Co kilka tygodni rozmawiamy z kimś, kto w przeszłości zlecił stronę freelancerowi. Czasem była to oferta z ogłoszenia, czasem polecenie, czasem znajomy informatyk po godzinach. W większości przypadków przed kontaktem z nami minęło już kilka albo kilkanaście miesięcy i klient widzi, że coś jest nie tak: Google nie indeksuje stron, ładowanie idzie sześć sekund, formularz kontaktowy nie wysyła maili, a osoba, która stronę napisała, przestała odbierać wiadomości.

Ten tekst to próba zebrania w jedno miejsce wszystkiego, co wynosimy z takich rozmów oraz z migracji, które do tej pory zrobiliśmy. Patrzymy na to bardziej jak na raport z obserwacji rynku niż na argumentację sprzedażową. Chodzi o to, żeby ktoś, kto siedzi w identycznej sytuacji, mógł szybko ocenić, gdzie jest, i podjąć rozsądną decyzję, zanim wyda dwa razy więcej, niż musi.

Dwa konkretne przykłady, na których będziemy się tu opierać, znajdują się dalej: Fundacja Instytut Profilaktyki Zakażeń (która prowadzi przychodnię Centrum Medycyny Zapobiegawczej i Rehabilitacji) oraz Fundacja Znajdki ze schronisk dla zwierząt. Obie weszły do nas w klasycznej sytuacji "porzuconego projektu" i obie pokazują, czego ten typ migracji wymaga w praktyce.

Co zwykle znajdujemy

Lista nie jest kompletna i każda historia ma własne niuanse. Mimo to, kiedy klient przychodzi z prośbą o ocenę strony po freelancerze, zwykle przynajmniej trzy z poniższych punktów występują razem.

1. WordPress, który już nie nadąża

WordPress w 2010 roku był rewolucją: każdy mógł postawić stronę w weekend, bez programisty. Ta sama zaleta dwadzieścia lat później bywa wadą.

Powód jest prosty. Dziś nie WordPress jest najszybszą drogą do gotowej strony. Asystent AI w Cursorze albo Claude Code potrafi w ciągu kilku godzin postawić aplikację Next.js z TypeScriptem, autoryzacją, formularzem kontaktowym, ciemnym motywem, podstawową dostępnością i deploymentem na własny serwer. To, co WordPressowi i jego dziesięciu wtyczkom zajmowało dwa tygodnie, dziś jest jednym dniem pracy z czystym kodem, który da się czytać i utrzymywać.

Druga sprawa to ociężałość. Klasyczna instalacja WordPressa, której się przez kilka lat nie patrzyło na ręce, zwykle wygląda tak: trzydzieści wtyczek (sześć od SEO, trzy od cache, dwie od formularzy, każda chce być najważniejsza), motyw z marketu, builder w stylu Elementora, wszystko ładuje się w jednej fali, każde żądanie idzie do PHP i bazy danych, pamięć podręczna nie działa po drugim zalogowaniu administratora. PageSpeed na mobile pokazuje czterdzieści, LCP siedem sekund, Core Web Vitals niezdane.

Trzecia rzecz, coraz ważniejsza w 2026 roku: WordPress nie współgra dobrze z nowoczesnymi narzędziami AI. Nie chodzi o to, że nie ma wtyczek do ChataGPT, bo są ich dziesiątki. Chodzi o to, że jego architektura, monolityczna i oparta o PHP, nie umie wystawić się na zewnątrz w sposób, jakim oczekują dzisiejsi agenci AI, edge functions i typowanie po stronie API. Crawlery typu GPTBot, ClaudeBot czy Perplexity na ciężkim WordPressie z JavaScriptem we wtyczkach widzą fragment treści albo nic.

WordPress nadal działa i nadal bywa dobrym wyborem. Dla bloga z dwoma wpisami miesięcznie albo prostej strony statutowej jest w porządku. Problem zaczyna się tam, gdzie wchodzi skala, dynamika, integracje albo widoczność oparta o AI. Wtedy każda kolejna wtyczka jest długiem technicznym, który ktoś kiedyś zapłaci.

2. Kod, którego nikt nie rozumie

Nowy problem 2026 roku. Wykonawca wkleja kod sugerowany przez asystenta AI i nie sprawdza, co dokładnie robi. Rezultat jest charakterystyczny: trzy biblioteki realizujące to samo, niespójne nazewnictwo, fragmenty kodu z zupełnie innego stacku, komentarze "TODO: dokończyć". Strona działa, dopóki nikt nie próbuje jej zmienić. Kiedy klient prosi o drobną korektę, okazuje się, że zmiana w jednym miejscu psuje trzy inne.

3. Brak typowania

W 2026 cztery na pięć projektów frontendowych ma TypeScript. Brak typów to czerwona flaga widoczna z daleka. Bez typowania każda zmiana jest loterią: zmieniasz nazwę pola w API, a trzy miejsca w aplikacji się psują, bo nikt nie wiedział, że tych miejsc używają. TypeScript w połowie też bywa problemem, bo wystarczy jedno wymijające "any" we właściwym miejscu i cała sieć typów się rozsypuje.

4. Logowanie napisane od zera

Logowanie napisane bez gotowego, sprawdzonego rozwiązania (Supabase Auth, Auth.js, Clerk). Brak ograniczenia liczby żądań na endpointach logowania, hasła w bazie zapisywane bez aktualnego algorytmu haszowania, odzyskiwanie hasła przez wysłanie nowego maila bez tokenów z czasem ważności. Kategoria błędów, która kończy się incydentem RODO, jeśli ktoś z zewnątrz spojrzy na to z uwagą.

5. Migracje bazy danych w produkcji

Brak narzędzi do migracji schematu. Zmiany robione ręcznie w phpMyAdminie czy bezpośrednio w psql na serwerze produkcyjnym. Środowiska deweloperskie i produkcyjne są w różnych stanach. Każda nowa funkcjonalność wymaga manualnej synchronizacji i co kilka deployów coś się rozjeżdża.

Inne, krócej

W każdej z tych historii pojawia się również jeden lub kilka z poniższych: sekrety w repozytorium git (klucze API, hasła SMTP w tekście jawnym), brak monitoringu (błąd na produkcji wykrywany telefonem od klienta), brak dostępności (formularze bez etykiet, kontrast poniżej WCAG AA), niezabezpieczone API (endpointy bez autoryzacji, brak rate limitingu), polityka prywatności skopiowana z innej strony bez sprawdzenia, czy odpowiada faktycznym praktykom.

Naprawić czy przepisać od zera

To najtrudniejsza decyzja w całym procesie. Zanim podejmiesz ją intuicyjnie, warto znać argumenty obu stron.

Argument za naprawianiem

Klasyczny argument przeciwko przepisywaniu od zera pochodzi od Joela Spolsky'ego, współtwórcy Stack Overflow. W 2000 roku napisał, że Netscape, decydując się na przepisanie przeglądarki od podstaw, podarował konkurencji trzy lata. Trzy mocne punkty po stronie naprawy:

  • Stary kod zawiera setki drobnych poprawek na realne błędy, których nigdzie nie ma w dokumentacji. Wyrzucasz go, wyrzucasz tę wiedzę.
  • Kod jest trudniejszy do czytania niż do pisania. To, że wygląda źle, nie znaczy, że jest zły.
  • Podczas przepisywania nie możesz rozwijać produktu. Konkurencja cię wyprzedza.

Argument za przepisaniem

Spolsky pisał to ćwierć wieku temu, czyli przed open source na taką skalę, jaką znamy dziś, przed gotowymi klockami w stylu Supabase, Auth.js, Sanity, przed darmowymi managed bazami danych. W praktyce: dziś przepisanie często wychodzi taniej niż utrzymywanie starego kodu, jeśli ten kod faktycznie jest na tyle zły, że każda zmiana psuje coś innego.

Najważniejsze: przepisanie nie musi być wielkim wybuchem. Sprawdzony wzorzec to Strangler Pattern, czyli figowiec dusiciel. Nowy system stoi obok starego, a ruch przekierowywany jest po jednej trasie naraz. Gdy wszystko jest przeniesione, stary serwer się wyłącza. Bez wielkiego dnia, w którym wszystko musi zadziałać.

Kiedy naprawiać, kiedy przepisywać

Naprawiaj, jeśli:

  • Jest TypeScript, nawet częściowy.
  • Framework jest aktualny (React 18+, Node 20+, Next.js 14+).
  • Baza danych jest sensowna, relacyjna, z jakimkolwiek systemem migracji.
  • Problemy są punktowe (SEO, wydajność, jeden konkretny moduł).
  • Kod ma poniżej trzydziestu tysięcy linii i da się go czytać.
  • Autor kodu jest dostępny lub istnieje sensowna dokumentacja.

Przepisuj od zera, jeśli:

  • JavaScript bez TypeScriptu, powyżej piętnastu tysięcy linii.
  • WordPress z trzydziestoma plus wtyczkami, walczącymi ze sobą.
  • Framework starszy niż pięć lat (AngularJS, jQuery SPA, Backbone).
  • Brak testów, brak dokumentacji, brak kontaktu z autorem.
  • Sekrety zakodowane na sztywno w historii gita, brak autoryzacji, podatności OWASP Top 10.
  • Baza bez migracji, bez normalizacji, SELECT gwiazdka wszędzie.
  • Każda zmiana wymaga ruszenia pięciu niezwiązanych funkcji.

Najczęstszy zdrowy scenariusz to hybryda: zaczynasz od audytu, ustalasz, co przepisać, co poprawić, i robisz to etapami. Budżet jest niższy niż big bang, czas trwania dłuższy, ale ryzyko zatrzymania biznesu praktycznie zero.

Co to wygląda w praktyce

Dwa konkretne przykłady z naszego portfolio. Oba różne, oba pokazują inną stronę tego problemu.

Centrum Medycyny Zapobiegawczej i Rehabilitacji

Centrum Medycyny Zapobiegawczej i Rehabilitacji to przychodnia prowadzona przez Fundację Instytut Profilaktyki Zakażeń. Fundacja trafiła do nas w sytuacji, którą znamy z dziesiątek rozmów z organizacjami non-profit: strona przychodni stała na WordPressie, była niedokończona, działała bez certyfikatu SSL, a freelancer, który zaczął nad nią pracować, w pewnym momencie przestał odbierać wiadomości. To częsty scenariusz, szczególnie przy mniejszych projektach: ktoś bierze zlecenie, robi 60 procent pracy, znika, a klient zostaje z kodem, którego nie ma kto dokończyć.

Diagnoza była jednoznaczna. Bez SSL nie da się legalnie zbierać żadnych danych, nawet kontaktowych. Niedokończony WordPress oznaczał, że każda próba edycji groziła rozsypaniem strony. Postawiliśmy nową witrynę w React z Sanity jako CMS-em. React dał szybkość i interaktywność, Sanity zapewnił ekipie fundacji wygodny panel do publikacji bez konieczności wracania do programisty. SSL od pierwszego dnia, hosting na stabilnej infrastrukturze, pełny kod przekazany klientowi w jego repozytorium.

Fundacja Znajdki

Fundacja Znajdki prowadzi schroniska dla psów i kotów. Sytuacja wyjściowa była podobna do tej z poprzedniego przykładu: porzucona strona po freelancerze, utrudniony kontakt z autorem kodu i poczucie, że nikt nie weźmie ich projektu w pełną opiekę. Tyle że ich potrzeba szła dalej niż "potrzebujemy mieć stronę, która działa".

Sercem problemu była ekonomia zbiórek. Każda popularna platforma do crowdfundingu pobiera prowizję od wpłat. Co ważniejsze, anonimizuje dane darczyńców. Fundacja widziała tylko kwotę i datę, bez kontaktu do osoby, która tę wpłatę wykonała. To znaczyło realnie: brak możliwości podziękowania imiennie, brak relacji z darczyńcą, brak budowania społeczności wokół fundacji, brak szansy na ponowienie kontaktu przy kolejnej zbiórce. Każda wpłata była jednorazową transakcją zamiast początku relacji.

Postawiliśmy pełną stronę fundacji w React i Sanity, z wbudowanym systemem zbiórek opartym o PayU. Wpłaty trafiają bezpośrednio na konto Znajdek, bez pośrednika i bez prowizji platformy crowdfundingowej. Dane darczyńców (zgodnie z RODO, z jasnymi opt-inami) zostają w bazie fundacji. Efekt operacyjny jest prosty: każda złotówka idzie tam, gdzie powinna, a fundacja ma narzędzie do budowania długoterminowych relacji z ludźmi, którzy chcą jej pomagać.

Ile to typowo kosztuje

Nie ma jednej odpowiedzi. Cena migracji zależy od kilku rzeczy: ile jest stron i typów treści, w jakim stanie jest baza danych, czy są testy, czy są integracje z zewnętrznymi systemami, czy klient ma już zespół, który zrobi część pracy. Zamiast podawać konkretne kwoty, które prawie zawsze rozjeżdżają się z rzeczywistością, opiszemy widełki, w jakich się zwykle mieścimy.

Mniejsza migracja

Strona wizytówkowa, do pięciu typów treści, prosta struktura. Typowo dwa do czterech tygodni pracy, z audytem na początku i przeniesieniem treści. Mieści się w tym przebudowa frontendu, nowy CMS (zwykle Sanity), redirecty z poprzednich URLi, podstawowa zgodność z RODO i WCAG.

Średnia migracja

E-commerce albo strona z blogiem, kilkanaście typów treści, integracje. Sześć do dziesięciu tygodni. Tu dochodzi praca z bazą danych, struktura kategorii, integracja z systemem płatności, mapowanie SEO. Część projektu to przeniesienie istniejących klientów na nową stronę bez utraty pozycji w Google.

Większa migracja

Aplikacja internetowa z modułem logowania, panelem klienta i integracjami. Cztery do sześciu miesięcy, w etapach. Rzadko robimy to jako jedną ofertę, częściej dzielimy projekt na fazy, każda z własnym budżetem i z czymś, co działa po jej zakończeniu. Strangler Pattern w praktyce: nowy moduł obok starego, przeniesienie ruchu po jednym fragmencie naraz.

W każdym z tych scenariuszy kluczowe jest, żeby przed wyceną zrobić audyt. Bez niego liczby są zgadywaniem, a różnica między dobrze a źle wycenionym projektem to często sześćdziesiąt procent budżetu.

Jak nie wpaść w to ponownie

Jeśli szukasz wykonawcy nowej strony lub aplikacji, warto zwrócić uwagę na kilka rzeczy. Lista nie jest sztywną listą wymagań, a raczej zestawem obserwacji z naszej praktyki. Trzy lub więcej punktów zaznaczonych na "tak" zwykle oznacza, że warto poszukać dalej.

  • Brak portfolio z żywymi stronami. "Robiłem dla X, ale nie mogę pokazać" to często znaczy, że nic nie jest gotowe albo nikt nie chce się przyznać do tej współpracy.
  • Brak repozytorium kodu, do którego masz dostęp. Twój kod powinien być twój od pierwszego commita, w twoim GitHubie czy GitLabie.
  • Brak umowy z przeniesieniem praw autorskich. Bez tego kod technicznie nadal należy do wykonawcy.
  • Bardzo niska cena, poniżej stu złotych za godzinę. To zwykle albo junior bez doświadczenia, albo outsourcing do innego kraju bez twojej wiedzy.
  • "Nie potrzebujemy testów". Testy to nie luksus. To minimum profesjonalizmu w 2026 roku.
  • Brak propozycji architektury przed pisaniem kodu. Dobry wykonawca zaczyna od pytania "co tu trzeba?" zanim otworzy edytor.
  • Wszystko robi sam. Nawet doskonały programista nie zastąpi designera, osoby od QA i drugiej pary oczu w code review.
  • "Tym zajmie się admin." Programista, który nie wie, jak wdrożyć swój kod, nie skończył pracy.
  • Hasła i klucze API przesyłane przez WhatsApp lub Messenger.
  • Brak zainteresowania regulacjami (RODO, dostępność, ePrivacy). W 2026 to standard, nie ekstra.

Nie każdy freelancer jest słaby. Wielu jest świetnych. Ale każdy z powyższych punktów to sygnał, który warto sobie zaznaczyć i rozumieć, co bierzesz na siebie.

Co dalej?

Jeśli rozpoznajesz coś z powyższego we własnej sytuacji, nie jesteś sam. Większość firm, z którymi zaczynaliśmy współpracę, była w punkcie wyjścia bardzo podobnym do twojego. Da się to ogarnąć, czasem w tygodnie, czasem w miesiące. Najtrudniejsze jest zwykle pierwsze pytanie: od czego zacząć?

Trzy ścieżki, w zależności od tego, gdzie aktualnie jesteś.

Chcesz najpierw zobaczyć, co masz

Najszybciej zacząć od audytu. Sprawdzamy stronę pod kątem wydajności, SEO, bezpieczeństwa, zgodności z WCAG i RODO. Konkretny raport, bez ogólników.

Zobacz konsultacje techniczne.

Wiesz już, że trzeba przepisać

Jeśli decyzja o migracji jest podjęta, najszybciej zerknąć na stronę modernizacji. Opisaliśmy tam nasz proces, stack i sposób, w jaki układamy etapy projektu, żeby ryzyko było pod kontrolą.

Zobacz modernizację stron i aplikacji.

Chcesz po prostu pogadać

Krótka rozmowa, twoja strona i nasze obserwacje. Bez zobowiązań i bez handlowca przy słuchawce.

Napisz przez formularz kontaktowy.

Niezależnie od tego, którą ścieżkę wybierzesz, pierwszy krok jest ten sam: ktoś po naszej stronie patrzy na twoją stronę, mówi, co znalazł, i dopiero potem rozmawiamy o tym, co dalej.

Najczęściej zadawane pytania

Ile kosztuje audyt techniczny strony?
Bezpłatny audyt to 30-minutowa rozmowa z Patrykiem albo Erykiem, plus krótki raport mailowy. Pełny audyt kodu (8-40 godzin pracy) kosztuje od 5 do 15 tys. PLN, zależnie od wielkości projektu, i jest odliczany od kosztu migracji, jeśli zdecydujesz się z nami pracować dalej.
Czy zawsze lepiej przepisać niż naprawić?
Nie. W większości przypadków naprawiamy, jeśli kod ma TypeScript, aktualny framework i sensowną bazę. Przepisywanie ma sens, gdy framework jest starszy niż 5 lat, brakuje testów i dokumentacji, albo gdy każda zmiana psuje 3 inne rzeczy. Pełny framework decyzyjny opisaliśmy wyżej w sekcji "Naprawić czy przepisać od zera".
Ile trwa migracja z WordPressa do Next.js?
Mała strona (do 50 podstron, jeden szablon): 4-6 tygodni. Średnia strona z e-commerce (do 500 podstron, blog, formularze): 8-12 tygodni. Duża aplikacja z logiką biznesową: 4-6 miesięcy. Strangler Pattern wydłuża projekt o 30-50%, ale tnie ryzyko o ~80%.
Czy zachowam pozycje w Google po migracji?
Przy poprawnej migracji (mapowanie wszystkich URL-i, redirect 301, zachowanie struktury danych strukturalnych, sitemap, robots.txt): tak, pozycje zostają lub rosną. Przy złej migracji można stracić 50-90% ruchu organicznego w 2 tygodnie. Dlatego zawsze robimy audyt techniczny i mapowanie URL-i przed startem.
Co jeśli prowadzę klinikę i moja strona ma rezerwacje online?
Jesteś objęty Europejskim Aktem o Dostępności (EAA) od czerwca 2025 i RODO (dane medyczne to art. 9). Strona musi spełniać WCAG 2.2 AA, szyfrować dane at-rest, mieć rejestr czynności przetwarzania. Mamy osobną stronę dla branży medycznej z konkretnymi wymogami i studiami przypadku.
Czy mogę zostawić WordPressa jako CMS, a frontend przepisać?
Tak, to często najlepsza ścieżka. WordPress staje się "headless" (sam panel administracyjny), a frontend stoi na Next.js. Marketing pisze w znajomym edytorze, użytkownicy dostają szybką stronę z SSR. Migracja w tym wariancie kosztuje 30-50% mniej niż pełny rewrite.

Czy Twój produkt cyfrowy spełnia wymogi UE?

EAA, WCAG, RODO, NIS2. Te regulacje już obowiązują. Podaj adres, sprawdzimy zgodność z prawem UE. Za darmo, wyniki w 48h.

WCAG 2.1 AARODO / cookiesNIS2 / bezpieczeństwoWyniki w ciągu 48h
Pomaga nam dobrać zakres audytu i pierwsze rekomendacje.

Co dokładnie dostaniesz w 48 godzin

Krótki, konkretny dokument z najważniejszymi rekomendacjami. Bez zobowiązań i bez pokazówki sprzedażowej.

Co dostaniesz

  • Krótki raport PDF (2-3 strony) z oceną technicznych aspektów WCAG, RODO i NIS2
  • Top 3 ryzyka techniczne, które warto zaadresować w pierwszej kolejności
  • Listę quick winów, które możesz wdrożyć sam lub z dowolnym wykonawcą
  • Opcjonalną krótką rozmowę online, jeśli chcesz dopytać o wyniki

Kto to robi

  • Skan prowadzi członek zespołu EPKO, wspierany automatycznymi narzędziami (Lighthouse, axe-core, własne checklisty)
  • Masz bezpośredni kontakt z osobą, która podpisała się pod raportem, bez account managerów
  • Raport pokrywa warstwę techniczną, nie zastępuje formalnego audytu prawnego ani certyfikacyjnego
  • Jeśli zdecydujesz się na współpracę nad naprawą, do projektu wchodzą Eryk (CTO) lub Patryk (CEO)

W jakiej formie

  • PDF wysyłany mailem, dostępny dla czytników ekranu
  • Krótkie podsumowanie wyników w treści odpowiedzi
  • Materiały zostają u Ciebie, możesz je przekazać działowi prawnemu lub IT
  • Czas: 48 godzin od potwierdzenia zgłoszenia, w dni robocze

Najczęstsze pytania o audyt