Co si pohlídat při přechodu na HTTPS?

„HTTPS na každý web.“ To je jeden z aktuálních trendů na českém internetu. HTTPS je dobro, o tom žádná. I SEO je dobro, o tom taky žádná. Jak ale obojí sladit? Řeknu vám, jak změnit URL webu na HTTPS a nepřijít o návštěvnost, pozice, peníze, cokoliv, co měříte a na čem vám u webu záleží. Není to těžké, stačí držet se pár rad.

Složil jsem seznam bodů, které doporučuji udělat pro „správný“ přechod z HTTP na HTTPS. Když je uděláte, tak přechod zvládnete výrazně lépe, než kdybyste jen mávli rukou a do .htaccess přidali RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R=301,NE,L]. 😉 (Tento kód je příklad, nepoužijte ho bez rozmyslu a otestování jestli dělá, co očekáváte! )

V checklistu najdete body ohodnocené podle důležitosti slovy: musíte, měli byste a zvažte.

  • musíte = must-have, bez kterých to nedopadne dobře,
  • měli byste = body, které doporučuji udělat. Ale i bez nich se přechod nejspíše podaří,
  • a zvažte = třešinky na dortu, takové minor-tasky.

 

SEO checklist pro přechod z HTTP na HTTPS

  1. musíte přesměrovat všechny stránky HTTP kódem 301HTTP adres na HTTPS adresy 1:1 (jedna ku jedné je zde opravdu extrémně důležité) 15
    • musíte ověřit, že přesměrování funguje i na subdoménách webu
  2. musíte přesměrovat HTTP kódem 301 i obrázky, JavaScripty, CSS, multimédia, PDF, atd.
  3. upravte všechny URL na webu tak, aby vedly na HTTPS stránky (použijte buď absolutní URL s HTTPS, relativní URL, nebo protocol relative URL „://“)
    • musíte upravit canonical URL, aby nevznikalo zacyklení 2
    • měli byste upravit tzv. hardcoded URL (natvrdo zapsané odkazy s http:// například v článcích, JavaScriptech, CSS souborech, atd.)
    • měli byste upravit hreflang URL
    • měli byste upravit URL v RSS
    • měli byste upravit URL v Facebook, Twitter a jiných interaktivních tlačítkách
    • měli byste upravit URL v meta tagu OG:URL
  4. měli byste vytvořit nový robots.txt na https://www.s.cz/robots.txt a zachovat ten na http://www.s.cz/robots.txt 3
  5. měli byste změnit umístění souborů sitemap.xml na https:// a upravit odkaz na sitemapu v robots.txt
  6. měli byste změnit URL v souborech sitemap.xml na https://
  7. U velkých webů musíte, u menších webů (do pár desítek stránek) byste měli zachovat původní tzv. řetězení přesměrování („redirect chain“). Pokud už máte na stránce nějaká přesměrování, tak needitujte aktuální přesměrování, ale přidejte nová pravidla pro přesměrování z HTTP na HTTPS. Pro robota Seznamu je to velmi důležité. K existujícímu přesměrování HTTP://s.cz/stara-url -> 301 -> HTTP://s.cz/nova-url jen přidejte (před, nebo za) další 301 přesměrování 301 -> HTTPS://s.cz/nova-url. Nezkracujte řetězení přesměrování.
  8. musíte přesměrovat URL s _escaped_fragment_= na jejich alternativy 1:1 (tzn. z http://www.s.cz/?_escaped_fragment_= -> 301 -> https://www.s.cz/?_escaped_fragment_=)
  9. měli byste zajistit, že HTTPS funguje i na subdoménách a externích zdrojích, ze kterých budete linkovat soubory – CSS, JS, obrázky, CDN, atd.
  10. musíte předchozí body otestovat ještě před nasazením (například pomocí nástrojů Screaming Frog, nebo Xenu´s Link Sleuth)

Co udělat po nasazení?

  1. musíte otestovat výše uvedené body na produkční verzi webu
  2. musíte vymazat a přegenerovat cache – pokud ji používáte (jako např. Firmy.cz), aby nedocházelo k tomu, že si robot požádá o stránku s rel=canonical vedoucím na HTTP – to by v kombinaci s přesměrováním z HTTP na HTTPS vedlo k zacyklení.
  3. musíte ověřit, že pár nejdůležitějších stránek webu projde validátory vyhledávačů Seznam a Google
  4. musíte vložit 5 nejdůležitějších HTTP URL webu do formuláře Seznamu
  5. měli byste přidat HTTPS verzi webu do Google Search Console (kvůli statistikám HTTPS webu) a rovnou si nastavit parametry adres URL, odstraněné adresy URL a nastavení webu.
  6. měli byste sledovat accesslog. Sledujte všechna URL, na která chodí SeznamBot a GoogleBot na HTTP verzi webu a ověřujte, že na všechna URL dostanou HTTP 301 Moved Permanently a v cílové URL se změní jen HTTP na HTTPS. Tohle vám pomůže být si jisti, že přesměrováváte správně!
    1. Defaultní nastavení formátu accesslogu obvykle neumožňuje rozlišit HTTP od HTTPS requestů, proto doporučuji formát accesslogu změnit ještě před nasazením přesměrování.
  7. zvažte sledování webu kvůli případným výkonovým problémům. V 99.9% případů bude vše v pořádku, ale např. Googlebot a Seznam Screenshotátor by mohli být nenasytní a u větších webů stahovat více stránek, než kolik zvládne server odbavit. (tip od Pavla)
  8. měli byste změnit URL webu všude, kde je používáte, např.: PPC kampaně, bannerové a jiné kampaně, affiliate odkazy, opensearch.xml, emailový podpis, URL v automatických emailech, URL v exportech pro partnery, URL v exportech pro cenové srovnávače – např. Zboží.cz, atd.

Další tipy, které se mohou hodit (ale nepomohou v SEO)

  1. měli byste zkontrolovat, že externí nástroje (například Google Analytics) fungují správně
  2. zvažte nastavení meta referrer např. na „origin“ kvůli analytice 4
  3. zvažte otestování HTTPS na SSLlabs
  4. zvažte využití HSTS

 

Doplňující informace pro zvídavé hlavinky

ad 1: Přesměrování celého webu 1:1

Když přesměrujete všechny URL 1:1 z HTTP na HTTPS (tzn. že při přesměrování se v URL změní jen protokol z HTTP na HTTPS), tak vyhledávače Seznamu i Google přesunou celý web na HTTPS nesrovnatelně rychleji. Pokud ale některá URL přesměrujete na HTTPS a zároveň změníte v URL i něco jiného (byť chybou), může se stát, že vyhledávače nepochopí, že měníte web na HTTPS a celý přechod bude postupovat výrazně pomaleji a pravděpodobně se vám zhorší pozice a tím i návštěvnost z vyhledávačů.

Příklady špatného přesměrování:

  • http://www.s.cz/ABCD -> https://www.s.cz/abcd – změna velikosti písmen je špatně!
  • http://www.s.cz?promenna=hodnota:id;neco -> https://www.s.cz?promenna=hodnota%3Aid%3Bneco – enkodování proměnných v URL je špatně!

 

ad 2: Zacyklení díky kanonických URL

Pokud neupravíte canonical tagy a zůstanou nastavené na HTTP verzi stránky, tak se může stát, že se robot zacyklí. A vy tak ztratíte kontrolu, nad tím, co se stane s vašimi stránkami v indexu. Mrkněte na to zacyklení:

  1. http://www.s.cz -> přesměrování 301 ->
  2. https://www.s.cz/ -> na této URL je canonical na http://www.s.cz ->
  3. http://www.s.cz -> 301 ->
  4. https://www.s.cz -> na této URL je canonical na http://www.s.cz ->
  5. http://www.s.cz -> 301 ->
  6. atd..

 

ad 3: Nový robots.txt na HTTPS

Pokud máte v robots.txt na HTTP verzi webu nějaká pravidla, tak je důležité uvědomit si, jestli chcete tento soubor přesměrovat na HTTPS. Pokud přesměrujete http://www.s.cz/robots.txt na https://www.s.cz/robots.txt, tak pro vyhledávač přestane robots.txt na http verzi webu existovat. Tzn. robot může začít procházet i URL, která jste v http://www.s.cz/robots.txt zakázali procházet. Pokud tomu chcete předejít, tak mějte starý robots.txt dostupný na HTTP. A pro HTTPS vytvořte nový robots.txt. Ten může obsahovat stejná pravidla jako starý robots.txt.

 

ad 4: Meta referrer

Google Analytics používá informace z referreru pro nastavení zdroje návštěv. Při přechodu z HTTP na HTTPS web se referrer obecně nepřenáší. Nastavením meta referrer např. na hodnotu „origin“ to můžete vyřešit a weby, na které ze svého webu posíláte lidi, tak uvidí ve zdrojích návštěv váš web. Mrkněte ještě na podporu mezi prohlížeči – v listopadu 2016 tuhle feature podporovalo pouze cca 71% prohlížečů – tzn. budete správně trackovat cca 71% návštěv, zbylých 29% zůstane v kolonce „přímá návštěvnost“ a nezjistíte, ze kterých domén návštěv přišly.

Případně můžete ještě všechny odchozí odkazy označit pomocí UTM parametrů, což pomůže minimálně pro Google Analytics.
 

ad 5: Jak otestovat přesměrování 1:1

Přesměrovat 1:1 znamená, že všechna URL, na kterých byl nějaký obsah, musí být přesměrována na „stejnou“ URL jen se změní protokol z HTTP na HTTPS. To vypadá snadno, ale aby se redirect na HTTPS opravdu „uznal“ a zrychlený převod na HTTPS se provedl, tak je potřeba mít 100% jistotu, že všechna URL přesměrováváte správně.

Princip je jednoduchý:

  1. Vezmete náhodný vzorek stovek, tisíců, nebo u velkých webů desetitisíců URL (například z accesslogu všechny URL, které GoogleBot a SeznamBot za den stáhli – to je vzorek URL, které vyhledávače znají a stahují a je to lepší vzorek, než URL ze sitemap.xml).
  2. Stáhnete si všechny tyto URL (například pomocí wget, nebo nástroje Screaming Frog).
  3. Porovnejte všechna URL a přesvědčte se, že se původní a přesměrované URL se změnilo jen HTTP na HTTPS. Nic jiného

Já to dělám tak, že ve Screaming Frog si stáhnu desetitisíce URL, z reportu „Response Codes“ si vykopíruji sloupce „Address“ a „Redirect URI“. Vložím do Excelu a v prvním sloupci změním pomocí Najít a nahradit „http“ na „https“. Pak pomocí funkce =KDYŽ(A1=B1;"OK";"Možný problém") porovnám Address a Redirect URI a vyfiltruji si jen řádky s „Možný problém“. Pokud žádné nenajdete, tak super! Pokud nějaké řádky najdete, tak je třeba zjistit proč se URI neshodují a opravit, aby se měnilo jen http na https.

Může se vám hodit:

  1. Poslechněte si produktového manažera fulltextu Seznam.cz Dušana Janovského a jeho 40 minutové povídání o tom, jak funguje HTTPS ve vyhledávání Seznamu a jak správně na HTTPS přejít.
  2. Yuhů vyzkoušel hodně českých webhostingů a své zkušenosti s nastavením HTTPS u jednotlivých hostingových firem sepsal v praktickém článku: České hostingy s HTTPS zdarma.