.
17 марта 2017

Валидация и оптимизация сайта

Данный пост думаю ничего нового никому не скажет, но надеюсь лишний раз напомнит о необходимости валидации и оптимизации уже готового сайта.

Лично я занялся этими делишками т.к. пока ничего более умного в голову не лезет, а новый шаблон для интернет аптеки по возбуждающим препаратам для мужчин и женщин на более менее нормальные позиции в Яше ни в какую не лезет! :(
А точнее — ситуация «хуже некуда» т.к. даже по строгому соответствию (запрос в Яндексе делается в кавычках) 7ми словного кейворда «Возбуждающие средства в Новосибирске онлайн-заказ с доставкой» из заголовка H1 морды сайта — novosibirsk.mean-aptekar.ru в выдачу не ставит !!!
Почему-то говорит «Точного совпадения с «Возбуждающие средства в Новосибирске онлайн-заказ с доставкой» не нашлось. Показаны результаты по запросу без кавычек.» хотя в копии морды сайта на Яндексе данное сочетание присутствует! (конечно надеюсь, что просто Яша ещё в выдачу эту информацию не ставит — иначе и объяснить нечем).
Коллеги, может будут какие мысли — буду очень благодарен!

Ладно, хватит соплей — вернёмся к сабжу :)
Незнаю на сколько всё эти валидации и оптимизации влияют на поисковую выдачу, но говорят — влияет, поэтому за дело!
Итак, в моём случае ноги растут из инструмента гугла по анализу страниц сайта

Ну и раз оптимизировать, по логике вещей нужно сначала добиться правильности html кода — в этом мне поможет валидатор, в котором после некоторых мучений я добился валидного кода для морды и странички товара (на товаре не так гладко, т.к. из за слайдера и корзины понапихали несуществующих атрибутов в теги без префикса data — возможно руки дойдут, переделаю).

Далее я последовал рекомендациям Гугла — объединение css и js файлов.
Для js объединение прошло почти без осложнений (которые могли быть из за единого пространства переменных и функций получаемых при использовании одного файла) — плюс для сжатия использовал библиотеку jsmin.php
Единственный момент — jquery пришлось вытащить в начало и подгрузить отдельно, т.к. он использовался скриптами прямо в теле страницы (что тоже не есть гуд — но пока до этого не добрался).
Для css пришлось попотеть, т.к. нужно было преобразовать относительные пути используемых изображений и фонтов в пути, где будет лежать сжатый css вариант.
Так же у меня почему-то рабочий объединённый вариант после обработки библиотекой CssMin.php сайт превратил в не рабочий — пришлось отказаться, заменив двумя регулярками, который дали практически тоже самое сжатие
$buf = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buf);
$buf = str_replace(array("\r", "\n", "\t", ' '), '', $buf);

В итоге кучка css и js файлов объединилась в три сокращённых файла.
Этими же регулярками обработал вывод самого тела странички.
Результат можно глянуть в режиме кода для сайта novosibirsk.mean-apteka.ru
Жду результат в выдаче Яши :)

В дальнейших планах по оптимизации — все управляющие картинки запихать в единый спрайт (по сути всё кроме картинок товара).

рубрики: SEO | Комментарии (1)

16 марта 2017

Барыга регистратор reg.ru

Клиенты не стали продлять один из своих доменов waitingroom.ru — зашел, ради интереса глянуть, свободен домен или уже перекупили, и честно говоря охренел.
Домен с нулевым ТИЦ, СЕО вообще не занимались — ни ссылками, ни статьями — ничем!

waitingroom

no comments!

рубрики: Размышления | Комментарии (1)

6 марта 2017

Скрипт — MYSQL бэкап баз данных в разные файлы

Полезный скриптик MYSQL бэкап баз данных в разные файлы

#! /bin/sh
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/disk2/mysql/$TIMESTAMP"
MYSQL_USER="user"
MYSQL=/usr/local/bin/mysql
MYSQL_PASSWORD="pass"
MYSQLDUMP=/usr/local/bin/mysqldump
mkdir -pv "$BACKUP_DIR"
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
for db in $databases; do
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/$db.gz"
done

рубрики: NIX, Администрирование, Полезности, Программирование | Комментарии (0)

21 февраля 2017

Modify headers Firefox — управление заголовками запроса в Mozilla

Суть поста проста и понятна по его тайтлу :)
Пост больше закладочного характера, для себя, чтоб было т.к. полезно.

Устанавливаем, юзаем — Modify Headers
Лично мне понадобилось для быстрой замены User-Agent (в личных целях).
Позволяет редактировать любые заголовки запроса!

рубрики: Полезности | Комментарии (0)

20 февраля 2017

Быстрая доработка сайта на yii2

Итак, волею судеб достался мне на сопровождение сайт дверной-эксперт.рф реализованный на php фреймворке yii2, с весьма аскетичным административным интерфейсом. Соответственно — в каких либо корректировках сайта шаг влево, шаг вправо считается побегом :) и без каких то базовых знаний фреймворка любые допилы никак не реализуемы.
ТЗ от владельца сайта — встроить на сайт онлайн калькулятор по доставке товара с Новосибирска на Дальний Восток (ссылка с уже готовым решением).
Кому интересно, подробное решение ТЗ: Читать полностью »

рубрики: Yii, Программирование | Комментарии (0)

20 февраля 2017

Цена бездействия: во что обходится нежелание улучшать организацию работы

Инфографику предоставила Wrike — Управление Ит Проектами
Читать полностью »

рубрики: SEO | Комментарии (0)

16 февраля 2017

Проблемы с отправкой почты на gmail — настраиваем PTR, SPF, DKIM, DMARC на виртуальной машине Битрикс

Итак, вчера я обнаружил, что почта с сайтов на моём сервере (виртуальная машина Битрикс) не доходит на почтовые сервера Google Mail — ...@gmail.com
Скрипт проверки почты функцией PHP mail () проблем не выявил — функция отрабатывает корректно, но почта не уходит — видимо проблема уже на другом уровне.
В почтовых логах обнаруживаем ругательную запись

...... SMTP error from remote mail server after pipelined end of data: 550-5.7.1 [91.227.68.223 12] Our system has detected that this message is\n550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,\n550-5.7.1 this message has been blocked. Please visit\n550-5.7.1 https://support.google.com/mail/?p=UnsolicitedMessageError\n550 5.7.1 for more information. g191si2693352lfe.246 — gsmtp

Собственно, идём по рекомендованному адресу, где обнаруживаем рекомендации по настройке почты, а так же гугловский сервис postmaster для просмотра возможных почтовых проблем.
В постмастере я добавил домен от которого идёт отправка почты с моего сервера — пока идёт сбор данных, информации нет (как появится — добавлю информацию ниже).
А пока остановимся на рекомендациях по настройке почты: PTR, SPF, DKIM, DMARC
Что касается PTR и SPF — главные базовые настройки почты, о настройке которых я ранее уже писал — настройка почты
Если кратко PTR — DNS настройка соответствия IP адреса и домена — запрос по домену, должен возвращать IP и наоборот, запрос IP должен соответствовать домену.
SPF — DNS настройка правил откуда позволено отправлять почту.
Эти настройки я сделал ранее, но видимо этого недостаточно для гугловского почтовика, соответственно, для полноты картины настроим цифровую подпись DKIM и правил DMARC.
Для этого есть отличный мануал, которым я и воспользовался.
Если кратко: устанавливаем exim и переключаем MTA на него, генерируем ключи, прописываем публичный ключ в DNS, настраиваем exim на подпись писем приватным ключем.
Далее, смотрим оригинал письма (на Яндексе т.к. на гугл так и не принимает мои письма)
dkim
Всё хорошо — SPF и DKIM проверки пройдены!
Для включения политики DMARC добавляем TXT запись «v=DMARC1; p=none; rua=mailto:postmaster@gthack.ru» — говорящую о том, что никаких действий с подозрительными письмами не предпринимать, отчёт направлять на адрес домена postmaster@gthack.ru (предварительно обработку входящей почты с данного домена я делегировал почтовым серверам Яндекса, через привязку домена к Яндексу).

Итак, всё что можно было настроить я настроил, но почту Гугл всё равно не берёт! :(

Далее, решил я снова покопаться в логах и обнаружил, что почту не берёт не только Гугл, но и некоторые другие почтовые сервера, так же ссылаясь на странички для разъяснения ситуации.
Собственно, по характеру ссылок я понял, что айпишник «залетел» в публичные блэклисты по спаму.

Для поиска спамера, я воспользовался возможность логировать отправителя на уровне php — вредоносных скриптов не обнаружил, отправка шла штатным Джумловским скрпиптом phpmailer.php доменов которые я по дружбе захостил на своём сервере (наука на будущее — джумла — источник всех проблем) соответственно нужно запрещать рассылку в самой Джумле (об этом напишу позже).

Ну а для исключения из спам листов, следуем по ссылкам из логов и заполняем нужные формы:

http://postmaster.comcast.net/smtp-error-codes.php#BL000010

для исключения из листа заполняем форму

http://postmaster.comcast.net/block-removal-request.html

для исключения из блэклиста сервис Cloudmark Sender Intelligence (CSI)
заполняем форму

https://csi.cloudmark.com/en/reset/?ip=91.227.68.223

Уфф, ну вроде сделал всё что нужно, жду результат... (отпишу позже)

PS // добавлено спустя несколько дней
Так Гугла меня и не пускает :(
Только что обнаружил интересный сервис Наличие IP в СПАМ базах

спам базы

Будем отписываться, далее отпишу

PS // добавлено спустя несколько дней
Через несколько дней после отписки в спам сервисах, гугл соблаговолил принимать мою почту.
«Просмотр оригинала» в интерфейсе GMail наглядно демонстрирует работу всех подключенных выше технологий.
mail

рубрики: Bitrix, NIX, Администрирование | Комментарии (0)

Яндекс.Метрика