Strona internetowa dla psychoterapeuty: Next.js, migracja bloga z WordPressa i widoczność w ChatGPT
Dwujęzyczna strona psychoterapeuty z Mediolanu: 468 wpisów przeniesionych z WordPressa bez utraty adresów, panel sprawdzający teksty pod kątem kodeksu zawodu, strony cytowane przez ChatGPT.
Klient
Branża
Usługi
Strona internetowa

Problem
Giuseppe jest psychologiem i psychoterapeutą. Przyjmuje w Mediolanie, Monzy i Cernusco sul Naviglio, a online pracuje z Włochami mieszkającymi za granicą. Zajmuje się lękiem i atakami paniki. Znalazł mnie przez ChatGPT i to wyznaczyło kierunek całego projektu: nowa strona miała być zbudowana tak, żeby jego samego również znajdowano w odpowiedziach sztucznej inteligencji, a nie tylko w Google.
Stara strona działała na WordPressie, a na blogu było 468 wpisów. Te adresy od lat były w indeksie Google, więc nie wolno było ich stracić. Po uruchomieniu Giuseppe zamierzał prowadzić stronę sam, bez programisty. Reklamę psychologów we Włoszech ogranicza natomiast artykuł 40 kodeksu deontologicznego: nie wolno obiecywać efektów, publikować opinii pacjentów, dawać rabatów ani proponować „bezpłatnej konsultacji”. Jedno nieostrożne zdanie w tekście może stać się problemem dla licencji.
Była też kwestia tego, jak strona ma działać na odbiorcę. Wiele osób trafia na stronę psychoterapeuty w stanie lęku. Potrzebują spokojnego miejsca do czytania, a nie liczników, wyskakujących okien i przycisków „zapisz się teraz”.
Zadanie
- Zbudować stronę od zera: przejść z WordPressa na Next.js i Sanity
- Przygotować dwie wersje językowe: włoską jako podstawową i angielską pod /en
- Przenieść wszystkie 468 wpisów bloga tak, żeby stare adresy nadal działały
- Zrobić stronę czytelną dla Google i dla asystentów AI: ChatGPT, Perplexity, Google AI Overviews
- Dać psychoterapeucie panel, w którym trudno coś zepsuć i trudno naruszyć kodeks zawodu
- Zaprojektować własny, spokojny design zamiast szablonu
- Przekazać stronę właścicielowi z instrukcją, z której naprawdę da się korzystać
Wyniki
- Nowe strony serwisu pojawiają się już w odpowiedziach ChatGPT
- Wszystkie 468 wpisów bloga przeniesione, 468 z 468; stare adresy prowadzą na nowe przekierowaniami 301
- Serwis jest otwarty dla robotów i indeksowany, żadna strona nie została przypadkiem wyłączona z indeksu
- 7 stron głównych obszarów terapii, 21 podstron po włosku oraz strony dla Mediolanu, Monzy i terapii online dla Włochów za granicą
- 150 pytań i odpowiedzi po włosku, podpiętych do stron tematycznych i do strony FAQ
- Panel sam ostrzega, gdy w tekście pojawi się sformułowanie zakazane przez kodeks zawodowy
- Instrukcja dla właściciela po angielsku (69 stron) i po włosku (71 stron) plus nagrania wideo
- Od pierwszej linijki kodu do przekazania minęły 44 dni robocze
- Opinia Giuseppe w Google — 5 gwiazdek
Wykonana praca
- Własny projekt graficzny: ciemny motyw, jasne sekcje, krój szeryfowy z prawdziwą kursywą, wszystko na otwartych zasobach
- Odbiór blok po bloku: każdy blok strony głównej był akceptowany przez klienta przed rozpoczęciem następnego
- Realizacja na Next.js 16 i Sanity, panel wbudowany w samą stronę
- Wersja włoska i angielska z przetłumaczonymi adresami stron i powiązaniem między językami
- Migracja 468 wpisów z WordPressa razem ze zdjęciami i opisami, przekierowania 301 ze wszystkich starych adresów
- Kontrola tekstów pod kątem artykułu 40 kodeksu deontologicznego wbudowana w panel
- Zabezpieczenia panelu: kluczowych stron nie można usunąć, adres opublikowanej strony jest zablokowany, strona nie może istnieć bez języka
- Podgląd zmian bezpośrednio na stronie i publikacja bez udziału programisty
- Dane strukturalne dla Google i AI: specjalista, gabinety, zaburzenia, terapie, usługi, pytania i odpowiedzi
- Osobne reguły dla robotów AI w pliku robots.txt
- Mapa gabinetów w Mediolanie, Monzy i Cernusco sul Naviglio
- Formularz kontaktowy na poczcie własnej domeny klienta, z SPF, DKIM i DMARC
- Analityka uruchamiana dopiero po zgodzie odwiedzającego
- Instrukcja w dwóch językach i nagrania wideo dla właściciela
- Po przekazaniu: analiza Search Console i usunięcie duplikatów adresów
Najważniejsze elementy projektu
Opis projektu
Czego psychoterapeuta we Włoszech potrzebuje od strony internetowej: wyszukiwarka, zaufanie i kodeks zawodu
Strona prywatnego psychoterapeuty ma trzy zadania. Muszą ją znaleźć osoby szukające pomocy przy lęku lub atakach paniki. Musi budzić zaufanie u kogoś, komu i tak jest trudno. I nie może naruszać zasad zawodu, które we Włoszech są ostrzejsze niż w większości branż.
Stara strona na WordPressie radziła sobie z tym słabo, ale miała cenny majątek: 468 wpisów, które Google znał od lat. Zadanie brzmiało więc nie „zrobić ładnie”, tylko „zbudować wszystko od nowa i niczego nie stracić”.
Jak przygotowałem stronę psychoterapeuty do odpowiedzi ChatGPT, Perplexity i Google
Giuseppe znalazł mnie przez ChatGPT. Dlatego widoczność w odpowiedziach AI była wymaganiem od pierwszego dnia, a nie dodatkiem na koniec.
W praktyce oznacza to kilka rzeczy. Każda publiczna strona jest generowana wcześniej, więc robot wyszukiwarki albo asystent AI widzi cały tekst od razu, bez uruchamiania skryptów. Każda strona ma własny tytuł, opis i adres kanoniczny, a wersja włoska i angielska wskazują na siebie nawzajem, dzięki czemu wyszukiwarka pokazuje użytkownikowi stronę w jego języku.
W pliku robots.txt są osobne reguły dla robotów AI. Roboty wyszukiwarek ChatGPT, Perplexity i Claude mają dostęp otwarty wprost: mogą znaleźć stronę i zacytować ją w odpowiedzi. O tym, czy blokować roboty zbierające teksty do trenowania modeli, decyduje klient. Panel i adresy techniczne są zamknięte dla wszystkich.
Wersje testowe, które Vercel publikuje przy każdej zmianie, są zawsze wyłączone z indeksu — i w nagłówku odpowiedzi, i w samej stronie. Reguła jest zapisana w kodzie, więc robocza kopia nie trafi do Google, nawet jeśli ktoś o niej zapomni.
Efekt już widać: nowe strony serwisu pojawiają się w odpowiedziach ChatGPT.
Dane strukturalne Schema.org dla strony psychoterapeuty: specjalista, gabinety, zaburzenia
Dane strukturalne mówią wyszukiwarce i asystentowi AI, kto stoi za stroną. Opisują samego specjalistę, jego praktykę z adresami i godzinami przyjęć, strony medyczne, zaburzenia, którymi się zajmuje, rodzaje terapii, usługi z cenami, pytania i odpowiedzi, wpisy bloga oraz ścieżkę do każdej strony.
Dla człowieka to niewidoczne. Dla maszyny to jasny komunikat: ten specjalista w Mediolanie i Monzy pracuje z lękiem i atakami paniki, oto jego podejście, oto odpowiedzi na częste pytania.
Struktura serwisu zbudowana pod pytania pacjentów: tematy, miasta, terapia online
Struktura powtarza to, z czym ludzie przychodzą do psychoterapeuty. Siedem głównych stron obejmuje obszary terapii: zaburzenia lękowe, ataki paniki i agorafobia, trudności w relacjach, dysfunkcje seksualne, stres i wypalenie, terapia par, trauma. Każdy obszar ma własne podstrony — po włosku jest ich 21 — a strony główne istnieją również po angielsku.
Osobne strony odpowiadają na pytanie „gdzie”: psycholog w Mediolanie, psycholog w Monzy oraz terapia online dla Włochów mieszkających za granicą. Wszystkie w dwóch językach.
Pytania i odpowiedzi są przechowywane osobno, po włosku jest ich 150. Tę samą odpowiedź można podpiąć do strony tematycznej, do podstrony i do strony FAQ, więc poprawiona raz, poprawia się wszędzie.
Adresy stron są przetłumaczone: /metodo to po angielsku /en/method, a /psicologo-milano to /en/psychologist-milan.
Migracja 468 wpisów bloga z WordPressa do Sanity bez utraty adresów
Przeniesione zostały wszystkie 468 wpisów, 468 z 468. Cztery nie wgrały się za pierwszym razem z powodu błędów po stronie starego WordPressa. Doszły przy powtórnym uruchomieniu, bez zmian w kodzie.
Tekst każdego wpisu został przekonwertowany z HTML do formatu Sanity, zdjęcia przeniesione, a tam, gdzie brakowało opisu alternatywnego, został on dodany. Dla każdego wpisu zachował się raport z migracji.
Stare adresy nie zniknęły. Lista wszystkich 468 adresów została zamrożona, a na jej podstawie powstały stałe przekierowania 301 na nowe wpisy. Osobno zamknięty został „ogon” WordPressa: archiwa po datach, stare strony płatności, dawny kontakt.
Jeszcze jedno zabezpieczenie: adresy, z których idą przekierowania, są zarezerwowane. Jeśli ktoś spróbuje utworzyć pod nimi nową stronę, panel na to nie pozwoli. Inaczej strona wyglądałaby na opublikowaną, a każdy odwiedzający byłby z niej przekierowywany.
Podczas migracji znalazły się dwa niemal identyczne wpisy, zgodne w 94%. Nie usunąłem żadnego po cichu: o tym, który zostaje, zdecydował klient.
Panel dla psychoterapeuty: kontrola tekstów według artykułu 40 kodeksu deontologicznego
Artykuł 40 kodeksu włoskich psychologów ogranicza reklamę. Psychoterapeuta nie może obiecywać efektów, publikować opinii pacjentów, oferować rabatów, „bezpłatnej konsultacji” ani wywoływać presji czasu.
Kiedy stronę prowadzi sam właściciel, o naruszenie łatwo przez nieuwagę. Dlatego kontrola siedzi w panelu. Jeśli w tekście pojawią się słowa i zwroty w rodzaju „gratuito”, „guarire”, „garantito”, „sconto”, „recensioni”, znak procenta czy „offerta limitata”, panel pokazuje błąd i wyjaśnia, dlaczego tak pisać nie wolno. To nie zastępuje oceny specjalisty, ale ubezpiecza przed nieuważnym zdaniem.
Zabezpieczenia panelu: czego właściciel strony nie zepsuje
Giuseppe nie jest technikiem i panel to uwzględnia.
Kluczowych stron nie da się usunąć ani zduplikować. Adres opublikowanej strony jest zablokowany, żeby przypadkowa zmiana nie zepsuła linków. Strona nie może powstać bez języka. Pola obowiązkowe są sprawdzane przed publikacją. Menu panelu jest pogrupowane według sensu: strony, blog, dane słownikowe, ustawienia. Podstrony leżą wewnątrz swoich tematów.
Włoska i angielska wersja strony są połączone w parę. W menu każda strona ma jeden wiersz, a wersja angielska otwiera się przełącznikiem od środka dokumentu.
Zmiany widać przed publikacją: właściciel otwiera wersję roboczą wprost na stronie i kliknięciem w tekst przechodzi do odpowiedniego pola. Nagłówek, stopka i menu też są edytowalne. Po publikacji zmiany pojawiają się w kilka sekund, bez udziału programisty, a mapa strony dla wyszukiwarek aktualizuje się razem z nimi.
Projekt strony dla odbiorcy w lęku: spokój zamiast wezwań do działania
Szablony odrzuciłem od razu: projekt jest w całości własny, na otwartych krojach i zasobach. Stronę główną oddawałem blokami: Giuseppe oglądał każdy blok, zgłaszał uwagi i dopiero potem przechodziliśmy do następnego. Paletę zaproponował on sam i stała się ona podstawą motywu.
Domyślnie strona jest ciemna: głęboka zielono-czarna płaszczyzna, tekst w kolorze kości słoniowej, akcenty w szampańskim złocie i brązie. Wybrane sekcje są jasne i pozwalają oczom odpocząć. Nagłówki składa EB Garamond z prawdziwą kursywą, tekst — Source Sans 3. Kroje są serwowane z samej strony, bez zewnętrznych usług.
Nie ma liczników, pasków promocyjnych ani nachalnych przycisków. Są za to bloki, które zdejmują wątpliwości, zanim człowiek zdecyduje się napisać. „Ti riconosci?” („Czy to o tobie?”) opisuje stany słowami samego Giuseppe. „Il percorso” pokazuje cztery etapy terapii, od pierwszej wiadomości do samodzielności, z dużymi przezroczystymi cyframi w tle. Film o pierwszej sesji włącza się tylko po kliknięciu. Animacje wejścia wyłączają się, gdy odwiedzający ma w systemie ograniczenie ruchu.
Kontrast tekstu według WCAG AA na stronie psychologa
Kontrast został policzony, a nie oceniony na oko. Wyjściowy kolor akcentu dawał na jasnym tle 3,95:1, a dla zwykłego tekstu potrzeba co najmniej 4,5:1. Dla tekstu kolor został lekko przyciemniony, do 4,58:1. Złoto na jasnym tle daje tylko 2,35:1, więc służy tam wyłącznie do linii dekoracyjnych, nigdy do tekstu.
Mapa gabinetów w Mediolanie, Monzy i Cernusco sul Naviglio
Cztery gabinety — dwa w Mediolanie, po jednym w Monzy i Cernusco sul Naviglio — są zaznaczone na jednej mapie. Kliknięcie znacznika otwiera kartę w stylu strony, a kliknięcie adresu na liście płynnie przesuwa mapę do tego punktu. Podkład mapy jest jasny i minimalistyczny, w tonacji serwisu.
Szybkość strony: Next.js, Vercel i zdjęcia z CDN Sanity
Serwis działa na Next.js 16, jest hostowany na Vercelu, a teksty i zdjęcia leżą w Sanity. Zdjęcia idą prosto z CDN Sanity w rozmiarze dopasowanym do ekranu i doczytują się przy przewijaniu. Zdjęcie nigdy nie jest powiększane ponad rozmiar oryginału.
Powód był konkretny: u Vercela skończył się limit przetwarzania obrazów i z bloga zniknęły ilustracje. Po przejściu na CDN Sanity wróciły od razu, bez czekania na reset limitu.
Zgłoszenia ze strony: poczta, która nie trafia do spamu, i analityka tylko za zgodą
Formularz kontaktowy wysyła wiadomości przez pocztę własnej domeny klienta. Dla domeny skonfigurowane są SPF, DKIM i DMARC, więc listy ze strony nie wyglądają podejrzanie i nie lądują w spamie.
Analityka włącza się dopiero po zgodzie odwiedzającego na cookies. Wcześniej dane nie są nigdzie wysyłane. Na stronie psychoterapeuty, na którą ludzie trafiają z prywatnymi sprawami, to nie formalność.
Przekazanie strony klientowi: instrukcja w dwóch językach i nagrania wideo
Instrukcja dla właściciela ma 69 stron po angielsku i 71 po włosku, z 23 zrzutami ekranu, w firmowych kolorach i krojach strony, w formatach DOCX i PDF. Wersja włoska jest napisana w rejestrze oficjalnym i zawiera osobny rozdział o deontologii z odwołaniem do artykułu 40.
Oprócz instrukcji nagrałem krótkie filmy z najczęstszymi zmianami na stronie.
Panel i dane należą do konta klienta. Treść jest w całości w jego rękach i nie zależy od programisty.
Wsparcie po oddaniu strony: analiza Search Console i 16 przekierowań na duplikaty
Po oddaniu i opłaceniu projektu bezpłatnie przeanalizowałem raporty Search Console: w raportach pokrycia było 571 adresów.
Znalazła się przyczyna duplikatów: każda stała strona otwierała się pod czterema adresami zamiast dwóch, na przykład włoski adres pod /en i odwrotnie. Ustawiłem 16 stałych przekierowań. Powstają automatycznie z mapy ścieżek serwisu i są objęte testem z 27 sprawdzeniami, więc nowa strona nie stworzy takiego duplikatu ponownie.
Przy okazji został uprzątnięty „ogon” starego WordPressa, wróciło wyświetlanie zdjęć na blogu, a z panelu zniknął przestarzały dział, w którym zmiany i tak nic nie dawały.
Opinia psychoterapeuty o współpracy przy stronie
Giuseppe wystawił opinię w moim profilu Google, 5 gwiazdek. Cytuję dosłownie, w języku oryginału:
I found Aliaksandr through ChatGPT, and working with him was a very good decision. He rebuilt my website from scratch in Italian and English with a custom design that reflects my approach and my practice. We worked block by block: he proposed solutions, listened to my feedback and adjusted everything until it felt right. He moved all the articles from my old blog to the new site without losing the existing links, and set up an admin panel where I can edit texts myself. He also recorded short videos showing me how. Beyond development, he knows SEO and AI search: my new pages already appear in ChatGPT answers. Reliable, precise and always available. I recommend him.









