Kompletna lista kontrolna po instalacji WordPressa. 50 kroków obejmujących bezpieczeństwo, wydajność, SEO i kopie zapasowe. Profesjonalna konfiguracja od pierwszego dnia.
PL

WordPress Post-Installation: 50-Point Checklist 2026

5.00 /5 - (29 głosów )
Ostatnio zweryfikowano: 1 marca 2026
Doświadczenie: 5+ lat doświadczenia
Spis treści

“Słynna 5-minutowa instalacja” to slogan marketingowy, a nie standard profesjonalny. Domyślna instalacja WordPressa jest “gadatliwa”, nieoptymalna i często niebezpieczna.

Jako programiści, nie tylko “instalujemy” WordPressa; my go prowizjonujemy. Ten przewodnik obejmuje kluczowe stałe konfiguracyjne i techniki utwardzania (hardening), które powinny znaleźć się w twoim szablonie (boilerplate) każdego projektu klienckiego w 2026 roku.

1. Potęga wp-config.php

To mózg twojej instalacji. Przestań zostawiać go na ustawieniach domyślnych.

Kontrola Środowiska (environment control)

Od WordPressa 5.5, WP_ENVIRONMENT_TYPE jest standardem. Używaj go, aby zapobiec wyciekaniu błędów developerskich na produkcję.

// W wp-config.php
define( 'WP_ENVIRONMENT_TYPE', 'production' ); // 'local', 'development', 'staging', 'production'

Następnie w swoim kodzie:

if ( wp_get_environment_type() === 'production' ) {
    // Włącz Cache, Wyłącz Błędy
}

Utwardzanie bezpieczeństwa (hardening)

Uchroń klientów (lub hakerów) przed zepsuciem strony poprzez panel administracyjny.

// Wyłącz Edytor Plików (Edytor Motywu/Wtyczek)
define( 'DISALLOW_FILE_EDIT', true );

// Zablokuj Instalację/Aktualizację Wtyczek (Dobre dla deploymentów immutable)
define( 'DISALLOW_FILE_MODS', true );

// Wymuś SSL w Adminie
define( 'FORCE_SSL_ADMIN', true );

Rewizje postów

Zabójca bazy danych. Czy naprawdę potrzebujesz 100 wersji strony “O Nas”?

define( 'WP_POST_REVISIONS', 10 ); // Zachowaj ostatnie 10
// LUB
define( 'WP_POST_REVISIONS', false ); // Wyłącz całkowicie (Niezalecane)

2. Profesjonalne debugowanie

Nigdy nie wyświetlaj błędów na frontendzie. Loguj je.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' ); // Przenieś log poza katalog publiczny!
define( 'WP_DEBUG_DISPLAY', false );

// Loguj zapytania SQL do debugowania wydajności (Wyłącz na produkcji!)
define( 'SAVEQUERIES', false );

3. Sprzątanie rdzenia (“core bloat”)

WordPress przychodzi z funkcjami, których 90% stron biznesowych nie potrzebuje: Emoji, oEmbedy i XML-RPC.

Nie instaluj wtyczki, by je wyłączyć. Stwórz Must-Use Plugin (wp-content/mu-plugins/lean-core.php).

<?php
/* Plugin Name: Lean Core */

// 1. Wyłącz Emoji (Oszczędza żądanie HTTP)
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

// 2. Wyłącz XML-RPC (Bezpieczeństwo)
add_filter( 'xmlrpc_enabled', '__return_false' );

// 3. Usuń Wersję WP (Security by Obscurity)
remove_action( 'wp_head', 'wp_generator' );

// 4. Wyłącz Kanały RSS (Jeśli budujesz stronę wizytówkę)
// function wppoland_disable_feed() {
//    wp_die( 'Brak kanału, odwiedź naszą stronę główną!' );
// }
// add_action('do_feed', 'wppoland_disable_feed', 1);

4. Mit “soli” (salts)

Znasz klucze uwierzytelniania w wp-config.php.

define('AUTH_KEY',         'wpisz tutaj swoja unikalna fraze');
// ...

Fakt: Ich zmiana natychmiast wylogowuje wszystkich użytkowników. To “Opcja Nuklearna”, jeśli strona zostanie zhakowana. Pro Tip: Zautomatyzuj ich rotację używając skryptu CLI lub Vaulta, jeśli zarządzasz stronami enterprise.

5. Lista kontrolna (podsumowanie)

Zanim wystartujesz (Launch):

  1. Ustaw WP_ENVIRONMENT_TYPE na production.
  2. Ustaw DISALLOW_FILE_EDIT na true.
  3. Ogranicz WP_POST_REVISIONS.
  4. Przenieś WP_DEBUG_LOG do prywatnego folderu.
  5. Wyłącz Emoji/XML-RPC kodem.

Dobrze skonfigurowana instancja WordPressa jest cicha, bezpieczna i szybka.

6. Konfiguracja permalinków i struktury URL

Optymalna struktura permalinków

Ustawienia → Bezpośrednie odnośniki → Nazwa wpisu

Dlaczego:

  • Krótsze, czytelniejsze URL-e
  • Lepsze dla SEO (słowa kluczowe w URL)
  • Łatwiejsze do zapamiętania i udostępniania

Konfiguracja w wp-config.php:

// Wymuś strukturę permalinków (opcjonalnie)
define('WP_POST_REVISIONS', 10);

Struktura kategorii i tagów

  1. Utwórz podstawowe kategorie (3-7 głównych)
  2. Zdefiniuj hierarchię (kategorie nadrzędne i podrzędne)
  3. Ustaw domyślną kategorię (nie “Bez kategorii”)
  4. Zaplanuj strategię tagów (opcjonalnie, 5-10 tagów na wpis)

7. Ustawienia mediów i optymalizacja obrazów

Rozmiary obrazów

Ustawienia → Media

Zalecane ustawienia:

  • Miniatura: 150x150px (zaznacz “Przytnij miniaturę”)
  • Średni: 300x300px
  • Duży: 1024x1024px
  • Pełny rozmiar: Zawsze dostępny

Automatyczna optymalizacja obrazów

// W mu-plugin: wp-content/mu-plugins/image-optimization.php
<?php
/* Plugin Name: Image Optimization */

// Wyłącz generowanie dodatkowych rozmiarów, których nie używasz
function remove_unused_image_sizes() {
    remove_image_size('1536x1536'); // WordPress 5.3+
    remove_image_size('2048x2048'); // WordPress 5.3+
}
add_action('init', 'remove_unused_image_sizes');

// Włącz lazy loading dla obrazów
add_filter('wp_lazy_loading_enabled', '__return_true');

// Optymalizuj obrazy przy uploadzie
add_filter('wp_image_editors', function($editors) {
    return ['WP_Image_Editor_Imagick', 'WP_Image_Editor_GD'];
});

Formaty obrazów nowej generacji

// Włącz WebP (wymaga wsparcia serwera)
add_filter('wp_upload_image_mime_transforms', function($transforms) {
    $transforms['image/jpeg'] = ['image/webp', 'image/jpeg'];
    $transforms['image/png'] = ['image/webp', 'image/png'];
    return $transforms;
});

8. Hardening bezpieczeństwa - kompletny przewodnik

Zmiana domyślnego prefiksu tabel

Podczas instalacji: Wpisz niestandardowy prefiks zamiast wp_ (np. x7k9_, mysite_, proj23_)

Po instalacji (zaawansowane):

-- Zmień prefiks w phpMyAdmin (zrób kopię zapasową!)
RENAME TABLE wp_posts TO x7k9_posts;
RENAME TABLE wp_options TO x7k9_options;
-- ... powtórz dla wszystkich tabel

-- Zaktualizuj wp-config.php
define('DB_PREFIX', 'x7k9_');

Ochrona pliku wp-config.php

# W .htaccess (głównym katalogu WordPress)
<files wp-config.php>
order allow,deny
deny from all
</files>

# Dodatkowa ochrona
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>

Blokowanie dostępu do katalogów

# W wp-content/uploads/.htaccess
Options -Indexes

# W wp-includes/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Ograniczenie prób logowania

// W mu-plugin: wp-content/mu-plugins/login-security.php
<?php
/* Plugin Name: Login Security */

// Ogranicz próby logowania (bez wtyczki)
add_action('wp_login_failed', function($username) {
    $ip = $_SERVER['REMOTE_ADDR'];
    $attempts = get_transient('login_attempts_' . $ip);

    if ($attempts === false) {
        set_transient('login_attempts_' . $ip, 1, HOUR_IN_SECONDS);
    } else {
        set_transient('login_attempts_' . $ip, $attempts + 1, HOUR_IN_SECONDS);

        if ($attempts >= 5) {
            wp_die('Zbyt wiele prób logowania. Spróbuj ponownie za godzinę.');
        }
    }
});

// Ukryj wersję WordPressa
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');

Dwuskładnikowe uwierzytelnianie (2FA)

// Wymuś silne hasła
add_action('user_profile_update_errors', function($errors) {
    $password = $_POST['pass1'];
    if (!empty($password) && strlen($password) < 12) {
        $errors->add('password_error', 'Hasło musi mieć co najmniej 12 znaków.');
    }
});

9. Optymalizacja wydajności

Podstawowa optymalizacja bazy danych

// W wp-config.php
// Ogranicz rewizje postów
define('WP_POST_REVISIONS', 10);

// Automatyczne opróżnianie kosza po 7 dniach
define('EMPTY_TRASH_DAYS', 7);

// Wyłącz edytor plików (bezpieczeństwo + wydajność)
define('DISALLOW_FILE_EDIT', true);

Czyszczenie bazy danych

// W mu-plugin: wp-content/mu-plugins/db-cleanup.php
<?php
/* Plugin Name: DB Cleanup */

// Usuń stare rewizje (zachowaj ostatnie 10)
add_action('wp_scheduled_auto_draft_delete', function() {
    global $wpdb;

    $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY)");
    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%' AND option_value < UNIX_TIMESTAMP()");
    $wpdb->query("OPTIMIZE TABLE {$wpdb->posts}, {$wpdb->options}, {$wpdb->postmeta}");
});

Optymalizacja Heartbeat API

// Zmniejsz częstotliwość Heartbeat
add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 60; // sekundy (domyślnie 15)
    return $settings;
});

// Wyłącz Heartbeat na frontendzie
add_action('init', function() {
    if (!is_admin()) {
        wp_deregister_script('heartbeat');
    }
}, 1);

Wyłączenie niepotrzebnych funkcji

// W mu-plugin: wp-content/mu-plugins/disable-bloat.php
<?php
/* Plugin Name: Disable Bloat */

// Wyłącz emoji
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

// Wyłącz XML-RPC
add_filter('xmlrpc_enabled', '__return_false');

// Wyłącz RSD link
remove_action('wp_head', 'rsd_link');

// Wyłącz Windows Live Writer link
remove_action('wp_head', 'wlwmanifest_link');

// Wyłącz shortlink
remove_action('wp_head', 'wp_shortlink_wp_head');

// Wyłącz REST API link (jeśli nie używasz)
remove_action('wp_head', 'rest_output_link_wp_head');

10. Podstawy SEO

Konfiguracja podstawowa

Ustawienia → Ogólne:
- Tytuł witryny: [Twoja marka] - [Krótki opis]
- Opis: 2-3 zdania o witrynie (meta description)
- Widoczność dla wyszukiwarek: ODZNACZ "Proś wyszukiwarki o nieindeksowanie"

Struktura permalinków SEO-friendly

Ustawienia → Bezpośrednie odnośniki → Nazwa wpisu

Mapa witryny (XML Sitemap)

// Włącz domyślną mapę witryny WordPressa
add_filter('wp_sitemaps_enabled', '__return_true');

// Dodaj niestandardowe typy treści do mapy
add_filter('wp_sitemaps_post_types', function($post_types) {
    $post_types[] = 'portfolio';
    return $post_types;
});

Podstawowa optymalizacja obrazów dla SEO

// Automatyczne ALT tagi (fallback)
add_filter('wp_get_attachment_image_attributes', function($attributes, $attachment) {
    if (empty($attributes['alt'])) {
        $attributes['alt'] = get_the_title($attachment->ID);
    }
    return $attributes;
}, 10, 2);

// Tytuły obrazów
add_filter('wp_insert_attachment_data', function($data, $postarr) {
    if (empty($data['post_title'])) {
        $filename = basename($data['guid']);
        $data['post_title'] = sanitize_title($filename);
    }
    return $data;
}, 10, 2);

11. Strategia kopii zapasowych

Automatyczne kopie zapasowe bazy danych

// W mu-plugin: wp-content/mu-plugins/backup-scheduler.php
<?php
/* Plugin Name: Backup Scheduler */

// Codzienna kopia bazy danych
add_action('daily_database_backup', function() {
    $upload_dir = wp_upload_dir();
    $backup_dir = $upload_dir['basedir'] . '/backups';

    if (!file_exists($backup_dir)) {
        wp_mkdir_p($backup_dir);
    }

    $filename = $backup_dir . '/db-backup-' . date('Y-m-d-H-i-s') . '.sql';

    // Użyj WP-CLI lub mysqldump
    exec('mysqldump --user=' . DB_USER . ' --password=' . DB_PASSWORD . ' --host=' . DB_HOST . ' ' . DB_NAME . ' > ' . $filename);

    // Usuń stare kopie (zachowaj ostatnie 7)
    $files = glob($backup_dir . '/db-backup-*.sql');
    if (count($files) > 7) {
        array_multisort(array_map('filemtime', $files), SORT_ASC, $files);
        for ($i = 0; $i < count($files) - 7; $i++) {
            unlink($files[$i]);
        }
    }
});

// Zaplanuj zadanie
if (!wp_next_scheduled('daily_database_backup')) {
    wp_schedule_event(time(), 'daily', 'daily_database_backup');
}

Konfiguracja zewnętrznych kopii

Zalecane rozwiązania:

  1. UpdraftPlus - darmowa wersja wystarczająca dla małych stron
  2. BlogVault - płatne, ale bardzo niezawodne
  3. WPvivid - dobra alternatywa darmowa

Konfiguracja:

  • Kopia codzienna (baza danych)
  • Kopia tygodniowa (pełna)
  • Przechowywanie: minimum 30 dni
  • Lokalizacja zewnętrzna: Google Drive, Dropbox, S3

12. Konfiguracja poczty e-mail

SMTP zamiast mail()

// W wp-config.php lub mu-plugin
define('SMTP_USER', 'your-email@example.com');
define('SMTP_PASS', 'your-password');
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', '587');
define('SMTP_SECURE', 'tls');
define('SMTP_FROM', 'your-email@example.com');
define('SMTP_NAME', 'Twoja Strona');

// W mu-plugin
add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = SMTP_HOST;
    $phpmailer->SMTPAuth = true;
    $phpmailer->Username = SMTP_USER;
    $phpmailer->Password = SMTP_PASS;
    $phpmailer->SMTPSecure = SMTP_SECURE;
    $phpmailer->Port = SMTP_PORT;
    $phpmailer->From = SMTP_FROM;
    $phpmailer->FromName = SMTP_NAME;
});

Testowanie poczty

// Funkcja testowa (uruchom raz)
add_action('admin_init', function() {
    if (isset($_GET['test_email'])) {
        wp_mail(get_option('admin_email'), 'Test Email', 'To jest testowa wiadomość z WordPressa.');
        wp_die('E-mail testowy wysłany!');
    }
});

13. Monitoring i logowanie

Logowanie błędów

// W wp-config.php
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', '/var/log/wp-errors.log'); // Poza katalogiem publicznym
define('WP_DEBUG_DISPLAY', false);

// Logowanie zapytań SQL (tylko w trybie debugowania)
// define('SAVEQUERIES', true);

Monitoring uptime

Zalecane narzędzia:

  • UptimeRobot (darmowy plan: 50 monitorów, 5-minutowe interwały)
  • Pingdom (płatne, ale bardziej zaawansowane)
  • Better Uptime (nowoczesna alternatywa)

Logowanie aktywności administracyjnej

// W mu-plugin: wp-content/mu-plugins/activity-log.php
<?php
/* Plugin Name: Activity Log */

add_action('wp_login', function($user_login, $user) {
    error_log('User logged in: ' . $user_login . ' from IP: ' . $_SERVER['REMOTE_ADDR']);
}, 10, 2);

add_action('save_post', function($post_id, $post, $update) {
    if ($update && $post->post_status === 'publish') {
        error_log('Post updated: ' . $post->post_title . ' by user: ' . get_current_user_id());
    }
}, 10, 3);

14. Przygotowanie do uruchomienia (Go-Live Checklist)

Ostateczna weryfikacja

  • Wszystkie ustawienia SEO poprawne
  • Mapa witryny wygenerowana
  • Google Search Console skonfigurowane
  • Google Analytics zainstalowane
  • Polityka prywatności i regulamin dodane
  • Formularze kontaktowe przetestowane
  • Poczta e-mail działa
  • SSL działa (HTTPS)
  • Przekierowania www ↔ non-www skonfigurowane
  • Kopia zapasowa wykonana
  • Wtyczki cache’ujące skonfigurowane (opcjonalnie)
  • CDN skonfigurowane (opcjonalnie)
  • Testy wydajności przeprowadzone (PageSpeed Insights)
  • Testy responsywności mobilnej
  • Testy w różnych przeglądarkach
  • 404 strona skonfigurowana
  • Favicon dodany

Testy przed uruchomieniem

# Testy WP-CLI
wp core verify-checksums
wp plugin verify-checksums --all
wp db check

# Testy bezpieczeństwa
curl -I https://twoja-strona.pl/wp-admin/install.php # Powinno zwrócić 404
curl -I https://twoja-strona.pl/wp-config.php # Powinno zwrócić 403

Podsumowanie: 50-punktowa lista kontrolna

Bezpieczeństwo (1-15)

  1. ✅ Zmień prefiks tabel bazy danych
  2. ✅ Ustaw silne hasła (min. 12 znaków)
  3. ✅ Zmień nazwę użytkownika admin
  4. ✅ Wyłącz edytor plików w panelu
  5. ✅ Zablokuj instalację wtyczek (opcjonalnie)
  6. ✅ Wymuś SSL w panelu administracyjnym
  7. ✅ Zabezpiecz wp-config.php przez .htaccess
  8. ✅ Zablokuj dostęp do katalogów (no indexes)
  9. ✅ Wyłącz XML-RPC
  10. ✅ Ukryj wersję WordPressa
  11. ✅ Ogranicz próby logowania
  12. ✅ Skonfiguruj dwuskładnikowe uwierzytelnianie (2FA)
  13. ✅ Regularnie rotuj klucze uwierzytelniania (salts)
  14. ✅ Zainstaluj certyfikat SSL
  15. ✅ Skonfiguruj zabezpieczenia na poziomie serwera (firewall, ograniczenie prób logowania)

Wydajność (16-25)

  1. ✅ Ogranicz rewizje postów (5-10)
  2. ✅ Wyłącz emoji
  3. ✅ Wyłącz nieużywane funkcje (XML-RPC, RSD)
  4. ✅ Zoptymalizuj rozmiary obrazów
  5. ✅ Włącz lazy loading
  6. ✅ Skonfiguruj cache (obiektowy, page cache)
  7. ✅ Zoptymalizuj Heartbeat API
  8. ✅ Włącz kompresję GZIP/Brotli
  9. ✅ Skonfiguruj CDN (opcjonalnie)
  10. ✅ Zoptymalizuj bazę danych (automatyczne czyszczenie)

SEO (26-35)

  1. ✅ Ustaw strukturę permalinków “Nazwa wpisu”
  2. ✅ Skonfiguruj tytuł i opis witryny
  3. ✅ Włącz mapę witryny XML
  4. ✅ Dodaj stronę do Google Search Console
  5. ✅ Skonfiguruj Google Analytics / GA4
  6. ✅ Zoptymalizuj obrazy (ALT tagi)
  7. ✅ Utwórz strukturę kategorii
  8. ✅ Skonfiguruj breadcrumbs
  9. ✅ Dodaj schemat Organization
  10. ✅ Przygotuj meta tagi Open Graph

Kopie zapasowe (36-42)

  1. ✅ Skonfiguruj automatyczne kopie bazy danych
  2. ✅ Skonfiguruj pełne kopie tygodniowe
  3. ✅ Przechowuj kopie w zewnętrznej lokalizacji
  4. ✅ Przetestuj przywracanie z kopii
  5. ✅ Ustaw retencję kopii (min. 30 dni)
  6. ✅ Dokumentuj procedurę przywracania
  7. ✅ Regularnie weryfikuj integralność kopii

Treść i funkcjonalność (43-50)

  1. ✅ Utwórz strony podstawowe (O nas, Kontakt, Polityka prywatności)
  2. ✅ Skonfiguruj menu nawigacyjne
  3. ✅ Przetestuj wszystkie formularze
  4. ✅ Skonfiguruj SMTP dla poczty
  5. ✅ Utwórz niestandardową stronę 404
  6. ✅ Dodaj favicon i ikony PWA
  7. ✅ Przeprowadź testy wydajności
  8. ✅ Dokumentuj konfigurację

FAQ

Czy powinienem zmieniać domyślny prefiks tabel bazy danych?

Tak, zmiana prefiksu z ‘wp_’ na niestandardowy (np. ‘x7k9_’) to ważny element bezpieczeństwa. Utrudnia to ataki SQL injection, które często zakładają domyślny prefiks. Najlepiej zrobić to podczas instalacji, ale można też zmienić później za pomocą wtyczek lub ręcznie w phpMyAdmin.

Jak często powinienem robić kopie zapasowe WordPressa?

Dla aktywnych stron: codzienne kopie bazy danych i tygodniowe pełne kopie. Dla stron z częstymi zmianami (sklepy, blogi): kopie w czasie rzeczywistym lub co kilka godzin. Dla stron-wizytówek: wystarczą tygodniowe kopie. Zawsze przechowuj kopie w zewnętrznej lokalizacji (cloud, inny serwer).

Czy wyłączenie XML-RPC wpłynie na działanie strony?

Dla większości stron - nie. XML-RPC jest potrzebny tylko jeśli używasz zewnętrznych aplikacji do publikowania (np. WordPress mobile app przed wersją 5.0, Windows Live Writer). Jeśli korzystasz z REST API, Jetpack lub nowoczesnych wtyczek, możesz bezpiecznie wyłączyć XML-RPC.

Ile rewizji postów powinienem zachować?

Zalecane jest 5-10 rewizji. Pozwala to na przywrócenie wcześniejszych wersji bez nadmiernego rozrostu bazy danych. Dla stron z rzadkimi zmianami można ustawić 3-5, dla aktywnych blogów 10-15. Nigdy nie wyłączaj rewizji całkowicie - są one Twoim zabezpieczeniem przed utratą treści.

Czy potrzebuję wtyczki do cache’owania od razu po instalacji?

Na początek wystarczy podstawowa optymalizacja (wyłączenie zbędnych funkcji, optymalizacja obrazów). Wtyczkę cache’ującą warto wdrożyć, gdy strona zacznie generować ruch. Dla małych stron najpierw skup się na jakości hostingu - dobry hosting z LiteSpeed lub Nginx często zapewnia wystarczającą wydajność bez dodatkowych wtyczek.

Jakie są najważniejsze kroki bezpieczeństwa?

Najważniejsze to: silne hasła, regularne aktualizacje, kopie zapasowe, SSL, wyłączenie nieużywanych funkcji (XML-RPC, edytor plików) i ograniczenie prób logowania. Dodatkowo warto zainwestować w dobry hosting z zabezpieczeniami na poziomie serwera oraz rozważyć WAF (Web Application Firewall).

Czy powinienem używać wtyczek bezpieczeństwa?

Dla większości stron wystarczą podstawowe zabezpieczenia na poziomie kodu (mu-plugins) i hostingu. Bezpieczeństwo buduje się na poziomie serwera i konfiguracji (silne hasła, aktualizacje, ograniczenie prób logowania, kopie zapasowe). Unikaj polegania na wtyczkach „do bezpieczeństwa” — dodają narzut i same mogą mieć luki.

Jak często aktualizować WordPressa?

Aktualizacje bezpieczeństwa - natychmiast. Aktualizacje minor (np. 6.4.1 → 6.4.2) - w ciągu 24-48 godzin. Aktualizacje major (np. 6.4 → 6.5) - poczekaj 1-2 tygodnie na wykrycie ewentualnych błędów, chyba że zawierają ważne poprawki bezpieczeństwa. Zawsze wykonaj kopię zapasową przed aktualizacjami.

Co to jest mu-plugin i dlaczego go używać?

Must-Use Plugin (mu-plugin) to wtyczka, która nie może być wyłączona z panelu administracyjnego. Jest idealna do kodu konfiguracyjnego, który musi być zawsze aktywny (bezpieczeństwo, optymalizacja). Umieszcza się je w katalogu wp-content/mu-plugins/ i ładują się automatycznie przed zwykłymi wtyczkami.

Jak przetestować stronę przed uruchomieniem?

Kluczowe testy to: działanie wszystkich formularzy, poprawność wyświetlania na urządzeniach mobilnych, testy w różnych przeglądarkach, weryfikacja prędkości (PageSpeed Insights), testy bezpieczeństwa (czy wp-config.php jest niedostępny), oraz test przywracania z kopii zapasowej.

Czy powinienem zmieniać domyślny prefiks tabel bazy danych?
Tak, zmiana prefiksu z 'wp_' na niestandardowy (np. 'x7k9_') to ważny element bezpieczeństwa. Utrudnia to ataki SQL injection, które często zakładają domyślny prefiks. Najlepiej zrobić to podczas instalacji, ale można też zmienić później za pomocą wtyczek lub ręcznie w phpMyAdmin.
Jak często powinienem robić kopie zapasowe WordPressa?
Dla aktywnych stron: codzienne kopie bazy danych i tygodniowe pełne kopie. Dla stron z częstymi zmianami (sklepy, blogi): kopie w czasie rzeczywistym lub co kilka godzin. Dla stron-wizytówek: wystarczą tygodniowe kopie. Zawsze przechowuj kopie w zewnętrznej lokalizacji (cloud, inny serwer).
Czy wyłączenie XML-RPC wpłynie na działanie strony?
Dla większości stron - nie. XML-RPC jest potrzebny tylko jeśli używasz zewnętrznych aplikacji do publikowania (np. WordPress mobile app przed wersją 5.0, Windows Live Writer). Jeśli korzystasz z REST API, Jetpack lub nowoczesnych wtyczek, możesz bezpiecznie wyłączyć XML-RPC.
Ile rewizji postów powinienem zachować?
Zalecane jest 5-10 rewizji. Pozwala to na przywrócenie wcześniejszych wersji bez nadmiernego rozrostu bazy danych. Dla stron z rzadkimi zmianami można ustawić 3-5, dla aktywnych blogów 10-15. Nigdy nie wyłączaj rewizji całkowicie - są one Twoim zabezpieczeniem przed utratą treści.
Czy potrzebuję wtyczki do cache'owania od razu po instalacji?
Na początek wystarczy podstawowa optymalizacja (wyłączenie zbędnych funkcji, optymalizacja obrazów). Wtyczkę cache'ującą warto wdrożyć, gdy strona zacznie generować ruch. Dla małych stron najpierw skup się na jakości hostingu - dobry hosting z LiteSpeed lub Nginx często zapewnia wystarczającą wydajność bez dodatkowych wtyczek.

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

Porozmawiajmy

Polecane artykuły