Populating the News Section with Content in 1C-Bitrix
A news section in Bitrix looks simple in theory: an infoblock of type "News", a bitrix:news.list component on the section page and bitrix:news.detail on the detail page. In practice, six months after launch the section turns into a dump: some news items have no photos, some have no OG tags, previews are cut off mid-word, tags are not set, SEO fields are empty. Indexing happens, but there is no traffic.
Populating a news section is not simply "copy text into the visual editor." It involves working with infoblock structure, field settings, SEO templates, and publishing rules.
News Infoblock Structure and What Matters
A standard Bitrix news infoblock has a predictable set of fields:
-
Name (
NAME) — goes into<title>and<h1>if the SEO template is configured viaiblock_element_meta -
Preview text (
PREVIEW_TEXT) — preview text in the list; should be 150–200 characters without HTML -
Detail description (
DETAIL_TEXT) — the main news body -
Preview image (
PREVIEW_PICTURE) — shown in the list; size is set in the component template -
Detail image (
DETAIL_PICTURE) — inside the news body -
Active date (
ACTIVE_FROM) — publication date, affects sorting -
Tags — via an infoblock property of type "List" or via
b_iblock_element_propertywith multiple values
A common mistake when populating manually: text is copied with formatting from Word or an external source, and DETAIL_TEXT ends up containing <span style="font-family: Calibri;">. The component outputs this directly, breaking the layout. Before adding any text it must be run through "Paste as plain text" in the visual editor (TinyMCE in Bitrix) or through the PHP function strip_tags() with allowed tags.
Optimizing the Process: Templates and Masks
Every news item needs SEO fields filled in — META_TITLE, META_KEYWORDS, META_DESCRIPTION. Doing this manually for each of 500 news items is a waste of time. In Bitrix this is handled through infoblock SEO templates.
In the infoblock settings (the "SEO" section):
Title template: {=this.Name} — {=this.Fields.ACTIVE_FROM.format("d.m.Y")} | SiteName
Description template: {=this.PreviewText}
The template is applied automatically to each new element. For elements already added — through bulk editing or an update script.
A custom script for batch updating SEO fields of existing news items:
$res = CIBlockElement::GetList(
['DATE_ACTIVE_FROM' => 'DESC'],
['IBLOCK_ID' => IBLOCK_NEWS_ID, 'ACTIVE' => 'Y'],
false, false,
['ID', 'NAME', 'PREVIEW_TEXT']
);
while ($el = $res->Fetch()) {
CIBlockElement::SetPropertyValuesEx($el['ID'], IBLOCK_NEWS_ID, [
'META_TITLE' => $el['NAME'] . ' | Company Site',
'META_DESCRIPTION' => mb_substr(strip_tags($el['PREVIEW_TEXT']), 0, 160),
]);
}
Images: Processing Rules
Each news item requires two images: a preview (300×200 px) and a detail image (800×450 px or per the layout grid). Uploading original press photos directly to DETAIL_PICTURE is a mistake: the original weighs 5–10 MB and the component will serve it as-is.
The correct approach — resize via component parameters:
// in .parameters.php of the component or in template.php
$arParams['PREVIEW_PICTURE_SIZE'] = [
'WIDTH' => 600,
'HEIGHT' => 400,
'TYPE' => BX_RESIZE_IMAGE_PROPORTIONAL,
];
Bitrix caches resized images in /upload/resize_cache/. On subsequent requests the cached version is served; the original is not processed again.
For images already uploaded without resizing — a batch processing script via CFile::ResizeImageGet().
Open Graph and Social Networks
If news items are shared on social media, each must have correct OG tags. In Bitrix they are generated either through the bitrix:main.og.tags component or manually in the detail page template:
$APPLICATION->SetPageProperty('og:title', $arResult['NAME']);
$APPLICATION->SetPageProperty('og:description', strip_tags($arResult['PREVIEW_TEXT']));
$APPLICATION->SetPageProperty('og:image', SITE_SERVER_NAME . $arResult['PREVIEW_PICTURE_INFO']['SRC']);
These properties are picked up in the site's head template.
Tag and Section Structure
As the news section grows, proper category (infoblock section) structure and a tagging system become important. Sections in Bitrix are b_iblock_section. Each element is linked to one or more sections. Filtering by section is a standard parameter SECTION_ID in the bitrix:news.list component.
Tags — via an infoblock property linked to the b_iblock_element_property table. They appear on the detail page as links to a filtered list.
Publication Regulations and Checklist
Without a process, content managers will do things differently. A minimal checklist for each news item:
- Title up to 70 characters (fits in
<title>without truncation) - Preview 150–200 characters, no HTML, with a complete sentence
- Detail image 1200×630 px (universal size for OG)
- Section selected, tags set
- Active date matches the actual event date, not the upload date
- SEO fields checked (auto template or manual)
Timelines
| Volume | Type of work | Timeline |
|---|---|---|
| Up to 50 news items | Population + SEO optimization for each | 1–2 weeks |
| 50–200 news items | + bulk import via API/Excel | 2–4 weeks |
| 200+ news items | + parsing external sources, automation | 4–8 weeks |
A well-structured population process saves time on every subsequent publication and eliminates the technical debt that accumulates when content is added without a system.







