Возможности поисковой оптимизации сайта (SEO)
Основные возможности по SEO
- Генерация Sitemap.xml
- Управление robots.txt
- Канонизация URL
- Микроразметка
- ЧПУ
- 404
- Хлебные крошки
- Управление Title, Description, Keywords
Sitemap.xml
Sitemap.xml генерируется в процедуре falcon_sitemap - данную процедуру можно менять под себя. Для получения данной возможности необходимо обновить/создать falcon_sitemap, rs_sitemap_getFile и написать правило редиректа в web.config
<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
<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/
- http://schema.org/
- https://ruschema.org/
- Документация от Яндекса https://yandex.ru/support/webmaster/schema-org/what-is-schema-org.html
Ключевые схемы:
- http://schema.org/Product - товар
- http://schema.org/WebPage - общее для страницы
- http://schema.org/mainEntity - основной элемент на странице (в рамках WebPage)
- http://schema.org/Thing - описание некоего объекта
Валидаторы разметки:
- Валидатор от гугла https://search.google.com/structured-data/testing-tool/u/0/?hl=ru
- Валидатор от яндекса https://webmaster.yandex.ru/tools/microtest/
- https://validator.schema.org/
- Расширенные результаты Google - https://search.google.com/test/rich-results?hl=ru
Подробные статьи:
Генераторы разметки
Генератор 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, а не копировать из документации.
Убрать завершающий слеш
<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>
Привести все в нижний регистр
Правило исключает 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
<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
<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 прописываем правило:
<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">
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO Возможности поисковой оптимизации сайта (SEO) Генерация RSS в SQL процедуре Интеграция с Яндекс XML API Интеграция API Яндекс.Вебмастер SEO - Как создать виртуальные страницы с одним шаблоном, но под разные ключи Оптимизация по загрузке картинок Как сделать карту сайта Яндекс Турбо - как включить Яндекс Турбо страницы для контента на сайте Интеграция с Тургенев API для проверки качества контента Создание AMP страниц для улучшения позиций в Google Внедрение рекламных блоков в контент Улучшение Pagespeed за счет отключения лишних счетчиков (как убрать некоторые скрипты для пауков, ботов)
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы