SEO-31

Chybí HSTS (Strict-Transport-Security)

VarováníPřístup pro crawlery

Co kontrola měří

V hlavičkách odpovědi úvodní stránky se hledá Strict-Transport-Security. Chybí-li, vznikne nález. Hodnotí se jen přítomnost: obsah hlavičky (max-age, includeSubDomains, preload) se nekontroluje.

To není opomenutí: posuzovat, jestli je max-age dost dlouhý, by znamenalo hodnotit kvalitu vaší bezpečnostní politiky, a to tahle skupina kontrol vědomě nedělá. Říká jen, že hlavička chybí úplně.

Kontroluje se jen úvodní stránka a jen při čerstvém průchodu webu. Když audit běží nad dříve uloženým HTML, hlavičky k dispozici nejsou a kontrola mlčí: nehlásí, že hlavička chybí. Je to záměr: tvrdit „chybí“ tam, kde jsme se nedívali, by byla nepravda.

Nález je vázaný na úvodní stránku, závažnost varování.

Jak silný důkaz za tím stojí

Efekt nedoložený

Doporučujeme to, protože to neuškodí nebo to má jiný užitek, ale vliv na to, jestli vás jazykové modely budou citovat, neslibujeme. Nikdo ho zatím nedoložil.

Na viditelnost v odpovědích AI ani na pozici ve vyhledávání doložený vliv nemáme a netvrdíme ho. Bezpečnostní hlavičky Google mezi řadicími signály neuvádí; naopak o aspektech „page experience“ mimo Core Web Vitals výslovně píše, že přímo k lepšímu umístění nepomáhají.

Co HSTS dělá, je doložené a konkrétní: říká prohlížeči, ať na tuhle doménu příště chodí rovnou přes https a http vůbec nezkouší. Tím zavírá mezeru, kterou samotné přesměrování (SEO-30) nechává otevřenou: ten jeden první nezabezpečený požadavek, který se dá odchytit a přesměrovat jinam.

Je to tedy bezpečnostní opatření, ne SEO opatření, a v manuálu je proto, že se v reportu objevuje vedle SEO nálezů a mohlo by se tak číst. Nečtěte ho tak.

Kdy ho klidně přeskočte: když web teprve přechází na HTTPS a nemáte jisté, že všechno pod doménou (včetně subdomén, pokud použijete includeSubDomains) funguje. HSTS zapnuté předčasně je horší než žádné; viz varování níž.

Jak to opravit

Hlavička patří na odpovědi přes https, ne na http (tam ji prohlížeč ignoruje):

Strict-Transport-Security: max-age=31536000; includeSubDomains

A teď to varování, protože tenhle nález je z kódů placených modulů ten, u kterého se dá nejvíc uškodit ukvapenou opravou.

  • Prohlížeč si HSTS zapamatuje na celou dobu max-age: rok při hodnotě výše. Přestane-li vám https fungovat, návštěvníci se na web nedostanou vůbec a vy to nezvrátíte odstraněním hlavičky; oni si ji už pamatují.
  • includeSubDomains platí pro všechny subdomény, včetně těch, na které jste zapomněli: interní nástroje, staré testovací prostředí, subdoména od dodavatele. Všechny musí umět https.
  • Postupujte odstupňovaně: začněte s max-age=300 (pět minut), ověřte, že je všechno v pořádku, a teprve pak zvyšujte.
  • preload přidávejte až úplně nakonec a s vědomím, že zápis do seznamu prohlížečů se odstraňuje měsíce.

Pořadí je tedy: funkční certifikát → přesměrování http → https (SEO-30) → krátké HSTS → dlouhé HSTS. Přeskočit kterýkoli krok znamená riskovat nedostupnost webu, kterou nejde vzít zpět.

Co o tom říká report

Popis nálezu

Homepage neposílá hlavičku `Strict-Transport-Security`. Bez ní prohlížeč nevynucuje `https://` při přímém zadání domény a první návštěva je zranitelná vůči downgrade útoku. Jde o standardní bezpečnostní doporučení, ne o SEO trik; nemáme doklad, že by to ovlivňovalo viditelnost v odpovědích AI asistentů.

Doporučení

Přidejte hlavičku `Strict-Transport-Security: max-age=31536000; includeSubDomains` na úrovni serveru/CDN, jakmile je přesměrování na `https://` (SEO-30) funkční a stabilní.

Zdroje

Text ověřen 2026-09-12