WordPress przechowuje treść stron i wpisów w bazie danych MySQL, a nie w plikach PHP lub HTML.

Pliki na serwerze odpowiadają za logikę, szablony i media, ale sam tekst, tytuły, treść SEO i status publikacji znajdują się w tabelach bazy danych.

Ten artykuł wyjaśnia dokładnie: co trafia do bazy danych, co do plików i jak te elementy łączą się w gotową stronę WWW.

Jeśli administrujesz WordPressem, robisz migracje, kopie zapasowe lub optymalizujesz wydajność, ten podział ma kluczowe znaczenie.

Szybkie podsumowanie

  • Treść stron i wpisów jest zapisana w tabeli wp_posts.
  • Meta dane (SEO, pola ACF) są w tabeli wp_postmeta.
  • Kategorie i tagi są przechowywane w wp_terms i wp_term_relationships.
  • Media (obrazy, PDF) są plikami w katalogu wp-content/uploads.
  • Motywy i wtyczki to pliki, nie baza danych.
  • Adres URL, status publikacji, autor to dane z bazy, nie z plików.
  • Kopia bazy danych to kopia treści strony.

Kontekst problemu

W praktyce wiele problemów z WordPressem wynika z błędnego założenia, że strona jest „zapisana w plikach”.

To prowadzi do niepełnych backupów, błędnych migracji i utraty treści po zmianie hostingu.

WordPress to system oparty o bazę danych – pliki są tylko warstwą wykonawczą i wizualną.

Jak WordPress przechowuje treść

Treść stron i wpisów: tabela wp_posts

Wszystkie strony i wpisy są rekordami w jednej tabeli – wp_posts.

Różnica między stroną a wpisem to wartość w kolumnie post_type.

  • post – wpis blogowy
  • page – strona statyczna
  • product – produkt WooCommerce

Tytuł, treść, status i data publikacji

W wp_posts przechowywane są m.in.:

  • post_title – tytuł strony
  • post_content – główna treść
  • post_status – szkic, opublikowany, prywatny
  • post_date – data publikacji

Jeśli strona nie wyświetla się poprawnie, a wpis istnieje w bazie – problem jest w szablonie lub zapytaniu.

Pola dodatkowe i SEO: tabela wp_postmeta

Meta dane strony nie są trzymane w wp_posts.

ACF, Yoast SEO, Rank Math zapisują dane w wp_postmeta.

Każda para klucz-wartość to osobny rekord powiązany z ID wpisu.

Kategorie, tagi i struktura treści

Taksonomie są rozbite na kilka tabel:

  • wp_terms – nazwy kategorii i tagów
  • wp_term_taxonomy – typy taksonomii
  • wp_term_relationships – powiązania z treścią

Zmiana kategorii to operacja na relacjach, nie na treści wpisu.

Media: pliki i database reference

Pliki graficzne są przechowywane fizycznie na serwerze:

  • katalog wp-content/uploads/rok/miesiąc

Jednocześnie każdy plik ma wpis w wp_posts jako attachment.

Baza przechowuje informacje o pliku, ale nie sam plik.

Jak to działa w praktyce – krok po kroku

  1. Użytkownik wchodzi na adres URL.
  2. WordPress mapuje URL na rekord w wp_posts.
  3. Ładowane są meta dane z wp_postmeta.
  4. Motyw pobiera treść i wyświetla ją przez szablon.
  5. Do strony dołączane są pliki CSS, JS i media.

Jeśli baza danych jest uszkodzona – treść znika, nawet jeśli pliki istnieją.

Jeśli pliki motywu znikną – treść nadal jest w bazie, ale nie ma jak jej wyświetlić.

Najczęstsze błędy

  • Backup tylko plików – utrata całej treści strony.
  • Usunięcie wp_postmeta – zniknięcie SEO, ACF i ustawień.
  • Ręczna edycja bazy bez kopii – trwałe uszkodzenie danych.
  • Przenoszenie uploads bez bazy – puste obrazki na stronie.
  • Zmiana prefiksu tabel bez aktualizacji – błędy połączenia.
  • Mylenie stron z plikami HTML – błędne decyzje techniczne.

Rekomendacje i dobre praktyki

To podejście działa, jeśli zarządzasz stroną produkcyjną lub sklepem WooCommerce.

Unikaj ręcznych operacji na bazie, jeśli nie znasz struktury danych.

  • Rób kopie plików i bazy danych razem.
  • Przed migracją sprawdzaj wielkość i integralność bazy.
  • Używaj narzędzi typu WP-CLI lub wtyczek migracyjnych.
  • Nie usuwaj rekordów wp_posts bez analizy powiązań.
  • Traktuj wp_postmeta jako integralną część treści.
  • Testuj backup na środowisku staging.

Podsumowanie – co zrobić dalej

  • Treść WordPressa jest w bazie danych.
  • Pliki odpowiadają za wygląd i media.
  • Backup bez bazy danych jest bezużyteczny.
  • Migracja wymaga obu warstw.

Jeśli planujesz migrację, optymalizację lub automatyzację, zacznij od audytu bazy danych i struktury plików.

FAQ

Czy mogę odzyskać stronę mając tylko bazę danych?

Tak, treść stron i wpisów będzie dostępna.

Musisz jednak zainstalować WordPressa i motyw od nowa.

Czy WordPress zapisuje strony jako pliki HTML?

Nie. HTML jest generowany dynamicznie przy każdym żądaniu.

Wyjątkiem są strony cache lub statyczne generatory.

Gdzie jest zapisany URL strony?

Adres URL wynika z ustawień i slugów w bazie danych.

Konkretnie z kolumny post_name i reguł permalinków.

Czy usunięcie motywu usuwa treść?

Nie. Treść pozostaje w bazie.

Znika jedynie sposób jej prezentacji.

Paweł tworzy i optymalizuje strony oparte na WordPressie od ponad 10 lat. Pracował zarówno przy prostych stronach firmowych, jak i rozbudowanych serwisach contentowych oraz sklepach WooCommerce. Specjalizuje się w wydajności, bezpieczeństwie i technicznym SEO.