WordPress force redirect http to https

В одном из предыдущих постов мы рассматривали важность использования HTTPS на сайте HTTPS — НУЖНО ИЛИ НЕОБХОДИМО?

Предположим вы все сделали правильно и

Ваш сайт отображается по HTTPS но при этом он доступен и по HTTP. Что делать? Как заставить отображаться только HTTPS и при обращении к HTTP корректно делать редирект на защищенную версию

Мы перепробывали множество параметров для .httacces и не смогли найти «золотого решения» поэтому практически опробывали другой путь — приэмлемый для CMS WordPress

В файл function.php  дописываем правило:


add_action( 'template_redirect', 'nonhttps_template_redirect', 1 );

function nonhttps_template_redirect() {

if ( is_ssl() ) {

if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'https' ) ) {

wp_redirect( preg_replace( '|^http://|', 'https://', $_SERVER['REQUEST_URI'] ), 301 );

exit();

} else {

wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );

exit();

}

}

}

PAGESPEED INSIGHTS: СОКРАТИТЕ CSS УСКОРЕНИЕ САЙТА НА WORDPRESS (ВОРДПРЕСС) ПРАКТИКА

В продолжение серии статей по практическому ускорению интернет ресурсов в соответсвии с рекомендациями поисковых систем.

До начала работы:

Все супер мы справились — грабли нам вставил виджет Битрикс24

Эдинственный файл с CSS кодом — который в силу того что находится на стороннем сервере мы оптимизировать не можем…

Но как говориться: Толи еще будет … и Google PageSpeed Insight покажет нам зеленую линию

Сервисы которые рекомендуем для ручной оптимизации CSS кода:

https://cssminifier.com/

PAGESPEED INSIGHTS: ИСПОЛЬЗУЙТЕ КЕШ БРАУЗЕРА УСКОРЕНИЕ САЙТА НА WORDPRESS (ВОРДПРЕСС) ПРАКТИКА

PAGESPEED INSIGHTS: ИСПОЛЬЗУЙТЕ КЕШ БРАУЗЕРА УСКОРЕНИЕ САЙТА НА WORDPRESS (ВОРДПРЕСС) ПРАКТИКА

Все кто сталкивался с задачей оптимизации сайта на WordPress читали рекомендацию Google Page Insight:

Используйте кеш браузера

И все его пытались использовать, и результат был если не маленький то нулевой. В данной статье мы в деталях приведем практический опыт ускорения сайта при правильном формировании .htaccess

И так начнем: имеем проект, имеем пожелание Google

Использование «кеша» браузера для ускорения скорости загрузки WordpPress

Изначально в .htaccess ВордПрес по умолчанию следующий код:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Добавляем магические строки:

#
# Sources:
# http://stackoverflow.com/questions/7704624/how-can-i-use-gzip-compression-for-css-and-js-files-on-my-websites
# http://codex.wordpress.org/Output_Compression
# http://www.perun.net/2009/06/06/wordpress-websites-beschleuinigen-4-ein-zwischenergebnis/#comment-61086
# http://www.smashingmagazine.com/smashing-book-1/performance-optimization-for-websites-part-2-of-2/
# http://gtmetrix.com/configure-entity-tags-etags.html
# http://de.slideshare.net/walterebert/die-htaccessrichtignutzenwchh2014
# http://de.slideshare.net/walterebert/mehr-performance-fr-wordpress
#

<IfModule mod_deflate.c>
# Insert filters / compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/vtt 
AddOutputFilterByType DEFLATE text/x-component
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/js
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/atom+xml 
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/ld+json 
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
AddOutputFilterByType DEFLATE application/x-font-ttf 
AddOutputFilterByType DEFLATE application/x-web-app-manifest+json 
AddOutputFilterByType DEFLATE font/opentype 
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon 

# Exception: Images
SetEnvIfNoCase REQUEST_URI \.(?:gif|jpg|jpeg|png)$ no-gzip dont-vary

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>

</IfModule>


## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 week"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 month" 
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/html "access plus 1 minute"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType text/x-component "access plus 1 month" 
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/javascript "access plus 1 months"
ExpiresByType application/x-javascript "access plus 1 months"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds" 
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" 
ExpiresByType text/cache-manifest "access plus 0 seconds" 
ExpiresByType audio/ogg "access plus 1 month" 
ExpiresByType video/mp4 "access plus 1 month" 
ExpiresByType video/ogg "access plus 1 month" 
ExpiresByType video/webm "access plus 1 month" 
ExpiresByType application/atom+xml "access plus 1 hour" 
ExpiresByType application/rss+xml "access plus 1 hour" 
ExpiresByType application/font-woff "access plus 1 month" 
ExpiresByType application/vnd.ms-fontobject "access plus 1 month" 
ExpiresByType application/x-font-ttf "access plus 1 month" 
ExpiresByType font/opentype "access plus 1 month" 
</IfModule>
## EXPIRES CACHING ##


#Alternative caching using Apache's "mod_headers", if it's installed.
#Caching of common files - ENABLED
<IfModule mod_headers.c>
<FilesMatch "\.(ico|pdf|flv|swf|js|css|gif|png|jpg|jpeg|txt|html|htm)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
</IfModule>


<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary Accept-Encoding
  </FilesMatch>
</IfModule>


<IfModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# Set Keep Alive Header
# This *just* sets the header - maybe your hoster is not allowing this feature
# Please check if it is working with tools like http://www.webpagetest.org
<IfModule mod_headers.c>
    Header set Connection keep-alive
</IfModule>

# If your server don't support ETags deactivate with "None" (and remove header)
<IfModule mod_expires.c> 
  <IfModule mod_headers.c> 
    Header unset ETag 
  </IfModule> 
  FileETag None 
</IfModule>

Результат:

Пускай еще не Google Green )) но шаг вперед мы сделали.

В рекомендации остались только ссылки из сторонних сервисов, то есть приведенное выше решенеи однозначно работает.

Источник: https://gist.github.com/Zodiac1978/3145830

Обсуждение: http://stackoverflow.com/questions/7704624/how-can-i-use-gzip-compression-for-css-and-js-files-on-my-websites

Следуйте рекомендациями поисковых систем, делайте свои сайты еще лучше!!!

HTTPS — НУЖНО ИЛИ НЕОБХОДИМО?

Что же делать ?

  1. Регистрируем SSL сертификат
  2. Подключает его в консоли хостинга
  3. Далее открыв сайт по https мы его увидим но он будет искаженный.
  4. Устанавливаем плагин: Easy HTTPS (SSL) Redirection 

Никто не спорит, можно пойти путем мануальных изменений — /wp-admin/options-general.php (настройки, общие) и заменить http -> https

* На практике проверено. Но использование плагина позволяет сделать исключения если это необходимо или же в енсколько движений закрыть вопрос.

Но это еще не все : (

Очень часто после эти манипуляций мы так и не получаем: 

Если же на сайте присутствуют статические линки с HTTP  — вы увидите следующую картину: 

Что необходимо сделать ? (расмотрим на практическом примере следующего проекта)

 

NOTES 8. AMP — ИЛИ ТО О ЧЕМ НАМ РЕКОМЕНДОВАЛ GOOGLE ЕЩЕ В 2015 ДЛЯ 100КА В 2015 И ЧТО УЖЕ РЕКОМЕНДУЕТСЯ ДЛЯ ВСЕХ

Нужно ли иметь на сайте AMP ?

Еще в феврале 2016 года я консультировал несколько проектов посещаемость которых в пиковый момент превишала более 100 000 человек в сутки.

Просматривая почту я получил сообщение от Google Webmaster

О AMP (accelerate mobile pages) мы уже тогда слышали, но никто не принимал данный фактор во внимание.. Ясное дело что мы обсудили данный вопрос и приняли решение не внедрять данный формат, так как возникал ряд вопросов.

Через несколько месяцев в разговоре с несколькими сео специалистами все чаще и чаще проскакивали фразы AMP, были «специалист» которые называли AMP дублями : )

Уже  31 07 2016 когда все сое специалисты услышали про АМР, были еще чудаки которые считали их дублями)

Уже после анонсирования Accelerate Mobile Page в Google Webmaster панели на их все больше и больше начали обращаться внимание!

Вот мы решили провести эксперементы над своим проектом:

 

NOTES 7. ТО О ЧЕМ НЕ ГОВОРЯТ, НО ОНО ЕСТЬ LAST MODIFIED WORDPRESS

Вот так не должно быть:

Я не стану копировать все уже давным дано написанное до нас, единственно на что еще раз бы хотелось акцентировать внимание:

 

Экономия Трафика

Снижение нагрузки на сервер

Ускорение индексации поисковыми системами

Поисковые системы через руководство для вебмастеров рекомендуют отсылать заголовок Last-Modified и правильно обрабатывать If-Modified-Since.

Если первые два пункта для Вас не аргумент (для меня тоже: трафика хоть залейся, если будет перелемит я с удовольствием его докуплю, нагрузка на сервера — я думаю за результатом команды htop вряд ли кто то  наблюдает).

Но нужно понимать даже и эти два пункта становятся мега критично Важными когда у Вас большой ресурс и большой трафик.

И более всего привлекает последний третий пункт: о котором настоятельно рекомендует задуматься не только документация Google Webmaster но и Яндекс

Я бы не акцентировал внимание на данный параметр оптимизации сайта на вордпресс, если бы не имел практический опыт решения подобных задач.

Чуть позже я напишу, почему я так глубоко изучил этот вопрос, и так пристально обратил внимание на «хотелку» сеошника (сеошников, повторюсь это требование звучало от нескольких сео специалистов).

NOTES 6. GOOGLE PAGE INSIGHT — ИЛИ СКОРОСТЬ ЗАГРУЗКИ САЙТА. МАЛЕНЬКОЕ НАБЛЮДЕНИЕ- ИСПОЛЬЗОВАНИЕ «СПРАЙТЫ»

О спрайтах заговорили уже очень давно:

CSS Image Sprites

Но зачастую их используют довольно редко, или редко… по нескольким причинам:

— дизайнеры их не отрисовывают

— верстальщики их не используют, потому что дизайнеры не отрисовали

— а девы при слове «Спрайт» — думаю о известном бренде воды Sprite или же о Coca-Cole или Pepsi кому что более нравится.

В одном из последних проектов который входил к нам на верстку и натяжку на ВП — прозвучало требование: необходимо использовать спрайты для оптимзации загрузки изображений.

К требованиям мы относимся четко, если они есть мы их четко соблюдаем, если нет — применяем свои требования по умолчанию.

После очередного раза оптимизации проекта по Google Page insight (сайт на WordPress) я в деталях начал разбирать процесс оптимизации изображений на сайте и обратил внимание на рекомендацию Google:

Мало того что Гугл — нам оценивает качество, так он еще настоятельно рекомендует собрать все иконки и сделать с них СПРАЙТ

 

ОПТИМИЗАЦИЯ СКОРОСТИ ЗАГРУЗКИ САЙТА НА CMS WORDPRESS — ДЛЯ ПОИСКОВЫХ СИСТЕМ

Оптимизация скорости загрузки сайта ВордПресс

100 из 100

Зачастую все мы хотим получить 300 из 100, но всему эсть здравый предел. Это касается все отраслей в том числе разработки и оптимизации сайтов.

Поисковая система Google — настоятельно рекомендует нам оптимизировать скорость загрузки наших сайтов для уменьшения времени отклика. Учитывая что сейчас Мегабитный интернет, а трафик на 3g условно не лимитирован — то рекомендация ПС как минимум не настраживает нас и не заставляет задумать о скорости работы нашего сайта… А мы насторожились, а мы задумались и получили 100 возможных)

100-из-100-оптимизация Вордпресс для поисковых систем

  1. Не менее интересным будет понаблюдать за индексированием проекта до его оптимизации, перед этим мы устанавливали разные темы:
    — самописную
    — тему с VC
    — и еще нескольк плачевных эксперементов

  2. Интересный факт который свидетельсвует об изменении индекса сканировани и времени затраченного на загрузку страниц

  3. Количество индексируемых страниц в день увеличилось на 46 штук в топовый период, и на 5 в среднем.
    Количество загруженных килобайт также
    Время на загрузку страниц — снизилось!

    Более чем уверен что это именно тот результат который мы ожидали, с момента изменений прошло 5ть дней.
    Что либо сложно утверждать с увереностью в такой короткий период времени, но мы уже видем существенные изменения… будем наблюдать