nejčastejší problémy wordpress webů
TRANSCRIPT
http://lynt.cz
Nejčastější problémy webů na WordPress
Vláďa Smitka
@smitka
Lynt services s.r.o.
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
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
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
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
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
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.
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
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
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
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
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!
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
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
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
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
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
http://lynt.cz
Více webů v jednom prostoruna hostingu/VPS
18. 2. 2017 23
Slo
žka
s w
eby
Web1
Web2
Web3
https://github.com/lynt-smitka/PHP-Mini-File-Browser/blob/master/mfb.php
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
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
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
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 + Sliderrevolution: 3 požadavky/s
18. 2. 2017 28
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
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/
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
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
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
http://lynt.cz
Diakritika
18. 2. 2017 35
<link href="https://fonts.googleapis.com/css?family=Roboto:400,700&subset=latin-ext" rel="stylesheet">
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
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
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
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.