Wersja: 1.5.0
Autor: Paweł Deluga | Pomoc Techniczna WordPress
Data wydania: Sierpień 2025
📝 O wtyczce
Audyt techniczny to profesjonalne narzędzie do audytu stron WordPress, które w jednym miejscu przeprowadza kompleksową analizę bezpieczeństwa, wydajności, aktualności i stabilności. Wtyczka została stworzona z myślą o praktyczności – nie tylko wskazuje problemy, ale także dostarcza konkretne, możliwe do wdrożenia rozwiązania.
🎯 Główne założenia:
- Edukacja nad frustracją – wyjaśniamy dlaczego coś jest ważne
- Praktyczne rozwiązania – gotowe kody do wklejenia
- Realistyczne oczekiwania – uwzględniamy ograniczenia hostingu
- Bezpieczeństwo z rozwagą – nie każde „ostrzeżenie” to problem
📁 Struktura plików
audyt-strony/
├── wp-tech.php # Główny plik wtyczki
├── includes/
│ ├── class-wptech-audit.php # Logika audytu
│ └── admin-page.php # Interfejs użytkownika
├── assets/
│ ├── css/
│ │ └── style.css # Style (ciemny motyw)
│ ├── js/
│ │ ├── script.js # AJAX i funkcjonalność
│ │ └── audit-ui.js # Interakcje UI
│ └── img/ # Obrazy i ikony
├── readme.txt # Opis wtyczki WordPress
└── uninstall.php # Cleanup przy usuwaniu
🔒 Filozofia bezpieczeństwa
Inteligentne podejście do REST API
Wtyczka pozytywnie ocenia wyłączenie REST API gdy nie jest potrzebne:
✅ Zalety wyłączonego REST API:
- Brak ryzyka wycieku danych użytkowników
- Niemożliwe ataki brute-force przez API
- Ograniczona powierzchnia ataku
- Lepsza ochrona przed automatycznymi skanami
⚠️ Ograniczenia wyłączonego REST API:
- Edytor blokowy może nie działać poprawnie
- Niektóre nowoczesne wtyczki mogą mieć problemy
- Brak możliwości integracji z zewnętrznymi aplikacjami
Wniosek: Jeśli nie korzystasz z editora blokowego i zaawansowanych wtyczek, wyłączenie REST API jest zalecane ze względów bezpieczeństwa.
Realistyczne oczekiwania
Wtyczka edukuje użytkowników, że:
- Hosting często ma własne zabezpieczenia – nie wszystko można zmienić
- 100% wynik nie jest celem – ważniejsze jest zrozumienie
- Niektóre „problemy” to celowe wybory – np. wyłączony REST API
- Bezpieczeństwo to proces ciągły – nie jednorazowa akcja
🎯 Funkcje audytu
Bezpieczeństwo (7 testów)
- Prefiks bazy danych – sprawdzenie czy zmieniony z wp_
- Problematyczne wtyczki – nieaktywne >1 roku, bez wersji
- Uprawnienia plików – 644/755/600 dla kluczowych plików
- Użytkownik „admin” – czy istnieje domyślne konto
- WP_DEBUG – czy błędy są widoczne publicznie
- Pliki PHP w uploads – czy są dostępne przez przeglądarkę
- SSL/HTTPS – certyfikat i wymuszenie szyfrowania
Wydajność (7 testów)
- TTFB – czas odpowiedzi serwera (<500ms)
- Rozmiar strony – czy mieści się w 2MB
- Cache obiektowy – Redis/Memcached
- Cache HTML – buforowanie stron
- CDN – wykrywanie Cloudflare/innych
- Limit pamięci PHP – minimum 256MB
- Czas wykonywania PHP – minimum 60s
Aktualność (5 testów)
- PHP – czy wersja ≥8.0
- WordPress – czy najnowsza wersja
- Baza danych – MySQL/MariaDB
- Wtyczki – czy wszystkie aktualne
- Automatyczne aktualizacje – czy włączone
Stabilność (5 testów)
- WordPress CRON – czy zadania działają
- REST API – bezpieczeństwo vs funkcjonalność
- WP Filesystem – czy aktualizacje możliwe
- Moduły PHP – curl, mbstring, json, openssl, dom, zip, gd
- Logi błędów – czy są krytyczne problemy
💡 Praktyczne rozwiązania
Przykład: Limit pamięci PHP zbyt niski
Problem: Strona się zawiesza, błędy przy aktualizacjach
Obecny limit: 128MB
Zalecany: 256MB
OPCJA 1: wp-config.php (najczęstsza)
define('WP_MEMORY_LIMIT', '256M');
OPCJA 2: .htaccess
php_value memory_limit 256M
OPCJA 3: Panel hostingu
- cPanel → PHP Selector → memory_limit → 256M
- Plesk → PHP Settings → memory_limit → 256M
Uwaga: Hosting może mieć swoje ograniczenia dla limitu pamięci.
Przykład: REST API udostępnia użytkowników
Problem: /wp-json/wp/v2/users zwraca listę logonów
Ryzyko: Atakujący poznają nazwy użytkowników (ułatwione brute-force)
OPCJA A: Wyłącz REST API (najlepsze bezpieczeństwo)
// functions.php
add_filter('rest_enabled', '__return_false');
OPCJA B: Zabezpiecz dostęp
// functions.php
add_filter('rest_authentication_errors', function($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in',
'Unauthorized', array('status' => 401));
}
return $result;
});
Przykład: Czas wykonywania PHP zbyt krótki
Problem: Skrypty przerywają się podczas długich operacji
Obecny limit: 30 sekund
Zalecany: 120 sekund
OPCJA 1: .htaccess
php_value max_execution_time 120
OPCJA 2: wp-config.php
ini_set('max_execution_time', 120);
OPCJA 3: Panel hostingu
- cPanel/Plesk → PHP Settings → max_execution_time → 120
Uwaga: Niektóre hostingi mogą blokować te zmiany ze względów bezpieczeństwa.
⚠️ Ograniczenia hostingu
Shared hosting (współdzielony)
❌ Może blokować:
- Zmianę limitów PHP
- Dostęp do .htaccess
- Instalację Redis/Memcached
- Modyfikację uprawnień plików
✅ Zwykle pozwala:
- Zmianę ustawień w wp-config.php
- Podstawowe ustawienia PHP przez panel
- Instalację wtyczek cache
VPS/Serwer dedykowany
✅ Pełna kontrola:
- Wszystkie ustawienia PHP
- Instalacja Redis/Memcached
- Konfiguracja serwera
- Zaawansowane zabezpieczenia
Zarządzane WordPress hosting
⚠️ Mieszane możliwości:
- Często ma własne zabezpieczenia
- Może blokować niektóre wtyczki
- Automatycznie zarządza cache
- Ogranicza dostęp do plików systemowych
🎨 Interfejs użytkownika
Kolorystyka i design
- Główny kolor:
#7456f1(fioletowy) - Ciemny motyw z gradientowym tłem
- Efekty glassmorphism – półprzezroczyste elementy
- Animacje fade-in – płynne pojawianie się elementów
- Responsywny design – działa na wszystkich urządzeniach
Elementy interaktywne
- Okrągłe wskaźniki kategorii z procentami
- Rozwijane szczegóły – kliknij „+ Szczegóły”
- Animowany przycisk audytu z efektem ładowania
- Formularz zgłoszeń z możliwością zmiany e-maila
Wskaźniki statusu
- 🟢 Zielony (OK): Wszystko w porządku
- 🟡 Żółty (Warning): Do rozważenia
- 🔴 Czerwony (Danger): Wymaga uwagi
📧 System zgłoszeń
Funkcjonalność
- Wysyłanie z adresu administratora strony
- Możliwość zmiany e-maila „w locie”
- Automatyczne sprawdzanie konfiguracji SMTP
- Obsługa błędów i informowanie użytkownika
Bezpieczeństwo
- Tylko administratorzy mogą wysyłać zgłoszenia
- Wszystkie dane są sanityzowane
- Ochrona AJAX przez nonce
- Walidacja adresów e-mail
Co się dzieje po wysłaniu?
- E-mail trafia na pawel.deluga@gmail.com
- Zawiera adres nadawcy i opis problemu
- Odpowiedź następuje w ciągu 24h
- Jeśli SMTP nie działa – wyświetlane jest ostrzeżenie
🚀 Instalacja i pierwsze kroki
Wymagania systemowe
- WordPress: 5.6 lub nowszy
- PHP: 7.2 lub nowszy (zalecane 8.0+)
- Uprawnienia: manage_options (administrator)
- Moduły PHP: curl, json, mbstring (standardowe)
Proces instalacji
- Pobierz paczkę wtyczki (plik ZIP)
- WordPress Admin → Wtyczki → Dodaj nową → Wyślij na serwer
- Wybierz plik ZIP i kliknij „Zainstaluj teraz”
- Aktywuj wtyczkę po instalacji
- Przejdź do Audyt techniczny w menu administratora (ikona tarczy)
Pierwszy audyt
- Kliknij „Uruchom audyt strony” na głównej stronie
- Poczekaj 30-60 sekund na zakończenie
- Przejrzyj wyniki w 4 kategoriach:
- Bezpieczeństwo
- Wydajność
- Aktualność
- Stabilność
- Kliknij „+ Szczegóły” przy elementach, które cię interesują
- Wdrażaj tylko te zmiany, które rozumiesz i są potrzebne
📊 Interpretacja wyników
Wynik ogólny (okrągły wskaźnik)
- 90-100%: 🟢 Świetnie – strona w doskonałym stanie
- 70-89%: 🟡 Dobrze – kilka rzeczy do poprawy
- 50-69%: 🟡 Do poprawy – wymaga uwagi
- <50%: 🔴 Wymaga działań – wiele problemów
⚠️ WAŻNE: Nie panikuj przy niskim wyniku!
Niski wynik często oznacza:
- Hosting ma własne zabezpieczenia (co jest dobre!)
- Strona używa starszych, ale stabilnych rozwiązań
- Niektóre „problemy” to celowe wybory (np. wyłączony REST API)
- Potrzebujesz edukacji, nie paniki
Priorytetyzacja działań
- 🔴 Czerwone (Danger) – rozwiąż jak najszybciej
- Wpływają bezpośrednio na bezpieczeństwo
- Mogą powodować problemy użytkownikom
- 🟡 Żółte (Warning) – przeanalizuj i rozważ
- Mogą poprawić funkcjonowanie
- Nie zawsze konieczne do wdrożenia
- 🟢 Zielone (OK) – wszystko w porządku
- Możesz je zignorować
- Oznaczają prawidłową konfigurację
📚 Sekcja edukacyjna
Ważne informacje o bezpieczeństwie
Wtyczka zawiera specjalną sekcję edukacyjną, która wyjaśnia:
💡 Kluczowe Zasady:
- Wprowadzenie zaleceń znacząco zmniejsza ryzyko, ale nie ma 100% bezpieczeństwa
- Bezpieczeństwo to proces ciągły, nie jednorazowa akcja
- Hosting ma swoje ograniczenia – nie wszystko można/trzeba zmieniać
- Nie dąż do 100% wyniku za wszelką cenę – zrozumienie ważniejsze od wyniku
🛡️ Dodatkowe Zalecenia:
- Regularne kopie zapasowe (zalecane: codziennie)
- Monitoring ruchu i prób włamania
- Dwuskładnikowe uwierzytelnianie (2FA)
- Firewall aplikacyjny (WAF)
- Regularne audyty bezpieczeństwa
Ta sekcja pomaga użytkownikom zrozumieć, że audyt to narzędzie edukacyjne, a nie lista rzeczy do ślepego wykonania.
🔧 Najczęstsze problemy
Q: Audyt się nie uruchamia / zawiesza
A: Sprawdź:
- Czy jesteś zalogowany jako administrator
- Czy w przeglądarce są błędy JavaScript (F12 → Console)
- Czy hosting nie blokuje requestów AJAX
- Spróbuj odświeżyć stronę (Ctrl+F5)
Q: Błąd „Insufficient permissions”
A: Tylko użytkownicy z uprawnieniami „manage_options” (administratorzy) mogą uruchamiać audyt. Sprawdź swoje uprawnienia.
Q: Zgłoszenie nie wysyła się
A: Sprawdź:
- Konfigurację SMTP w WordPress
- Czy hosting obsługuje funkcję wp_mail()
- Logi błędów serwera
- Spróbuj wysłać testowego e-maila z WordPress
Q: Mam wynik 30% – czy to źle?
A: Niekoniecznie! Sprawdź szczegóły:
- REST API wyłączone = DOBRZE dla bezpieczeństwa
- Starsza wersja PHP = do przemyślenia, ale nie krytyczne
- Brak CDN = OK jeśli ruch lokalny
- Hosting może mieć własne zabezpieczenia
Q: Jak wyłączyć REST API dla bezpieczeństwa?
A: Dodaj do pliku functions.php twojego motywu:
// Wyłączenie REST API
add_filter('rest_enabled', '__return_false');
add_filter('xmlrpc_enabled', '__return_false');
// Alternatywnie - tylko ukryj użytkowników
remove_action('rest_api_init', 'wp_oembed_register_route');
add_filter('rest_endpoints', function($endpoints) {
if (isset($endpoints['/wp/v2/users'])) {
unset($endpoints['/wp/v2/users']);
}
return $endpoints;
});
Q: Hosting nie pozwala na zmiany PHP
A: To normalne na shared hostingu. Alternatywy:
- Skorzystaj z ustawień w wp-config.php
- Sprawdź panel hostingu (PHP Selector)
- Skontaktuj się z pomocą techniczną hostingu
- Rozważ upgrade do VPS jeśli potrzebujesz więcej kontroli
🎯 Najlepsze praktyki
🔒 Bezpieczeństwo
✅ RÓB:
- Regularne kopie zapasowe – codziennie jeśli możliwe
- Aktualizuj WordPress i wtyczki regularnie
- Używaj silnych haseł i 2FA gdy dostępne
- Monitoruj logi dostępu i błędów
- Czytaj szczegóły audytu zamiast patrzeć tylko na procenty
❌ NIE RÓB:
- Nie dąż do 100% wyniku za wszelką cenę
- Nie zmieniaj rzeczy, których nie rozumiesz
- Nie ignoruj ostrzeżeń hostingu o ograniczeniach
- Nie wyłączaj wszystkiego „dla bezpieczeństwa”
- Nie panikuj przy niskim wyniku – przeczytaj szczegóły
⚡ Wydajność
🎯 PRIORYTET (w kolejności ważności):
- Cache HTML – największy wpływ na szybkość
- Optymalizacja obrazów – szczególnie na stronach z dużą ilością zdjęć
- CDN – jeśli masz globalny ruch
- Cache obiektowy – dla zaawansowanych użytkowników
💰 KOSZT vs EFEKT:
- Darmowe i skuteczne: LiteSpeed Cache, optymalizacja obrazów
- Płatne ale warte: WP Rocket, Cloudflare Pro
- Drogie i dla ekspertów: Dedykowany Redis, premium CDN
📅 Harmonogram utrzymania
🗓️ REGULARNE AUDYTY:
- Raz w miesiącu – podstawowy audyt
- Po każdej dużej aktualizacji WordPress/motywu/wtyczek
- Przed planowanymi kampaniami marketingowymi
- Po zgłoszeniach problemów od użytkowników
📋 CHECKLIST MIESIĘCZNY:
- Uruchom audyt WP-TECH
- Sprawdź kopie zapasowe
- Zaktualizuj wtyczki i motywy
- Przejrzyj logi błędów
- Sprawdź statystyki wydajności
- Zweryfikuj działanie formularzy
📞 Wsparcie techniczne
📧 Kontakt
- Autor: Paweł Deluga
- Strona: www.paweldeluga.pl
- E-mail: pawel.deluga@gmail.com
- Czas odpowiedzi: do 24h (dni robocze)
📋 Przed zgłoszeniem problemu
- Przeczytaj dokumentację – szczególnie sekcję „Najczęstsze Problemy”
- Sprawdź konsolę przeglądarki (F12) czy są błędy JavaScript
- Przetestuj na czystej instalacji WordPress jeśli możliwe
- Zbierz informacje o środowisku
📝 Co dołączyć do zgłoszenia
- Wersję WordPress (Kokpit → Aktualizacje)
- Wersję PHP (Narzędzia → Zdrowie witryny → Informacje)
- Typ hostingu (shared/VPS/cloud/zarządzany)
- Zrzuty ekranu problemów
- Opis krok po kroku jak odtworzyć problem
- Logi błędów jeśli są dostępne
⚡ Szybkie rozwiązania
Przed zgłoszeniem spróbuj:
- Wyłączyć wszystkie wtyczki oprócz Audyt techniczny
- Przełączyć na domyślny motyw WordPress
- Wyczyścić cache przeglądarki (Ctrl+F5)
- Sprawdzić czy masz najnowszą wersję wtyczki
🏆 Zaawansowane funkcje
🔧 Dla developerów
Hooky WordPress:
// Customizacja wyników audytu
add_filter('wptech_audit_results', function($results) {
// Modyfikuj wyniki przed wyświetleniem
return $results;
});
// Dodanie własnych testów
add_filter('wptech_custom_checks', function($checks) {
$checks['my_custom_check'] = [
'status' => 'ok',
'title' => 'Mój test',
'details' => 'Opis wyniku'
];
return $checks;
});
AJAX Endpoints:
wptech_run_audit– uruchomienie audytuwptech_submit_help– wysyłanie zgłoszeń
🎨 Customizacja Wyglądu
CSS Custom Properties:
:root {
--wptech-primary: #667eea; /* Główny kolor */
--wptech-success: #27ae60; /* Kolor sukcesu */
--wptech-warning: #f39c12; /* Kolor ostrzeżeń */
--wptech-danger: #e74c3c; /* Kolor błędów */
}
Dodanie własnych stylów:
add_action('admin_enqueue_scripts', function($hook) {
if ($hook === 'toplevel_page_wptech-status') {
wp_enqueue_style('my-wptech-styles',
get_template_directory_uri() . '/wptech-custom.css');
}
});
🚀 Powodzenia z Audyt techniczny!
Pamiętaj: Najlepszy audyt to taki, który pomaga ci zrozumieć twoją stronę i podejmować świadome decyzje, a nie stresuje niepotrzebnymi ostrzeżeniami czy wymusza bezmyślne „naprawianie” wszystkich żółtych i czerwonych wskaźników.
💡 Złota Zasada: Jeśli nie rozumiesz co robisz – nie rób tego. Zapytaj eksperta lub zostaw jak jest.

