Возможности поисковой оптимизации сайта (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 для вставки нужной динамической микроразметки. 

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

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

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

Они прописываются в 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 запросы, которые перестают работать из-за ненужных редиректов

<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>

Также дополнительные правила можно посмотреть здесь - https://forums.iis.net/post/2042212.aspx

Установка тега 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) = '
    


    '

    -- 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

Это снижение стоимости владения

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

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.