SEO w headless WordPress: siedem rzeczy, które psuje większość migracji

SEO w headless WordPress: siedem rzeczy, które psuje większość migracji

Ostatnio zweryfikowano: 22 września 2026
6 min czytania
Przewodnik
500+ projektów WP
Techniczne SEO

#SEO w headless WordPress: siedem rzeczy, które psuje większość migracji

Headless WordPress sprzedaje się na Core Web Vitals, wielokrotnym użyciu treści i szybkości pracy redakcji. Jeśli nikt nie pilnuje, po drodze grzebie siedem konkretnych sygnałów SEO. Przeprowadziliśmy dość takich migracji, żeby wiedzieć, które z nich kosztują tygodnie odrabiania strat, a które da się utrzymać mechanicznie.

Ten artykuł to lista kontrolna. Nie zastępuje filaru usługi headless WordPress, gdzie stoją argumenty architektoniczne. To jest to, co sprawdzamy przed każdą migracją, w jej trakcie i po niej, w tej kolejności.

#W skrócie

  • Zachowuj adresy kanoniczne na poziomie całego URL, nie samego sluga.
  • Zachowuj hreflang w HTML, nie tylko w mapie witryny.
  • Renderuj meta tagi i JSON-LD na serwerze, nie w przeglądarce.
  • Przenieś historię przekierowań przed zmianą adresów, nie po niej.
  • Trzymaj jedną mapę witryny jako źródło prawdy, nie dwie.
  • Ukryj origin WordPressa przed indeksem wyszukiwarek.
  • Przenieś teksty alternatywne grafik i dane strukturalne obrazów.

#Jak zachować adresy kanoniczne przy migracji do headless

Adres kanoniczny to obietnica. Liczy na nią każdy link zewnętrzny, każdy wpis w indeksie Google, każde udostępnienie w mediach społecznościowych. Migracja do headless, która po cichu obcina segment ścieżki, zmienia wielkość liter albo kolejność parametrów zapytania, właśnie złamała każdą z tych obietnic, i to bez śladu.

Dwie zasady. Po pierwsze, zanim dotkniesz frontendu, zbierz pełny zestaw adresów kanonicznych ze starej instalacji WordPressa. Eksportujemy każdy opublikowany wpis, stronę i stronę taksonomii z adresem, który Google ma w indeksie; to jest źródło prawdy. Po drugie, wpisz adres kanoniczny do odpowiedzi HTML frontendu headless, a nie do modyfikacji <head> wykonywanej po stronie klienta. Silniki generatywne i silniki odpowiedzi parsują początkowy HTML; meta tagi zmieniane w przeglądarce dla nich nie istnieją.

Jeśli musisz zmienić adres, zrób przekierowanie 301 ze starego na nowy i utrzymuj je przez co najmniej rok.

#Tagi hreflang w HTML headless WordPress

Wielojęzyczne strony na WordPressie zarządzają tłumaczeniami przez WPML, Polylang albo własne rozwiązanie. W bazie danych mapowanie jest poprawne. Frontend headless musi potem wyrenderować <link rel="alternate" hreflang="..."> dla każdej wersji językowej w odpowiedzi HTML.

Wzorzec, który umyka większości agencji: hreflang musi wskazywać także na samą stronę. Strona angielska wymienia siebie i wszystkie przetłumaczone alternatywy. Strona polska wymienia siebie i wszystkie alternatywy. Obie listy się zgadzają. Narzędzia takie jak raport kierowania międzynarodowego w Search Console zgłaszają rozbieżność, gdy jedna strona o czymś zapomni.

Generowanie hreflang traktujemy jako część buildu, nie decyzję w czasie działania. Mapa ścieżek jest liczona przy buildzie i hashowana, a każdy dryf wywala build.

#Renderowanie meta tagów i JSON-LD po stronie serwera

Najczęstszy regres SEO, jaki widzieliśmy w migracjach do headless: meta tagi i JSON-LD wstawiane JavaScriptem po załadowaniu strony. Przeglądarka je widzi. Googlebot czasem je widzi. Silniki generatywne, asystenci głosowi i większość crawlerów LLM zwykle nie.

Dwie zasady. Renderuj meta tagi, adres kanoniczny, Open Graph i każdy blok JSON-LD Schema.org w początkowej odpowiedzi HTML. W Astro to zachowanie domyślne. W Next.js oznacza to renderowanie na serwerze (metadane App Routera albo starsza ścieżka getServerSideProps), a nie poleganie na ponownym uruchomieniu next/head w przeglądarce.

To samo dotyczy grafik: element <img> z alt i src w HTML da się zaindeksować. <img> wstrzyknięty po efekcie po stronie klienta jest niewidoczny dla większości crawlerów i dla potoków danych treningowych AI.

#Ponowne użycie JSON-LD z Yoast w headless WordPress

WordPress z Yoast SEO albo Rank Math już generuje dobry JSON-LD dla Article, Product i Organization. Przy migracji do headless kusi, żeby napisać go od zera na frontendzie. Nie ulegaj.

Odczytaj istniejący JSON-LD z originu WordPressa przez endpoint REST albo GraphQL. Przekaż go dalej. Dodaj tylko to, co frontend faktycznie wie, a WordPress nie (na przykład znaczniki czasu buildu dla dateModified, jeśli Twój proces redakcyjny nie rusza dat). Dwa systemy generujące nakładający się JSON-LD to prosta droga do błędów w raportach wyników z elementami rozszerzonymi w Search Console.

Na własnych stronach używamy komponentów z fazy 0 w src/components/seo/: DirectAnswer, FAQ i Quote. Każdy emituje własny, minimalny JSON-LD, który nie nakłada się na schemat Article całej strony.

#Jak przenieść przekierowania przed zmianą adresów URL

Kolejność ma znaczenie. Lista kontrolna przed migracją zbiera każde przekierowanie wewnętrzne i zewnętrzne, także te ciche (/wp-content/... do /uploads/..., przekierowania według kodu kraju, warianty AMP). Nowy frontend wypuszcza te przekierowania w dniu zero, zanim publiczny ruch przejdzie na nowe adresy.

Na Cloudflare Pages trzymamy plik _redirects poniżej limitu platformy wynoszącego 2000 reguł. Build, który przekroczyłby limit, nie przechodzi. Wszystko, co wymaga więcej niż 2000 reguł, trafia zamiast tego do Workera z logiką przekierowań z parametrami.

Gdy publiczny DNS w końcu przełącza się na nowy frontend, żadne przekierowanie nie jest na produkcji nowe: każda reguła była testowana w buildzie przez tygodnie przed przełączeniem.

#Jedna mapa witryny XML dla headless WordPress

WordPress 5.5 dodał domyślną mapę /wp-sitemap.xml. Yoast SEO i Rank Math dodają własne. Framework frontendu headless też generuje mapę witryny. Trzy mapy w jednej domenie to przepis na to, żeby Search Console wyrywało sobie włosy z głowy.

Zasada: wybierz jedną kanoniczną mapę witryny, a pozostałe wyłącz albo przekieruj. Zwykle generujemy mapę we frameworku frontendu, żeby adresy dokładnie zgadzały się z publiczną stroną, a mapę z originu WordPressa przekierowujemy 301 na tę z frontendu. Origin WordPressa staje się wtedy niewidoczny dla wyszukiwarek.

#Jak ustawić noindex na backendzie headless WordPress

Migracja do headless zostawia origin WordPressa w działaniu, zwykle na subdomenie albo prywatnym hoście. Nadal serwuje wyrenderowany HTML, ma działającą mapę witryny i odpowiada na zapytania REST. Wyszukiwarki, które znajdą ten origin, zaindeksują go jako duplikat publicznej strony, a ten duplikat nie będzie tym, który się pozycjonuje.

Trzy zabezpieczenia. robots.txt originu blokuje wszystkie ścieżki poza endpointami REST i GraphQL. Origin wysyła X-Robots-Tag: noindex, nofollow w nagłówkach HTTP dla każdej odpowiedzi HTML. Mapa witryny originu jest usunięta albo zwraca 410.

Jeśli origin działa w tej samej domenie co publiczna strona, pod prefiksem ścieżki (na przykład /wp-admin/ albo /wp/), te same zabezpieczenia stosujesz w zakresie tych ścieżek.

#Powiązane poradniki o SEO w headless WordPress

Ten artykuł wspiera filar usługi headless WordPress. Jeśli stoisz przed wyborem technologii, zobacz Headless WordPress, Next.js czy Astro 2026. Szerszy obraz widoczności, łącznie z cytowaniami w LLM, opisuje przewodnik po widoczności w AI i LLM: to nasze kanoniczne ujęcie tego, co wdrażamy w ramach AEO i GEO na tych fundamentach SEO.

Następny krok

Przekuj artykuł w realne wdrożenie

Pod tym wpisem dokładam linki, które domykają intencję użytkownika i prowadzą dalej w strukturze serwisu.

Chcesz wdrożyć ten temat na swojej stronie?

Jeśli planujesz architekturę Headless WordPress, decoupling frontendu lub migrację na Astro, przygotuję architekturę, backend WP i superszybki frontend.

Powiązany klaster

Sprawdź inne usługi WordPress i bazę wiedzy

Wzmocnij swój biznes dzięki profesjonalnemu wsparciu technicznemu w kluczowych obszarach ekosystemu WordPress.

FAQ do artykułu

Często zadawane pytania

Najważniejsze odpowiedzi, które pomagają wdrożyć temat w praktyce.

SEO-readyGEO-readyAEO-ready5 Q&A
Czy headless WordPress szkodzi SEO?#
Zrobiony dobrze działa na plus. Zrobiony źle daje najgorszy rodzaj regresu: powolny, cichy i trudny do odwrócenia. Różnicę robi siedem wzorców z tego artykułu. Migracje, które zachowują adresy kanoniczne, hreflang, mapę witryny, dane strukturalne, historię przekierowań, zgodność robots.txt i wyszukiwanie grafik, po przejściu pozycjonują się tak samo dobrze albo lepiej.
Czy w headless nadal potrzebuję Yoast SEO?#
Nadal potrzebujesz jednego źródła prawdy dla metadanych SEO. Yoast SEO, Rank Math albo własna wtyczka trzyma je w WordPressie. Framework frontendu odczytuje je przez REST API albo GraphQL i renderuje meta tagi, adres kanoniczny, JSON-LD i Open Graph w samej odpowiedzi HTML. Pominięcie tego kroku to najczęstszy regres SEO, jaki widzimy.
A co z mapami witryny z rdzenia WordPressa?#
WordPress 5.5 dodał /wp-sitemap.xml jako funkcję rdzenia. W wdrożeniach headless zwykle zastępuje się ją mapą renderowaną przez framework frontendu, żeby adresy zgadzały się z publiczną stroną, a nie z originem WordPressa. Oba rozwiązania są w porządku; liczy się jedna kanoniczna mapa, a nie dwie konkurujące.
Czy Cloudflare Workers obsłuży przekierowania SEO?#
Tak, zarówno przez statyczne reguły `_redirects` dla znanych ścieżek, jak i przez logikę Workera dla przekierowań z parametrami. Nasz pipeline buildu trzyma plik reguł poniżej 2000 wpisów z twardym limitem i testuje każde przekierowanie przy buildzie, więc regres psuje build, a nie pozycje.
Jak uniknąć zduplikowanej treści między originem WordPressa a frontendem headless?#
Trzy kroki. Zablokuj indeksowanie originu WordPressa przez robots.txt i nagłówki HTTP. Ustaw adres kanoniczny na frontendzie headless na jego własny URL. Trzymaj adres podglądu WordPressa z dala od publicznych map witryny. Zdarzyło nam się wypuścić build, w którym jeden z tych kroków pominięto; odrabianie strat trwało tygodnie.

Potrzebujesz FAQ dopasowanego do branży i rynku? Przygotujemy wersję pod Twoje cele biznesowe.

Porozmawiajmy

Polecane artykuły