„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ží. Je to snadné.

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,L]. 😉

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é) 1
    • 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 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. měli byste 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. měli byste 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. zvažte sledování accesslogu 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ř. Seznam Screenshotátor by mohl být nenasytný a u větších webů stahovat více stránek, než kolik zvládne server odbavit. (tip od Pavla)
  7. 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č Seznamu přesune celý web na HTTPS výrazně rychleji. Pokud ale některá URL přesměrujete na HTTPS a zároveň změníte v URL i něco jiného, může se stát, že Seznam nepochopí, že měníte web na HTTPS a bude postupovat výrazně pomaleji.

 

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 tomutu 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.

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.
Nasdílej to na ty internety 😉Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+
  • Martin Šimko

    Jardo, díky za článek, zatím nej checklist pro přechod, který jsem viděl 😉

    Mám dotaz k bodu 7 (redirect chains) – pro Seznam je opravdu lepší, když jen přidám další přesměrování? Já měl vždycky za to, že je lepší přesměrování co nejvíce „napřímit“, tj. aby jich bylo za sebou co možná nejméně.

    Díky.

  • Jaroslav Hlavinka

    Ahoj, díky za tu pochvalu 🙂

    Ad „nezkracování redirect chains“ – budu citovat část článku z fulltext webu: „Přesunout celý web se zachováním všeho obsahu, cest, interních redirektů, apod. na novou doménu nebo protokol (pokud se přesunoval web http=>https, tak jediný rozdíl v adresách bude protokol).“
    Je to tam schované, možná hlouběji mezi řádky, ale je to tam. 🙂
    Redirect chains bych zkrátil, až dojde k úspěšnému přechodu na HTTPS.

  • Martin Šimko

    Jasně, rozumím, díky 😉

  • Jaroslav Hlavinka

    Jo, ještě Štěpán v komentářích na http://fulltext.sblog.cz/2016/04/08/presun-webu-na-https/ přidal info „Pokud je rozsah webu malý, tak by to neměl být problém i přes změny v url.“. Tak, pro úplnost.

  • Pingback: Zabezpečení webu zdarma – Let's Encrypt – Tomáš Kavalek()

  • Pingback: Přechod na HTTPS – pro a proti | SSL certifikáty()

  • Pingback: Přesun webů na HTTPS | Blog fulltextového týmu()

  • Pingback: Novinky v SEO za březen a duben 2016 | Já, Collabim()

  • Václav Jureček

    Tohle jsem chtel po nasem marketingovem oddeleni, a slysel jsem akorat to ze HTTPS snad neni zpohledu SEO vubec dulezite. Je to pravda? Nebavim se o bezpecnosti, to je jasne. Nicmene tenhle navod je super.

    Diky moc, dobra prace.

  • Václav Jureček

    Tohle jsem chtel po nasem marketingovem oddeleni, a slysle jsem akorat hodne info o tom, ze HTTPS nema vliv na SEO z pohledu vyhledavacu. Nevite jak to je?

    Jinak moc dik, dobra prace.

  • Jaroslav Hlavinka

    Ahoj Vašku, přechod na HTTPS je určitě potřeba řešit i ve vztahu k SEO. Když si projdeš tento checklist, tak tam myslím najdeš několik bodů, které musí pochopit i vaše marketingové oddělení. 🙂
    Pokud bys přechod na SEO podcenil, tak se můžou stát stavy, jaké popisují komentující na http://vyhledavani.sblog.cz/2015/10/06/3254/. Raději si to pořešte – zase tolik těch bodů není a jsou obvykle jednoduché.

  • Václav Jureček

    Diky.

    Tomu co pises rozumim/chapu. Muj dotaz zkusim zformulvat znovu jinak. Ma na vysledky vyhledavace vliv to, ze web bezi na HTTPS? tj. zohlednuje seznam/google/yandex/bing to ze web bezi na HTTPS a tim pak je web na lepsich pozicich nez kdyby na HTTPS nebezel?

    Tedy za predpokladu ze vse ostatni co ma na seo vliv zustane naprosto stejne/bezezmeny?

  • Pingback: SEO restart 2016 prezentace a odkazy | Medio Blog()

  • Pingback: Jaké jsou výhody a nevýhody převedení webu na zabezpečené HTTPS? | Jsem copywriter. Kdo je víc?()

  • Pingback: Co čeká provozovatele webů v blízké budoucnosti: HTTP jinak – WP-admin.cz()

  • Pingback: Hlavní SEO faktory: Analýza 1 mil. výsledků Google | Daniel Gottwald()

  • Pingback: Jak jsem objevil ̶A̶m̶e̶r̶i̶k̶u̶ ShopCamp - SEO specialista Marek Hnátek()

  • Martin Návara

    Zdravím, opravdu super článek. Aktuálně to řeším a pro méně chápavé, bych bod 7 ještě rád upřesnil. Je to myšleno takto?

    http://s.cz/stara-url -> 301 -> http://s.cz/nova-url
    http://s.cz/nova-url -> 301 -> https://s.cz/nova-url

    Díky za upřesnění, aby to bylo zcela jasné.

  • Jaroslav Hlavinka

    Dobrý den,
    z mých zkušeností vyplývá, že pro Seznam.cz měl přechod na HTTPS velký význam.
    V poslední době nasazení PageQuality a 15 nových signálů se podle toho co vidím efekt snížil, obvykle je ale pozitivní.

  • Jaroslav Hlavinka

    Dobrý den,

    aby Seznam správně pochopil, že jste přešel na HTTPS, musí se každá URL, kterou Seznambot na dané doméně (nebo subdoméně) vidí přesměrovat na HTTPS a zároveň je velmi důležité nesnažit se zkracovat zřetězené přesměrování.
    „Správně“ je to takto:
    http://s.cz/stara-url -> 301 -> http://s.cz/aktualni-url
    pokud už teď máte na webu pravidla pro přesměrování

    http://s.cz/aktualni-url -> 301 -> https://s.cz/nova-url
    a pak zároveň všechny aktuální URL přesměrujete na HTTPS.

    V podstatě jen do svého htaccess (pokud jej používáte) dáte na začátek htaccess něco jako:
    # HTTPS redirect
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]

    Samozřejmě to chce zápis ještě upravit podle vašeho aktuálního nastavení webserveru.

    Je to jasnější?

  • Martin Návara

    Dobrý den, ano nyní je to zcela jasné a děkuji za ujištění, že jsem to pochopil správně. Přeji ať se daří. MN

  • Co se týče redirect chains, z http://x -> http://y lze udělat jak http://x -> http://y -> https://y tak http://x -> https://x -> https://y. Z hlediska SEO je to možná celkem jedno, z hlediska bezpečnosti, rychlosti i jednoduchosti bych preferoval druhou variantu, tzn. hned v prvním kroku přesměrovat na jinak stejnou URL na https. Argumenty:

    1. Pokud je x a y jiná (sub)doména (např. example.com a http://www.example.com), mohu zapnout HSTS na obojím současně. Tím snížím prostor pro encryption downgrade (nástroje jako sslstrip). Navíc při další návštěvě mi prohlížeč díky HSTS udělá jedno přesměrování „zadarmo“ bez dotazu na server (i v případě jiné URL path).

    2. Je to jednodušší. Pro HTTP prostě všechno (možná až na robots.txt) přesměruju na HTTPS, nemusím řešit žádná další pravidla.

    3. U složitějších případů bych si mohl „natlouct nos“ – například presměrování bude vyžadovat autentizaci, která na HTTP ale nebude (neměla by) být dostupná, protože cookies mají (měly by mít) secure=1. Teoreticky by tato komplexita mohla vést i k nějaké zranitelnosti, prakticky by spíše komplikovala review.

    Pro první variantu, tedy prvně přesměrovat na novou URL na HTTP a potom teprve presměrovat na HTTPS, bych těžko hledal argumenty. Pokud někdo nějaký máte, sem s ním.

    Tomuto zkracování redirect chains bych se vyhnul i dlouhodobě, pokud vedou takto napříč (sub)doménami. Argumenty zůstávají skoro stejné jako pro pořadí přesměrování. Že by se dal při první návštěvě ušetřit jeden redirect? A stojí to za to? Pak doporučuji spíše HSTS preload list, kterým velké části uživatelů ten redirect ušetříte už při první návštěvě. (Pravda, tím odpadá i jeden z mých argumentů pro pořadí přesměrování a nezkracování redirect chainů, ale opět jen pro část uživateli.)