Modul 4 · 4.1
Https a správne presmerovanie
Modul 4: Rýchlosť, mobil a https · Čas čítania: 11 minút
Cieľ lekcie: Po tejto lekcii budete vedieť vysvetliť, prečo je https dôležité pre vyhľadávače aj návštevníkov, pomenovať rozdiel medzi trvalým a dočasným presmerovaním a overiť, že všetky varianty vašej adresy vedú jedným krokom na tú istú stránku s https.
Kľúčové pojmy: https, certifikát, presmerovanie (redirect), 301 a 308 (trvalé), 302 a 307 (dočasné), reťazec presmerovaní, preferovaná adresa, s www alebo bez www, HSTS, zmiešaný obsah
Štyri adresy pre jednu domovskú stránku
Keď do panela s adresou napíšete názov webu, prehliadač môže skončiť na štyroch miestach:
| Variant | Prí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/ |
Pre vás je to jeden web. Pre vyhľadávač sú to štyri rôzne adresy. Ak všetky štyri zobrazujú tú istú stránku, Google musí sám vybrať, ktorá adresa je tá "skutočná". Google ju nazýva kanonická adresa (podrobnejšie sa jej venuje lekcia 3.5). Google odporúča vybrať si sami jednu adresu ako preferovanú adresu a ostatné varianty na ňu presmerovať. Potom nevzniká žiadna pochybnosť a odkazy na ktorýkoľvek variant sa započítajú tej istej stránke.
Bloemenatelier Lotte si vyberá https://www.example.com/. Ostatné tri varianty na ňu presmerúvajú. Či zvolíte adresu s www alebo bez neho, je pre vyhľadávače jedno. Dôležité je urobiť jednu voľbu a dodržiavať ju všade: v menu, v sitemap, v canonical aj vo firemnom profile.
Prečo https
https znamená, že spojenie medzi prehliadačom a serverom je šifrované pomocou certifikátu. Nikto po ceste nemôže čítať ani meniť obsah stránky, napríklad na verejnej wifi.
Pre vyhľadávače je https dôležité dvoma spôsobmi:
- Ako signál. Google v roku 2014 oznámil, že https je signálom pre poradie vo výsledkoch, ale označil ho za "veľmi slabý signál", ktorý má menšiu váhu ako kvalitný obsah. V dokumentácii o používateľskom dojme zo stránky je https uvedené ako jedna z otázok, ktoré si máte položiť ("doručujú sa vaše stránky bezpečne?"). Netreba to teda preháňať: samotné https vás na vrchol nedostane.
- Pre návštevníkov. Prehliadače pri stránke na http zobrazujú "Nezabezpečené", najmä pri formulári. Návštevník, ktorý to vidí, rýchlejšie odíde. Prejaví sa to na návštevnosti, nie v nejakom pravidle poradia.
Platný certifikát dnes získate zadarmo cez Let's Encrypt. Vo väčšine hostingových spoločností, aj vo WebOké, sa vyžiada a obnovuje automaticky. Dbajte na to, aby certifikát pokrýval oba názvy: bez www aj s ním. Ak pokrýva iba example.com, adresa https://www.example.com/ zobrazí chybu certifikátu ešte predtým, ako môže prebehnúť presmerovanie.
Trvalé alebo dočasné presmerovanie
Presmerovanie (redirect) je odpoveď servera: "táto stránka je inde". Deje sa to pomocou trojciferného stavového kódu, ktorý začína číslicou 3, a hlavičky Location s novou adresou.
| Kód | Význam | Čo s ním robí Google |
|---|---|---|
| 301 | Trvalo presunuté | Silný signál, že cieľ je kanonická adresa |
| 308 | Trvalo presunuté (metóda zostáva rovnaká) | To isté ako 301 |
| 302 | Dočasne nájdené | Žiadny signál; stará adresa často zostáva vo výsledkoch |
| 307 | Dočasné (metóda zostáva rovnaká) | To isté ako 302 |
Podľa Google Search Central indexovanie používa trvalé presmerovanie ako signál, že cieľ sa má stať kanonickým. Pri dočasnom presmerovaní sa to nedeje: stará adresa zvyčajne zostáva vo výsledkoch. Prechod z http na https a voľba s www alebo bez www sú trvalé. Používajte preto 301 alebo 308.
Presmerovanie si môžete pozrieť sami. V termináli:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Alebo v prehliadači: otvorte nástroje pre vývojárov (F12), kartu Sieť, zapnite možnosť, ktorá zachová záznam pri načítaní novej stránky, a načítajte adresu s http. Uvidíte každý krok aj s jeho kódom.
Reťazce presmerovaní
Reťazec presmerovaní je presmerovanie na adresu, ktorá sama ďalej presmerúva. Častý príklad:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Funguje to, ale pri každej prvej návšteve to stojí ďalšiu cestu tam a späť k serveru. web.dev uvádza presmerovania ako jednu z príčin pomalej prvej odpovede servera (lekcia 4.3): každý krok sa pripočítava a reťazce ešte viac. Lepšie je, keď každý variant jedným krokom skončí na preferovanej adrese:
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/ 200Pri starej adrese s http a druhým názvom sa to nie vždy podarí jedným krokom, pretože server pri niektorých nastaveniach najprv presmeruje na https s tým istým názvom a až potom na druhý názov. Dva kroky sú vtedy prijateľné; tri a viac sú dôvodom skontrolovať nastavenia. Slučka (A presmeruje na B, B znova na A) je vždy chyba: stránka sa vtedy vôbec neotvorí.
HSTS: prehliadač si to zapamätá
HSTS (HTTP Strict Transport Security, RFC 6797) je hlavička, ktorú server posiela cez https:
Strict-Transport-Security: max-age=31536000Prehliadač, ktorý ju raz videl, potom pri tomto webe ide rovno na https bez toho, aby najprv skúšal http. Ušetrí sa tým prvé presmerovanie a zároveň to chráni pred odpočúvaním. web.dev uvádza HSTS aj ako spôsob, ako sa vyhnúť presmerovaniu z http na https. Pre vyhľadávače HSTS nie je signálom; pre vašich návštevníkov je to zlepšenie. Zapnite ho až vtedy, keď https funguje správne na všetkých názvoch, pretože prehliadač si ho pamätá tak dlho, ako určuje max-age. Podrobnejšie sa tomu venuje kurz Bezpečne online.
Zmiešaný obsah
Stránka na https, ktorá načítava obrázok, skript alebo štýl cez http://, má zmiešaný obsah (mixed content). Prehliadače nezabezpečené skripty a štýly blokujú alebo zobrazia upozornenie. Po prechode na https to často uvidíte pri starých obrázkoch v textoch alebo pri téme s pevnými adresami. Vyhľadajte v zdrojovom kóde src="http:// a href="http:// a nahraďte ich adresou s https alebo relatívnou adresou.
V praxi: nastavenie presmerovania na https
Pri hostingovom balíku WebOké zapnete presmerovanie na https v DirectAdmin v nastaveniach domény (prepínač "Vynútiť presmerovanie na https") a na tej istej stránke pri "Vynútiť presmerovanie" zvolíte, či používate adresu s www alebo bez neho. Presmerovanie nastavte len na jednom mieste: dve pravidlá, z ktorých každé robí niečo iné (napríklad v paneli a v plugine), ľahko vytvoria slučku. Web vytvorený pomocou AI Builder dostane pri zverejnení certifikát a vlastnú adresu. Vo WordPresse v časti Nastavenia, Všeobecné vyplníte adresu WordPressu aj adresu webu s https:// a zvoleným názvom; samotné presmerovanie nastavíte na serveri. U iných poskytovateľov a v iných nástrojoch na tvorbu webu to funguje podobne, len tlačidlá sa volajú inak.
Ak to chcete urobiť cez .htaccess (Apache alebo LiteSpeed), toto presmeruje všetky varianty jedným krokom 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]Potom vždy skontrolujte všetky štyri varianty, aj s cestou za adresou (http://example.com/contact): cesta musí zostať zachovaná a nesmie preskočiť na domovskú stránku.
Zhrnutie
- Vyberte si jednu preferovanú adresu (https, s www alebo bez neho) a ostatné varianty na ňu presmerujte.
- Na trvalé presmerovania používajte 301 alebo 308; 302 a 307 sú dočasné a nedávajú Googlu signál o kanonickej adrese.
- Nechajte každý variant skončiť na preferovanej adrese jedným krokom, najviac dvoma; reťazce stoja čas a slučky web pokazia.
- https je podľa Google slabý signál pre poradie; pre návštevníkov je to najmä otázka dôvery. Certifikát musí pokrývať oba názvy.
- HSTS zaistí, že prehliadač sám prejde na https; zmiešaný obsah po prechode odstráňte.
Kvíz
Úloha
Úloha A4.1: Presmeruje sa všetko jedným krokom na https? Zadajte názov svojej domény (bez www). Program vyskúša všetky štyri varianty (http a https, s www aj bez neho), sleduje každé presmerovanie krok za krokom a skontroluje certifikát oboch názvov. Pri každom variante uvidíte reťazec so stavovými kódmi, či všetky skončia na tej istej adrese s https a či je prítomná hlavička HSTS. Nemáte vlastný web? Použite rijksoverheid.nl.
Čítajte ďalej
Postupy v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.
- Návod na DirectAdmin 6.4: Návštevníkov vždy presmerovať na https
- Návod na DirectAdmin 4.3: Nastavenia domény: SSL, PHP, www a private_html
- Návod na DirectAdmin 6.3: Certifikát pre www, subdomény a zástupný záznam
- Presmerovať návštevníkov povinne na https
- Bezplatný DNS kurz 3.4: www, presmerovanie a čo DNS nerobí
- 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
