АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА

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

2014-10-30

5.51 MB

30 чел.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

(ФГБОУ ВПО «КубГУ»)

Физико-технический факультет

Кафедра теоретической физики и компьютерных технологий

Допустить к защите в ГАК

 .  . 2014 г.

Заведующий кафедрой

д-р. физ.-мат. наук, профессор

  В.Н. Тумаев

ДИПЛОМАЯ РАБОТА

АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА

Работу выполнил ____________________ Шевченко Александр Александрович

Специальность 230201 – Информационные системы и технологии

Научный руководитель

канд. физ.-мат. наук, доцент _____________________________ А. А. Мартынов

Нормоконтролёр

канд. физ.-мат. наук, доцент ______________________________А. А. Мартынов

Краснодар 2014

СОДЕРЖАНИЕ

[1] СОДЕРЖАНИЕ

[2] ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ

[3] ВВЕДЕНИЕ

[4] 1 SEO и её назначение

[4.1] 1.1 Определение и предмет поисковой оптимизации

[4.2] 1.2 История развития поисковой оптимизации

[4.3] 1.3. Основные элементы оптимизации

[5] 2 Виды работ SEO-специалиста

[5.1] 2.1 Работа над ключевыми словами

[5.2] 2.2 Работа над основным текстом

[5.3] 2.3 Работа с мета-тегами

[5.3.1] 2.3.1 Тег заголовка <title>

[5.3.2] 2.3.2 Тег описания <description>

[5.3.3] 2.3.3 Тег ключевых слов <keywords>

[5.4] 2.4 Технические работы над сайтом

[5.4.1] 2.4.1 Присваивание сайту понятного пользователю доменного имени

[5.4.2] 2.4.2 Выделение отдельного IP-адреса

[5.4.3] 2.4.3 Структурирование разделов сайта

[5.4.4] 2.4.4 Создание карты сайта sitemap

[5.4.5] 2.4.5 Управление индексацией с помощью служебного файла «robots»

[5.4.6] 2.4.6 Оптимизация динамичных страниц и программного кода

[5.4.7] 2.4.7 Использование каскадных таблиц стилей

[6] 3 Существующие инструменты оптимизации веб-страниц

[6.1] 3.1 Системы автоматического продвижения сайтов

[6.1.1] 3.1.1 Приложение Allsubmitter

[6.1.2] 3.1.2 Приложение Site-Auditor

[6.1.3] 3.1.3 Онлайн-инструмент Be1

[6.1.4] 3.1.4 Приложение Yazzle

[6.1.5] 3.1.5 Приложение Page Promoter

[6.1.6] 3.1.6 Приложение SeoRate

[6.1.7] 3.1.7 Система SeoPult

[6.2] 3.2 Системы анализа поисковой статистики

[7] 4 Проект программы автоматизации работы SEO-специалиста

[8] ЗАКЛЮЧЕНИЕ

[9] СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

[10] ПРИЛОЖЕНИЕ А

[11] ПРИЛОЖЕНИЕ Б

[12] ПРИЛОЖЕНИЕ В


ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ

SEO

(англ. Search Engine Optimization) – поисковая оптимизация

SEM

(англ. Search Engine Marketing) – поисковый маркетинг

SMM

(англ. Social Media Marketing) – маркетинг в социальных сетях

ТИЦ

тематический индекс цитирования

ВИЦ

взвешенный индекс цитирования

PR

(англ. Page Rank) – ранг страницы

ПМ

поисковая машина

CGI

(англ. Common Gateway Interface) – общий интерфейс шлюза

CSS

(англ. Cascading Style Sheets) – каскадные таблицы стилей

JSON

(англ. JavaScript Object Notation) – текстовый формат обмена данными, основанный на языке JavaScript

API

(англ. Application Programming Interface) – интерфейс программирования приложений

SOAP

(англ. Simple Object Access Protocol) – простой протокол доступа к объектам


ВВЕДЕНИЕ

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

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

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

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

Непосредственно перед выполнением дипломной работы были поставлены следующие цели:

  1.  снизить количество времени и трудозатрат на оптимизацию сайтов посредством разработки специализированного приложения;
  2.  реализовать в данном приложении функционал по работе с ключевыми словами и сбору поисковой статистики запросов пользователей;
  3.  учесть в приложении региональные особенности поиска пользователей по запросам;
  4.  включить в состав программного продукта функционал семантического анализа текста для определения его ключевых фраз.

АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА


1 SEO и её назначение

1.1 Определение и предмет поисковой оптимизации

Чтобы осознать непосредственно рассматриваемый предмет и его назначение, необходимо изучить его предметную область. Прежде всего, расшифруем саму аббревиатуру «SEO»: Search Engine Optimization (англ. оптимизация под поисковые машины, поисковая оптимизация).

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

Согласно исследованиям компании Forrester Research Inc в 2013 году, процент посетителей сайтов распределяется следующим образом:

  1.  Через поисковые системы – 81%;
  2.  По ссылке с другого сайта – 59%;
  3.  Через маркетинговые коммуникации – 56%;
  4.  Через телевидение – 48%;
  5.  Посредством онлайн-рекламы – 20%;
  6.  По радио – 19%;
  7.  Через рассылку электронной почтой – 10%.

Рисунок  - Распределение притока аудитории на сайты

Следовательно, наиважнейшим источником посетителей для сайта являются поисковые системы.

В последнее время всё чаще звучит определение поисковой оптимизации как ветви Интернет-маркетинга. Поисковый маркетинг, как следующий шаг в развитии SEO являет собой ту же поисковую оптимизацию, сместившую свой фокус, однако, в сторону поиска новых путей понравиться пользователю. Данная оптимизация сайта включает в себя не только техническую работу над страницами ресурса, но и анализ рынка поисковых услуг с учётом текущих потребностей в спросе и предложении. Эта новая ступень работы над качеством сайтов породила в наши дни на свет множество удобных для пользователей, сложных в технической реализации и, безусловно, полезных в своей тематической группе сайтов, что в целом благотворно сказалось на общем уровне качества Интернет-ресурсов.

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

Согласно исследованию компании Google, проведённому в 2012 году, имеется следующее распределение посетителей сайтов в поисковой выдаче в зависимости от позиции, показанное в таблице 1.

Таблица  - Распределение посетителей сайтов

Первая страница выдачи

Вторая страница выдачи

Позиция в выдаче

Процент посетителей

Позиция в выдаче

Процент посетителей

1-я позиция

30%

1-я позиция

6%

2-я позиция

15%

2-я позиция

4%

3-я позиция

7%

3-я позиция

2%

4-я позиция

5%

4-я позиция и ниже

менее 1%

5-я позиция

4%

6-я позиция

4%

7-я позиция

2%

8-я позиция

2%

9-я позиция

3%

10-я позиция

5%

Как видно из таблицы 1, наиболее успешными с точки зрения посетителей являются первые три строчки выдачи. Как правило, перед началом оптимизации ставится задача, на какое место в поисковой выдаче ожидается продвинуть сайт. Учитывая поведенческие факторы, такие, как потеря интереса у пользователей по мере удаления от вершины поисковой выдачи, целью оптимизации является непосредственно первая страница поисковика и три строчки второй страницы.

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

В целом, поисковая оптимизация делится на два вида: внешнюю и внутреннюю оптимизацию.

Внутренняя поисковая оптимизация – это набор действий и методов, направленных на улучшение внутреннего содержания и структуры сайта. К внутренней оптимизации непосредственно относится:

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

Рисунок  - Схема работ SEO-специалиста

К внешней оптимизации относится такие методы, как наращивание ссылочной массы на сайт и анализ работы, произведённой другими оптимизаторами. Наращивание ссылочной массы представляет собой приобретение (как коммерческое, так и добровольное) ссылок на продвигаемый сайт. На заре своего существования, поисковые системы ориентировались в основном на то, сколько ссылок имеет сайт и согласно этому присваивали им место в поисковой выдаче. Сейчас же поисковики научились более тщательно анализировать содержание сайта, что, несомненно, благоприятно отразилось на качестве Интернет-ресурсов.

Не смотря на то, что внутренняя оптимизация сайта стала более важна, нежели внутренняя, последний вид оптимизации также важен для повышения позиции сайта. Внешняя оптимизация влияет на такие показатели, как ТИЦ и PR.

ТИЦ (Тематический Индекс Цитирования) – индекс, разработанный компанией «Яндекс», отражающий, сколько сайтов по схожей тематике ссылаются на определённый ресурс. Данный индекс влияет только на позицию сайта в Yandex-каталогах.

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

PR (англ. Page Rank) – «ранг страницы», аналогичный метод компании «Google», определяющий количество и популярность станиц, ссылающихся на тот или иной ресурс. Каждой странице либо объекту в сети присваивается некоторое начальное числовое значение, которое изменяется в зависимости от количества ссылок на него. Суть метода в том, что все объекты, связанные гиперссылками представляются в виде графа и чем больше ссылаются на определённую страницу в сети, тем «важнее» она выглядит для поисковой системы. Примечательная особенность, отличающая этот метод от метода ТИЦ – это то, что ранг может присваиваться как страницам, так и любому объекту, то есть любому графу.

Кроме того, существует определённое деление на типы поисковой оптимизации в зависимости от применяемых методов, так называемые: «белая», «серая» и «чёрная» оптимизация.

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

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

Рисунок  - Пример "чёрных" методов оптимизации

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

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

Поисковая система в целом состоит из пяти основных программных компонентов:

  1.  «Паук» (англ. Spider) – модуль, скачивающий страницы из сети Интернет. Он воспринимает информацию страницы в режиме исходного кода и именно в таком виде сохраняет её в базе данных.
  2.  «Краулер» (англ. Crawler), что в переводе с английского означает «ползающий». Этот модуль ответственен за просматривание всех ссылок, имеющихся на странице и занесение их в базу данных. На основе этой информации он формирует путь, по которому будет двигаться «Паук».
  3.  Индексатор (англ. Indexer) – данный модуль разделяет страницу на составные элементы, такие как: заголовки, подзаголовки, основной текст, жирный и курсивный шрифт, а также прочие информативные элементы. Разделив, таким образом, страницу, он проводит её анализ в зависимости от текущего алгоритма поисковой системы.
  4.  База данных (англ. Database) – фактическое место хранения всей накопленной информации о веб-сайтах, собранной как «краулером», так и «пауком», а также результатов работы индексатора и прочей информации, необходимой для работы системы.
  5.  Система выдачи результатов (англ. Search engine results engine) – это программный модуль, просматривающий базу данных и выбирающий наиболее релевантные запросу пользователя страницы.

Рисунок  – Схема работы поисковой машины

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

Вначале «краулер» просматривает известные ему ресурсы в поиске новых ссылок. Он совершает регулярные проходы всех известных ему ссылок разыскивая при этом новые. Находя их, он выполняет по ним переход. Стоит отметить, что на каждое доменное имя «краулером» выделяется определённое время для поиска ссылок. После истечения этого времени, «краулер» отправляется дальше по сети, возвращаясь в следующем проходе.

Далее начинает свою работу модуль, называемый «пауком». Он пользуется найденными «краулером» ссылками, как картой, и скачивает содержимое страниц в режиме исходного кода и передаёт её для обработки индексатору. Этот модуль разделяет текст страницы на составные элементы: заголовки, жирный и подчёркнутый текст, выделение абзацев и прочее. Это делается для удобства поиска по проиндексированным документам. Обработанные страницы поступают в базу данных поисковой системы. Следует отметить, что на данный момент поисковые роботы проводят индексацию мультимедийных данных (таких, как аудио- и видеофайлы, флеш-анимация и прочие крайне неэффективно. Этот факт оказывает существенное влияние на выбор методов поисковой оптимизации сайта. Ввиду этого многие SEO-специалисты рекомендуют закрывать программный код внутри страницы специальными HTML-тегами для предотвращения индексации.

Рисунок  - Схема извлечения данных из поисковой машины

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

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

  •  ресурсы, доступ к которым защищён паролем;
  •  не связанные с другими сайтами ресурсы;
  •  сайты, представляющие из себя так называемый «информационный шум»: брошенные, незавершённые сайты;

1.2 История развития поисковой оптимизации

Период с 1997 по 1999 годы можно считать временем зарождения поисковых систем. Новые сайты добавлялись в базу данных поисковой машины вручную и сортировались по специальным тематическим каталогам. Программы индексации на тот момент были не столь совершенны и применяли лишь малое количество низкоэффективных алгоритмов ранжирования. В таких условиях недобросовестные оптимизаторы пользовались массой различных уловок и ухищрений, чтобы добиться неправомерно высокого рейтинга в глазах поисковой машины. Работа по оптимизации внутреннего содержания страниц сайта практически не проводилась, а мета-информация, заголовки, комментарии страниц, ключевые слова и множество другой служебной информации было переполнено нерелевантными, но пользовавшимися популярностью словами. Сотрудники поисковых компаний были не в силах уследить за безмерным множеством страниц и лишь со временем поисковые машины научились фильтровать недобросовестные методы держателей сайтов.

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

После спама мета-данных многие оптимизаторы обратились к такому сервису, как ссылочные фермы (англ. link farm).  Ввиду того, что поисковая машина оценивает качество и количество ссылок на тот или иной сайт, данные ресурсы предоставляли сайтам большое количество ссылок на требуемые страницы, создавая тем самым ссылочную сеть. Не смотря на заявления, будто данные ресурсы призваны для создания единого ссылочного пространства, настоящая их цель была получить верхние позиции в поисковой выдаче для определённый сайтов. В конечном итоге, поисковики научились объективно оценивать сайт и с учётом этих методов.

Рисунок  - Пример ссылочной фермы

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

В настоящее время алгоритмы работы поисковых систем настолько усложнились, что они способны учитывать многие сотни факторов, влияющих на качество сайта. Если в период 1998 – 99 г. многие оптимизаторы прибегали к таким методам, как большое количество не связанных с темой сайта ключевых слов, что повышало вероятность попадания на первые страницы поисковой выдачи, то сейчас такие манипуляции невозможны. Многие поисковые системы, в том числе Google и Yandex, научились распознавать и пресекать такого рода оптимизацию. Помимо прочего, был введён лимит на длину читаемых мета-тегов и начался их анализ качества и благодаря этому верхние позиции поисковой выдачи стали более релевантными запросам пользователей. Также свою роль сыграл анализ факторов, не связанных с контентом страницы, такие как ссылочная популярность.

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

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

Рисунок  - Пример трёхуровневой структуры сайта

Другой аспект – это написание грамотного кода HTML-страниц. Это также довольно важно, так как экономит время чтения страницы для поисковика. При этом следует учитывать несколько факторов:

  •  все парные теги должны быть закрыты (например: <head></head>)
  •  не следует использовать html-теги, не поддерживаемые популярными браузерами
  •  не следует использовать устаревших тегов (например: <frame> или <bgsound>)
  •  также не стоит использовать элементы кода, которые поисковая машина ещё не умеет обрабатывать (например: некоторые теги XML)

Для того чтобы быть уверенным в качестве своего кода, необходимо следовать стандартам Консорциума Всемирной паутины (Wide Web Consortium, W3C) [10]. Приведение страницы к стандартам Консорциума не повлияет на позицию в поисковой выдаче, но облегчит работу непосредственно поисковой машины с сайтом.

  1.  
  2.  

1.3. Основные элементы оптимизации

  •  Тег <title> веб-страницы. Является заголовком всей страницы и появляется в поисковой выдаче и заголовке окна браузера.
  •  Тег <description> веб-страницы. Отображается в результатах поиска под заголовком как краткое описание страницы. Имеет фиксированную длину, различную у разных поисковых машин и их версий.
  •  Тег <keywords> веб-страницы. Отвечает за то, какие ключевые запросы будут присвоены странице. По этим ключевым словам пользователями производится поиск, а поисковиками – ранжирование страниц. В настоящее время считается необязательным, так как многие поисковики научились более тщательно анализировать содержимое страницы.
  •  Основной текст. При этом важно учитывать плотность ключевых фраз непосредственно в тексте. Также важно, чтобы ключевые слова располагались ближе к началу текста и соответствовали его содержанию.
  •  Расположение текста. Важно учитывать особенности дизайна сайта и психологические аспекты пользователей для грамотного расположения текста на странице.
  •  Заголовки h1, h2, h3 и прочие. Указывать правильные заголовки критично, так как современные поисковые машины принимают этот аспект как важный при сканировании и ранжировании страниц.
  •  Различное выделение текста (полужирный, курсив, подчёркнутый текст и прочее). Данное выделение воспринимается поисковиками как важная информация. Ввиду этого рекомендуется уместное выделение текста без излишнего злоупотребления.
  •  Понятный URL. Для того, чтобы посетителям было комфортнее ориентироваться на сайте и для лучшего запоминания адресов, следует применять понятные человеку адреса. Например: http://mysite.com/diectory1/page1.php выглядит понятнее и лучше запоминается, чем http://mysite.com/#newwindow=1&q=cfvsq+j%2Csxysq+pgfhjc.
  •  Веб-дизайн. Наличие своего стиля в оформлении сайта, а также его удобство повышают привлекательность ресурса в глазах пользователя.
  •  Атрибуты <alt> и <title> в теге изображения <img>. Это нужно для того, чтобы при отключенном в браузере отображении изображений пользователь мог ориентироваться в документе, не теряя смысловой линии. Считается устаревшим отношением к времени, когда скорость Интернет-трафика была недостаточной и для её повышения отключались некритичные для информативности элементы. Поисковые системы, всё ж, считают указывание этих тегов хорошим тоном и до сих пор учитывают их при индексации.
  •  Релевантные заголовки ссылок тега <a href>. Это позволяет пользователю представлять, куда он попадёт при переходе по данной ссылке. Считается хорошим тоном и учитывается поисковиками при индексации.
  •  Чёткая структура ссылок. Определённая упорядоченная система ссылок позволяет не только перенаправить поток пользователей на определённую, нужную страницу, но и поощряется со стороны поисковых систем. Иерархия и порядок в ссылках сайта (особенно внутренних) позволяет сделать сайт более дружественным в навигации и смысловом наполнении.
  •  Применение каскадных таблиц стилей (CSS). Данные таблицы призваны для правильного и удобного позиционирования всей информации на сайте. Вместе с элементами веб-дизайна, они составляют основу внешнего представления ресурса. Использование данных таблиц также поощряется поисковыми системами.
  •  Вложенность не выше трёх. Как уже упоминалось выше, не стоит прибегать к вложенности папок выше трёх, так как это замедлит либо вовсе помешает работе поисковой машины.
  •  Информационное меню внизу сайта. Данное меню, помимо боковой и верхней колонки, способствует удобству в навигации и также поощряется поисковиками.
  •  Карта сайта (sitemap). Данная карта не отображается для пользователей и хранится в специальном файле sitemap.xml. Данный файл предназначен исключительно для служебного пользования поисковой системой и содержит полную структуру всего сайта, что упрощает его индексацию.
  •  Тематическая релевантность. Очень важно, чтобы по содержанию сайт соответствовал заявленной тематике. Подмена или несоответствие содержания сайта выбранной теме влечёт за собой санкции со стороны поисковой системы.
  •  Отдельный IP. Расположение сайта на одном постоянном IP-адресе упрощает работу поисковиков и вызывает у них больше доверия.

В процессе оптимизации следует учитывать такие факторы, как Google SandBox (англ. песочница). Данное явление затрагивает в основном англоязычные сайты и заключается в замедлении сайта в системе ранжирования Google. Этот эффект направлен на ресурсы, созданные относительно недавно и призван замедлить продвижение сайтов, оптимизируемых в сжатые сроки, в том числе чёрными методами.

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

Рисунок  - Примеры презентации

Одним из главных условий притока посетителей на сайт в последние годы стало использование так называемой презентации. Она являет собой теги <title> страницы и <meta> описания. Приемлемой с точки зрения, как поисковой машины, так и человека считается презентация, несущая информативность и соответствующая содержанию страницы. Именно основываясь на этих факторах пользователь, вводивший запрос, обратит внимание на определённый ресурс [8].

АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА


2 Виды работ SEO-специалиста

Деятельность SEO-специалиста в общем виде можно разделить на два вида: внешняя оптимизация и внутренняя оптимизация.

К внешней оптимизации относится работа со всевозможными ссылками, как по направлению из страницы, так и направленными на страницу.

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

  •  работа над ключевыми словами;
  •  работа над контентом сайта;
  •  работа с мета-тегами страниц;
  •  технические работы над сайтом.

2.1 Работа над ключевыми словами

Ключевым словом является слово или фраза, которую вводит в строку запроса поисковой машины пользователь. От этой фразы, помимо прочих факторов, зависит, какой набор страниц выдаст поисковик после ранжирования результатов. На данный момент ведущие поисковые системы, такие, как Google или Яндекс, учитывают в своих алгоритмах ранжирования ключевые фразы не только в соответствующих тегах веб-страницы, но и непосредственно в тексте [9].

При этом, подбирая ключевые фразы, необходимо помнить простые правила:

  •  Ключевая фраза должна быть точной. Пользователь, зачастую, проводя поиск в сети Интернет, ищет вполне специализированную информацию. К примеру, запрос «утюги» является слишком общим. Пользователь, скорее всего, введёт запрос «утюги с отпаривателем» или название определённой модели утюга.
  •  Ключевая фраза должна быть релевантной. Если на странице представлена информация о кипятильниках, а ключевые слова утверждают, что страница об утюгах, то пользователь будет введён в заблуждение и, скорее всего, покинет эту страницу почти сразу. Также это влечёт за собой санкции со стороны поисковой системы.
  •  Ключевая фраза должна обладать определённой плотностью. Рекомендуемая плотность является эмпирической величиной и составляет около 3-5% от общего количества слов в тексте.

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

Существует множество эмпирических формул для определения плотности ключевых слов на странице. Вот некоторые из них:

   (1)

где P – искомая величина плотности, W – общее количество слов в тексте, K – количество ключевых слов.

Таким образом, имея текст в 700 слов, мы попадём в рекомендуемый диапазон ключевых слов при их количестве от 21 до 35.

  (2)

где P – искомая величина плотности, K – количество ключевых слов, F – количество ключевых фраз, W – общее количество слов в тексте.

При тексте в 700 слов рекомендуемый диапазон будет достигнут при наличии в тексте 15 ключевых фраз, состоящих из двух слов.

Данные расчёты не указывают о положении ключевых слов в тексте. Имея всё те же 17-35 ключевых слов, но разместив их, к примеру, в конце текста страницы, а не в начале, можно получить разные результаты. Поисковый робот, зайдя на страницу и не обнаружив в её начале ключевой информации, не станет тратить свои ценные производительные ресурсы и оставит страницу, пометив как нерелевантную. Помимо этого должна сохраняться смысловая и стилистическая структура информации веб-страницы, иначе это может оттолкнуть пользователей, пришедших на сайт.

На эти параметры также влияет такое важное в оптимизации понятие, как близость ключевых слов. Основной принцип его таков: ключевые слова во фразе должны быть расположены как можно ближе. Стоит помнить, однако, что смысловая ценность текста не должна теряться и в данном случае. К примеру, фраза «У нас вы найдёте большой выбор тефлоновых утюгов с отпаривателем» более оптимизирована под запрос «тефлоновые утюги с отпаривателем», чем «Множество наших тефлоновых утюгов имеют функцию отпаривания». В данном примере расстояние между ключевыми словами больше за счёт внедрения слов «имеют функцию» [5].

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

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

Плотность и расстояние между ключевыми словами являются одними из структурных характеристик веб-страницы. Расположение информации на сайте в общем можно охарактеризовать схемой, приведённой на рисунке 9. В разделе 1 указываются заголовки статей, логотипы, основное меню, контактные телефоны, форма авторизации и прочие элементы. Колонки 3 и 5, как правило, используются как вспомогательное меню и информационная (чаще рекламная) панель. В разделе 2 имеется различного рода служебная информация, как например, более развёрнутое название фирмы, дополнительные контактные данные, адреса и  прочая информация. Такую структуру имеет большинство сайтов в сети Интернет. Зная эту структуру, следует учитывать, что поисковые роботы читают сайт слева-направо и сверху-вниз. Тем самым, расположение ключевых слов, заголовков, контактных данных и другой важной информации необходимо выбирать ближе к верхней части страницы. Изображения же, как и код PHP, JavaScript и другую неиндексируемую информацию стоит размещать ниже на странице. Данные рекомендации основаны также на том, что поисковые системы имеют ограниченные ресурсы и не обнаружив существенной информации в шапке сайта и верхних частях нижележащих колонок, они оставят индексацию страницы и перейдут на следующую. Ввиду этого рейтинг страницы может быть снижен, что не является желательным.

Рисунок  - Пример шаблона сайта

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

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

Ещё одним важным фактором при работе с ключевыми словами является коэффициент эффективности ключевого слова KEI (англ. Keyword Effectiveness Index). Это числовой показатель, впервые предложенный Самантой Рой, одним из ведущих специалистов в области поисковой оптимизации. Этот коэффициент рассчитывается для каждой поисковой машины в отдельности и опирается на два параметра:

  1.  Частоту поиска (популярность) ключевой фразы в выбранном поисковике.
  2.  Количество сайтов-конкурентов (конкурентность), использующих ту же ключевую фразу.

Учитывая оба эти параметра, вычисляется коэффициент эффективности ключевой фразы:

    (3)

где KEI – коэффициент эффективности ключевой фразы, P – параметр популярности фразы за последние два месяца, C – конкурентность фразы.

Шкала эффективности коэффициента KEI распределяется следующим образом:

  •  коэффициент меньше 10 – неэффективная фраза;
  •  коэффициент в пределах от 10 до 100 – фраза средней эффективности;
  •  коэффициент в пределах от 100 до 400 – фраза высокой эффективности;
  •  коэффициент свыше 400 – сверхэффективная фраза.

2.2 Работа над основным текстом

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

Рекомендуемая длина текста на каждой странице – не менее 250 слов. Данная величина обусловлена тем, что поисковый робот имеет ограниченные аппаратно-программные ресурсы, а пользователи могут потерять интерес к сайту при большом количестве однотипной информации на нём. Важно, чтобы контент страницы периодически обновлялся. В этом случае поисковые роботы будут охотнее индексировать страницу, так как в их алгоритмах поведения приветствуется сайты, имеющие новую информацию и периодически её обновляющие. Период обновления может колебаться от минут и секунд (для сайтов биржевых сводок) до дней и месяцев (для периодических Интернет-изданий и новостных лент).

При этом написание уникальных, единственных в своём роде текстов для сайта является существенным фактором при оптимизации, но, как правило, отнимает большое количество времени. Для ускорения процесса написания статей, существует несколько проверенных на практике методик. К ним можно отнести:

  •  создание блога/форума. Поисковые системы приветствуют наличие форумов и блогов на сайтах, так как они довольно часто обновляют свою информацию и содержат большое количество ссылок от пользователей.
  •  включение в структуру сайта раздела «Часто задаваемые вопросы». Данный раздел представляет из себя базу знаний, которая со временем наполняется пользовательскими вопросами.
  •  создание новостной ленты. Лента новостей с информационных ресурсов способствует наполнению сайта контентом, а также привлекает дополнительных пользователей за счёт свежих новостей.
  •  открытие рубрики  «Советы эксперта». Подобно разделу часто задаваемых вопросов, эта рубрика будет способствовать пополнению сайта контентом, а также улучшит взаимодействие с пользователями.
  •  открытие рубрики «Фото/Видео/Совет дня». В этой рубрике публикуется соответствующий контент, выбранный пользователями или администраторами сайта. Накапливаясь, данная информация будет способствовать увеличению количества уникального контента на сайте.

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

При работе над контентом страницы рекомендуется пользоваться такими приёмами, как, к примеру «Призыв к действию» (англ. Call to Action). Данный приём заключается в размещении на странице активных ссылок на формы оформления заказов (для Интернет-магазинов), различные формы обратной связи, в том числе и страницы заказа обратного звонка и другие действия [4].

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

2.3 Работа с мета-тегами

2.3.1 Тег заголовка <title>

Тег <title> являет собой заглавие всей страницы. Именно этот тег поисковая машина демонстрирует в виде ссылки на страницу в результатах поисковой выдачи. Кроме того, от привлекательности информации в данном теге во многом зависит, перейдёт ли пользователь на сайт. В связи с этим можно выделить следующие аспекты, влияющие на совместимость с поисковой машиной:

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

Средняя длина заголовка (исключая служебные символы, стоп-слова, пробелы) для ПМ не превышает 60 символов, а у некоторых – 70 символов. Стоит учитывать, что ввиду ограниченности ресурсной базы и при жёстких временных ограничениях на обработку каждой страницы, ПМ может считывать количество символов заголовка меньше заявленного. Все остальные символы сверх лимита поисковиком игнорируются и не рассматриваются [2].

В теге заголовка не рекомендуется использовать так называемые стоп-слова. Данные слова настолько обще описывают предметную область, что поисковые системы при индексировании их игнорируют. Также к стоп-словам относят местоимения, предлоги, служебные символы вроде знаков восклицания или вопроса, отдельные символы, буквы алфавита или цифры (кроме номеров телефонов). Несмотря на то, что они игнорируются поисковой машиной, некоторые из этих стоп-слов вносят ясность в содержание заголовка и улучшают его восприятие пользователем [7]. Ввиду этого не стоит вовсе отказываться от стоп-слов, но и излишне насыщать ими текст также не принесёт пользы.

Следует выделить также теги заголовков текста: <h1>, <h2>,…, <h6>. Эти теги делают возможным смысловую разметку текста страницы и улучшают читаемость текста для пользователя.

Нумерация тегов может быть соотнесена с их важностью для поисковика. Важность уменьшается от 1 до 6. Они также являются хорошим местом для размещения ключевых слов, но эти теги следует применять с осторожностью. При чрезмерном и необоснованном помещении текста в данные теги могут быть расценены поисковыми роботами как недобросовестная оптимизация и навлечь санкции [10].

Кроме этого, текст в этих тегах, как и в тега ссылок <a> можно выделить полужирным шрифтом, что также привлечёт внимание поисковика. Для поисковой машины полужирный текст в целом означает важную для понимания информацию и является приоритетной. Стоит отметить, что полезность данного выделения тем меньше, чем чаще оно встречается в тексте.

2.3.2 Тег описания <description>

Данный тег является невидимым для пользователя и содержит в себе краткое описание страницы. Содержание этого тега не влияет на позицию сайта в итоговой выдаче. Тем не менее, этот тег представляет коммерческую презентацию сайта в поисковой выдаче. Данная презентация составляется поисковой системой непосредственно из самого описания и информации на странице. Наличие грамотно подобранного описания, содержащего релевантные ключевые слова, может убедить пользователя перейти непосредственно на сайт [8].

Рекомендуемая длина мета-описания ограничивается в среднем 200-250 знаками, включая пробелы и служебные символы. Размер описания колеблется в зависимости от особенностей поисковой машины и текущей версии её алгоритмов. Все символы сверх указанной величины будут проигнорированы поисковиком. Не следует использовать ключевые фразы в описании страницы. Существуют рекомендации по ограничению количества встречаемости ключевых слов в описании до 3-5 раз на страницу [1].

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

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

2.3.3 Тег ключевых слов <keywords>

Тег ключевых слов являет собой служебную информацию страницы, в которой указывается краткий набор ключевых фраз, по которым следует характеризовать деятельность сайта. Длина читаемой длины тега для поисковиков в среднем равна 200 символам, включая пробелы и служебные символы [1].

В начале 90-х, когда поисковые машины только начинали своё становление, они производили ранжирование страниц, опираясь непосредственно на ключевые слова в теге <keywords>. Это приводило к частым несоответствиям заявленной и фактической информации на сайте. Вследствие этого, большинство поисковиков, в том числе и наиболее крупные, такие, как Google и Яндекс, стали меньше учитывать данный тег при ранжировании результатов поиска.

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

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

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

  •  различные варианты ключевых слов (склонения существительных, спряжения глаголов, множественные формы);
  •  сокращённые формы ключевых слов;
  •  жаргонизмы и прочие узкоспециальные термины, присущие освещаемой области;
  •  орфографические ошибки, опечатки и прочие формы неправильного описания.

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

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

Рисунок  - Пример объединения ключевых слов

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

2.4 Технические работы над сайтом

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

  •  присваивание сайту понятного пользователю доменного имени;
  •  выделение отдельного IP-адреса;
  •  структурирование разделов сайта;
  •  создание карты сайта sitemap;
  •  управление индексацией с помощью служебного файла «robots»;
  •  оптимизация динамичных страниц и программного кода;
  •  использование каскадных таблиц стилей.

2.4.1 Присваивание сайту понятного пользователю доменного имени

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

  •  доменное имя не должно быть длинным. Длина имени зависит от того количества информации, которое следует донести до пользователя, определённых особенностей работы предприятие, которое описывает данный сайт и прочих факторов. При этом, если его длина будет слишком большой, он станет неудобным для пользователей. К примеру, доменное имя «kubsu.ru» будет удобнее в запоминании и воспроизведении, чем «kubanstateuniversity.ru».
  •  доменное имя не должно быть трудно произносимым. Из практических и рекламных соображений, доменное имя, которое трудно произнести будет хуже запоминаться пользователями и труднее передаваться от человека к человеку.
  •  доменное имя не должно быть трудно запоминаемым. Адрес сайта, который легко запомнить, будет легче распространяться и пользоваться большей популярностью среди пользователей.
  •  Доменное имя должно отвечать тематике сайта. Не следует смешивать сайты разных тематик под одним доменным именем. Если, к примеру, на сайте имеются страницы, посвящённые утюгам и страницы, посвящённые домашним животным, то им следует выдать различные доменные имена. Данная стратегия поощряется как поисковыми системами, так и пользователями ввиду своего удобства.

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

К сайтам, обладающим трудно запоминаемыми именами можно отнести сайты с динамически генерируемыми страницами. К примеру, поисковая выдача Google по запросу «тефлоновые утюги с отпаривателем» имеет вид:

https://www.google.ru/?gws_rd=ssl#newwindow=1&q=%D1%82%D0%B5%D1%84%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5+%D1%83%D1%82%D1%8E%D0%B3%D0%B8+%D1%81+%D0%BE%D1%82%D0%BF%D0%B0%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%BC.

Разумеется, если страница будет иметь такой адрес, то для его запоминания потребуются определённые усилия, которые пользователь не всегда готов предпринять. Поисковые роботы при индексации также отдают предпочтение более коротким адресам. Для таких страниц следует применять более простые адреса, обладающие меньшей длинной и лишённые специальных символов, как, к примеру, знак процента «%». В осуществлении этого помогут специальные инструменты, вроде «mod_rewrite» или специального сервиса Sitemaps от Google.

Стоит заметить, что не рекомендуется менять доменное имя уже проиндексированных сайтов. Если не указать нового адреса сайта, поисковая система может решить, что он более не существует и исключить его из своих баз данных. Поэтому изменение доменного имени является крайне нежелательной процедурой, а если она неизбежна, то следует воспользоваться перенаправлением номер 301 в настройках веб-сервера. Данное перенаправление выведет пользователей и поисковых роботов на новый сайт.

2.4.2 Выделение отдельного IP-адреса

Выделенный IP никоим образом не улучшит позиций сайта в поисковой выдаче. Но на практике может возникнуть ситуация, когда другой сайт, являющийся соседом по IP, может пользоваться «чёрными» методами оптимизации или содержать контент, не приемлемый к показу. Тогда поисковик, опираясь на собственную политику или действующее законодательство, может заблокировать данный IP-адрес и, как следствие, все сайты, ассоциированные с ним.

Не стоит путать выделенный IP и выделенный сервер. Выделенный сервер представляет собой физически отделённый от прочих носитель данных, на котором располагается определённая информация. Аренда или содержание собственных серверов обладает высокими затратами и не всегда целесообразна. К выделению отдельного сервера стоит прибегать лишь в случае, когда сайт является слишком крупным (сайты интернет-магазинов) или содержит ценную информацию (сайты крупных корпораций или государственных структур). Выделение же IP не разделяет пространственно данные одного сайта от другого на жестком диске веб-сервера. Это лишь позволяет придать соответствие определённого сайта определённому адресу.

2.4.3 Структурирование разделов сайта

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

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

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

Рисунок  - Структура сайта с множеством точек входа

При структуре, предложенной на рисунке 11, часть содержимого, как например «Продукция» будут труднодоступны ввиду вложенности, равной четырём. ПМ не смогут проиндексировать данный сайт, а если и проиндексирует, то данный процесс растянется на долгое время.

Рисунок  - Пример структуры сайта с множественными точками входа

На рисунке 12 показана более корректная структура сайта, обеспечивающая уровень вложенности, равный двум. Это обеспечивает более быстрый доступ к важной информации. Такая вложенность является более правильной как для работы поисковика, так и для удобства пользователей.

Проектируя структуру сайта важно помнить о пирамидальной структуре точек входа, которая показана на рисунке 13. При этом каждая из страниц сайта рассматривается как потенциальная точка входа.

При создании структуры сайта с множественными точками входа существует ряд рекомендаций:

  •  каждая страница должна быть самостоятельной по информационному содержанию и структурному положению на сайте;
  •  страницы сайта должны быть оптимизированы под различные ключевые слова для расширения потенциальной аудитории;
  •  внешний вид каждой из страниц должен соответствовать единому стилю сайта;
  •  страница должна быть оптимизирована для улучшения индексации;
  •  доступ к важной информации должен осуществляться за минимальное количество действий со стороны пользователя.

Рисунок  - Пирамидальная структура сайта

2.4.4 Создание карты сайта sitemap

Карта сайта – это страница или документ, содержащий полный список ссылок на страницы сайта. Она может находиться на сайте как отдельная страница, а может – в корневом каталоге в виде файла с расширением *.xml. Имея карту, до любой страницы сайта можно добраться в два перехода: первый – с главной страницы до карты сайта, второй – с карты сайта до нужной страницы. Карта сайта очень удобна для пользователей, так как они могут добраться по ней к любой интересующей их странице, не блуждая по разделам сайта. Поисковые роботы, в свою очередь, приветствуют карты сайта, так как они содержат большое количество входных ссылок, которые облегчают их работу.

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

Существуют рекомендации, согласно которым, размер страницы с картой не должен превышать 101 Кбайт, а количество ссылок на ней – 100. Для больших сайтов, вроде Интернет-магазинов, где количество страниц и, соответственно, ссылок на них в карте превышает 100, рекомендуется разбивать карту на несколько частей. При этом размещение нескольких ссылок с картами сайта на главной странице может быть громоздким, а в некоторых случаях просто неприемлемым. В данной ситуации следует создать отдельную страницу, где будут размещаться ссылки на карты. Таким образом, для пользователей и поисковых пауков ссылочный путь увеличится на один переход, но он будет мене обременительным за счёт уменьшение размеров каждой карты.

2.4.5 Управление индексацией с помощью служебного файла «robots»

Файл Robots.txt (англ. Robots Exclusion Protocol – протокол исключений для роботов) – это файл, в котором присутствуют инструкции для поисковых роботов. При помощи данного файла можно указать, какие страницы сайта не следует индексировать. Он размещается в корневом каталоге файловой системы сайта. Данный файл – это первое, что просматривает поисковый робот, когда заходит на сайт.

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

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

Кроме того, существуют также соображения безопасности. Используя Robots.txt можно заблокировать доступ к определённым участкам сайта, таким, как каталог «cgi-bin». Этот каталог (CGI, англ. Common Gateway Interface – общий интерфейс шлюза) содержит скрипты и программный код для осуществления интерфейса между приложениями и веб-сервером. Не смотря на то, что скрипты могут находиться в любой части сайта, как правило, самые важные программные элементы располагают именно в этом каталоге. То же касается и каталогов, хранящих пароли или другую важную информацию.

Злоумышленники могут проникнуть в эти каталоги под видом поисковых пауков, что может привести к непредсказуемым последствиям, зачастую печальным. Поэтому следует воспользоваться протоколами исключения и обезопасить сайт. К примеру:

User-agent: *

Disallow: /cgi-bin/

Данные инструкции запрещают всем поисковым роботам индексировать каталог «cgi-bin». При использовании данных инструкций следует быть осторожным, так как они могут вносить помехи в нормальную индексацию целевых страниц, если они внесены в исключения.

Неверно считать, будто данные инструкции каким-либо образом влияют на приоритеты поисковой системы при индексации, увеличивая рейтинг доступных страниц. Инструкции файла Robots.txt лишь исключают из индексации указанные области сайта.

Помимо «Disallow» существует также инструкция «Allow», позволяющая более полно управлять поведением поисковых роботов на сайте. Также существует мета-тег <ROBOTS>, осуществляющий те же функции, что и файл Robots.txt. Использование данного мета-тега нежелательно ввиду того, что не все поисковые машины его воспринимают, в отличие от файла с аналогичными функциями.

2.4.6 Оптимизация динамичных страниц и программного кода

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

К таким технологиям относятся:

  •  Hypertext Preprocessor (файлы с расширением .php);
  •  Java Server Pages (файлы с расширением .jsp);
  •  Active Server Pages (файлы с расширением .asp);
  •  Cold Fusion Pages (файлы с расширением .cfm);

К примеру, URL сайта, использующего динамическое содержимое, будет выглядеть так: «http://www.mysite.ru/page.php?pagecont=5».

Это говорит о том, что шаблон «page.php» обращается к базе данных, чтобы запросить данные, соответствующие содержимому 5. Этот адрес называется параметром, а сама адресная область – строкой запроса. Поисковые машины, заходя на сайт, обращают внимание на эту строку, ориентируясь на специальные символы, используемые в таких запросах. Это:

  •  вопросительный знак (?);
  •  знак процента (%);
  •  арифметические операторы: (= и +);
  •  знак амперсанда (&);
  •  знак доллара ($).

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

К примеру: «http://www.mysite.ru/page.php?pagecont=5&pagemod=simple».

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

  •  отказ от динамической структуры в пользу статической. Это полностью решает проблемы индексации, но не всегда представляется возможным;
  •  уменьшение количества служебных и стоп-символов для поисковика в адресе страницы. Это возможно осуществить при помощи специальных утилит;
  •  применение протокола исключений «robots». При помощи инструкций протокола исключений можно сообщить роботу, какие страницы не следует индексировать, чтобы опустить повторяющиеся страницы;
  •  применение техники «переговоров» браузера и сервера. Идея данной техники состоит в том, чтобы наладить сообщение между пользовательским браузером и сервером для обмена служебной информацией (такой, как кодировка, язык и прочее). Это позволяет определить, в каком именно виде предоставить контент пользователю, позволяя наладить взаимодействие между браузером и сервером в удобном для обоих виде.

Программный код, такой как PHP или скрипты языка Java плохо воспринимаются поисковой машиной. Поэтому его следует переносить в отдельные файлы и только лишь вызывать на странице. Это освободит большее пространство, делая веб-страницу более удобной для поисковых роботов.

Ещё одна из распространённых технологий, применяемых при создании сайтов – это Flash-анимация. Эта технология позволяет создавать визуально привлекательные для пользователей страницы, но она  плохо совместима с поисковыми машинами. Современные поисковики, такие как Google или Яндекс, обучены частичной индексации информации, заключённой во Flash, способны переходить по ссылкам в её структуре, но данная технология по-прежнему содержит слишком мало текста для индексирования. Чтобы сохранить визуальные преимущества Flash и быть корректно проиндексированными поисковой системой, следует воспользоваться одним из следующих приёмов:

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

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

2.4.7 Использование каскадных таблиц стилей

Каскадные таблицы стилей (CSS, англ. Cascading Style Sheets) – это набор методов для форматирования текста веб-страницы. Для поисковой оптимизации каскадные таблицы стилей являются очень удобным инструментом. Во-первых, они улучшают отображение текстовой информации на странице, задавая такие её параметры, как: цвет, шрифт, размер, расположение на странице и прочие характеристики. Также они могут изменить внешний вид некоторых тегов, к примеру, тегов заголовка <h1>, <h2>,…, <h6>, тегов выделения <strong>, внешний вид ссылок сообразно тому, как они должны выглядеть в пределах дизайна той или иной страницы либо же целого сайта. Во-вторых, они уменьшают вес страницы, освобождая место за счёт выведения всей информации о стилях в отдельные файлы с расширением *.css. Это также значительно облегчает индексирование страниц поисковыми роботами, она происходит быстрее и полнее, так как роботы не тратят свои ресурсы на код стиля, а больше мощности уделяют непосредственно информации.

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

АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА


3 Существующие инструменты оптимизации веб-страниц

Для повышения эффективности труда SEO-специалиста существует множество различных инструментов, автоматизирующих его работу. Данное программное обеспечение ориентировано на:

  •  автоматическое продвижение сайтов в поисковых системах;
  •  анализ поисковой статистики;

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

3.1 Системы автоматического продвижения сайтов

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

  •  анализ программного кода веб-страниц;
  •  отслеживание места страниц в поисковых системах по запросам;
  •  занесение страниц в списки каталогов;
  •  помощь в составлении семантического ядра сайта;
  •  отслеживание величин рейтинга страниц в поисковых системах (ТИЦ, ВИЦ, PR);
  •  анализ ссылок, направленных на страницы;
  •  выявление неработающих и тупиковых ссылок на страницах;
  •  помощь в анализе оптимизационной деятельности конкурентов;
  •  автоматическая закупка входящих ссылок и эффективное управление ими.

Согласно исследованию компании «ВебПроекты» за 2012 год, можно сделать вывод о распределении популярности инструментов автоматического продвижения среди компаний, занимающихся оптимизацией веб-страниц. Исследование затрагивало российский сегмент предпринимательства и включало более 100 компаний [3]. Графическое представление исследования указано в рисунке 14.

Рисунок  - Распределение популярности инструментов автоматического продвижения веб-страниц среди оптимизационных компаний

Аналогично выглядит распределение для индивидуальных оптимизаторов, представленное на рисунке 15. Основываясь на этих данных можно сделать вывод о том, что частные оптимизаторы более предпочитают готовые продукты, а оптимизационные компании – наоборот, более настроены на разработку собственных приложений. Это связано с тем, что готовые программные продукты являются более затратными для предприятий за счёт корпоративного лицензирования. Частным же оптимизаторам бывает нецелесообразно прибегать к собственным программам из-за временных и трудозатрат на их создание.

Рисунок  - Распределение популярности инструментов автоматического продвижения веб-странниц среди индивидуальных оптимизаторов

Многие производители предоставляют возможность пробного использования своих программ, но как показывает практика, функционал пробных версий зачастую сильно ограничен и время их использования не позволяет производить длительного сопровождения SEO-проектов. Все они имеют в целом схожий набор возможностей, краткое описание оторых представлено в таблице 2.

Таблица  - Программные средства для атоматического продвижения сайтов

Название

Адрес

Пояснение

Allsubmitter

www.allsubmitter.ru

Данный инструмент позволяет регистрировать сайты в различных каталогах

Site-Auditor

www.site-auditor.ru 

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

Be1

www.be1.ru 

Онлайн-приложение, позволяющее проанализировать сайт для поискового продвижения

Yazzle

www.yazzle.ru 

Данное приложение является комплексным инструментом поискового продвижения сайтов, позволяющим также определять стоимость закупки входящих ссылок и анализировать ссылки на индексацию в поисковике Яндекс

Page Promoter

www.netpromoter.ru 

Приложение позволяет работать как со статистическими поисковыми данными, так и проводить анализ текущего состояния сайта в поисковых системах

SeoRate

www.seorate.ru 

Аналитический инструмент для мониторинга видимости сайта и его рейтинга в поисковых системах

SeoPult

www.seopult.ru 

Полностью автоматизированная система продвижения сайтов в поисковых системах

3.1.1 Приложение Allsubmitter

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

Рисунок  - Снимок главной страницы сайта приложения Allsubmitter

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

Данное приложение является проприетарным и требует платы за использование.

3.1.2 Приложение Site-Auditor

Программный комплекс, предназначенный для анализа различных параметров сайта: ТИЦ, число проиндексированных поисковой машиной страниц сайта, статистика входящих ссылок на сайт, информация о нахождении в крупных каталогах.

Рисунок  - Снимок главной страницы сайта приложения Site-Auditor

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

Данное приложение является свободно распространяемым.

3.1.3 Онлайн-инструмент Be1

Онлайн-инструмент, авторские права на который принадлежат Григорию Селезнёву. Он позволяет отслеживать ряд параметров сайта:

  •  авторитетность сайта в поисковых системах;
  •  ссылки, направленные на страницы;
  •  степень индексации сайта поисковыми ситемами;
  •  просматривать системный файл robots.txt;
  •  получать статистику сайта от сервера.

Рисунок  - Снимок главной страницы сайта приложения Be1

Данное приложение является свободно распространяемым и не требует установки на жёсткий диск компьютера.

3.1.4 Приложение Yazzle

Многофункциональный инструмент анализа и управления продвижением сайта. Обладает множеством функций, среди которых:

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

Рисунок  - Снимок главной страницы сайта приложения Yazzle

Данное приложение является проприетарным и требует платы за использование.

3.1.5 Приложение Page Promoter

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

  1.  анализ статистики и мониторинг позиций сайта для упрощения оптимизации и продвижения его в поисковых системах;
  2.  инструментарий для финансового мониторинга и обоснования стратегий продвижения в поисковых системах.

Рисунок  - Снимок главной страницы сайта приложения Page Promoter

Помимо прочего, приложение осуществляет работу с файлами robots.txt, проверку входящих и внутренних ссылок сайта, помощь при составлении семантического ядра.

Данное приложение является проприетарным и требует платы за использование.

3.1.6 Приложение SeoRate

Данный инструмент нацелен на определение видимости сайта для поисковых систем по той или иной тематике. Данное приложение позволяет:

  •  оценивать количество пользователей, которые увидели сайт в поисковой выдаче;
  •  анализировать позиции выбранных сайтов в поисковиках не далее 30 позиций от начала списка поисковой выдачи;
  •  анализировать ключевые слова по запросам в поисковых системах;
  •  определять видимость сайта для поисковых пауков и количество попавших в индекс страниц;
  •  обзор ссылочной сети, которую образует целевой сайт с прямыми и обратными ссылками на другие ресурсы;

Рисунок  - Снимок главной страницы сайта приложения SeoRate

Данное приложение является проприетарным и требует платы за использование. Помимо этого предусматривается бесплатный режим работы с ограничением множества функций.

3.1.7 Система SeoPult

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

Данная система является проприетарной и платой за её использование является взимание комиссии. Размер комиссии рассчитывается, исходя из бюджета продвижения, и минимальная её величина составляет 10%.

Рисунок  - Снимок главной страницы сайта приложения SeoPult

3.2 Системы анализа поисковой статистики

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

Рисунок  - Снимок главной страницы сервиса LiveInternet

В последние годы системы анализа поисковой статистики значительно усложнились, но, в то же время, соответственно изменились финансовые условия их использования. Не смотря на это, всё ещё существуют относительно недорогие и даже бесплатные системы анализа поисковой статистики, обладающие, однако, меньшим относительно платных приложений набором функций. В числе таких можно назвать LiveInternet (URL: www.liveInternet.ru).

На данный момент, помимо статуса одного из крупнейших в российском сегменте Интернета сервисов онлайн-дневников, LiveInternet предлагает также услуги поиска и почтовые сервисы. Система предоставляет следующие данные:

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

Рисунок  - Снимок страницы статистики сервиса LiveInternet

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

В этом отношении следует выделить специализированные сервисы Google.Adwords и Яндекс.Директ, которые предлагают схожие по характеристикам и опциям сервисы.

Рисунок  - Форма входа для сервиса Google.Adwords

Adwords выполняет функции полноценного монитора самых разнообразных параметров сайта, начиная от анализа посещаемости Google.Analytics и заканчивая статистикой запросов Google.Wordstat. Описание данного программного комплекса от Google достойно отдельной научной работы, а официальная документация, описывающая полный функционал данной системы для каждой новой версии по объёму превышает три сотни страниц [9].

Рисунок  - Форма входа для Яндекс.Директ

Аналогичные решения предлагает Яндекс, давая возможность вести полноценные рекламные компании, используя функционал Яндекс.Директа. При этом Яндекс также осуществляет анализ ключевых слов и прочей поисковой статистики, а также осуществляет разносторонний анализ страний сайтов.

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

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


4 Проект программы автоматизации работы SEO-специалиста

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

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

Для решения этих проблем предлагается создать программу, осуществляющую следующие функции:

  1.  сбор статистики запросов поисковых систем Google и Яндекс о количестве переходов по определённым ключевым словам;
  2.  сбор статистики по запросам, которые были осуществлены в поисковых системах Google и Яндекс в пределах одной сессии браузера;
  3.  получение списка синонимов ключевых слов, основанных на поисковой статистике систем Google и Яндекс;
  4.  Семантический анализ текста, отражающий количество уникальных слов, общее количество слов и символов, символов без пробелов, показатель «тошноты» текста,  отношение незначимых слов к общему размеру документа, а также статистику встречаемости каждого слова в тексте.

Программа реализована на языке C# в среде разработки Microsoft Visual Studio 2010. Интерфейс программы разделен на две части. В первой реализован функционал по анализу ключевых слов. Во второй – семантический анализ текста.

Рисунок  - Интерфейс программы. Часть анализа ключевых слов

Рисунок 27 иллюстрирует оболочку интерфейса программы, отвечающую за анализ ключевых слов. Часть анализа слов предлагает ввести, помимо ключевой фразы, регион запроса, стоп-слова, которые будут исключены из поиска, а также выбрать между двумя поисковыми системами.

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

Рисунок  - Снимок экрана, иллюстрирующий возможность введения нескольких ключевых слов

В программе реализована работа с двумя поисковыми системами: Google и Яндекс. Выбор в пользу этих двух систем сделан ввиду того, что они являются наиболее крупными поставщиками поисковых услуг Интернета на данный момент.

В поле результатов анализа имеется три таблицы, в которые выводятся результаты. Первая таблица соответствует количеству запросов, которые искали пользователи соответственно ключевой фразе. Вторая – количеству, что искали пользователи в пределах одной сессии браузера. Третья таблица содержит список синонимов указанного ключевого слова, употребляемых пользователями при запросах в выбранной поисковой машине. Помимо этого, имеется возможность сохранения полученных данных  в текстовый файл. Кнопка «Начать» существует для запуска алгоритма программы.

Данный блок реализует в своей работе API-интерфейсы поисковых систем. Технология API (англ. Application Programming Interface) представляет собой интерфейс программирования приложений или, как ещё говорят, интерфейс прикладного программирования. Это готовый набор библиотек методов, классов, процедур, констант и прочих данных, предоставляемых тем или иным сервисом для внешних программных продуктов. Данная технология используется во многих сферах информационных технологий, в том числе и в сфере поисковых систем. Доступ к API предоставляется поисковиками, чтобы повысить удобство работы с их данными для программистов.

Для обмена данных с Яндексом используются GET/POST запросы. Конструкция GET языка html используется для запроса каких-либо данных с сервера. Использовать его также возможно для начала какого-либо процесса. Тогда при отправке GET запроса в теле ответного сообщения указываются параметры запускаемого процесса. Параметры запроса передаются клиентом в URL после служебного символа «?»:

GET /path/resource?param1=value1&param2=value2.

По стандартам Консорциума Всемирной паутины, GET-запросы являются идемпотентными, то есть повторное действие над объектом при запросе не изменяет объекта. Конструкция POST применяется для передачи данных пользователя серверу. Данный метод языка html используется каждый раз, когда посетитель сайта отправляет свой комментарий в блогах, социальных сетях, на форумах. Также этот метод задействуется в случае загрузки данных на сайт. Метод не является идемпотентным, то есть при каждом повторном запросе будут создаваться новые экземпляры данных.

Запросы осуществляются в формате JSON (англ. JavaScript Object Notation). Данный формат является текстовым и основан на языке JavaScript. Как правило, он используется вместе с этим языком. Данный формат обладает языковой независимостью, лаконичностью и совместим со многими языками программирования. Синтаксис данного формата имеет два вида:

  1.  Набор пар «ключ:значение». В разных языках программирования это может являться объектом, словарём, структурой и т.д. Ключ может быть исключительно строкой, а значением может быть любая форма.
  2.  Упорядоченный набор значений. Данный набор во многих языках программирования встречается как вектор, последовательность, массив или список значений.

Пример структуры JSON объекта приведён ниже:

{

  "firstName": "Иван",

  "lastName": "Иванов",

  "address": {

      "streetAddress": "Московское ш., 101, кв.101",

      "city": "Ленинград",

      "postalCode": 101101

  },

  "phoneNumbers": [

      "812 123-1234",

      "916 123-4567"

  ]

}

В программе используются стандартные библиотеки платформы .NET Framework версии 3.5. Перед осуществлением запросов, приложение устанавливает связь с сервером Яндекса, используя специальный токен. Этот токен нужен для установления интерфейса между сервером поисковика и программой. Данный метод, помимо непосредственного способа связи, являет собой ещё и эффективный способ контролировать нагрузку на серверы системы Яндекс. По каждому токену возможно одновременное создание пяти запросов, каждый из которых даёт право на одну тысячу запросов к серверу. После переполнения отчёта он удаляется и создаётся новый. Тем самым, отчёты выступают чем-то вроде бесплатных билетов на запросы к серверу, не позволяющие излишне перегружать систему.

Что касается Google, то функционал общения с серверами этой поисковой системы осуществляется за счёт использования специализированных библиотек, доступных для скачивания на официальном ресурсе (https://developers.google.com/adwords/api/docs/clientlibraries?hl=ru-RU).

API Adwords позволяет взаимодействовать с платформой Google.Adwords, получая данные с её серверов. При работе с данным интерфейсом используется протокол SOAP (англ. Simple Object Access Protocol) – простой протокол доступа к объектам. Данный протокол позволяет обмениваться структурированными сообщениями. Далее приведён пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Body>

    <getProductDetails xmlns="http://warehouse.example.com/ws">

      <productID>12345</productID>

    </getProductDetails>

  </soap:Body>

 </soap:Envelope>

Листинг с функционалом первой части программы приведён в приложениях А и Б.

Рисунок  - Интерфейс программы. Часть анализа текста

На рисунке 28 представлен интерфейс второй части программы, осуществляющей семантический анализ текста. Интерфейс программы состоит  из основного окна, куда вводится текст, окна результатов, куда отображаются проанализированные данные. Кроме этого, имеется возможность записи проанализированных данных в текстовый файл. Кнопка «Начать» на основной панели служит для запуска алгоритма приложения.

Данная часть программы подсчитывает количество символов в тексте, количество символов без пробела, общее количество слов и количество единожды встречающихся слов. Кроме этого, ведётся подсчёт стоп-слов, которые не стоит путать со стоп-словами первой части программы. Стоп-слова во второй части представляют из себя слова и символы, которые пропускает поисковая система при индексировании (знаки препинания, предлоги, союзы). Предел их встречаемости в тексте – не более 5% от общего объёма.

Также рассчитывается количество «воды» в тексте. Этот коэффициент представляет тот пласт текста, в котором смысловая часть либо присутствует в очень малых количествах, либо отсутствует вовсе. Данная характеристика выражается в процентном отношении незначимых слов к общему количеству слов текста:

    (4)

где W – коэффициент «воды», N – количество незначимых слов, L – общее количество слов в тексте. Эмпирически установлено, что показатель «воды», рассчитываемый по формуле (4), не должен превышать 40%. Иначе текст может потерять связность и иметь слишком общий смысл. Тем не менее, если текст содержит слишком мало «воды», то он будет слишком перегружен смысловыми конструкциями и неинтересен читателю [6]. Стилистически умело написанный текст может содержать более указанного порога «воды», но в то же время быть логически связным, информативным, привлекать читателя и с успехом индексироваться поисковой машиной.

Еще одним параметром, рассчитываемым в данной части программы, являются показатели классической и академической «тошноты». В самом общем смысле «тошнота» – это показатель, отражающий степень «захламлённости» текста самым часто встречающимся словом. Расчёт этого параметра важен, так как поисковые роботы, слишком часто натыкаясь на то или иное слово, могут посчитать его более весомым по отношению к остальным словам, в том числе и ключевым, и понизить их важность. В результате может оказаться, что сайт не появится на нужной позиции в поисковой выдаче по определённым запросам.

Классическая тошнота являет собой коэффициент, отражающий засорённость текста самым повторяющимся словом и рассчитывается, как квадратный корень из числа повторений самого часто встречаемого слова. Формула (5) представляет расчёт этого показателя:

    (5)

где C – коэффициент академической тошноты, N – число повторов самого встречаемого слова в тексте.

Академическая тошнота измеряется в процентном отношении частоты самых встречаемых слов к общему числу слов в тексте. Соответственно, чем больше часто встречаемых слов в тексте, тем этот показатель выше:

   (6)

где A – величина академической тошноты, Ns – количество повторов самых частых слов в тексте, L – количеств слов в тексте.

Установлено, что величина академической частоты, найденная по формуле (6), не должна превышать 6%. Тем не менее, при соблюдении грамотной стилистики, эта величина может иметь большее значение без потери смысловой нагрузки текста [6].

Вторая часть программы реализует методы поиска по словарю. Суть используемого метода заключается в том, что на основе введённого текста создаётся словарь, единичным элементом которого является одно слово. Затем производится разносторонний анализ словаря. Подсчитывается статистика встречаемости, рассчитываются определённые выше параметры.

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

ЗАКЛЮЧЕНИЕ

Основные результаты дипломной работы состоят в следующем:

  1.  Проанализированы предмет, основные методы работы и программные средства поисковой оптимизации сайтов;
  2.  Выявлены наиболее существенные проблемы, возникающие при работе специалиста по поисковой оптимизации;
  3.  Предложены пути решения выявленных проблем и на основе данных предложений создано программное средство для автоматизации работы в области поисковой оптимизации.
  4.  АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1.  Яковлев А.А. Раскрутка и продвижение сайтов. Основы, секреты, трюки. СПб.: БХВ-Петербург, 2007. – 336 с.
  2.  Ашманов И., Иванов А. Оптимизация и продвижение сайтов в поисковых системах. СПб.: Питер, 2011. – 464 с.
  3.  Севостьянов И.О. Поисковая оптимизация. Практическое руководство по продвижению сайта в Интернете. СПб.: Питер, 2010. – 240 с.
  4.  Алексунин В.А., Родигина В. В. Электронная коммерция и маркетинг в Интернете. М.: Дашков и Ко, 2008. – 214 с.
  5.  Буренина Т.А. Маркетинг на базе интернет-технологий. М.: Благовест-В, 2005. – 152 с.
  6.  Рассел Д., Кон Р. Латентно-семантический анализ. М.: VSD, 2013 – 100 с.
  7.  Евдокимов Н.В. Основы контентной оптимизации. Эффективная интернет-коммерция и продвижение сайтов в Интернет. Киев: Вильямс, 2007. – 160 с.
  8.  Кошик А. Веб-аналитика: анализ информации о посетителях веб-сайтов. Киев: Диалектика, 2009. – 464 с.
  9.  Клифтон Б. Google Analytics: профессиональный анализ посещаемости веб-сайтов. М: Вильямс, 2009. – 400 с.
  10.  World Wide Web Consortium (W3C) Россия // Москва, НИУ ВШЭ. – 2014. – Электронный ресурс Консорциума Всемирной паутины. – (Рус.). – URL:http://w3c.org.ru/?page_id=44 [18.05.2014].


ПРИЛОЖЕНИЕ А

Листинг общей функциональной части дипломной программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Threading;

namespace WebWordsAnalizer

{

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }

       private Thread AnalisThread;

       private YandexMethods YM;

       public delegate void delProgressStatus(string stepname);

       private void btnStartAnalis_Click(object sender, EventArgs e)

       {

           string word = tbKeyPhrase.Text;

           string[] words = word.Split((new string[] { ";" }), StringSplitOptions.RemoveEmptyEntries);

           if (word == "")

           {

               MessageBox.Show("Введите ключевые слова!");

               return;

           }

           if (cbRegion.Text == "")

           {

               MessageBox.Show("Выберите регион!");

               return;

           }

           int[] regions = { RequestRegions.RegionNames[cbRegion.Text] };

           InitProressBar(words.Length);

           AnalisParams ap = new AnalisParams(words, regions);

           AnalisThread = new Thread(new ParameterizedThreadStart(YM.Analis));

           AnalisThread.Start(ap);

       }

       private void InitProressBar(int steps)

       {

           pbAnalisProgress.Value = 0;

           pbAnalisProgress.Minimum = 0;

           pbAnalisProgress.Maximum = steps+1;

       }

       private void NextStep(string step_name)

       {

           StepName = step_name;

           PerformStep();

       }

       private void PerformStep()

       {

           if (gbProgresStatus.InvokeRequired)

               gbProgresStatus.BeginInvoke(new MethodInvoker(PerformStep));

           else

           {

               gbProgresStatus.Text = StepName;

               pbAnalisProgress.PerformStep();

           }

       }

       private void AnalisFinished()

       {

           NextStep("Обработка заваршена!");

           FillAnalisResult();

       }

       // заполняем результаты анализа

       private void FillAnalisResult()

       {

           if (tcAnalisResults.InvokeRequired)

               tcAnalisResults.BeginInvoke(new MethodInvoker(FillAnalisResult));

           else

           {

               tcAnalisResults.TabPages.Clear();

               foreach (WordReportResult wrr in YM.ReportResults)

               {

                   // создаем новую вкладку

                   ResultPage rp = new ResultPage(wrr.KeyWord);

                   // заполняем таблицы

                   foreach (WordStat ws in wrr.SearchWith)

                       rp.dgvSearchedWith.Rows.Add(ws.word, ws.frequency);

                   foreach (WordStat ws in wrr.SearchAlso)

                       rp.dgvSearchedAlso.Rows.Add(ws.word, ws.frequency);

                   foreach (string s in wrr.Synonyms)

                       rp.dgvSynonyms.Rows.Add(s);

                   tcAnalisResults.TabPages.Add(rp);

               }

           }

       }

       private void Form1_Load(object sender, EventArgs e)

       {

           YM = new YandexMethods("14f91e065a814b248893b383cb2e1eb4");

           YM.NetxIteration += new YandexMethods.delProgressStatus(NextStep);

           YM.AnalisFinished += new YandexMethods.delProgressFinished(AnalisFinished);

           foreach (var region in RequestRegions.RegionNames)

           {

               cbRegion.Items.Add(region.Key);

           }

       }

       private void button1_Click(object sender, EventArgs e)

       {

           string text = richTextBox1.Text;

           string wordfreq = "";

           string stopwordfreq = "";

           SimanticAnaliser synan = new SimanticAnaliser(text);

           btnSaveTagSyntaxResult.Enabled = true;

           btnSaveSyntaxResult.Enabled = true;

           richTextBox2.Text = "СТАТИСТИКА ТЕКСТА \n";

           richTextBox2.Text += "Количество символов " + synan.SymbolsQuantity.ToString() + "\n";

           richTextBox2.Text += "Количество символов без пробелов " + synan.SymbolsQuantityNoSpace.ToString() + "\n";

           richTextBox2.Text += "Количество слов " + synan.WordsQuantity.ToString() + "\n";

           richTextBox2.Text += "Количество уникальных слов " + synan.UniqWordsQuantity.ToString() + "\n";

           richTextBox2.Text += "Количество стоп-слов " + synan.StopWordsQuantity.ToString() + "\n";

           richTextBox2.Text += "Классическая тошнота документа " + synan.ClassicalNausea.ToString("0.00") + "\n";

           richTextBox2.Text += "Академическая тошнота документа " + synan.AcademNausea.ToString("0.00") + "%" + "\n" + "\n";

           

           richTextBox2.Text += "СЕМАНТИЧЕСКОЕ ЯДРО" + "\n" + "\n";

           foreach (var kvp in synan.WordNotStopQSort)

               if (kvp.Value.F > synan.freqaver)

                   wordfreq += string.Format("{0}  {1}    {2:0.00} \n", kvp.Key, kvp.Value.Q, kvp.Value.F);

           richTextBox2.Text += wordfreq + "\n";

           wordfreq = "";

           richTextBox2.Text += "СЛОВА" + "\n" + "\n";

           foreach (var kvp in synan.WordNotStopQSort)

               wordfreq += string.Format("{0}  {1}    {2:0.00} \n", kvp.Key, kvp.Value.Q, kvp.Value.F);

           richTextBox2.Text += wordfreq + "\n";

           richTextBox2.Text += "СТОП-СЛОВА" + "\n" + "\n";

           foreach (var kvp in synan.StopWordQSort)

               stopwordfreq += string.Format("{0}  {1}    {2:0.00} \n", kvp.Key, kvp.Value.Q, kvp.Value.F);

           

           richTextBox2.Text += stopwordfreq;

       }

       private void button2_Click(object sender, EventArgs e)

       {

           Dictionary<string, int> test = new Dictionary<string, int>();

           string[] arr =  {"а","а", "б", "в"};

           for (int i = 0; i < arr.Length; i++)

           {

               if (!test.ContainsKey(arr[i]))

                   test.Add(arr[i], 1);

               else

                   test[arr[i]] += 1;

           }

       }

       private string SaveFileName()

       {

           SaveFileDialog dlg = new SaveFileDialog();

           string filename = "";

           dlg.Title = "Введите имя файла для сохранения";

           dlg.FileName = "Document"; // имя файла по умолчанию

           dlg.DefaultExt = ".text"; // расширение файла по умолчанию

           dlg.Filter = "Text documents (.txt)|*.txt"; // фильтрация по расширению

           // диалог сохранения файлов

           if ( dlg.ShowDialog() == DialogResult.OK)

           {

               // сохранение 

               filename = dlg.FileName;

           }

           return filename;

       }

       private void btnSaveAsText_Click(object sender, EventArgs e)

       {

           string fname = SaveFileName();

           using (FileStream fs = new FileStream(fname, FileMode.Create))

           {

               using (StreamWriter sw = new StreamWriter(fs))

               {

                   foreach (WordReportResult wrr in YM.ReportResults)

                   {

                       sw.WriteLine(wrr.KeyWord);

                       sw.WriteLine("SearchedAlso");

                       foreach (WordStat ws in wrr.SearchAlso)

                           sw.WriteLine("Phrase:" + ws.word + "; Shows:" + ws.frequency);

                       

                       sw.WriteLine("SearchedWith");

                       foreach (WordStat ws in wrr.SearchWith)

                           sw.WriteLine("Phrase:" + ws.word + "; Shows:" + ws.frequency);

                       sw.WriteLine("Suggestions");

                       foreach (string ws in wrr.Synonyms)

                           sw.WriteLine("Phrase:" + ws);

                   }

               }

           }

           MessageBox.Show("Запись завершена!");

       }

       private void btnSaveAsTegs_Click(object sender, EventArgs e)

       {

           string fname = SaveFileName();

           string[] words = tbKeyPhrase.Text.Split((new string[] { ",", ".", " ", ";" }), StringSplitOptions.RemoveEmptyEntries); ;

           string content = "";

           using (FileStream fs = new FileStream(fname, FileMode.Create))

           {

               using (StreamWriter sw = new StreamWriter(fs))

               {

                   foreach (string word in words)

                   {

                       content += word + ", ";

                   }

                   content = content.Substring(0, content.Length-2);

                   sw.WriteLine("<meta name = keywords content =\""+content+"\">");

               }

           }

           MessageBox.Show("Запись завершена!");

       }

   }

}

ПРИЛОЖЕНИЕ Б

Листинг части программы, отвечающей за анализ ключевых слов

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Text;

using System.Web.Script.Serialization;

using System.Threading;

namespace WebWordsAnalizer

{

   public class YandexMethods

   {

       public delegate void delProgressStatus(string name);

       public delegate void delProgressFinished();

       public event delProgressStatus NetxIteration;

       public event delProgressFinished AnalisFinished;

       public List<WordReportResult> ReportResults;

       private string MyToken;

       public string Token { get { return MyToken; } set { MyToken = value; } }

       

       public YandexMethods(string token)

       {

           MyToken = token;

           ReportResults = new List<WordReportResult>();

       }

       private static bool IgnoreCertificateErrorHandler(object sender,

 System.Security.Cryptography.X509Certificates.X509Certificate cert,

System.Security.Cryptography.X509Certificates.X509Chain chain,

                                               System.Net.Security.SslPolicyErrors sslErr)

       {

           return true;

       }

       public void Analis(object ap)//string[] phrases, int[] regions)

       {

           // сначала удаляем все отчеты, т.к. они не нужны

           // проверяем количество созданных отчетов "GetWordstatReportList"

           AnalisParams par = (AnalisParams)ap;

           string[] phrases = par.Phrases;

           int[] regions = par.Regions;

           string[] reports = WordstatReportListHandler(WordstatReportList());

           foreach (string report in reports)

           {

               int id = int.Parse(report);

               string delreport = DeleteWordstatReport(id);

           }

           

           //если нет - создаем "CreateNewWordstatReport"

           int report_id = CreateWordstatReportHandler(CreateWordstatReport(phrases, regions));

           // ждем, чтобы отчет успел сформироваться

           System.Threading.Thread.Sleep(1000);

           

           // По id отчета запрашиваем инфу позапросам "GetWordstatReport"

           WordReportHadler(WordstatReport(report_id), phrases, regions[0]);

           

           // запрашиваем подсказки отдельно для каждого слова

           for (int i = 0; i < phrases.Length; i++ )

           {

               string[] arr = { phrases[i] };

               ReportResults[i].Synonyms = SuggestionsHandler(KeywordsSuggestion(arr)).ToList();

           }

           NetxIteration("Вывод данных");

           AnalisFinished();

       }

       public void WordReportHadler(string words, string[] phrases, int region_id)

       {

           string[] arr, arr_2, sa, sw;

           sa = new string[] { };

           sw = new string[] { };

           string[] splitters = new string[phrases.Length];

           

           for (int i = 0; i < phrases.Length; i++ )

           {

               splitters[i] = "\"GeoID\":[\""+region_id+"\"],\"Phrase\":\""+phrases[i]+"\"}";

           }

           // разделяем ответ по ключевм словам

           arr = words.Split(splitters, StringSplitOptions.RemoveEmptyEntries);

           ReportResults.Clear();

           for (int i = 0; i < arr.Length-1; i++)

           {

               NetxIteration("Обработка " + phrases[i]);

               ReportResults.Add(new WordReportResult(phrases[i]));

               arr_2 = arr[i].Split((new string[] { "SearchedWith" }), StringSplitOptions.RemoveEmptyEntries);

               if (arr_2.Length > 0) sa = arr_2[0].Split((new string[] { "SearchedAlso", "data", "Shows", "Phrase", ",", ".", "{", "}", "\"", ":", "[", "]" }), StringSplitOptions.RemoveEmptyEntries);

               if (arr_2.Length > 1) sw = arr_2[1].Split((new string[] { "data", "Shows", "Phrase", ",", ".", "{", "}", "\"", ":", "[", "]" }), StringSplitOptions.RemoveEmptyEntries);

               if (sa.Length >0)

                   for (int j = 0; j < sa.Length - 1; j += 2)

                   {

                       if (sa[j] != "GeoID")

                           ReportResults.Last().SearchAlso.Add(new WordStat(sa[j + 1], sa[j]));

                   }

               if (sw.Length > 0)

                   for (int j = 0; j < sw.Length - 1; j += 2)

                   {

                       ReportResults.Last().SearchWith.Add(new WordStat(sw[j + 1], sw[j]));

                   }

           }

       }

       public string[] SuggestionsHandler(string phrase)

       {

           string[] arr = phrase.Split((new string[] {"data", "Shows", "Phrase", ",", ".", "{", "}", "\"", ":", "[", "]" }), StringSplitOptions.RemoveEmptyEntries);

           return arr;

       }

       private string DeleteWordstatReport(int id)

       {

           var DeleteReport = new

              {

                  token = MyToken,

                  method = "DeleteWordstatReport",

                  param = id

              };

           return TypicalRequest(DeleteReport);

       }

       public string GetAuth(string[] myparam )

       {

           // входные данные

           var ClientInfo = new

           {

               token = MyToken,

               method = "GetClientInfo",

               param = myparam,

               locale = "ru"

           };

           return TypicalRequest(ClientInfo);

       }

       public string WordstatReportList()

       {

           var WordstatReportList = new

           {

               token = MyToken,

               method = "GetWordstatReportList",

               locale = "ru"

           };

           return TypicalRequest(WordstatReportList);

       }

       private string[] WordstatReportListHandler( string reports)

       {

           string[] reports_arr;

           reports_arr = reports.Split((new string[] { "data", "StatusReport", "Done", "ReportID", ",", ".", "{", "}", "\"", ":", "[", "]" }), StringSplitOptions.RemoveEmptyEntries);

           return reports_arr;

       }

       public string KeywordsSuggestion(string[] words)

       {

           var KeywordsSuggestion = new

           {

               token = MyToken,

               method = "GetKeywordsSuggestion",

               param = new { Keywords = words},

               locale = "ru"

           };

           return TypicalRequest(KeywordsSuggestion);

       }

       public string Regions()

       {

           var GetRegions = new

           {

               token = MyToken,

               method = "GetRegions",

               locale = "ru"

           };

           return TypicalRequest(GetRegions);

       }

       public string CreateWordstatReport(string[] phrases, int[] regions)

       {

           var CreateNewWordstatReport = new

           {

               token = MyToken,

               method = "CreateNewWordstatReport",

               param = new

               {

                   Phrases = phrases,

                   GeoID = regions

               },

               locale = "ru"

           };

           return TypicalRequest(CreateNewWordstatReport);

       }

       

       public int CreateWordstatReportHandler(string report)

       {

           string[] arr = report.Split((new string[] { "data", "Shows", "Phrase", ",", ".", "{", "}", "\"", ":", "[", "]" }), StringSplitOptions.RemoveEmptyEntries);

           return int.Parse (arr[0]);

       }

       public string WordstatReport(int report_id)

       {

           var GetWordstatReport = new

           {

               token = MyToken,

               method = "GetWordstatReport",

               param = report_id,

               locale = "ru"

           };

           return TypicalRequest(GetWordstatReport);

       }

       private string TypicalRequest(object myparam)

       {

           // сериализуем объект ClientInfo в формат нотации JSON

           JavaScriptSerializer jss = new JavaScriptSerializer();

           string json = jss.Serialize(myparam);

           // адрес для отправки json-запросов

           string jurl = "https://api.direct.yandex.ru/v4/json/";

           // SSL-сертификат не используется

           ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(IgnoreCertificateErrorHandler);

           // создаем клиента

           WebClient wc = new WebClient();

           // отправляем POST-запрос и получаем ответ

           byte[] result = wc.UploadData(jurl, "POST", System.Text.Encoding.UTF8.GetBytes(json));

           return Encoding.UTF8.GetString(result);

       }

   }

}

ПРИЛОЖЕНИЕ В

Листинг части программы, отвечающей за семантический анализ текста

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace WebWordsAnalizer

{

   class SimanticAnaliser

   {

       public int SymbolsQuantity; //Количество символов

       public int SymbolsQuantityNoSpace; //Количество символов без пробелов

       public int WordsQuantity; //Количество слов

       public int UniqWordsQuantity; //Количество уникальных слов

       public int StopWordsQuantity; //Количество стоп-слов

       public double Water; //Вода

       public double ClassicalNausea; //Классическая тошнота документа

       public double AcademNausea; //Академическая тошнота документа

       public Dictionary<string, Frequency> WordQ;

       public Dictionary<string, Frequency> WordNotStopQ;

       public Dictionary<string, Frequency> UniqWordQ;

       public Dictionary<string, Frequency> StopWordQ;

       public IEnumerable<KeyValuePair<string, Frequency>> WordNotStopQSort;

       public IEnumerable<KeyValuePair<string, Frequency>> StopWordQSort;

       private double max_q;

       public double freqaver;

       private string[] StopWords = {"а", "без", "более", "бы", "был", "была", "были", "было", "быть", "в", "вам", "вас", "весь", "во", "вот", "все", "всего","всех","вы", "где","да", "даже", "для", "до", "его", "ее", "если", "есть", "еще", "же", "за", "здесь", "и", "из", "или", "им", "их", "к", "как", "ко", "когда", "кто", "ли", "либо", "мне", "может", "мы", "на", "надо", "наш", "не", "него", "нее", "нет", "ни", "них", "но", "ну", "о", "об", "однако", "он", "она", "они", "оно", "от", "очень", "по", "под", "при", "с", "со","так", "также", "такой", "там", "те", "тем", "то", "того", "тоже", "той", "только", "том", "ты", "у", "уже", "хотя", "чего", "чей", "чем", "что", "чтобы", "чье", "чья", "эта", "эти", "это", "я"};

       public SimanticAnaliser(string text)

       {

           SymbolsQuantity = text.ToCharArray().Length;

           SymbolsQuantityNoSpace = text.Replace(" ", "").ToCharArray().Length;

           string[] words = text.Split((new string[] { ",", ".", ":", ";", "!", "?", " ", "\"", "-","(",")","*", "1","2","3","4","5", "6", "7","8", "9", "0"  }), StringSplitOptions.RemoveEmptyEntries);

           

           WordQ = new Dictionary<string,Frequency>(); // все слова в тексте

           UniqWordQ = new Dictionary<string, Frequency>(); // уникальыне слова

           StopWordQ = new Dictionary<string, Frequency>(); // стоп слова

           WordNotStopQ = new Dictionary<string, Frequency>(); // все не стоп слова

           max_q = 0;

           //считаем коичество слов в тексте

           foreach (string word in words)

           {

               // проверяем является и слово стоп словом

               bool exists = Array.Exists( StopWords, delegate(string s) { return s.Equals(word.ToLower()); });

               if (!WordQ.ContainsKey(word))

                   WordQ.Add(word, new Frequency(1));

               else WordQ[word].Q += 1;

               if (!exists)

                   if (!WordNotStopQ.ContainsKey(word))

                       WordNotStopQ.Add(word, new Frequency(1));

                   else WordNotStopQ[word].Q += 1;

               max_q = Math.Max(max_q, WordQ[word].Q);

               if (!UniqWordQ.ContainsKey(word))

                   UniqWordQ.Add(word, new Frequency(1));

               else

                   UniqWordQ.Remove(word);

               if (exists)

                   if (!StopWordQ.ContainsKey(word) )

                      StopWordQ.Add(word, new Frequency(1));

                   else StopWordQ[word].Q += 1;

           }

           WordsQuantity = words.Length;

           UniqWordsQuantity = UniqWordQ.Count;

           StopWordsQuantity = StopWordQ.Count;

           // считаем долю слов

           CountFrequency();

           

           WordNotStopQSort = WordNotStopQ.OrderByDescending(a => a.Value.Q);

           StopWordQSort = StopWordQ.OrderByDescending(a => a.Value.Q);

           ClassicalNausea = Math.Sqrt(max_q);

           CountAcademNausea();

       }

       private void CountFrequency()

       {

           foreach (var kvp in WordQ)

               kvp.Value.F = kvp.Value.Q / WordsQuantity*100;

           foreach (var kvp in UniqWordQ)

               kvp.Value.F = kvp.Value.Q / WordsQuantity * 100;

           foreach (var kvp in StopWordQ)

               kvp.Value.F = kvp.Value.Q / WordsQuantity * 100;

           freqaver = 0;

           foreach (var kvp in WordNotStopQ)

           {

               kvp.Value.F = kvp.Value.Q / WordsQuantity * 100;

               freqaver += kvp.Value.F;

           }

           freqaver /= WordNotStopQ.Count;

       }

       private void CountAcademNausea()

       {

           double q;

           q = 0;

           // считаем количество частовстреяающихся не стоп слов

           foreach (var kvp in WordNotStopQ)

           {

               if (kvp.Value.F > freqaver)

                   q += kvp.Value.Q;

           }

           AcademNausea = q / WordsQuantity * 100;

       }

   }

   public class Frequency

   {

       public double Q;

       public double F;

       public Frequency(int q)

       {

           Q = q;

       }

   }

   

}

АВТОМАТИЗАЦИЯ РАБОТЫ SEO-СПЕЦИАЛИСТА



 

Другие похожие работы, которые могут вас заинтересовать.
4827. Автоматизация рабочего места специалиста по подбору персонала ООО «П-Т» 316.3 KB
  Обзор информационных систем и технологий используемых в организации. Для того чтобы реализовать данную задачу предстоит тщательно исследовать потребности заказчика построить адекватную модель системы КАК ЕСТЬ S IS. Без использования системы вопрос по кадрам решался вручную. Основные виды деятельности: Управленческий консалтинг Полный спектр консалтинговых услуг по реинжинирингу бизнеспроцессов;...
17932. ОСОБЕННОСТИ РАБОТЫ СПЕЦИАЛИСТА ПО СВЯЗЯМ С ОБЩЕСТВЕННОСТЬЮ РЕСТОРАНА «ПИЦЦА ХАТ» И ПУТИ ЕЕ ОПТИМИЗАЦИИ 1.23 MB
  Методы работы специалиста по связям с общественностью на предприятиях общественного питания. Характеристика ресторана Пицца Хат. Специфика работы специалиста по связям с общественностью ресторана Пицца Хат. Методы оптимизации работы специалиста по связям с общественностью ресторана Пицца Хат.
7820. АВТОМАТИЗАЦИЯ РАБОТЫ СТРОИТЕЛЬНЫХ МАШИН 238.97 KB
  Микропроцессоры и микроЭВМ в системах автоматического управления. Для этого в НИИСтройдормаше разработан набор унифицированных приборов регулирования и управления различными машинами входящих в ряд агрегатированных комплексов автоматической аппаратуры АКА. Объем выпуска специализированных средств автоматизации для дорожностроительных машин также неоднороден и в большинстве своем предназначен для защиты строительных кранов от перегрузки и для систем контроля диагностики и управления.
1674. АВТОМАТИЗАЦИЯ УЧЕТА РАБОТЫ АВТОТРАНСПОРТНОГО ПРЕДПРИЯТИЯ 1.08 MB
  Автотранспортное предприятие МП ОПАТП осуществляет пассажирские перевозки, сопровождая плановые рейсы формированием определенной документации: формирование маршрутного журнала, листа-дохода кондукторов, учёт рабочего времени водителей.
7065. Автоматизированное рабочее место специалиста (АРМ) 8.94 KB
  Автоматизированное рабочее место (АРМ) — это рабочее место специалиста, оснащенное персональным компьютером, программным обеспечением и совокупностью информационных ресурсов индивидуального или коллективного пользования, которые позволяют ему вести обработку данных
18925. Отдельные виды процессуального участия специалиста в уголовном судопроизводстве 69.34 KB
  Правовой статус специалиста. Отдельные виды процессуального участия специалиста в уголовном судопроизводстве. Участие специалиста в производстве процессуальных действий. Заключение специалиста как самостоятельная форма использования специальных знаний в уголовном судопроизводстве.
571. Основные задачи специалиста (инженера) в области безопасности и труда 7.91 KB
  Задачи специалиста в области безопасности жизнедеятельности сводятся к следующему; – контроль и поддержание допустимых условий параметры микроклимата освещение и др. жизнедеятельности человека в техносфере; – идентификация опасностей генерируемых различными источниками в техносферу; – определение допустимых негативных воздействий производств и технических систем на техносферу; – разработка и применение экобиозащитной техники для создания допустимых условий жизнедеятельности человека и его защиты от опасностей; – обучение работающих и...
1699. Разработка компетенции для специалиста отдела организации труда и заработной платы предприятия 161.6 KB
  Критерии и модель ключевых компетенций. Для решения этой задачи необходимо использовать модели компетенций. В настоящее время корпоративным моделям компетенций отводится немаловажная роль в политике управления персоналом. В некоторых компаниях профили компетенций используются в качестве прикладных инструментов конкретных HRфункций например для оценки персонала или формирования управленческого резерва; в других система прописанных компетенций является ключевой в работе с персоналом.
15597. Особенности реализации свобод и ограничений подготовки специалиста в современной системе высшего образования России 66.06 KB
  К первым отнесем такие как: - юридические; - связанные с характером деятельности требования деятельности; - связанные с социальными установками ожиданиями традициями стереотипами и т. В контексте обсуждения данной темы мы будем использовать термин свобода так как его определяет Черных П. Термин ограничения здесь будет пониматься как вытекающие из законов нормативных актов из решений государственных органов и этических норм принятых в определенной культуре профессии пределы границы за которые не должна выходить деятельность...
10876. Культура речевого поведения специалиста (общие требования, этикетно-речевые формулы, правила общения по телефону и т.д) 12.08 KB
  Показательно что даже при столь утилитарной постановке задачи приходится рассматривать требования речевого этикета как необходимые условия успешной коммуникации. Или: Что здесь происходит– вопрос особенно в определенном контексте может означать агрессивное недовольство происходящим и как таковой нарушать этикет. Сюда же могут относиться и конкретные предписания речевого этикета – что может служить предметом разговора что нет и в какой ситуации. Речевой этикет в узком смысле слова может быть охарактеризован как система языковых средств в...
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.