Jak stworzyć wielojęzyczny portal z milionem wyświetleń na WordPressie?

52
Jak stworzyć wielojęzyczny portal z milionem wyświetleń na WordPressie?

Transcript of Jak stworzyć wielojęzyczny portal z milionem wyświetleń na WordPressie?

Jak stworzyć wielojęzyczny portal z milionem wyświetleń

na WordPressie?

Kim jestem?

• Jestem developerem WordPressa od 3 lat

• Tworzę szablony, strony, wtyczki pod WordPress

• Jestem głównodowodzącym technologicznym rosyjskojęzycznego portalu informacyjnego PosetitPolshu.ru

Dlaczego WordPress?

Założenia projektu

Założenia projektu

• Cel: Stworzyć „Onet.pl” za „budżet” ;) (dodajcie sobie tutaj całkowicie nieadekwatną sumę)

Założenia projektu

• Cel: Stworzyć „Onet.pl” za „budżet” ;) (dodajcie sobie tutaj całkowicie nieadekwatną sumę)

• Czas: 30 dni

Założenia projektu

• Cel: Stworzyć „Onet.pl” za „budżet” ;) (dodajcie sobie tutaj całkowicie nieadekwatną sumę)

• Czas: 30 dni

• :)

Założenia projektu

• Cel: Stworzyć „Onet.pl” za „budżet” ;) (dodajcie sobie tutaj całkowicie nieadekwatną sumę)

• Czas: 30 dni

• :)

Optymalizacja

Po co?

Po co?

• Tańszy serwer

• Szybsze działanie czyli:

• Wzrost użytkowników

• Mniej problemów z serwerem (dłuższy sen)

Cache

Cache

• WP Object Cache

Cache

• WP Object Cache

• W3 Total Cache (klasycznie)

Cache

• WP Object Cache

• W3 Total Cache (klasycznie)

• Varnish / APC / XCache / etc.

Cache• WP Object Cache (natywny)

• W3 Total Cache (klasycznie)

• Varnish / APC / XCache / etc (serwer)

• Minifikacja (serwer lub ręcznie)

• CDN

CDN

CDN

• Mirrory plików/zdjęć/obrazów

CDN

• Mirrory plików/zdjęć/obrazów

• Obejście blokady pobierania plików przez przeglądarki

CDN

• Mirrory plików/zdjęć/obrazów

• Obejście blokady pobierania plików przez przeglądarki

• (Jakieś) Zabezpieczenie przed DDOS

HTTP Expire Date

<IfModule mod_expires.c> Header set cache-control: public ExpiresActive on

ExpiresDefault "access plus 1 month"

ExpiresByType text/html "access plus 1 hour" ExpiresByType application/rss+xml "access plus 1 hour"

ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month”

ExpiresByType image/x-icon "access plus 1 year" ExpiresByType font/ttf "access plus 1 year”

</IfModule>

Optymalizacja wtyczkami lub natywna

WP Object Cache

WP Object Cache• wp_cache_add( $key, $data, $group, $expire )

WP Object Cache• wp_cache_add( $key, $data, $group, $expire )

• wp_cache_set( $key, $data, $group, $expire )

WP Object Cache• wp_cache_add( $key, $data, $group, $expire )

• wp_cache_set( $key, $data, $group, $expire )

• wp_cache_get( $key, $group = '', $force = false, $found = null )

WP Object Cache• wp_cache_add( $key, $data, $group, $expire )

• wp_cache_set( $key, $data, $group, $expire )

• wp_cache_get( $key, $group = '', $force = false, $found = null )

• wp_cache_delete( $key, $group )

WP Object Cache• wp_cache_add( $key, $data, $group, $expire )

• wp_cache_set( $key, $data, $group, $expire )

• wp_cache_get( $key, $group = '', $force = false, $found = null )

• wp_cache_delete( $key, $group )

• wp_cache_replace( $key, $data, $group, $expire )

WP Object Cache• wp_cache_add( $key, $data, $group, $expire )

• wp_cache_set( $key, $data, $group, $expire )

• wp_cache_get( $key, $group = '', $force = false, $found = null )

• wp_cache_delete( $key, $group )

• wp_cache_replace( $key, $data, $group, $expire )

• wp_cache_flush()

W3 Total Cache

Kombajn, którego nie da się opisać w 30 min

Wtyczki

Rezygnacja z wtyczek. Natywność pierwsza.

Czemu?

Ponieważ wtyczki, bardzo często popełniają ten

sam błąd!

Ładowanie WSZĘDZIE!

add_action( 'admin_init', 'adziner::print_styles' ); add_action( 'admin_enqueue_scripts', 'adziner::print_scripts' );

add_action( 'init', 'adziner::print_widget_styles' ); add_action( 'init', 'adziner::print_widget_scripts');

Czego nie instalować?

Czego nie instalować?• Broken Link Checker — Nadmierna ilość zapytać

HTTP - blokuje buforowanie

• MyReviewPlugin — Źle napisana wtyczka, za duża ilość insertów

• Events Manager, LinkMan, Fuzzy SEO Booster, WP PostViews, Tweet Blender, WP PRO Advertising System

Optymalizacja serwerowa

Varnish pod WPsub vcl_recv {

# sprawdza po URLu jeszce zanim załadują się # ciastecka

if (!(req.url ~ "wp-(login|admin)")) {

unset req.http.cookie;

}

}

Apache

Jak pilnować tego burdelu?

New Relic - Monitoring

New Relic - Monitoring

New Relic - Monitoring

New Relic - Monitoring

Dziękuję.

Dziękuję.

rafalosinski.com

[email protected]

facebook.com/osinski.rafal

twitter.com/osinskirafal