March 2, 2014 Case studies Tipy 13

Nesnáším pomalý web. Nesnáším pomalý internet. A ještě v poledne jsem měl svůj web, který nazývám hlavním (v budoucnu) pomalý jako nikdo. Stačilo si hrát téměř dva dny a nakonec je z něj střela. Bude to mít efekt na SEO a hlavně cash?

Mám rád Drupal, stavím na něm teď už každý větší web. Jenže před pár dny jsem si ze srandy změřil rychlost webu. Vyskočilo na mě číslo 46 sekund (možná více). Nějak se mi to nezdálo, ale ten web je velký, databáze má okolo 1GB, soubory nějakých 7GB. Frontpage načítalo takto dlouho, podstránky do 10 sekund.

Svedl jsem to na pomalý hosting (využíval jsem to na multialias hostingu WEDOSu – známka blbosti dát takový web tam co? :D) a nějak neřešil. Pak jsem si řekl, že zkusím přejít jinam a třeba se to zlepší.

Stěhování

V pátek jsem kopíroval všechny soubory a databáze. Trvalo to strašně dlouho a není to zábavná činnost. Nic netvoříte, ale musíte u toho nějak být – seká vám to internet, a PC není nejrychlejší, takže je otrava tam něco řešit.

Řekl jsem si, že je čas jít na své. Obětoval jsem asi 1500 a vzal jsem se na managed server od Českého hostingu na tři měsíce na zkoušku. VPS od WEDOSu jsem už nechtěl, nějak mi nevyhovovalo předtím a tak jsem hledal nějaké jiné řešení.

Samotný přesun na nové železo to stáhlo možná na polovinu. Dvojnásobná php_memory je cítit a celkově server je zatím jen pro ten jeden web.

Ale pořád jsme na 20+sekundách. Nemáme vytáčený internet, kde nám obrázek nabíhal půl hodiny a nevadilo nám to.

Cache, triky a vychytávky

A začalo velké studium. Nejvíce se naučíte, když fakt musíte situaci vyřešit, to pak obětujete věci klidně celý den a jen klik tam klik tam, analýza a zkoušíte.

Pročetl jsem si řadu tutoriálů na cachování Drupalu. Několik věcí se prolínalo, něco bylo trochu jiné. Zkusil jsem téměř všechny moduly, co jsem našel. Stáhnul jsem to na 15 sekund.

V této situaci už jsem celkem zoufal a přemýšlel o tom, jak jsou ty moduly na zrychlení webu špatný…

Progres tam je (5 sek.), ale podle všeho už jiné řešení moc nejsou, takže to není normální situace. A před nakonec jsem to konečně vyřešil na load v rozmezí 1-2 sekund. Stačil jeden klik a bylo to.

Cache fungovala i předtím, ale necachovalo to frontpage, ostatní podstránky běžely rychle (1-3 sekundy). Takže zachráněno a snad to bude znamenat i zvýšení počtu konverzí.

Výsledek dvoudenního hledání, kde to zrychlit...

Výsledek dvoudenního hledání, kde to zrychlit…

Bude to mít efekt?

Efekt na návštěvníky to mít bude, nevím jestli až tak velký, protože ty podstránky se předtím načítaly do 5-10 sekund a na ty chodili lidi hlavně (z vyhledávačů). Ale věřím, že to je krok k vyhledáváčům, kteří mě postrčí výše.

Interní linkbuilding i on page SEO tam jsou na snad dobré úrovni. A user-friendly to je taky určitě víc. A tak to má být. Ještě zapracovat na ucelenosti webu a bude to fajn.

Dlouhodobě by tento web mohl mít i tisíce návštěv denně, aktuálně jsem na jednotkách, ale věřím, že to je kvůli té pomalosti.

Tak uvidíme třeba za měsíc…

Třeba bude platit toto:

Každých 100 ms rychlejší web = 1% nárůst revenue (amazon)

To bych při mém přepočtu se dostal na nárůst o 400% 😀

A jak dlouho načítá vaše stránka?

Nástroje pro testování rychlosti

Snad jakýkoliv SEO plugin do prohlížeče, pokud máte Chrome tak třeba Pagerank Status, obsahuje položku na měření rychlosti. I nástroje pro vyvojáře, které jsou v prohlížečích by to měly umět.

Existuje řada měřičů jako web aplikace, nevýhoda je, že lokalita je třeba v USA nebo UK:

  • tools.pingdom.com – přepněte si třeba na Amsterdam, ukazoval mi rychlost zmíněného webu i pod sekundu 🙂
  • webpagetest.org – můžete si zvolit třeba Vídeň, dostanete podrobnější rozbor, co vám na webu drhne
  • gtmetrix.com – oznámkovaná analýza, víte hned co máte zlepšit, u mě jsou to hlavně obrázky.

Pluginy a vychytávky, pro zrychlování webu (zdarma)

Pro WordPress

  • W3 Total Cache = plugin, který vypadá šílené, ale stačí věnovat pozornost více méně pouze jedné sekci – General Settings a zaškrnout Enable v sekci Page Cache, dostanete se z běžné WordPress rychlosti (3-5 sec) na 0,7-1,5 sec

Pro Drupal

  • Boost = modul, který zajistí nejlepší cache v Drupalu, navíc není složitý na nastavování – upravíte htaccess a mělo by to fungovat
  • Boost Crawler = podmodul Boostu, který obchází celý web a nahrává do cache, aby návštěvník měl stránku hned a nemusel ji kešovat on. Funguje na spuštění crona

Obecně

  • menší obrázky = nejsou třeba 5MPix obrázky na webu, které mají 5 MB, zkuste dělat obrázky pod 100kB, existuje spousta programů, které obrázky stlačí na minimum
  • cache = je to nutnost, hlavně používate-li CMS jako je WordPress či Drupal.
  • CDN = v podstatě taková další cache, která doručuje obsah na místo hostingu, kterému významně šetříte bandwith (za 7 dnů mi “TOP10” mých webů ušetřilo skoro 3GB) a chráníte své weby přes škůdci, některé jsou i ve verzi zdarma. Používám Cloudflare. Funguje to jednoduše, vložíte doménu, necháte si vygenerovat NS, které pak dáte do adminu registratora domény a za pár hodin jedete přes CDN.

Aktualizace:

Nastal čas trochu uvést, jak to vypadá. Dlužím vám tuto odpověď. Dopadlo to celkem jinak. Drupal s feedy a VPS a já nejdou příliš dohromady a tak to jednu dobu celé padalo až házel celý server chybu 503. Cron asi běžel často a já neuměl nastavit správně cron, aby to fungovalo. Po dotazech na podpoře jsem raději web vypnul, protože prý v takovém chování a přetěžování serveru může dojít i k poškození dat – mám tam hodně webů a nerad bych o to přišel.

Takže vliv na peníze jsem neviděl, ale posunul jsem se tímto projektem dále. Naučil jsem se tunit weby, aby byly rychlejší, získal jsem na článek pár zpětných odkazů (díky za ně). Nyní mě ta myšlenka na ten web stále láká, ale je tam technický blok, který nedokážu přejít. Na WEDOSu mě limituje 1/2 GB velikost db u hostingu a na VPS si tam netroufám.