Modul 4 · 4.1
https a správné přesměrování
Modul 4: Rychlost, mobilní zařízení a https · Doba čtení: 11 minut
Cíl lekce: Po této lekci dokážete vysvětlit, proč je https důležité pro vyhledávače i návštěvníky, pojmenovat rozdíl mezi trvalým a dočasným přesměrováním a ověřit, že všechny varianty Vaší adresy vedou jedním krokem na stejnou stránku s https.
Klíčové pojmy: https, certifikát, přesměrování (redirect), 301 a 308 (trvalé), 302 a 307 (dočasné), řetězec přesměrování, preferovaná adresa, s www nebo bez www, HSTS, smíšený obsah
Čtyři adresy pro jednu domovskou stránku
Když do adresního řádku napíšete název webu, může Váš prohlížeč skončit na čtyřech místech:
| Varianta | Příklad |
|---|---|
| http bez www | http://example.com/ |
| http s www | http://www.example.com/ |
| https bez www | https://example.com/ |
| https s www | https://www.example.com/ |
Pro Vás je to jeden web. Pro vyhledávač jsou to čtyři různé adresy. Pokud všechny čtyři zobrazují stejnou stránku, musí Google sám vybrat, která je ta "pravá". Google ji nazývá kanonická adresa (podrobněji se jí věnuje lekce 3.5). Google doporučuje, abyste si sami zvolili jednu adresu jako preferovanou adresu a ostatní varianty na ni přesměrovali. Pak nevzniká žádná pochybnost a odkazy na kteroukoli variantu se započítají stejné stránce.
Bloemenatelier Lotte si volí https://www.example.com/. Tři ostatní varianty na ni přesměrovávají. Zda zvolíte variantu s www, nebo bez něj, je pro vyhledávače jedno. Důležité je vybrat si jednu a držet se jí všude: v menu, v souboru sitemap, v canonical i ve firemním profilu.
Proč https
https znamená, že spojení mezi prohlížečem a serverem je šifrované pomocí certifikátu. Nikdo po cestě nemůže číst ani nic na stránce změnit, například na veřejné wifi.
Pro vyhledávače hraje https roli dvojím způsobem:
- Jako signál. Google v roce 2014 oznámil, že https je signálem pro hodnocení, ale označil ho tehdy za "velmi slabý signál", který váží méně než kvalitní obsah. V dokumentaci o zážitku ze stránky je https uvedeno jako jedna z otázek, které si máte položit ("jsou Vaše stránky doručovány bezpečně?"). Nepřeceňujte to tedy: samotné https Vás na první místo nedostane.
- Kvůli návštěvníkům. Prohlížeče u stránky na http zobrazují "Nezabezpečeno", zvlášť u formuláře. Návštěvník, který to vidí, odchází rychleji. Projeví se to na návštěvnosti, ne v pravidle pro hodnocení.
Platný certifikát dnes získáte zdarma přes Let's Encrypt. U většiny hostingových společností, včetně WebOké, se vyžádá a obnovuje automaticky. Dbejte na to, aby certifikát pokrýval oba názvy: bez www i s ním. Pokud pokrývá jen example.com, zobrazí https://www.example.com/ chybu certifikátu ještě dříve, než může přesměrování proběhnout.
Trvalé, nebo dočasné přesměrování
Přesměrování (redirect) je odpověď serveru: "tato stránka je jinde". Probíhá pomocí třímístného stavového kódu začínajícího číslicí 3 a hlavičky Location s novou adresou.
| Kód | Význam | Co s tím udělá Google |
|---|---|---|
| 301 | Trvale přesunuto | Silný signál, že cíl je kanonická adresa |
| 308 | Trvale přesunuto (metoda zůstává stejná) | Totéž co 301 |
| 302 | Dočasně nalezeno | Žádný signál; stará adresa často zůstává ve výsledcích |
| 307 | Dočasně (metoda zůstává stejná) | Totéž co 302 |
Podle Google Search Central používá indexování trvalé přesměrování jako signál, že se cíl má stát kanonickým. U dočasného přesměrování se to neděje: stará adresa obvykle zůstává ve výsledcích. Přechod z http na https i volba s www nebo bez www jsou trvalé. Použijte proto 301 nebo 308.
Přesměrování si můžete prohlédnout sami. V terminálu:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Nebo v prohlížeči: otevřete nástroje pro vývojáře (F12), kartu Síť, zapněte volbu, která uchová protokol při načtení nové stránky, a načtěte adresu s http. Uvidíte každý krok s jeho kódem.
Řetězce přesměrování
Řetězec přesměrování je přesměrování na adresu, která sama znovu přesměrovává. Častý příklad:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Funguje to, ale při každé první návštěvě to stojí jednu cestu k serveru a zpět navíc. web.dev uvádí přesměrování jako jednu z příčin pomalé první odpovědi serveru (lekce 4.3): každý krok se sčítá, a řetězce ještě víc. Lepší je, když každá varianta jedním krokem vede na preferovanou adresu:
http://example.com/ 301 → https://www.example.com/
http://www.example.com/ 301 → https://www.example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200U staré adresy s http a druhým názvem se to ne vždy podaří jedním krokem, protože server při některých nastaveních nejdříve přesměruje na https se stejným názvem a teprve potom na druhý název. Dva kroky jsou pak přijatelné; tři a více jsou důvodem nastavení zkontrolovat. Smyčka (A přesměruje na B, B znovu na A) je vždy chyba: stránka se pak vůbec neotevře.
HSTS: prohlížeč si to pamatuje
HSTS (HTTP Strict Transport Security, RFC 6797) je hlavička, kterou server posílá přes https:
Strict-Transport-Security: max-age=31536000Prohlížeč, který ji jednou viděl, pak u tohoto webu sám rovnou přejde na https, aniž by nejdřív zkoušel http. Ušetří se tím první přesměrování a chrání to před odposlechem. web.dev uvádí HSTS také jako způsob, jak se vyhnout přesměrování z http na https. Pro vyhledávače HSTS signálem není; pro Vaše návštěvníky je to zlepšení. Zapněte ho až ve chvíli, kdy https správně funguje na všech názvech, protože prohlížeč si ho pamatuje tak dlouho, jak udává max-age. Podrobněji se tomu věnuje kurz Bezpečně online.
Smíšený obsah
Stránka na https, která načítá obrázek, skript nebo styl přes http://, obsahuje smíšený obsah (mixed content). Prohlížeče nezabezpečené skripty a styly blokují nebo zobrazí varování. Po přechodu na https se to často objevuje u starých obrázků v textech nebo u šablony s pevně zadanými adresami. Vyhledejte ve zdrojovém kódu src="http:// a href="http:// a nahraďte je adresou s https nebo relativní adresou.
V praxi: nastavení přesměrování na https
U hostingového balíčku WebOké zapnete přesměrování na https v DirectAdminu v nastavení domény (přepínač "Vynutit SSL s přesměrováním na https") a na stejné stránce u volby "Vynutit přesměrování" zvolíte, zda používáte variantu s www, nebo bez něj. Přesměrování nastavujte na jednom místě: dvě pravidla, z nichž každé dělá něco jiného (například v panelu a v pluginu), snadno vytvoří smyčku. Web vytvořený pomocí AI Builder dostane při publikování certifikát a vlastní adresu. Ve WordPressu vyplníte v Nastavení, Obecný adresu WordPressu a adresu webu s https:// a zvoleným názvem; samotné přesměrování nastavíte na serveru. U jiných poskytovatelů a nástrojů pro tvorbu webů to funguje podobně, jen se tlačítka jmenují jinak.
Pokud to chcete udělat přes .htaccess (Apache nebo LiteSpeed), následující pravidla přesměrují všechny varianty jedním krokem na https://www.example.com:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]Poté vždy zkontrolujte všechny čtyři varianty, i s cestou za adresou (http://example.com/contact): cesta se musí zachovat, nesmí přeskočit na domovskou stránku.
Shrnutí
- Zvolte jednu preferovanou adresu (https, s www nebo bez www) a ostatní varianty na ni přesměrujte.
- Pro trvalá přesměrování používejte 301 nebo 308; 302 a 307 jsou dočasná a nedávají Googlu žádný signál o kanonické adrese.
- Zajistěte, aby každá varianta vedla na preferovanou adresu jedním krokem, nejvýše dvěma; řetězce stojí čas a smyčky web rozbijí.
- https je podle Googlu slabý signál pro hodnocení; pro návštěvníky jde hlavně o důvěru. Certifikát musí pokrývat oba názvy.
- HSTS zajistí, že prohlížeč sám přejde na https; smíšený obsah po přechodu odstraňte.
Kvíz
Úkol
Úkol A4.1: Vede vše jedním krokem na https? Zadejte název své domény (bez www). Program vyzkouší všechny čtyři varianty (http a https, s www i bez něj), sleduje každé přesměrování krok za krokem a zkontroluje certifikát obou názvů. U každé varianty uvidíte řetězec se stavovými kódy, zda všechny vedou na stejnou adresu s https a zda je přítomna hlavička HSTS. Nemáte vlastní web? Použijte rijksoverheid.nl.
Další čtení
Postupy v těchto článcích platí pro panely WebOké; u jiných poskytovatelů to funguje podobně.
- Příručka k DirectAdmin 6.4: Návštěvníky vždy přesměrovat na https
- Příručka k DirectAdmin 4.3: Nastavení domény: SSL, PHP, www a private_html
- Příručka k DirectAdmin 6.3: Certifikát pro www, subdomény a wildcard
- Povinné přesměrování návštěvníků na https
- Bezplatný DNS kurz 3.4: www, přesměrování a co DNS nedělá
- Google Search Central, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects
- Google Search Central Blog, HTTPS as a ranking signal (2014): https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
- RFC 6797 (HSTS): https://www.rfc-editor.org/rfc/rfc6797
