Возможности поисковой оптимизации сайта (SEO)

Основные возможности по SEO

  • Генерация Sitemap.xml
  • Управление robots.txt
  • Канонизация URL
  • Микроразметка
  • ЧПУ
  • 404
  • Хлебные крошки
  • Управление Title, Description, Keywords

Sitemap.xml

Sitemap.xml генерируется в процедуре falcon_sitemap - данную процедуру можно менять под себя. Для получения данной возможности необходимо обновить/создать falcon_sitemap, rs_sitemap_getFile и написать правило редиректа в web.config

https://pastebin.com/ntN1T4Bw

<rule name="Sitemap.xml" stopprocessing="true">
    <match url="(.*)sitemap\.xml"></match>
    <action type="Rewrite" url="/Controls/Resource/GetFile?code=sitemap"></action>
</rule>    

Примечание: домен передается в параметре as_domain в процедуру falcon_sitemap

Robots.txt

Robots.txt - файл, задающий предписания для поисковых систем как индексировать страницы сайта.

Управление robots реализовано через механизм подгружаемых файлов. (см. соответствующий подраздел про Ресурсы).

По умолчанию статичные части этих файлов реализованы в виде настроек robots.txt в Системных элементах (Системный SQL - /sysSP).

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

Также в файле web.config можно добавить следующие правила в раздел rewrites для доступности стандартных адресов для robots

https://pastebin.com/bA4cWmu2

<rule name="Robots" stopprocessing="true">
   <match url="(.*)robots\.txt"></match>
   <action type="Rewrite" url="/Controls/Resource/GetFile?code=robots"></action>
</rule>

Микроразметка

Микроразметка позволяет поисковым системам лучше понимать, что расположено на странице и улучшает поисковую выдачу.

В сниппете сайта в поисковой выдаче появляются дополнительные элементы.

Для включения микроразметки, необходимо указать схему в GetLayout

http://schema.org/WebPage’ SchemaTypeBody

Если она указана, то у body проставляется схема (в общем случае можно использовать http://schema.org/WebPage).

Хорошая статья с примерами микроразметки - https://artzolin.ru/articles/schema-snippets/

Ключевые схемы:

Валидаторы разметки:

Подробные статьи:

Генераторы разметки

Генератор OG  (микроразметка Opengraph для соцсетей)

https://a.pr-cy.ru/tools/open-graph-generator/

Генерация микроразметки для поисковиков (Schema.org)

https://technicalseo.com/tools/schema-markup-generator/

Примечание:

  • Для вставки микроразметки в каталог используйте HeadSection и BodyBottomSection, а также кастомную разметку страниц каталога.

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

< script type="application/ld+json">
{
    "@context": "https://schema.org/",
    "@type": "WebPage",
    "name": "Falcon Space - Web-applications for business",
    "thumbnailUrl": "https://falconspace.ru/content/images/falcon.png",
    "description": "Create your own business web-applications on Falcon Space with SQL/Bootstrap"
}

Микроразметку для страниц необязательно делать статичной, просто разместив ее в блоке скриптов CSS. 

Можно использовать в процедуре SQL Страницы SELECT 2 параметр HeadSection для вставки нужной динамической микроразметки. 

Примечание. В мессенджерах данные микроразметки кешируются. Для просмотра обновленных данных микроразметки по странице необходимо добавлять некий параметр в URL (чтобы адрес был всегда новым для мессенджера), либо использовать бот Телеграм @WebpageBot: вписываем адрес и по кнопке он обновляет предпросмотр.

Хлебные крошки

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

Хлебные крошки определяют структуру проекта.

Они прописываются в SQL каждой страницы. 

Для каталогов они генерируются в соответствии  со структурой категорий каталога

Хлебные крошки имеют микроразметку (для этого надо включить в GetLayout микроразметку в WebPage)

http://schema.org/WebPage’ SchemaTypeBody

Управление тегами Title, Meta Description, Meta Keywords, h1

Эти элементы управляются через SQL каждой отдельной страницы. 

Для каталога они генерируются через хранимые процедуры каталога.

 

ЧПУ (Человеко-понятный УРЛ) 

Для каждой страницы можно задать свой точный URL (код страницы), тем самым включив в него главные ключевые слова. 

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

Также в каталоге помимо категории в адрес попадают названия и значения фильтров. Каждая страница статична для поисковиков и может индексироваться (загрузка  без применения JS)

Страница 404 

Создайте страницу с кодом notfound (по умолчанию она уже есть в базе). Страница будет отдавать HTTP статус 404. 

Примечание: в reg.ru хостинге по умолчанию статус 404 перехватывается и переводит на страницу 404 от reg.ru. Для изменения этого правила добавьте в web.config следующее правило: 

<httperrors existingresponse="Replace">
        <remove statuscode="404" substatuscode="-1"></remove>
        <error statuscode="404" prefixlanguagefilepath="" path="uploads\404.html" responsemode="File"></error>
</httperrors>

При этом страница 404.html должна быть статичным html файлом на сервере, а не страницей в Falcon Space

 

Канонизация URL 

ВАЖНО! Примеры лучше брать по ссылке на pastebin, а не копировать из документации.

Убрать завершающий слеш 

https://pastebin.com/XubwLpJ0

 <rule name="Remove trailing slash" stopprocessing="true">
    <match url="(.*)/$"></match>
    <conditions logicalgrouping="MatchAll" trackallcaptures="false">
        <add input="{REQUEST_FILENAME}" matchtype="IsFile" negate="true"></add>
        <add input="{REQUEST_FILENAME}" matchtype="IsDirectory" negate="true"></add>
    </conditions>
    <action type="Redirect" url="{R:1}" redirecttype="Temporary"></action>
</rule>

Привести все в нижний регистр

https://pastebin.com/YnbjNc7L

Правило исключает ajax запросы, которые перестают работать из-за ненужных редиректов

ВАЖНО! Обратите внимание на строку с add input="{URL}" pattern="[А-Я]" negate="true" - она исключает из обработки адреса, где есть русские буквы (если ее оставить, то адреса с кирилицей будут неверно обрабатываться). 

<rule name="LowerCaseURL" stopprocessing="true">
    <match url="[A-Z]" ignorecase="false"></match>
    <conditions logicalgrouping="MatchAll">
        <add input="{HTTP_X_Requested_With}" pattern="^XMLHttpRequest$" negate="true"></add>
        <add input="{URL}" pattern="[А-Я]" negate="true"></add>
    </conditions>
    <action type="Redirect" url="{ToLower:{URL}}"></action>
</rule>

Убрать www 

https://pastebin.com/YqhyCusm

<rule name="Remove www" stopprocessing="true">
  <match url="(.*)" ignorecase="true"></match>
  <conditions logicalgrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^www\.(.+)$"></add>
  </conditions>
  <action type="Redirect" url="http://{C:1}/{R:0}" appendquerystring="true" redirecttype="Permanent"></action>
</rule>

или

<rule name="Remove WWW" enabled="true" stopprocessing="true">
   <match url="(.*)"></match>
   <conditions>
      <add input="{HTTP_HOST}" pattern="^(www\.)(sitename\.com)"></add>
   </conditions>
   <action type="Redirect" url="https://{C:2}/{R:1}"></action>
</rule>

Наоборот - добавить www

Правило - https://pastebin.com/z1EEynGY

<rule name="Add WWW" stopprocessing="true">
              <match url="^(.*)$"></match>
              <conditions>
                 <add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)$"></add>
              </conditions>
              <action type="Redirect" url="https://www.{C:0}{PATH_INFO}" redirecttype="Permanent"></action>
</rule>

Переход на HTTPS 

https://pastebin.com/HYEiwT5g

<rule name="Redirect to http" patternsyntax="Wildcard" stopprocessing="true">
    <match url="*" negate="false"></match>
    <conditions logicalgrouping="MatchAny" trackallcaptures="false">
        <add input="{HTTPS}" pattern="off"></add>
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirecttype="Temporary"></action>
</rule>

 

Установка тега link canonical и hreflang 

Используем в head разделе следующие элементы: 

<link rel="canonical" href="https://example.com/dresses/green-dresses">
<link rel="alternate" href="http://example.com/" hreflang="x-default">
<link rel="alternate" href="http://otherdomain.com/" hreflang="ru">  <!-- en uk -->

Для alternate hreflang мы указываем адреса локализованных версий (т.е. будет другой домен или добавка языка в URL).

href должен содержать полный адрес с доменом, с https:// и всеми параметрами в URL. 

Не используйте hreflang на неканонических страницах (например на страницах пагинации с page>=2).


Подробнее о hreflang - https://seranking.ru/blog/seo/atribut-hreflang/

Подробнее о canonical -  https://siteclinic.ru/blog/technical-aspects/rel-canonical/

Пример использования для компонента list (страница 1 элемента) в list_..._getItem: 

	declare @langID int
    select @langID = try_cast(value as int) from @parameters where [key] = 'langID'

    if isnull(@langID,0)=0 set @langID = 2

    declare @url nvarchar(max), @domain nvarchar(128) = iif(@langID=2, 'falconspace.ru', 'falconspace.site')
    select @url = dbo.list_getProductUrl(sol.id, isnull(sol.code, ''), 'solutions', '---')
    from as_falconSolutions sol
    where sol.isPublished=1 and sol.id = @itemID


    declare @canon nvarchar(max) = '
      здесь прописываем теги link canonical


    '

    -- select 1
   select @canon  HeadSection

 

 

 

Использование разных языков (локализация) и SEO

Используйте метатеги hreflang в разделе HEAD https://habr.com/ru/post/352082/

В качестве продвижения по разным языкам целесообразно использовать поддомены основного домена (ru.site.com, de.site.com). При этом в GetLayout необходимо установить defaultLangID. 

 

How to SEO 

Как сделать правильный редирект на новый адрес страницы (301 редирект)

Для этого в web.config в раздел rules прописываем правило: 

https://pastebin.com/wcEbdB8C

<rule name="solutionRealty" stopprocessing="true">
    <match url="^home/solution/realty" ignorecase="true"></match>
    <action type="Redirect" url="/list/solutions/realty---9" redirecttype="Permanent"></action>
</rule>

 

Как ставить цели в Яндекс Метрике

Подробности https://yandex.ru/support/metrica/objects/reachgoal.html

Об интеграции с яндекс метрикой можно прочитать здесь.

В JS коде в обработчике клика на кнопке прописываем

ym(XXXXXX, 'reachGoal', 'TARGET_NAME');

где XXXXX - номер счетчика. 

 

Как прописать канонический адрес для страницы

Для этого указываем в редактировании параметров страницы, в разделе Подключение файлов стилей каноническую ссылку: 

<link rel="canonical" href="http://site.ru/statya1">

 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK