Je super, že na svém webu chcete řešit zabezpečení pomocí HTTPS, které chrání vaše návštěvníky proti některým typům útoků – jako například odposlouchávání přes MITM. V lednu 2020 bylo 85% stránek zobrazených v Chrome na Windows na HTTPS, takže jste v dobré společnosti – jiné weby už to řeší a často mají vyřešeno. Za SEO má přechod na HTTPS několik relativně jasných kroků, které vám pomohou přesměrování zvládnout tak, jak je to nejlépe možné.
Udělal jsem seznam bodů, které doporučuji provést a otestovat pro „správný“ přechod z HTTP na HTTPS. Když je uděláte správně, 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 bez 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
Před nasazením
- musíte přesměrovat všechny stránky HTTP kódem 301 z HTTP adres na HTTPS adresy 1:1 (jedna ku jedné je zde opravdu extrémně důležité) 1, 5
- pravidlo pro přesměrování na HTTPS musíte dát před všechna ostatní přesměrovávací pravidla tak, aby se každá URL z http verze webu přesměrovala na HTTPS verzi. Zachovejte všechna ostatní přesměrovávací pravidla, které jste na webu mělin dříve. Jen navíc na začátek stávajících pravidel přidejte nové pravidlo pro přesměrování z HTTP na HTTPS.
Příklad kódu v .htaccess :
# HTTPS redirect
# Před použitím tohoto kódu si dobře promyslete a otestujte, že dělá, co očekáváte.
# Tuto část kódu zde dávám zcela bez záruk
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,NE,L]
# This rule will redirect users from their original location, to the same location but using HTTPS.
# i.e. http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in httpd.conf
# or .htaccess context
Před použitím tohoto kódu si dobře promyslete a otestujte, že dělá, co očekáváte. Test v produkci by vyhledávače mohly zaznamenat a mohlo by to způsobit problémy s přechodem na HTTPS.
- pravidlo pro přesměrování na HTTPS musíte dát před všechna ostatní přesměrovávací pravidla tak, aby se každá URL z http verze webu přesměrovala na HTTPS verzi. Zachovejte všechna ostatní přesměrovávací pravidla, které jste na webu mělin dříve. Jen navíc na začátek stávajících pravidel přidejte nové pravidlo pro přesměrování z HTTP na HTTPS.
- Přesměrování musí fungovat i na subdoménách webu – například pro blog.neco.cz, eshop.neco.cz, images.neco.cz, atp.
- musíte přesměrovat HTTP kódem 301 i obrázky, JavaScripty, CSS, multimédia, PDF, atd.
- 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
- musíte upravit tzv. hardcoded URL (natvrdo zapsané odkazy s http:// například v článcích, modulech pro prolinkování webu, JavaScriptech, CSS souborech, atd.)
- musíte upravit hreflang URL
- musíte upravit URL v RSS
- měli byste upravit URL v Facebook, Twitter a jiných interaktivních/sdílecích tlačítkách
- měli byste upravit URL v meta tagu OG:URL
- 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
- musíte změnit umístění souborů sitemap.xml na https:// a upravit odkaz na sitemapu v robots.txt
- musíte změnit URL v souborech sitemap.xml na https://
- 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.
- musíte výše uvedené body otestovat ještě před nasazením (například pomocí nástroje Screaming Frog (placený), nebo SEO Macroscope (zdarma) na testovací verzi webu (ne na provozní verzi webu).
- Připravte si co se vám může hodit:
- musíte ověřit vlastnictví domény pomocí DNS záznamu a zároveň i URL s http a https v Google Search Console a založte si účet pro domena.cz – viz Služby typu doména na https://support.google.com/webmasters/answer/34592. Celá doména je fajn pro porovnání změn v celkové návštěvnosti (http a https dohromady) a https://domena.cz a http://domena.cz jsou zase fajn pro porovnání domény v reportu Crawl stats, kde jde s 3denním zpožděním vidět počet URL, které Google z webu stahuje.
- měli byste – ověřte si vlastnictví domény s http a https v Seznam Webmaster Tools, pro získání API klíče pro rychlejší poslání důležitých URL do indexu Seznamu.
- měli byste – dostatečně předem si změňte si formát accesslogu tak, aby obsahoval informaci o tom, jestli bylo požádáno o HTTP, nebo HTTPS stránku. Více například o logformat pro Apache na http://httpd.apache.org/docs/current/mod/mod_log_config.html
- měli byste si web ověřit i v jiných důležitých nástrojích – např. pro zpravodajské weby je to Google News Publisher, atd.
- zvažte počítat s tím, že vyhledávače budou po změně URL chodit na web častěji – obvykle Google je pak utržený ze řetězu a nejraději by celý web prošel během chvilky. Zvýšený provoz vyhledávačů může na webu trvat několik hodin až několik týdnů (v extrémních případech více) – závisí to na počtu URL webu a rychlosti odezvy webu. Je ale lepší počítat s tím, že provoz bude velký a vaše servery se mohou zapotit. Zajistěte si raději trochu více výkonu, aby přechod na HTTPS nevedl k jakékoliv nedostupnosti pro vyhledávače, nebo lidi. (tip od Pavla)
- zvažte nastavení nástroje, který vám bude sledovat pozice po dobu pár týdnů až měsíců.
- počítejte s tím, že i nejlépe připravený přechod na nové URL může vést k drobnému i většímu propadu návštěvnosti z vyhledávačů (i Googlu). Tak to prostě je – říká to i sám Google v kapitole „Migrace z protokolu HTTP na protokol HTTPS“.
Po nasazení
- musíte vymazat a přegenerovat cache – pokud ji používáte (jako např. Firmy.cz), aby nedocházelo k tomu, že robot zbytečně dlouho dostává starou verzi webu (třeba s canonical URL na HTTP:// místo na HTTPS://).
- musíte znovu otestovat všechny výše uvedené body na produkční verzi webu
- musíte ověřit, že pár nejdůležitějších stránek webu projde validátory vyhledávačů Seznam a Google
- musíte vložit 10+ nejdůležitějších HTTP URL webu do formuláře Seznamu to si můžete usnadnit pomocí API a nástroje Seznam Indexer.
- 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, URL v disawov tool, geotergeting a další nastavení webu. Nejlépe pokud máte ověřenu doménu pomocí DNS, pak jde vidět veškerý provoz na celé doméně bez potřeby více účtů pro http a https zvlášť.
- 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ě!
- 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.
- 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.
- musíte sledovat návštěvnost webu, jeho pozice ve vyhledávačích a stav crawlování http a https webu v Googlu Search Console a Seznam Webmaster Tools.
Další tipy pro SEO
- Pokud se vám po měsíci velmi propadly pozice a nevracejí se, tak vyzkoušejte:
- znovu projít celé technické řešení a hledat v něm chyby
- domluvit se na konzultaci s někým, kdo rozumí SEO – viz třeba Jak vybrat SEO konzultanta
- napsat na podporu Googlu, nebo Seznamu
- napsat konkrétnímu člověku v Googlu (Mueller, Split, Illyes), nebo se osobně zeptejte Google v Webmaster Office hours – kalendář zde. V Seznamu jde možná zkusit Dušan, nebo Martin (bez záruky).
- změnit URL u pár desítek procent externích odkazů na nové URL (z HTTP na HTTPS) a sledujte, jestli to u pár cílových URL něco dělá s pozicemi.
Další tipy, které se mohou hodit (ale nepomohou v SEO)
- měli byste zkontrolovat, že externí nástroje (například Google Analytics) fungují správně
- zvažte nastavení meta referrer např. na „origin“ kvůli analýze návštěvnosti 4
- měli byste otestovat vaše HTTPS na SSLlabs
- 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í:
- http://www.s.cz -> přesměrování 301 ->
- https://www.s.cz/ -> na této URL je canonical na http://www.s.cz ->
- http://www.s.cz -> 301 ->
- https://www.s.cz -> na této URL je canonical na http://www.s.cz ->
- http://www.s.cz -> 301 ->
- 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ý:
- 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 posledních pár dní stáhli – to je vzorek URL, které vyhledávače znají a stahují a je to lepší vzorek, než URL ze sitemap.xml).
- Tyto URL projděte například pomocí nástroje Screaming Frog (programátorům stačí curl/wget).
- Porovnejte všechna cílová URL a přesvědčte se, že se původní a přesměrováné URL se změnilo jen HTTP na HTTPS a nic jiného
Screaming frog je na to skvělý – stačí si ty http URL nechat projít a pak v menu najdete Reports -> Redirects -> Redirect & Canonical Chains a vyexportujete všechny cesty přesměrování. V tom XLS souboru pak stačí porovnat jestli se sloupce „Address“ (sloupec E) a „Final Address“ (sloupec F) liší jen v HTTP vs HTTPS. Například tak, že si v Excelu přidáte sloupec s vzorcem: =KDYŽ(DOSADIT(E2; "http"; "https")=F2;"OK";"Možný problém")
. Pak si stačí vyfiltrovat řádky, které obsahují „Možný problém“ a ty projít a opravit.
Je HTTPS ranking factor?
Ano, je. Už ve 2014 se to vědělo. Ale zároveň je třeba říct, že mít HTTPS je nejpravdědobněji jen velmi slabý signál (kdysi byl slabý a v situaci, kdy HTTPS už ty největší weby mají, jde velmi pravděpodobně jen o slabounký signál). Po nasazení HTTPS v roce 2015 šlo pozorovat nárůst návštěvnosti z Googlu o 5-10%. To už se vám dnes nejspíše nestane. Jestli je ale stránka na HTTPS, nebo ne je stále pro Google nějak důležité – pravděpodobně to zvyšuje důvěryhodnost webu – což může být důležité především u YMYL dotazů.
Může se vám hodit:
- 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.
- 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.
- Návod, jak zvládnout přechod na HTTPS (jakpsatweb.cz) i z komplexnějšího než jen SEO pohledu.