четверг, 18 июня 2015 г.

Исправляем ошибку в компоненте Xmap

  На днях, когда я случайно заглянул на страницу «Файлы Sitemap» в сервисе «Яндекс-Вебмастер», моё внимание привлекло сообщение об ошибке в файле карты сайта. Удивлён я был не столько самой ошибке, сколько тому, что последняя загрузка этого файла Sitemap была больше месяца назад, а при обходе роботом использовалась предыдущая успешно загруженная, но уже успевшая изрядно устареть версия файла.

  По клику на ссылку «1 ошибка» можно узнать её тип. В моём случае данные подробности ограничились строчкой «Не удалось загрузить файл».

  «Странно» — подумал я, копируя ссылку на карту сайта и собаясь проверить файл «методом тыка». К ещё большему удивлению, файл Sitemap был успешно сгенерирован сервером и загружен в мой браузер. Предположив, что робот Яндекса не смог загрузить файл Sitemap из-за кратковременных проблем на хостинге, и недоумевая, почему за столь продолжительный срок не была сделана повторная попытка его загрузить, я решил написать сообщение в службу поддержки и на удивление быстро получил ответ.

  Оказалось, что сервер, отдавая файл Sitemap, указывал в HTTP-заголовках директиву «Content-encoding», а робот Яндекса, видя наряду с ней несжатый контент, отказывался даже пытаться его обрабатывать. Как сообщил сотрудник службы поддержки поисковой системы, «Согласно стандартам, заголовок Content-encoding не нужен, если контент не сжат». И всего-то.

  Решение долго ждать себя не заставило. Идём в папку с компонентом, который генерирует карту сайта, и проверяем PHP-скрипты один за другим. На своём сайте для генерации файлов Sitemap я использую компонент Xmap (CMS Joomla!), решение проблемы в котором кроется в файле /components/com_xmap/xmap.php.

if ($view=='xml') {
    Header("Content-type: text/xml; charset=UTF-8");
    Header("Content-encoding: UTF-8");
}

  Удаляем либо комментируем ненужный нам заголовок, сохраняем и обновляем файл на сервере. Всё. Через некоторое время робот поисковой системы сделает повторную попытку загрузить файл Sitemap и, увидев, что ошибки более нет, обработает данные и начнёт использовать его при обходе.

вторник, 21 апреля 2015 г.

Бесплатные обратные ссылки и индексация сайта

  Сделав новый сайт и наполнив его материалами, я был сильно обеспокоен очень медленным его сканированием поисковой системой «Яндекс». Роботы «Google» менее чем за две недели обошли все нужные и ненужные (вовремя незакрытые от индексации) страницы, «Яндекс» же даже спустя месяц существования сайта так и не успел проиндексировать его до конца. Появилась срочная необходимость как-то повлиять на скорость индексации и научиться избегать подобных проблем в будущем, чтобы, не дай бог, статьи не воровались. Я принялся искать и читать любую информацию, которая могла бы мне в этом помочь.

  Оказалось, что алгоритм сканирования сайтов поисковыми системами прост: робот переходит по ссылкам, проверяет доступность страницы для индексации и индексирует страницу, если её индексация не запрещена. Постольку поскольку не все сайты состоят из десятка-другого страниц, чтобы робот не переходил на них по сотням и тысячам ссылок, на каждый визит отводится определённое время. Таким образом, нетрудно догадаться, чем больше ссылок приведут робота на мой сайт, тем больше времени он затратит на его индексацию.

  Встал другой вопрос — как и откуда новый сайт может получить ссылки? Ответ на него оказался немного более объёмным и менее исчерпывающим, чем я ожидал. Ниже расскажу о найденных мною способах получения бесплатных ссылок и попробую доступно описать каждый из них.

пятница, 25 июля 2014 г.

Работа копирайтером — развлечение или труд?

  Вам всегда казалось, что работа копирайтера легка до невозможности и они скорее напоминают бездельников, чем работников? Если так, то вы глубоко заблуждались. Работа копирайтера отнюдь не бездельничество или развлечение, а интеллектуальный труд, который под силу не каждому.

  Как и другие направления интеллектуальной деятельности, копирайтинг требует усидчивости, терпения и способности думать. Если человек не может усидеть на месте более двадцати минут, не любит читать и познавать новое, написание статей для него будет весьма сложной задачей. Кроме таких характерных черт, присущих не каждому человеку, копирайтера поджидают и другие проблемные моменты. О пяти таких моментах речь пойдёт ниже.

пятница, 18 июля 2014 г.

Продвижение сайта досками объявлений

  Модерируя сайт объявлений, я ежедневно наблюдаю, как усердно владельцы сайтов пытаются оставить в объявлении ссылку на свой ресурс. Порой такие ссылки не только никак «не вписываются» в объявление, но и превращают само объявление в рекламу сайта. В связи с этим я решил порассуждать на тему раскрутки и продвижения сайта досками объявлений, в связи с чем получилась небольшая, но наверняка полезная для владельцев сайтов статья. Итак, начнём.

  Доски объявлений в интернете существуют для тех же целей, что и газеты объявлений - предлагать и искать товары и услуги. Однако некоторые интернет-пользователи находят им и другое применение - например, в продвижении своих сайтов. Как правило, администраторы досок объявлений не приветствуют рекламу сайтов и удаляют такие объявления. Исключением может быть красиво оформленная и полезная для посетителей доски объявлений информация.

  Утверждение о том, что доски объявлений никак не влияют на продвижение сайта в поисковой выдаче, было бы в корне неверным. Неверным хотя бы потому, что ссылка на любом посещаемом сайте может быть замечена и по ней совершён переход на рекламируемый сайт, а значит, будет влияние на учитываемые поисковыми системами поведенческие факторы. Кроме того, любой посетитель, пришедший с доски объявлений, может быть заинтересованным в той информации, которую вы представили на своём сайте, а именно интересная информация заставляет интернет-пользователей делиться ссылками.

вторник, 15 июля 2014 г.

Выводим на странице объявления AdsManager похожие объявления

  Приветствую, читатели! Очередная статья в блоге будет посвящена компоненту AdsManager, а в частности - вопросу о том, как на странице объявления вывести похожие объявления. Под похожими будем понимать объявления из той же категории (рубрики).

Техническое задание:
1. На страницах объявлений сделать блок с объявлениями из этой же категории;
2. Выводимые объявления должны быть случайными (без сортировки по дате и какому-либо ещё полю);
3. В блоке должны выводиться изображения и заголовки объявлений;
4. В блоке не должно присутствовать объявление, которое просматривается на данный момент.

Сведения:
Версия Joomla 1.5.15
Версия AdsManager 2.6.5

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

среда, 18 июня 2014 г.

Вывод правильного окончания слова в зависимости от числа

  Всем читателям блога привет! Сегодня снова делюсь опытом решения вставшей у меня на пути задачи - вывод правильного окончания слова в зависимости от идущего перед ним числа. И вновь задачу я решал на стороне сервера, то есть на PHP.

Прежде всего, немного о задаче

  На сайте, который представляет собой каталог резюме, есть страница с описанием проекта. В нескольких абзацах этого описания речь идёт о представителях конкретных профессий, а рядом с названием профессии выводится число специалистов, которые ищут работу в данной сфере. Цифру, указывающую на число ищущих работу специалистов, нужно поддерживать актуальным.

  Переписывать после каждой новой регистрации текст бессмысленно и глупо. Во-первых, потому что в сутки на проекте регистрируется по 10-13 специалистов «нужных» тексту профессий, а во-вторых, потому что на отслеживание новых участников требовалось бы много времени. Если такие маленькие задачки не автоматизировать на начальном этапе, проект просто-напросто перестанет быть интересным даже его владельцу.

пятница, 30 мая 2014 г.

Тернарный оператор в PHP

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

  Я постоянно произвожу рефакторинг (что это?) кода на своём проекте, поэтому изучение нового существующего функционала языка программирования и постоянные поиски более удобных и компактных методов записи стали для меня привычкой. Я очень часто использую условные операторы if () {...} else {...}, и большая их часть предназначена для простого вывода на страницу того или иного результата. Как мне казалось, такое использование условных операторов крайне не оправдано и код наверняка можно сократить. И на этот счёт я был прав.