Био страница: 5 причин держать её на своём сервере
Био страница начинается как удобство и превращается в зависимость. Вы регистрируетесь, вписываете пять ссылок, а через полтора года на ней висит ваш трафик, ваш бренд и подписка, которую нельзя отменить без потери истории.
Код: Link-in-Bio-with-MCP-Server, лицензия MIT.
Держать её у себя это не ностальгия по статическому вебу. На одном PHP-файле страница грузится быстрее сервисной версии, метаданные принадлежат вам, а расходы перестают быть ежемесячными.
1. Страница часть сайта, а не обходной путь
Хостингуемая страница живёт на чужом домене. Каждый, кто нажимает ссылку, уходит от вашего бренда на три секунды, видит чужой логотип и возвращается через редирект.
Био страница на своём домене это часть сайта. Аналитика та же, что у остальных страниц, баннер о cookie тот, который вы уже написали, а шрифты совпадают с главной, потому что это те же файлы.
2. Метаданные под вашим контролем
Об этом обычно узнают поздно. Сервис решает, какая картинка Open Graph появится при отправке ссылки и какой заголовок попадёт в индекс. Решения нормальные, пока бренд не сменился, а превью показывает старое.
Когда страницу генерирует ваш код, canonical, пары hreflang, блок JSON-LD и карта сайта берутся из того же источника, что и видимый текст. Одна правка обновляет всё.
3. Отсутствие фреймворка это плюс
Версия, которую мы держим, это чистый PHP 8.1 и выше, одно дерево JSON как хранилище контента и ни одного пакета Composer в рантайме. Сборки нет, поэтому изменение выкладывается копированием файла. Пути обновления фреймворка нет, поэтому каждую весну нечего мигрировать.
Это важно, когда страница одна из двадцати задач на поддержке. Страница без зависимостей продолжает работать после переезда сервера, который ломает три плагина в другом месте.
4. Правка без браузерной сессии
Страница отдаёт MCP-сервер с двенадцатью инструментами, поэтому ИИ-клиент может добавить ссылку, переставить секцию, скрыть пункт или переписать описание. Каждая запись проверяет всё дерево контента, копирует резервную копию, пишет атомарно под блокировкой и добавляет строку в журнал.
Модель конкурентности это номер ревизии. Две правки одновременно дают один понятный отказ вместо одной тихой перезаписи. Для тех, кто терял абзац в редакторе с правилом «последний победил», это главная функция.
5. Её можно перенести
Контент это файл JSON. Если оформление перестало работать, вы берёте файл и рендерите его в другом месте. Без экспорта и без условия «ваш тариф не включает перенос данных».
Что меняется на практике
Добавляется одна работа: обновлять PHP и продлевать сертификат. Это честный обмен против ежемесячной платы и сервиса, который может поменять цены.
На небольшом сервере расходы незаметны. Страница рендерится один раз и кеширует HTML, а ключ кеша собирается из ревизии контента, шаблона и файлов исходников, поэтому правка или выкладка сами себя сбрасывают. Ответы со скоростью статики от динамической страницы.
Доступность это то, что в этой категории обычно пропускают. Страница рассчитана на WCAG 2.0–2.2 AA, не перехватывает клавиатурные сокращения, уважает уменьшение движения и проходит axe-core без нарушений. Готовый шаблон сервиса такого контроля редко даёт, а био-страница это ровно то, что проверяет аудит доступности.
Когда сервис лучше
Если страница нужна сегодня, а сервера нет, подписка дешевле проекта. Если некому обновлять PHP, то же самое.
Свой сервер имеет смысл, когда страница несёт брендовый трафик, когда на том же сервере уже стоит сайт и когда хочется, чтобы метаданные перестали меняться без предупреждения.
Если страницу нужно нормально индексировать, работа пересекается с SEO. А если ссылки ведут в магазин, порядок работ описан в разделе веб-разработка. Текст на такой странице заслуживает той же проверки, что любой другой: читаемость текста измеряет её до того, как текст тронет переводчик или редактор.
Что почитать: краткий справочник WCAG 2.2 и Model Context Protocol.
