Media Portal Development on 1C-Bitrix
The editor opens the publication site in the morning and sees: an article posted at 11 PM by the night editor contains a factual error in the headline. Comments are already filled with outrage, the screenshot is spreading on Telegram. Fixing the headline takes a minute, but the night editor had the right to publish without approval because "it's faster". A media portal without a structured editorial workflow is a time bomb. 1C-Bitrix builds a full publishing platform: from issue planning to paywall and handling millions of pageviews.
Content Model of Publication
A media portal works with several content types, each with its own specifics:
Infoblocks:
- News — operational materials, short format, quick publication
- Articles — analysis, investigations, longform with extended layout
- Interviews — structured format (Q&A), tied to person
- Opinions/Columns — author materials, tied to regular author
- Special Projects — custom landings with unique design
- Photo Reports — galleries with captions, tied to event
- Video — embedded or linked to video hosting
Material Element — Extended Properties:
| Property | Purpose |
|---|---|
| Title + subtitle (lead) | SEO title and editorial may differ |
| Excerpt | Short text for feed, social, push |
| Full text | Visual editor with blocks: text, quote, insert, infographic |
| Cover | Main image + cropping for formats (16:9, 1:1, 4:5) |
| Authors | Multiple binding to authors infoblock (co-authorship) |
| Sections | Infoblock categories, material can be in multiple sections |
| Tags | Free tags for cross-navigation |
| Geotag | Binding to event location (for news map) |
| Priority | Normal / important / urgent / breaking news |
| Source | For reprints: link, publication name |
| Status | Idea → Draft → Under Edit → Under Review → Scheduled → Published → Archive |
Editorial Workflow
Workflow distinguishes publication from blog. Each material goes through processing chain where each stage has its own responsible person and rules.
Roles in Editorial:
- Correspondent/Author — creates draft, edits before submitting for review
- Chief Editor — copyedits, fixes style, verifies facts
- Section Editor — approves material for their section
- Editor-in-Chief — final approval for materials marked "important" and "breaking"
- Proofreader — proofreading before publication (optional stage)
- Photo Editor — image selection and processing
- SMM Editor — prepare excerpts for social media
Publication Business Process via bizproc:
- Author creates material, fills required fields, attaches media → status "Draft"
- Sends for editing → section editor gets notification, deadline depends on priority (urgent — 30 min, normal — 4 hours)
- Editor edits text with tracked changes (via visual editor or external tool), approves or returns to author with comments
- Approved material goes to section editor (if needed) or straight to publication
- Materials marked "important" — additional approval from editor-in-chief
- On publication: URL is generated, sitemap updates, excerpt is created for social, aggregators are pinged
Express publication for breaking news: author with "urgent publish" right bypasses approval stages. Material publishes instantly but automatically goes to post-publication review queue.
Publication planning. Editorial team plans issue (release) for day/week. Planning board — Kanban or calendar showing all materials by status and publication date. Implemented via custom component with drag-and-drop.
Multi-Author System
Publication with 20+ authors needs:
-
Author profiles — infoblock: photo, biography, position, social, publication list. Author page —
/authors/ivanov-petr/— with all materials - Access rights — author edits only their materials, editor — their section materials, editor-in-chief — all
- Guest authors — external experts writing columns. Separate user group with limited rights: create draft → submit for moderation, no publishing rights
- Author stats — publication count, views, average readability. Available to editor and author
Paywall and Subscription
Monetizing through subscription is a trend among quality publications. In 1C-Bitrix, it's implemented multiple ways.
Paywall Models:
| Model | Logic | Examples |
|---|---|---|
| Hard paywall | All content behind subscription | The Information, WSJ |
| Metered paywall | N free articles/month, then subscription | NYT (10 articles/month) |
| Freemium | Some articles free, exclusive behind paywall | Kommersant |
| Donation | Content free, but with request to support | The Guardian |
Metered paywall Implementation:
- On each view — counter in cookie and/or DB (for authorized)
- Limit reached → content blocked by modal with subscription offer
- Subscriber — "Subscribers" user group, full text access via infoblock rights
- Bypass via incognito — protection: account binding, fingerprinting (per legislation)
Subscription Payment:
-
salemodule in 1C-Bitrix: item = monthly/quarterly/yearly subscription - Recurring payments via YooKassa, CloudPayments, Stripe
- On subscription expiry — auto-remove from "Subscribers" group, progress (reading history) preserved
- Corporate subscriptions — invoice to legal entity, IP authorization (access from all office network devices)
Highload Optimization
Media portal is one of most-loaded web project types. Trending news collects hundreds of thousands views in an hour.
Optimization Stack:
- Composite cache in 1C-Bitrix — foundation. Static HTML version served via nginx; dynamic blocks (view counter, comments, paywall widget) loaded via AJAX
- Nginx as reverse proxy — with micro-caching (1–5 seconds) for hot pages
- CDN — Cloudflare, AWS CloudFront, or Selectel CDN. Static (images, CSS, JS) served from nearest edge server
- Auto image resizing — via imgproxy or built-in 1C-Bitrix handlers. 3000×2000 cover isn't served to mobile — 800×450 version is generated
- Deferred operations — view counter isn't written to DB on every hit; accumulated in Redis/Memcached, flushed to DB by agent every minute
-
Read replicas MySQL — separate server for SELECT queries. 1C-Bitrix supports DB cluster out-of-box (
clustermodule) -
Horizontal scaling — multiple web nodes behind load balancer. Sessions stored in Redis, files in S3-compatible storage (via
cloudsmodule)
Load Budget:
| Metric | Target |
|---|---|
| Server response time (TTFB) | < 200 ms |
| Page load time (LCP) | < 2.5 s |
| Concurrent users | 10,000+ |
| Pageviews per day | 1,000,000+ |
| Requests/sec at peak | 500–1,000 |
Content Distribution
Material published — deliver it to audience.
Channels:
- RSS/Atom — global feed and by section. For Yandex.News and Google News — separate feeds with full text and extended metadata
- Telegram channel — auto-post via Telegram Bot API on publication. Format: title + excerpt + image + link
- Social networks — VK, Facebook, Twitter via REST API. Open Graph markup for correct previews
- Push notifications — Web Push via Service Worker. Segmentation: "Politics" section subscribers get push only for that section
- Email digest — daily/weekly selection via 1C-Bitrix newsletter module
- AMP pages — for priority in Google mobile search
- Yandex Turbo Pages — RSS feed in Turbo format for fast loading from Yandex
SEO for Media Portal
-
Micromarkup
NewsArticle/Article: headline, datePublished, dateModified, author (with link to profile), publisher, image, wordCount -
URL slugs —
/rubrika/slug-materiala/or/rubrika/2026/03/12/slug/(with date for news) - Canonical URL — mandatory with pagination, AMP versions, sort parameters
-
Sitemap — split by content type and time periods:
sitemap-news-2026-03.xml,sitemap-articles.xml - Core Web Vitals — LCP < 2.5s, FID < 100ms, CLS < 0.1. Achieved via composite cache, lazy-load images, critical CSS
- Internal linking — blocks "Read Also", "Related", "Popular" — auto-generated by tags and sections
Comments and UGC
- Comment system — custom module or "Forum" module tied to material
- Pre-moderation for new users, post-moderation for verified
- Comment rating — likes/dislikes; top comments highlighted
- Verification — badge for experts and public figures (like "blue checkmark")
- Ban system — temporary/permanent ban, shadow ban (user writes but only sees their comments)
- Anti-spam — captcha, rate-limiting, stop words, ML filter for toxic content







