Yandex Metrika
sanches.free

Массовая очистка SEO-шаблонов и готовых метатегов инфоблока

Зачем вообще «сносить» SEO у инфоблока

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

Где живут шаблоны и ручные SEO-поля

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

  • B — настройки всего инфоблока;
  • S — параметры конкретного раздела;
  • E — параметры карточки элемента.

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

Слой данных D7: снять всё одним блоком скрипта

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

use Bitrix\Main\Application;
use Bitrix\Main\Loader;

Loader::includeModule('iblock');

$catalogIblockPk = 12; // нужный числовой ID инфоблока
$connection = Application::getConnection();
$idLiteral   = (int) $catalogIblockPk;

$sqlBatch = [
    'DELETE FROM b_iblock_iproperty WHERE IBLOCK_ID = ' . $idLiteral,
    'DELETE FROM b_iblock_iblock_iprop WHERE IBLOCK_ID = ' . $idLiteral,
    'DELETE FROM b_iblock_section_iprop WHERE IBLOCK_ID = ' . $idLiteral,
    'DELETE FROM b_iblock_element_iprop WHERE IBLOCK_ID = ' . $idLiteral,
];

foreach ($sqlBatch as $sqlBody) {
    $connection->queryExecute($sqlBody);
}

Про кеш и дальнейшие шаги

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

Когда обходиться без DELETE

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

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии