Przewodnik SEO Krok 7: Bezpieczeństwo — Podstawa, której Google Oczekuje w 2026
Przewodnik SEO Krok 7: Bezpieczeństwo
To jest Krok 7 z 13-krokowego przewodnika po SEO. Bezpieczeństwo to nie tylko ochrona użytkowników — bezpośrednio wpływa na pozycje w wynikach wyszukiwania. Google wykorzystuje HTTPS jako sygnał rankingowy od 2014 roku, a oczekiwania tylko wzrosły.
Większość właścicieli stron traktuje bezpieczeństwo jako binary — "Mamy SSL, więc jesteśmy bezpieczni." W rzeczywistości Google ocenia dziesiątki sygnałów bezpieczeństwa. Strony z odpowiednimi nagłówkami bezpieczeństwa, ważnymi certyfikatami i bez mieszanej zawartości zajmują wyższe pozycje niż strony z tylko podstawowym certyfikatem SSL — przy wszystkich innych czynnikach równych.
Dobra wiadomość: większość poprawek bezpieczeństwa to jednorazowe konfiguracje. Ustaw je raz, a będą chronić Twoje pozycje na stałe.
Konfiguracja SSL
SSL (technicznie TLS) szyfruje połączenie między Twoim serwerem a odwiedzającymi. Od 2014 roku Google wyraźnie potwierdziło HTTPS jako sygnał rankingowy. W 2026 roku brak HTTPS to nie tylko problem rankingowy — Chrome oznacza strony HTTP jako "Niebezpieczne" w pasku adresu, niszcząc zaufanie użytkowników.
Wymagania dotyczące prawidłowego SSL:
| Wymaganie | Dlaczego | Jak Sprawdzić | |-----------|----------|----------------| | Ważny certyfikat | Wygasły = ostrzeżenie przeglądarki = utraceni użytkownicy | Sprawdź datę ważności | | Pełny łańcuch | Niekompletne łańcuchy nie działają na niektórych urządzeniach | Test SSL Labs | | TLS 1.2+ | Starsze wersje mają znane luki | Test SSL Labs | | Brak SHA-1 | Przestarzałe, przeglądarki je odrzucają | Szczegóły certyfikatu | | Pokrycie SAN | www i non-www muszą być objęte | Szczegóły certyfikatu | | Automatyczne odnawianie | Zapobiega katastrofom związanym z wygaszeniem | Konfiguracja Let's Encrypt / dostawcy |
Skoring SSL:
100% = Ważny certyfikat + Pełny łańcuch + TLS 1.3 + Silny szyfr + Automatyczne odnawianie
0% = Wygasły lub brakujący certyfikat
Typowe błędy związane z SSL:
- Certyfikat wygasa bez powiadomienia — Ustaw monitoring (Krok 6) co najmniej 30 dni przed wygaśnięciem
- Niekompletny łańcuch certyfikatów — Serwer musi wysyłać certyfikaty pośrednie, a nie tylko końcowe
- Mieszana zawartość — Strona HTTPS ładowana zasobami HTTP (obrazy, skrypty, style)
- Pętle przekierowań — Cykl HTTP → HTTPS → HTTP spowodowany niewłaściwie skonfigurowanym CDN/proxy
- Niezgodność non-www z www — Certyfikat pokrywa jedną, ale nie drugą
Szybki sukces: Uruchom swoją domenę przez SSL Labs (ssllabs.com/ssltest). Cokolwiek poniżej oceny "A" ma problemy do rozwiązania. Większość dostawców hostingu naprawia to jednym kliknięciem.
Nagłówki bezpieczeństwa
Nagłówki bezpieczeństwa to nagłówki odpowiedzi HTTP, które instruują przeglądarki jak zachować się podczas ładowania Twojej witryny. Zapobiegają całym kategoriom ataków — a roboty Google sprawdzają ich obecność.
Podstawowe nagłówki bezpieczeństwa:
Content-Security-Policy (CSP)
CSP to najsilniejszy nagłówek bezpieczeństwa. Informuje przeglądarki, które zasoby (skrypty, style, obrazy, czcionki) mogą być ładowane na Twoich stronach.
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';
Czego CSP zapobiega:
- Ataki XSS (cross-site scripting)
- Ataki polegające na wstrzykiwaniu danych
- Klikanie w fałszywe linki (via
frame-ancestors) - Nieautoryzowane wykonywanie skryptów (kopacze kryptowalut, wstrzykiwacze reklam)
Strategia wdrażania CSP:
- Zacznij od
Content-Security-Policy-Report-Only(rejestruje naruszenia bez blokowania) - Monitoruj raporty przez 1-2 tygodnie
- Wprowadź białą listę legalnych źródeł
- Przełącz na tryb egzekwowania
- Dodaj
report-urilubreport-todo ciągłego rejestrowania naruszeń
X-Frame-Options
Zapobiega osadzaniu Twojej witryny w ramkach (prawa przeciwko klikaniu w fałszywe linki).
X-Frame-Options: DENY
Lub, jeśli potrzebujesz zezwolić na osadzanie z tej samej domeny:
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options
Zapobiega przeglądarkom przed sniffingiem typu MIME (interpretowaniem plików jako innego typu niż zadeklarowany).
X-Content-Type-Options: nosniff
To jedna linia kodu, która zapobiega atakom, gdzie plik .jpg zawiera ukryty JavaScript, który przeglądarka może wykonać.
Referrer-Policy
Kontroluje, ile informacji o referrerze jest wysyłane, gdy użytkownicy klikają linki z Twojej witryny.
Referrer-Policy: strict-origin-when-cross-origin
To wysyła pełny adres URL dla żądań z tej samej domeny, ale tylko origin (domena) dla żądań międzydomenowych. Równoważy potrzeby analityczne z prywatnością.
Permissions-Policy
Kontroluje, które funkcje przeglądarki (kamera, mikrofon, geolokalizacja, itp.) mogą być używane na Twojej stronie.
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
Dezaktywując funkcje, których nie używasz, zapobiegasz ich nadużywaniu przez zewnętrzne skrypty.
Przykład implementacji nagłówków (Next.js):
// next.config.js
module.exports = {
async headers() {
return [{
source: '/(.*)',
headers: [
{ key: 'X-Content-Type-Options', value: 'nosniff' },
{ key: 'X-Frame-Options', value: 'SAMEORIGIN' },
{ key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
{ key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
{ key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
]
}]
}
}
Implementacja nagłówków (Apache .htaccess):
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Implementacja nagłówków (Nginx):
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Szybki sukces: Dodaj wszystkie 5 nagłówków powyżej do konfiguracji serwera. To zajmie 5 minut i natychmiast poprawi Twoje bezpieczeństwo w każdym narzędziu skanującym.
HSTS Preload
HTTP Strict Transport Security (HSTS) informuje przeglądarki, aby zawsze używały HTTPS dla Twojej domeny — nawet przed pierwszym żądaniem. Bez HSTS, pierwsza wizyta na Twojej stronie może nadal używać HTTP (narażona na przechwycenie) zanim nastąpi przekierowanie do HTTPS.
Nagłówek HSTS:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Trzy dyrektywy:
| Dyrektywa | Znaczenie | |-----------|-----------| | max-age=31536000 | Zapamiętaj to na 1 rok (w sekundach) | | includeSubDomains | Zastosuj również do wszystkich subdomen | | preload | Poproś o włączenie do list preładowania przeglądarek |
Lista preładowania HSTS:
Ostateczna ochrona HSTS. Przeglądarki mają wbudowaną listę domen, które zawsze muszą używać HTTPS. Zgłoszenie swojej domeny do hstspreload.org oznacza:
- Użytkownicy po raz pierwszy otrzymują HTTPS od razu (brak przekierowania HTTP → HTTPS)
- Niemożliwe dla atakujących, aby obniżyć połączenia
- Trwałe (trudno usunąć po zgłoszeniu)
Wymagania dla preładowania HSTS:
- Ważny certyfikat HTTPS
- Przekierowaniu całego HTTP do HTTPS (w tym subdomen)
- Nagłówek HSTS z
max-age>= 31536000 - Nagłówek HSTS zawiera
includeSubDomains - Nagłówek HSTS zawiera
preload - Wszystkie subdomeny muszą obsługiwać HTTPS
Ostrzeżenie: Zgłaszaj do preload tylko wtedy, gdy WSZYSTKIE Twoje subdomeny obsługują HTTPS. Dyrektywa includeSubDomains oznacza, że każda subdomena tylko HTTP stanie się niedostępna.
Szybki sukces: Jeśli już masz HTTPS na wszystkich subdomenach, dodaj pełny nagłówek HSTS i zgłoś do hstspreload.org. Procesowanie trwa kilka tygodni, ale ochrona jest trwała.
Skanowanie podatności
Zautomatyzowane skanowanie podatności identyfikuje znane problemy bezpieczeństwa w Twoim systemie zanim zostaną one wykorzystane przez atakujących.
Co sprawdza skanowanie podatności:
- Nieaktualne oprogramowanie: WordPress, wtyczki, biblioteki JavaScript z znanymi CVE
- Ujawioną zawartość:
.env,.git,wp-config.php, zrzuty baz danych - Wycieki informacji: Nagłówki wersji serwera, tryb debugowania, stosy
- Domyślne dane uwierzytelniające: Strony admina bez autoryzacji, domyślne hasła
- Otwarte porty/usługi: Niepotrzebne usługi ujawnione w internecie
- Punkty wstrzykiwania: Formularze bez ochrony CSRF, niezweryfikowane dane wejściowe
Typowe podatności według platformy:
| Platforma | Największa podatność | Naprawa | |-----------|----------------------|---------| | WordPress | Nieaktualne wtyczki | Automatyczna aktualizacja + WAF | | Shopify | Uprawnienia aplikacji trzecich | Audyt listy aplikacji co kwartał | | Next.js | Ujawniowane trasy API | Middleware autoryzacji + ograniczenie tempa | | Statyczne strony | Błędna konfiguracja CDN | Przejrzenie reguł pamięci podręcznej | | Niestandardowe | Wstrzykiwanie SQL | Parametryzowane zapytania |
Częstotliwość skanowania:
- Codzienne: Zautomatyzowane skanowanie powierzchni (SSL, nagłówki, ujawnione pliki)
- Cotygodniowe: Sprawdzenie podatności zależności (npm audit, skaner wtyczek WordPressa)
- Comiesięczne: Głębokie skanowanie z autoryzowanym testowaniem
- Po każdym wdrożeniu: Sprawdzenie regresji
Szybki sukces: Uruchom npm audit (Node.js) lub sprawdź swoją listę wtyczek CMS w poszukiwaniu nieaktualnych komponentów. Napraw krytyczne/znaczne problemy natychmiast.
Mieszana zawartość
Mieszana zawartość występuje, gdy strona HTTPS ładuje zasoby (obrazy, skrypty, arkusze stylów, ramki) przez HTTP. To częściowo łamie szyfrowanie i powoduje ostrzeżenia przeglądarki.
Typy mieszanej zawartości:
| Typ | Powagi | Przykład | Zachowanie przeglądarki | |-----|--------|----------|-------------------------| | Aktywna | Wysoka | Skrypt HTTP, iframe, CSS | Zablokowane domyślnie | | Pasywna | Średnia | Obraz HTTP, wideo, audio | Załadowane z ostrzeżeniem |
Aktywna mieszana zawartość jest blokowana przez nowoczesne przeglądarki — co oznacza, że Twoje skrypty i style po prostu się nie załadują. Pasywna mieszana zawartość ładowana jest, ale z ostrzeżeniem o bezpieczeństwie.
Jak znaleźć mieszaną zawartość:
- Otwórz Chrome DevTools → Konsola
- Sprawdź ostrzeżenia "Mixed Content"
- Alternatywnie, przeskanuj za pomocą narzędzia do skanowania (Screaming Frog, LANGR)
Typowe źródła mieszanej zawartości:
- Hardcodowane URL-e
http://w treści (posty na blogu, opisy produktów) - Widgety zewnętrzne ładujące zasoby HTTP
- Osadzone treści (stare embed’y YouTube, widgety mediów społecznościowych)
- CSS
background-imagez URL-ami HTTP - Czcionki ładowane przez HTTP
Naprawa mieszanej zawartości:
<!-- Złe -->
<img src="http://example.com/image.jpg" />
<!-- Dobre -->
<img src="https://example.com/image.jpg" />
<!-- Najlepsze (z równoważeniem protokołu, dostosowuje się do protokołu strony) -->
<img src="//example.com/image.jpg" />
Naprawa bazy danych (WordPress):
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');
Szybki sukces: Otwórz swoją stronę główną w Chrome, naciśnij F12, sprawdź zakładkę Konsola w poszukiwaniu ostrzeżeń związanych z mieszaną zawartością. Napraw wszelkie, które się pojawią — są one bezpośrednio widoczne dla Google.
Ryzyko związane z skryptami zewnętrznymi
Każdy zewnętrzny skrypt, który ładujesz, jest potencjalnym zagrożeniem dla bezpieczeństwa (i wydajności). Skrypty zewnętrzne mogą:
- Zostać skompromitowane (ataki na łańcuch dostaw)
- Śledzić Twoich użytkowników bez zgody (naruszenie RODO)
- Spowolnić Twoją stronę (blokowanie renderowania, opóźnienie sieci)
- Złamać funkcjonalność (aktualizacje wersji, awarie)
- Wstrzyknąć niechcianą treść (błędne skrypty reklamowe)
Audytuj swoje skrypty zewnętrzne:
| Skrypt | Konieczny? | Poziom ryzyka | Alternatywa | |--------|-----------|---------------|-------------| | Google Analytics | Często tak | Niskie | Śledzenie po stronie serwera | | Widgety czatu | Może | Średnie | Rozwiązania hostowane samodzielnie | | Przycisk udostępniania w mediach społecznościowych | Rzadko | Średnie | Statyczne linki udostępniania | | Testy A/B | Czasami | Wysokie | Testy po stronie serwera | | Piksele retargetowania | Decyzja biznesowa | Wysokie | Dane pierwszej strony | | Fonty CDN | Wygodne | Niskie | Samodzielne hostowane czcionki |
Łagodzenie ryzyka dla niezbędnych skryptów zewnętrznych:
- Integralność podzasobów (SRI): Weryfikacja hasha zapobiega ładowaniu skryptów z manipulacjami
<script src="https://cdn.example.com/lib.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
crossorigin="anonymous"></script>
- Ograniczenia CSP: Zezwól tylko na skrypty z znanych domen
- Osadzone ramki w sandboxie: Izolacja widgetów zewnętrznych
- Regularne audyty: Kwartalne przeglądy wszystkich zasobów zewnętrznych
- Monitorowanie: Powiadamiaj o nowych zewnętrznych domenach pojawiających się na Twoich stronach
Szybki sukces: Sporządź listę wszystkich tagów w swoim HTML-u, które ładują z zewnętrznej domeny. Usuń te, których nie rozpoznajesz lub których już nie potrzebujesz. Każde usunięcie poprawia zarówno bezpieczeństwo, jak i szybkość strony.
Wykrywanie złośliwego oprogramowania i Bezpieczne Przeglądanie Google
Google prowadzi listę Bezpiecznego Przeglądania stron, które są znane z dystrybucji złośliwego oprogramowania lub hostowania treści phishingowych. Znalezienie się na tej liście jest katastrofalne dla SEO — Google wyświetla pełną stronę ostrzegawczą przed pozwoleniem użytkownikom na wizytę na Twojej stronie.
Jak strony są oznaczane:
- Skompromitowana strona dystrybuująca złośliwe oprogramowanie (zhackowany WordPress, itp.)
- Wstrzykiwanie skryptów przekierowujących na złośliwe strony
- Strony phishingowe hostowane na Twojej domenie
- Treści generowane przez użytkowników linkujące do złośliwego oprogramowania
- Hosting plików oznaczonych jako niebezpieczne
Sprawdzanie statusu Bezpiecznego Przeglądania:
https://transparencyreport.google.com/safe-browsing/search?url=yourdomain.com
Lub w Google Search Console: sekcja Problemy z bezpieczeństwem.
Zapobieganie:
- Utrzymuj wszystkie oprogramowanie zaktualizowane (CMS, wtyczki, biblioteki)
- Używaj silnych, unikalnych haseł admina + 2FA
- Monitoruj integralność plików (wykrywaj nieautoryzowane zmiany)
- Skanuj treści przesyłane przez użytkowników
- Usuwaj nieużywane wtyczki/tematy
- Regularnie przeglądaj użytkowników admina
Jeśli zostaniesz oznaczony:
- Zidentyfikuj i usuń złośliwe oprogramowanie/treści phishingowe
- Zaktualizuj całe oprogramowanie i zmień wszystkie hasła
- Poproś o przegląd w Google Search Console
- Przeglądy zwykle trwają 1-3 dni
- Monitoruj uważnie przez 30 dni (ponowne zakażenie jest częste)
Szybki sukces: Sprawdź swoją stronę na transparencyreport.google.com. Jeśli jest czysta, upewnij się, że Twój CMS i wszystkie wtyczki są zaktualizowane, aby tak pozostało.
Lista kontrolna bezpieczeństwa SEO
- [ ] Ważny certyfikat SSL z skonfigurowanym automatycznym odnawianiem
- [ ] Przekierowanie HTTP → HTTPS na wszystkich stronach (301, nie 302)
- [ ] Nagłówek HSTS z max-age >= 31536000
- [ ] Skonfigurowany nagłówek Content-Security-Policy
- [ ] X-Content-Type-Options: nosniff
- [ ] X-Frame-Options: DENY lub SAMEORIGIN
- [ ] Referrer-Policy: strict-origin-when-cross-origin
- [ ] Permissions-Policy dezaktywująca niewykorzystane funkcje
- [ ] Brak mieszanej zawartości (zasoby HTTP na stronach HTTPS)
- [ ] Brak ujawnionych wrażliwych plików (.env, .git, pliki konfiguracyjne)
- [ ] Nagłówki wersji serwera usunięte lub ogólne
- [ ] Wszystkie oprogramowania/wtyczki aktualne
- [ ] Status Bezpiecznego Przeglądania Google: czysty
- [ ] Skrypty zewnętrzne audytowane i zminimalizowane
- [ ] Hashe SRI na krytycznych zewnętrznych skryptach
Typowe błędy bezpieczeństwa (usortowane według wpływu na SEO)
- Wygasły certyfikat SSL — natychmiastowy spadek w rankingu + ostrzeżenie przeglądarki
- Mieszana zawartość — obniża sygnały zaufania, częściowe szyfrowanie bezużyteczne
- Brak HSTS — pierwsze żądanie narażone, sygnalizuje słabą postawę bezpieczeństwa
- Brak CSP — pozwala na wykonanie dowolnego skryptu (wektor XSS)
- Ujawniowe wrażliwe pliki —
.envz kluczami API,.gitz kodem źródłowym - Nieaktualny CMS/wtyczki — znane exploity, eventualna kompromitacja
- Brak nagłówków bezpieczeństwa — sygnalizuje, że nie rozważałeś bezpieczeństwa
- Zbyt permissywne skrypty zewnętrzne — luki w zabezpieczeniach, których nie możesz kontrolować
Co dalej?
Krok 8: Widoczność AI — Nowoczesne SEO w 2026 roku. Jak optymalizować dla Ogólnych AI Google, cytatów ChatGPT, odwołań Perplexity i Gemini — najszybciej rosnącego kanału odkryć, którego większość konkurentów nawet nie rozważała.
Ten przewodnik jest częścią 13-krokowej serii SEO LANGR. Uruchom darmowy audyt, aby zobaczyć, jak Twoja strona wypada we wszystkich 13 dyscyplinach.