Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Nejčastejší problémy WordPress webů

2,654 views

Published on

Přednáška z konference WordCamp Praha 2017. Výkon, bezpečnost, HTTPS.

Published in: Technology

Nejčastejší problémy WordPress webů

  1. 1. http://lynt.cz Nejčastější problémy webů na WordPress Vláďa Smitka vladimir.smitka@lynt.cz @smitka Lynt services s.r.o.
  2. 2. http://lynt.cz Dotazy Sli.do/#WCPHAUSR 18. 2. 2017 2
  3. 3. http://lynt.cz Drobné problémy 18. 2. 2017 3
  4. 4. http://lynt.cz Popis webu 18. 2. 2017 4 72 000 výsledků = stovky stránek
  5. 5. http://lynt.cz Nekontrolované komentáře • Ahoj světe - zapomenutý příspěvek - /?p=1 • Vhodné použít antispam plugin – Akismet (je nutné ho aktivovat!) – NoSpamNX 18. 2. 2017 5
  6. 6. http://lynt.cz SEO Pluginy • Na mnoha webech je nainstalován SEO plugin bez jakéhokoliv nastavení a není aktivně využíván • K čemu SEO plugin slouží – Generuje sitemapu – Přidává mikrodata (lze částečně řešit v šabloně) – Nastavuje vazby ve stránkovaném obsahu (lze řešit v šabloně) – Doplňuje meta tagy pro sociální sítě (lze řešit v šabloně) – Upravuje podobu titulků (lze řešit v šabloně) – Upravuje povolení indexace jednotlivých příspěvků (většinou není třeba) – Upravuje meta description příspěvků (což může přinést více škody než užitku, když se to neudělá pořádně) 18. 2. 2017 6
  7. 7. http://lynt.cz Analytika • Pokud již řešíte SEO a marketing, musíte vědět co se na webu děje = mít nasazené analytické nástroje • Google Analytics – vložení pluginem, ručně do šablony nebo pomocí functions.php • Google Tag Manager - https://cs.wordpress.org/plugins/duracelltomi -google-tag-manager/ 18. 2. 2017 7
  8. 8. http://lynt.cz GA kód ve functions.php function lynt_add_ga() { ?> //zde vlozit merici kod <?php } add_action('wp_footer', 'lynt_add_ga'); 18. 2. 2017 8
  9. 9. http://lynt.cz Pár tipů do GA 18. 2. 2017 9
  10. 10. http://lynt.cz Odesílání e-mailů • Odesílání mailů je často nevhodně nastavené • V základu je používána php funkce mail() • Na sdíleném hostingu může mít IP adresa špatnou reputaci – infekce jiných webů, zasílání newsletterů • Lepší je nastavit vlastní SMTP server a ideálně pro newslettery používat specializované služby • https://cs.wordpress.org/plugins/wp-mail-smtp/ • https://cs.wordpress.org/plugins/postman-smtp/ 18. 2. 2017 10
  11. 11. http://lynt.cz Maily z kontaktních formulářů (např. Contact Form 7) 18. 2. 2017 11 Problém se SPF (sender policy framework) = odesílání jménem domény je omezeno jen na vybrané IP adresy. Pro odpověď je nutné použít Reply-To hlavičku.
  12. 12. http://lynt.cz Ověření funkčnosti e-mailů • Zaslání testovacího mailu na adresu vygenerovanou na https://www.mail-tester.com/ • Mail není spolehlivá forma komunikace, je vhodné výstupy z kontaktních formulářů ukládat i jinak – https://wordpress.org/plugins/contact-form-7-to- database-extension/ – (https://github.com/mdsimpson/contact-form-7-to- database-extension) – Pro CF7 - https://wordpress.org/plugins/flamingo/ 18. 2. 2017 12
  13. 13. http://lynt.cz SMTP bez pluginu function lynt_phpmailer( PHPMailer $mail ) { $mail->Host = 'smpt.server'; $mail->Port = 465; $mail->SMTPSecure = 'tls'; $mail->Username = 'jmeno'; $mail->Password = 'heslo'; $mail->SMTPAuth = true; $mail->IsSMTP(); } add_action( 'phpmailer_init', 'lynt_phpmailer' ); Více nastavení v dokumentaci: https://github.com/PHPMailer/PHPMailer 18. 2. 2017 13
  14. 14. http://lynt.cz Bezpečnost 18. 2. 2017 14
  15. 15. http://lynt.cz 1/3 webů nemá poslední záplaty jádra! 18. 2. 2017 15 https://lynt.cz/blog/masivni-unorova-infekce-wordpress-webu-2017
  16. 16. http://lynt.cz Aktualizace • Ohromné množství webů nemá aplikovány aktualizace WP, pluginů a šablon Každý opensource je třeba pravidelně aktualizovat! • WP updates notifier • Systémy pro hromadnou správu 18. 2. 2017 16
  17. 17. http://lynt.cz Systémy pro hromadnou správu • MainWP • Infinite WP • WP Remote • Manage WP 18. 2. 2017 17 Pokud spravujete více než 2 weby, používejte systém pro hromadnou správu!
  18. 18. http://lynt.cz Child themes Nikdy neupravujte šablonu přímo! * (pokud není na míru/nejedná o starter theme) • Řešením je vytvořit „child theme“ – nová složka šablony, kde jsou jen změněné soubory z rodičovské • https://www.wplama.cz/jak-vytvorit-child- theme-a-proc-ji-vyuzivat/ 18. 2. 2017 18
  19. 19. http://lynt.cz Jak na vlastní úpravy • functions.php v child theme • Vlastní plugin: – /wp-content/plugins/moje-upravy/moje-upravy.php <?php /* Plugin Name: Moje upravy */ …kod… 18. 2. 2017 19
  20. 20. http://lynt.cz Základy bezpečnosti • Limitace chybných přihlášení (je vhodné využívat bezpečnostní plugin - WordFence) • Silná hesla + správce hesel • Správná práva souborů i uživatelů • Šifrované připojení – HTTPS, VPN • Pravidelné aktualizace • Pravidelné zálohy DB i souborů webu 18. 2. 2017 20
  21. 21. http://lynt.cz Příliš vysoká uživatelská práva • Nejčastější důvod – menu a widgety může editovat pouze admin $role_object = get_role( 'editor' ); $role_object->add_cap( 'edit_theme_options' ); https://cs.wordpress.org/plugins/user-role- editor/ 18. 2. 2017 21
  22. 22. http://lynt.cz Hosting / VPS • Potřebuji hosting, nebo VPS? • Výhody VPS: lze škálovat výkon • Nevýhody: na správu jste sami • Pokud nemáte linux administrátora, nepouštějte se do VPS 18. 2. 2017 22
  23. 23. http://lynt.cz Více webů v jednom prostoru na hostingu/VPS 18. 2. 2017 23 Složkasweby Web1 Web2 Web3 https://github.com/lynt-smitka/PHP-Mini-File-Browser/blob/master/mfb.php
  24. 24. http://lynt.cz HTTPS • Proč mít HTTPS? – Bezpečně přenášíte data svých návštěvníků – Nebezpečné sítě nemohou modifikovat váš obsah – Můžete použít HTTP/2 pro vyšší výkon – Můžete používat Google Nákupy • Proč nemít HTTPS? – Nevím… 18. 2. 2017 24
  25. 25. http://lynt.cz Nastavení HTTPS • Oprava absolutních odkazů z http://<muj-web> na https://<muj-web> – UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://<muj-web>', 'https://<muj-web>') – https://interconnectit.com/products/search-and-replace- for-wordpress-databases/ – https://cs.wordpress.org/plugins/ssl-insecure-content- fixer/ 18. 2. 2017 25
  26. 26. http://lynt.cz Nastavení HTTPS • Test, zda je vše správně nastavené • https://www.ssllabs.com/ssltest/analyze.html Nový web spouštějte rovnou na HTTPS 18. 2. 2017 26
  27. 27. http://lynt.cz Výkon 18. 2. 2017 27
  28. 28. http://lynt.cz Mnoho zbytečných pluginů • Více pluginů = větší nároky na správu a snížený výkon • Větší riziko bezpečnostních chyb • Vliv pluginů – test na VPS serveru 1core, 4GB: – Čistý WP: 16 požadavků/s – WP + CF7 + JetPack + WPML + Yoast SEO + Slider revolution: 3 požadavky/s 18. 2. 2017 28
  29. 29. http://lynt.cz „Zbytečné“ pluginy • Neaktivovaný Akismet • Ikonky sociálních sítí - lepší udělat staticky v šabloně – nemění se • Slidery – opět lepší staticky, pokud není třeba často je aktualizovat • Pluginy s duplicitní funkcionalitou 18. 2. 2017 29
  30. 30. http://lynt.cz Hledání pomalého pluginu 18. 2. 2017 30 • Zjištění, zda pomalost způsobují skripty na straně serveru nebo až načítání zdrojů – Waterfall (vodopádový graf) • https://gtmetrix.com/ • http://www.webpagetest.org/ • https://tools.pingdom.com/
  31. 31. http://lynt.cz Waterfall 18. 2. 2017 31 < 2s < 800kB < 50
  32. 32. http://lynt.cz Hledání pomalého pluginu • P3 profiler • Query Monitor • Blackfire.io • Nejčastější problémy: – Mnoho dotazů do DB (nemělo by jich být více než 35) – Komunikace s externími službami (např. špatně udělaná kontrola dostupnosti update) – „Zacyklené“ shortkódy 18. 2. 2017 32
  33. 33. http://lynt.cz Cachování • Několik úrovní • Cache na straně prohlížeče (expires hlavičky) • Objektová cache (rozšíření PHP + dropin) – REDIS, APC(u), Xcache, Memcached • Plně stránková cache – WP Supercache – WP Rocket 18. 2. 2017 33
  34. 34. http://lynt.cz Fonty • Opravdu potřebujete mít na webu Google/Typekit font? • Bezpečné fonty • Řezy a znakové sady: čím více, tím větší zdržení načítání 18. 2. 2017 34
  35. 35. http://lynt.cz Diakritika 18. 2. 2017 35 <link href="https://fonts.googleapis.com/css?family =Roboto:400,700&subset=latin-ext" rel="stylesheet">
  36. 36. http://lynt.cz Obrázky • Velké množství • Zbytečně rozměrné • Neoptimalizované – velká velikost • https://tinypng.com/ - vyzkoušejte • https://wordpress.org/plugins/shortpixel-image-optimiser/ • https://cs.wordpress.org/plugins/tiny-compress-images/ • https://cs.wordpress.org/plugins/ewww-image-optimizer/ 18. 2. 2017 36
  37. 37. http://lynt.cz Úkoly na zítra • Aktualizujte • Zazálohujte • Otestujte rychlost webu • Otestujte odesílání e-mailů • Ověřte konfiguraci HTTPS • Přijďte na Contributing Day ;-) 18. 2. 2017 37
  38. 38. http://lynt.cz Mé starší přednášky • Výkon: – https://www.slideshare.net/vsmitka/vkon- wordpress – https://www.slideshare.net/vsmitka/wp-vkon-a- jeho-profilovn • Bezpečnost: – https://www.slideshare.net/vsmitka/wordcamp- praha-2016-bezpenost-wordpress – https://www.slideshare.net/vsmitka/bezpenost- wp-tipy-pro-kadho-wordcamp-praha-2015 18. 2. 2017 38
  39. 39. http://lynt.cz A to je vše, přátelé. 18. 2. 2017 39 aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní Právě dokončuji knihu o WordPress, která vyjde u vydavatelství Grada.

×