What this solution does
The module generates and maintains an up-to-date YML feed for 'Doctors' for Yandex Webmaster. Clinic specialist cards appear in Yandex search results with prices, service lists, education details, and reviews.
Integration with existing data
Information about doctors, services, and reviews is extracted from infoblocks already present on the site. Content duplication is unnecessary: for each feed field, you specify the source as an element field, infoblock property, or catalog price type. Any updates to a doctor's card on the site are automatically reflected in the next feed generation.
Automated offer creation
A feed entry is a combination of 'doctor + clinic + service + specialty'. A typical clinic may have hundreds of such combinations. The module offers two methods to create them:
Binding rules. A formula such as 'doctors of a specific specialty multiplied by services from a specific price section in a particular clinic' replaces dozens of individual records and regenerates automatically when source data changes.
Matching assistant. The tool automatically maps price sections to doctor specialties and suggests ready-made rules for the user to review and confirm.
Price matrix generation: rows are doctors, columns are services, cells contain prices. Data can be imported from Excel: select the relevant part of the clinic's price list and paste it into the table. Manual corrections are preserved and are not overwritten during rule regeneration.
Yandex requirements check before export. A separate screen shows specific violations with a direct link to the element that needs fixing. Checks include: site name length, mandatory details, logo and doctor photo dimensions, allowed currencies, review rating ranges, the requirement of exactly one base service per 'doctor + clinic + specialty' combination, and the maximum number of offers in a single feed. Errors block the export, warnings do not.
Support for prices in any format. Prices in information blocks are rarely stored as numbers. The module understands 'from 5,000 RUB', '1,300.50 ₽', non-breaking spaces, ranges, and tables like '30 minutes — 1,300 RUB'. Unparsed values are not replaced with zeros but are honestly displayed on the check screen.
Specialty mapping. Yandex accepts only specialties from its own list, while on the site they may be written arbitrarily. The module collects all variations from the doctor information block, finds the match, and displays the result.
The system ensures that only verified data is included in the feed. Doctors with unconfirmed matching are excluded; it is better to omit a record than to submit speculative data to Yandex. The initial setup is performed once, after which new doctors with matching specialty names are added automatically.
Automatic Updates
The feed is regenerated on a schedule ranging from once per hour to once per week. Before each update, a quality check identical to the manual process is performed. If errors are detected, the previous file version remains untouched, as a stable feed is preferable to a faulty one. Console execution is supported for integration with system cron jobs. A launch history is maintained, recording the timing of data submissions and differences between the current run and the previous one.
Practical Setup
Initial configuration takes one evening and is performed once. The user specifies the location of doctor and service data on the website and defines the source fields for the feed. Clinic information (typically one to five locations) is stored directly within the module, eliminating the need for a separate information block for just a few addresses. The correspondence between specialty name formats and the Yandex list is confirmed a single time.
The core of the feed consists of offers, which are combinations of 'doctor + clinic + service + specialty'. A clinic with multiple branches can generate hundreds of such records. Manual creation is unnecessary: the system automatically matches price list sections with doctor specialties and proposes ready-made rules. You only need to review them and click 'Apply'. A single rule, such as 'neurologists multiplied by the 'Neurology' price section in a specific clinic', instantly creates all required combinations and rebuilds them when data changes.
Daily operations require minimal intervention. Price changes in the price list are automatically reflected in the feed during the next rebuild. When a new doctor is added to the info block, the system automatically associates them if their specialty matches existing entries; otherwise, it requests confirmation of the match. If a doctor leaves, disabling their element in the info block stops their offers from being exported. Removing a service from the price list causes related offers to disappear during the next rebuild. Opening a new branch involves adding the clinic and copying the relevant rules to it.
The price matrix enables flexible pricing configuration: rows represent doctors, columns represent services, and cells contain the final price. You can copy a fragment from a clinic's Excel file and paste it directly into the module's table. Manual edits are marked as fixed and preserved during automatic rule regeneration, preventing accidental overwrites.
Additional features:
An integrated directory of clinics and branches eliminates the need to create separate information blocks for each address.
Offer management is handled via a list with filters and batch operations: set price, enable or disable, unfix, or delete.
Predefined filters for quick identification of items without a price, manually edited, or disabled.
Atomic feed writing ensures that the Yandex crawler receives only fully formed files.
The feed is always output in UTF-8, regardless of the site's encoding.
Support for Russian and English localization.
The module operates in read-only mode and does not modify existing information block data.
If “Yandex.Doctors: Feed for Webmaster” is selected, General iT can configure the solution, adapt it to the project and support its further development.