ИП Григорьев Олег Сергеевич
Информационные технологии и интернет
Россия, Санкт-Петербург
Порталы и сервисы
Февраль 2023
Юникод — это мощная стандартизированная система, объединяющая все символы мира. Но работать с ним неудобно. Понятно, что символов много. Но где и как искать те, которых нет на стандартной клавиатуре?
❌ Официальный сайт консорциума Unicode предлагает PDF-документы. Миллионы символов спрятаны в бесконечных страницах, которые приходится листать вручную. Это не работа – это испытание на терпение.
❌ Поиск символов – это боль. Если вам срочно нужен редкий символ, а не пиктограмма из 90-х в формате .pdf, то шансов найти его быстро практически нет.
❌ Названия символов – только на английском, а описаний и вовсе нет. Что означает этот загадочный значок? Никто не скажет, даже Александр Сергеевич.
❌ Стандарт Юникод – действительно Великий, но взаимодействие с ним – настоящий квест. Он охватывает тысячи письменностей, но пользоваться им так же сложно, как расшифровывать древние манускрипты.
➜ МЫ РЕШИЛИ: ХВАТИТ СТРАДАТЬ!
Вот, что нужно сделать (ง •̀_•́)ง
✅ Создать мгновенный поиск, который работал бы так, как нужно.
✅ Сделать таблицу Unicode простой, понятной, интерактивной.
✅ Перевести разделы Юникода и все названия символов на основные языки.
✅ Добавить магию AI, чтобы находить, объяснять и показывать символы красиво.
Мы сделали не просто сайт про символы. Мы первыми превратили технически сложную, непонятную и громоздкую систему Юникод в удобный инструмент, понятный и доступный каждому. И вот, как это было.
➜ ЧТО ВООБЩЕ ПРОИСХОДИТ?
Мы знаем, что люди используют символы повсюду и везде — в никнеймах, дизайне, коде, текстах. Но как они их ищут? Чем недовольны? Почему возвращаются или не возвращаются?
Чтобы не гадать на кофейной гуще и не вариться в котле своего персонального опыта, мы провели JTBD-исследование. Разобрались, какие задачи пользователи решают с помощью символов, какие боли испытывают и почему (чёрт возьми) сайты с символами до сих пор выглядят так, будто их кодил динозавр.

➜ ДОПОЛНИТЕЛЬНЫЕ РАБОТЫ:
• Найти символ по названию или категории;
• Посмотреть, как он выглядит в разных системах/шрифтах;
• Узнать его технические характеристики (HTML-код, Unicode-код);
• Понять, что вообще означает этот странный значок;
• Сохранить в избранное, чтобы не искать каждый раз заново.

➜ ЧТО ОБЪЕДИНЯЕТ ВСЕХ ЭТИХ ЛЮДЕЙ?
✅ Они хотят быстро находить нужные символы
✅ Они хотят видеть, как символы выглядят в разных стилях
✅ Они хотят понимать, что означают символы, а не просто копировать
✅ Они хотят удобно хранить и переиспользовать найденные символы
➜ ЧТО МЫ ВЫЯСНИЛИ? БОЛИ ПОЛЬЗОВАТЕЛЕЙ
❌ Поиск на сайтах с символами – это боль
→ Большинство альтернативных сайтов выглядят как портал в 2007: тормозят, завалены рекламой, а поиск работает как спортлото.
❌ Пользователи не уверены, что символ правильный
→ «Этот знак точно подходит? А если я вставлю, его везде увидят?»
❌ Отсутствие персонализации
→ Пользователи ищут одни и те же символы по 10 раз, потому что нет удобного «Избранного».
❌ Не хватает контекста
→ «Этот символ что-то значит или это просто пиктограмма?»
❌ Шрифтовая поддержка – рулетка
→ «Почему на одном устройстве символ видно, а на другом – квадрат?»
❌ Нет нормальной интеграции с другими сервисами
→ «Хочу вставлять символы в документы, дизайн, код – но это неудобно.»

Мы поняли не просто что не так, а какие реальные задачи люди хотят решать. Теперь, когда мы знаем их боли, можем сделать так, чтобы symbl.cc стал не просто каталогом символов, а настоящим инструментом для работы с ними.
➜ ПЕРЕХОДИМ К ПЛАТФОРМЕ БРЕНДА И ПОЗИЦИОНИРОВАНИЮ
Юникод-символы — это мощный инструмент. Они могут быть минималистичными и строгими, как математические операторы. Могут быть выразительными, как Эмоджи. Или таинственными, как исчезающие древние письменности. Всё это — живая библиотека символов, которая помогает людям быть заметнее, выражать себя и находить правильные знаки в нужный момент. Как превратить технический справочник в бренд с ярким и запоминающимся лицом?
➜ ОТВЛЕКАЕМ МИШУ ШИШКИНА ОТ БАРСЕЛОНСКОЙ ПАРУСНОЙ РЕГАТЫ И НАЧИНАЕМ РАБОТАТЬ
Мы позвали в проект Мишу Шишкина и его команду Shishki и Suicide Brands, чтобы ещё раз всё обдумать и сделать визуальную систему, которая будет органично сочетать строгую энциклопедичность Юникода и его креативную многогранность.

➜ ЧТО МЫ ХОТЕЛИ ПЕРЕДАТЬ ЧЕРЕЗ АЙДЕНТИКУ?
Системность → Юникод — это строго выстроенная система, не хаос.
Современность → сайт должен выглядеть актуально и свежо, а не как музейный справочник.
Эмоциональность → пользователи заходят за конкретными задачами: украсить никнейм, найти редкий знак, понять значение Эмоджи. Нам нужен был живой образ, а не сухой каталог.
Игру с символами → мы исследуем мир текстовых знаков, используем их для выражения эмоций и стиля.

✅ Это о тех, кто хочет добавить выразительности в текст.
✅ О тех, кто ищет редкие и красивые знаки.
✅ О тех, кому не хватает клавиатуры.

➜ В ИТОГЕ МЫ ПОЛУЧИЛИ ЛОГОТИП, СОБРАННЫЙ ИЗ UNICODE-СИМВОЛОВ
• В основе — разные письменности, отражающие глобальную природу Юникода.
• Каомозди делает логотип дружелюбным, добавляя игру и эмоциональность.
• Гибкость: логотип можно адаптировать под любые контексты, что полностью соответствует духу Юникода.
Мы создали не просто логотип, а символический образ самой идеи Юникода.
Когда ваш сайт растёт с 10 000 пользователей до 3 500 000 в месяц, стандартные решения перестают работать. Запросы к серверу множатся, страницы грузятся медленнее, а база данных грозит схлопнуться. Мы знали, что нам нужна архитектура, которая справится не только с настоящим трафиком, но и с будущими нагрузками.
➜ ОСНОВНЫЕ ТРЕБОВАНИЯ К АРХИТЕКТУРЕ
✅ Масштабируемость — способность выдерживать миллионы запросов.
✅ Гибкость — возможность адаптироваться под новые версии Юникода.
✅ Скорость — загрузка страниц без задержек.
✅ Структурированность — удобная навигация и понятная иерархия данных.
1. Данные хранятся в файлах, а не в базе данных
На первый взгляд, кажется логичным использовать MySQL или PostgreSQL. Но мы пошли другим путём.
➜ ПОЧЕМУ?
• Юникод — это справочник, а не динамический сервис. Большинство пользователей не создают контент, а только читают информацию.
• Один символ может иметь десятки атрибутов, переводы на 16 языков, изображения и технические характеристики.
• Если хранить данные в реляционной базе, то SQL-запросы стали бы слишком сложными и медленными.
Файлы позволяют:
✅ Гибко управлять данными.
✅ Хранить их в удобных форматах.
✅ Готовить информацию для кэширования.
➜ КАК ЭТО ВЫГЛЯДЕЛО В НАЧАЛЕ?
Изначально сайт был open-source проектом: данные хранились в открытом репозитории на GitHub, и любой человек мог предложить изменения.
➜ ПОЧЕМУ МЫ ОТ ЭТОГО ОТКАЗАЛИСЬ?
Со временем количество изменений выросло в сотни раз, что усложнило модерацию. Кроме того, открытый формат мешал SEO-оптимизации.

2. Как мы ускорили работу сайта: Кэширование и структура данных
Когда проект стал популярным, мы столкнулись с проблемой медленной загрузки страниц.
➜ В ЧЁМ БЫЛА СЛОЖНОСТЬ?
Представьте страницу знака евро «€». Чтобы её загрузить, нужно:
✅ Получить свойства символа, его вхождения в разделы и коллекции.
✅ Собрать все переводы.
✅ Сгенерировать мета-теги и og:image.
✅ Прогрузить изображения (если эмодзи) или шрифты (если символ).
➜ ЧТО МЫ СДЕЛАЛИ?
✅ Создали систему кэширования
• Мы не храним статические страницы → генерируем отдельные части.
• Отдельные части страницы (переводы, изображения, описания, и т.д.) кэшируются.
• Используем градуированное кэширование → сначала храним отдельные блоки данных, затем собираем их в готовую страницу.
➜ КАК ЭТО УСКОРИЛО РАБОТУ?
✅ Запросы к серверу уменьшились в десятки раз.
✅ Рендеринг символов стал мгновенным.
✅ Страницы загружаются на 50% быстрее.
До внедрения кэширования сложные страницы могли загружаться до 3 секунд. А теперь они появляются быстрее, чем вы успеваете моргнуть.

3. Почему нам нужен CDN: скорость по всему миру
Сайтом symbl.cc пользуются во всем мире, а значит, важно, чтобы данные загружались моментально. Если сервер далеко от пользователя, даже быстрая архитектура может замедляться. Решение очевидно — CDN.
➜ КАК МЫ ЭТО РЕАЛИЗОВАЛИ
✅ CDN раздаёт статику — шрифты, изображения Эмоджи, js, css подгружаются с ближайшего к пользователю сервера.
✅ Отдельные домены для CDN — запросы к файлам не нагружают основной сервер.
✅ Разделение трафика — у нас разные CDN для России и остального мира. Пользователь получает контент с географически ближайшего узла.
✅ Гибкое управление кэшем — при релизе сайта кэш CDN сбрасывается полностью.
✅ Автоматическая настройка ссылок — в вёрстке подставляется нужный домен автоматически, без ручной правки.
✅ SEO-оптимизация — CDN сначала отдавал robots.txt, мешая индексации. Мы настроили CDN так, чтобы он передавал серверу специальные заголовки, а сервер в ответ возвращал правильную версию robots.txt.

4. Где мы всё-таки используем БД
Хотя основные данные хранятся в файлах, для некоторых задач мы используем БД.
✅ Что она делает?
• Аналитика популярности символов → какие символы копируют чаще всего.
• Быстрые фоновые процессы → задачи выполняются через RabbitMQ
➜ КАКИЕ ТЕХНОЛОГИИ МЫ ИСПОЛЬЗУЕМ
• MySQL → для хранения статистики.
• Redis → для быстрого кэширования.
• RabbitMQ → для фоновых задач (кэш, статистика, индексация, sitemap).

5. Обновление сайта при выходе новых версий Юникода
Каждые несколько лет выходит новая версия стандарта Юникод с новыми символами и Эмоджи. Чтобы быстро обновлять сайт, мы создали автоматизированный процесс.
➜ КАК ЭТО РАБОТАЕТ
✅ Мы забираем данные из официального релиза на unicode.org.
✅ Встраиваем новые символы в структуру сайта.
✅ Переводим названия символов на 16 языков.
✅ Дожидаемся, когда изображения новых Эмоджи появятся на платформах (iOS, Android, Windows) и переносим их на сайт.
✅ Публикуем статью в блоге с описанием нововведений.
➜ КАК ЭТО ПОМОГАЕТ
✅ Пользователи первыми узнают о новых символах.
✅ Сайт всегда актуален.
✅ Мы сохраняем лидерство в нише Юникод-справочников.
Часто сайты — это сотни страниц, которые создали в спешке, когда кому-то что-то срочно понадобилось. В итоге — хаос. Но мы не могли себе такое позволить. У нас 5+ миллионов страниц, и каждая должна быть на своём месте. Мы построили структуру, которая работает не как заваленная гардеробная, а как продуманная библиотека — с идеальной навигацией, понятной людям и поисковикам.
➜ ЛОГИКА, ПОНЯТНАЯ ЛЮДЯМ
✅ Все символы сгруппированы по разделам Юникода — поиск интуитивно понятен.
✅ Разделы выводятся по диапазонам, алфавиту и типам символов.
✅ Чистые и предсказуемые URL — без лишнего мусора и непонятных идентификаторов.
➜ БАЛАНС UX И SEO
✅ Каждая категория и символ находятся на своём месте, без дублей и потерь.
✅ URL-адреса работают не просто как ссылки, а как мощные SEO-инструменты с ключевыми словами.
✅ Поисковые системы сразу понимают структуру, а значит, индексация работает без сбоев.
➜ ПОДГОТОВКА К БУДУЩЕМУ
Юникод постоянно обновляется. Мы придумали систему, где каждая новая версия стандарта автоматически встраивается в структуру сайта.
✅ Добавляются новые разделы и категории, но без потери логики.
✅ URL-структура остаётся неизменной и предсказуемой, что важно для долгосрочного SEO.
✅ Даже если появляется 300 новых Эмоджи, они без проблем встроятся в систему.
Мы привыкли, что текст просто «работает»: пишем сообщение, отправляем документ, и всё отображается так, как задумано. Но за этим стоит универсальная система кодировки символов.
Вы когда-нибудь задумывались, что под вашими пальцами всего 256 символов? Это как смотреть в крошечное окно, когда за ним – целый мир. В Unicode почти 150 000 знаков! Буквы, символы, древние письменности, Эмоджи… но попробуйте набрать их с клавиатуры. Удачи!



➜ ИДЕАЛЬНЫЙ ПОИСК ПО СИМВОЛАМ. БОЛЬШЕ НИКАКИХ PDF
✅ Мгновенный поиск: индексируем 149 813 символов в реальном времени, чтобы выдать результат без задержки.
✅ Поиск по подборкам: находим не только символы, но и тематические подборки, блоки и алфавиты с нужными символами.
✅ Поиск по параметрам: символы можно найти не только по названию, а ещё и по их номеру, CSS-коду, HTML-мнемонике.
✅ AI-оптимизация: для каждого символа подобраны синонимы и альтернативные названия, чтобы вы точно нашли нужный символ.
✅ Интеграция OpenSearch: символы можно искать прямо из браузера. Просто введите «sym пробел запрос» – и получите все варианты!



➜ ПОЧЕМУ ЭТО БЫЛО СЛОЖНО?
❌ Unicode содержит 149 813 символов, и попытка загрузить их все сразу приводила к падению браузера.
❌ HTML-разметка не рассчитана на такое количество данных — нужно динамически управлять отрисовкой.
❌ Пользователь должен мгновенно находить нужные символы, но не ждать подгрузки.
➜ КАК МЫ ЭТО РЕШИЛИ?
✅ Используем диапазоны символов, а не храним их поштучно. Это позволяет нам быстро вычислять их кодовые позиции и подгружать данные только в нужных диапазонах.
✅ При скролле страница динамически обновляет только видимые строки, а не всю таблицу. Это экономит ресурсы и ускоряет работу.
✅ Каждому символу даём фиксированное место, но не грузим его сразу — он появляется в момент скролла.
✅ Данные о символе загружаются только при наведении (или тапе на мобильном) → моментальная подгрузка без лишней нагрузки.
✅ Подсветка диапазонов: при наведении система выделяет символы из одного блока, что создаёт эффект живого интерфейса без замедления работы.
➜ КАК ЭТО ВЫГЛЯДИТ В КОДЕ?
При загрузке таблицы мы получаем:
• Список разделов и количество символов в каждом из них.
• Диапазоны символов, чтобы пропускать неопределённые знаки.
• Высчитываем кодовые позиции и динамически формируем структуру.
➜ АЛГОРИТМ РАБОТЫ ТАБЛИЦЫ
1. Проверяем разрешение: 16 символов в строке для десктопа, 8 для мобильной версии.
2. Рассчитываем высоту экрана: определяем, сколько строк может поместиться.
3. Генерируем таблицу: заполняем только видимую область.
4. При скролле обновляем данные: новые строки загружаются в момент прокрутки.



➜ КАК МЫ РЕШИЛИ ПРОБЛЕМУ ОТОБРАЖЕНИЯ СИМВОЛОВ
✅ Оптимизировали копирование – символы вставляются без лишних тегов, пробелов и других артефактов. Только чистый символ.
✅ Добавили мгновенное копирование HTML, CSS, Unicode-номеров, чтобы можно было сразу использовать символы в коде или тексте.
✅ Разбили шрифт на блоки, чтобы загружались только нужные символы, а не весь набор сразу. Это ускоряет работу и снижает нагрузку.


➜ МЫ РЕШИЛИ ПРОБЛЕМУ ОТОБРАЖЕНИЯ СИМВОЛОВ ЮНИКОДА НА САЙТЕ
❌ Google Noto Sans поддерживает всего 2 840 символов из 30 блоков Юникода.
❌ Операционные системы отображают символы по-разному.
❌ Редкие знаки превращаются в пустые квадраты.
✅ Мы сделали свой веб-шрифт, который поддерживает все 149 813 символов из 327 блоков Юникода.
➜ КАК МЫ ДЕЛАЛИ ШРИФТ ДЛЯ SYMBL.CC
Огромный шрифт = огромный файл → мы не могли просто отдавать его целиком, иначе сайт превращался бы в черепаху.
Нарезали шрифт на файлы по 256 символов → браузер загружает только те, которые действительно нужны на странице.
Два формата .woff и .woff2 → чтобы работало во всех браузерах.
Оптимизированный рендеринг → шрифты подгружаются моментально и не создают задержек.
➜ РЕЗУЛЬТАТ:
✅ Все символы Юникода отображаются корректно.
✅ Даже самые редкие знаки больше не превращаются в квадратики.
✅ Работает на любых платформах: MacOS, Windows, Linux, мобильные устройства.

➜ ЧТО И КАК МЫ СДЕЛАЛИ?
✅ Оптимизировали качество Эмоджи при помощи AI.
✅ Обработали 3,5 тысячи изображений.
✅ Первыми вывели Эмоджи в разрешении 640 х 640 пикселей.

Сеошить такой ∞ сайт — небанальная задача. Это скорее полноценное инженерное искусство. Даже Screaming Frog SEO Spider сканирует сайт 4 суток и останавливается только потому, что достигает лимита в 5 миллионов страниц. Разделы Юникода, страницы символов, подборки, инструменты — и всё это на 16 языках.
Поэтому, чтобы разобраться c SEO, мы постоянно подключаем топовых специалистов из индустрии: Сашу Чепукайтиса и ребят из TRINET.

➜ Проблема:
❌ Ограниченный краулинговый бюджет → поисковики обходят только часть страниц и могут не дойти до нужных.
❌ Unicode содержит 1,5 млн неопределённых символов → их нет смысла индексировать, но боты всё равно на них заходят.
❌ Страницы на похожих языках (например, испанский и португальский) → Google может склеить их, если неправильно расставить hreflang.
✅ Как мы это решили?
• Настроили приоритеты индексации → сначала поисковики обходят подборки символов и инструменты (их десятки, они быстро обновляются), потом Unicode-блоки, и только затем — страницы отдельных символов (их миллионы).
• Настроили hreflang для 16 языков → учли нюансы схожих языков (испанский/португальский), чтобы Google не объединял их в одну версию.
• Ограничили индексацию неопределённых символов → теперь они отдаются как 404, но пользователи всё равно видят полезную информацию, а краулинговый бюджет не тратится.

➜ Проблема:
❌ В поиске люди не всегда вводят точное название символа.
❌ Символы разбросаны по разным блокам Unicode, но логически связаны. Например, знаки «>» по сути — стрелка, но по факту им не является.
❌ Google выдавал разрозненные страницы, а не структурированные подборки.
✅ Как мы это решили?
• Создали SEO-подборки символов → страницы для самых частотных запросов: «галочки», «стрелки», «значки валют», «звёзды», «кавычки».
• Объединили символы по смыслу, а не только по блокам Unicode → теперь «стрелки» включают все логические аналоги. Подборка стрелок содержит 711 символов.
• Добавили автодополнение в поиск → если пользователь вводит «галочка», ему сразу предлагаются ✅ ✔ ✓.

➜ Проблема:
❌ Генерировать миллионы уникальных заголовков и описаний вручную невозможно.
❌ Каждый язык требует своей системы заголовков.
❌ Google наказывает за авто-переведённые шаблоны без смысла.
✅ Как мы это решили?
• Составили матрицу SEO-текстов → создали шаблоны заголовков и описаний для всех типов страниц на 16 языках.
• Перевели и адаптировали SEO-тексты → вручную проверили ключевые страницы, чтобы они звучали естественно.
• Добавили алгоритм fallback'ов → если нет перевода, ставим оригинальное название в Юникоде и автогенерируем описание.

➜ Проблема:
❌ Каждая страница должна иметь красивый превью-баннер, но символов десятки тысяч.
❌ Обновления Unicode требуют пересборки изображений.
❌ Если символы рендерятся некорректно, люди видят «квадратики» вместо символов.
✅ Как мы это решили?
• Разработали шаблоны OG-изображений → у каждого символа есть превью для соцсетей.
• Автоматическое обновление → раз в неделю система пересобирает изображения при обновлении Юникода, переводов или шрифтов.
• Подключили уникальные шрифты для каждого диапазона → теперь все символы корректно рендерятся.

➜ Проблема:
❌ Google лучше ранжирует контентные сайты, но у нас справочник, а не блог.
❌ Эмоджи в разных странах называют по-разному → например, в России чаще ищут «смайлики», а не «Эмоджи».
❌ Если на странице нет текста, она не получает вес в поиске.
✅ Как мы это решили?
• Запустили блог → теперь на symbl.cc выходят качественные статьи о символах и Unicode.
• Написали уникальные описания Эмоджи → собрали данные по поисковым запросам, чтобы названия соответствовали реальным запросам пользователей.
• Оптимизировали подборки → теперь на каждой странице есть текст, а не просто список символов.
Symbl.cc уже стал ключевым проектом для работы с Юникодом, но мы не останавливаемся, и в ближайшие полгода наших пользователей ждут следующие обновления:
➜ ФУНКЦИОНАЛ
✅ Авторизация → персонализированные коллекции символов
✅ API → интеграция в сторонние сервисы
✅ Плагины для Chrome и Figma → быстрый доступ к символам
✅ Новый, более умный поиск
➜ КОНТЕНТ
✅ Добавляем 2 новых языка: шведский и нидерландский
✅ Глобальное обновление страниц иероглифов → подробные описания, транскрипции, примеры использования
✅ Новый раздел со всеми кодировками и кодовыми таблицами
✅ Викторины и игры с символами → Угадай песню/фильм по Эмоджи
Symbl.cc — это не просто сайт. За несколько лет он стал главным в мире инструментом для работы с символами. Мы не только упростили поиск и копирование, но и изменили сам подход к использованию Юникода. Мы не только сделали Юникод удобным. Мы сделали его крутым.

➜ КАК МЫ ПРЕВРАТИЛИ ЮНИКОД В УДОБНЫЙ ИНСТРУМЕНТ?
• Умный и быстрый поиск → среднее время поиска символа — 2 секунды.
• Перевод на 16 языков.
• SEO-оптимизация 5+ млн страниц.
• Повсеместное использование AI.
• Самые большие изображения Эмоджи в интернете.
• Собственный веб-шрифт, который отображает все символы Юникода.
• Кэширование и быстрая загрузка.



HTML
JavaScript
PHP
Laravel
Redis
Docker
Adobe Photoshop
Adobe Illustrator
Figma
Яндекс Метрика
Google Analytics
Сергей Асанов
Подписаться
Юлиан Антонов
Подписаться
Любовь Дуданова
Подписаться
Алексей Субботин
Подписаться
Дмитрий Авров
Подписаться
Юрий Шаповалов
Подписаться
Олег Григорьев
Подписаться
Ильдар Тамаев
Подписаться
Екатерина Ермохина
Подписаться
Алексей Дылдин
Подписаться
Михаил Калинин
Подписаться
Илья Ганжин
Подписаться
Илья Андреев
Подписаться
Максим Смирнов
Подписаться
Максим Логинов
Подписаться
Анастасия Власова
Подписаться