Социальные кнопки для сайта самому

Сделай социальные кнопки для сайта самому за 5 минут! Никакого кода, только стильные иконки, которые заставят посетителей делиться контентом.

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru


Зачем нужны кнопки соцсетей: роль и значение

Кнопка соцсетей для сайта является такой же неотъемлемой частью поискового продвижения, как и сам контент. Она делает пребывание посетителей комфортным, облегчая и стимулируя репостинг интересных публикаций на личных страницах.

Основные функции:

  • Социальные сигналы для SEO: Поисковики (Яндекс, Google) индексируют ссылки из соцсетей. Активное шеринг контента — это положительный сигнал для ранжирования.
  • Дополнительный трафик: Для многих пользователей соцсети — полноценный аналог поисковых систем. Каждый репост, это потенциальный новый посетитель.
  • Удобство UX: Пользователь не копирует ссылку вручную, а делится ею в один клик.
  • Брендинг: Присутствие логотипов популярных сетей повышает доверие к ресурсу.

Разновидности социальных кнопок

Перед тем как приступить к разработке, определитесь с типом кнопок, которые нужны вашему проекту.

А. Кнопки «Поделиться» (Sharing Buttons)

Самый популярный тип. Позволяют посетителю опубликовать ссылку на текущую страницу в своей ленте или отправить в личные сообщения.

  • ВКонтакте, Одноклассники, Telegram, WhatsApp, Viber, критически важны для Рунета.
  • Facebook, X (Twitter), LinkedIn, Pinterest — для международной аудитории.
  • Почта, Копировать ссылку, универсальные варианты.

Б. Кнопки «Подписаться» (Follow Buttons)

Ведут на официальные сообщества самого сайта/бренда. Задача — увеличить базу подписчиков в соцсетях.

В. Комбинированные виджеты

Объединяют и шаринг, и подписку, часто с счетчиками репостов.


Где разместить кнопки: 8 проверенных вариантов

Правильное расположение напрямую влияет на CTR (кликабельность). Вот лучшие практики:

  1. Верх статьи (перед заголовком или сразу после): Ловит внимание до начала чтения.
  2. Низ статьи (после контента): Самое эффективное место — пользователь прочитал, заинтересовался, делится.
  3. Плавающая панель (Sticky Sidebar): Следует за скроллом слева или справа. Всегда перед глазами.
  4. Внутри контента (In-line): После интересного факта, цитаты или инфографики.
  5. Всплывающие окна (Pop-up / Slide-in): Появляются при попытке ухода или после N секунд. Использовать осторожно, чтобы не раздражать.
  6. Хедер / Футер сайта: Обычно для кнопок «Подписаться».
  7. Мобильная фиксированная панель (Bottom Bar): На смартфонах прижимается к низу экрана.
  8. На страницах товаров / услуг: Рядом с кнопкой «Купить» для шаринга желания.

2 важных нюанса:

  • Контекстность: Кнопки мессенджеров (WhatsApp, Telegram, Viber) показывайте только на мобильных. На десктопе они бесполезны (или открывают веб-версии).
  • Минимализм: Не выводите все 20 сетей. Оставьте 3–5 самых релевантных вашей аудитории.

Способы добавления кнопок на сайт

Вариант 1: Готовые виджеты (Яндекс, Pluso, ShareThis и др.)

Самый быстрый способ. Подключается одной строкой JS-кода.

Плюсы: Счетчики работают «из коробки», поддержка новых сетей автоматическая.

Минусы: Внешние скрипты замедляют загрузку (PageSpeed), трекят пользователей, сложно кастомизировать дизайн под бренд.

Вариант 2: Плагины CMS (WordPress, Bitrix, Joomla)

  • WordPress: Social Media Share Buttons & Social Sharing Icons, Easy Social Sharing, Yandex Share.
  • 1С-Битрикс: Стандартный компонент «Социальные сервисы» или маркетплейс.

Минус: Часто тянут за собой лишний код и стили.

Максимальный контроль, нулевая нагрузка на JS, идеальный PageSpeed. Именно этот способ мы разберем детально ниже;


Мы создадим легкие, адаптивные кнопки с иконочным шрифтом Font Awesome (или SVG) без единой строчки JavaScript для базовой функциональности «Поделиться».

Шаг 1: Подключение иконок

Добавьте в <head> ссылку на CDN (или скачайте локально для офлайн-работы):

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">

Примечание: В примерах из источника [1] использовалась версия 4.7 (классы fa fa-facebook). Сейчас актуальна 6-я версия (классы fa-brands fa-vk, fa-brands fa-telegram и т.д.).

Главный секрет «самодельных» кнопок — использование URL API соцсетей. Не нужен JS SDK, достаточно сформировать правильную ссылку с параметрами url, title, image, description.

<div class="social-share">
 <span class="social-share__label">Поделиться:</span>
 
 <!-- ВКонтакте -->
 <a href="https://vk.com/share.php?url=&title=&description=&image=" 
 class="social-btn social-btn--vk" target="_blank" rel="noopener noreferrer" aria-label="Поделиться во ВКонтакте">
 <i class="fa-brands fa-vk"></i>
 </a>

 <!-- Telegram -->
 <a href="https://t.me/share/url?url=&text=" 
 class="social-btn social-btn--tg" target="_blank" rel="noopener noreferrer" aria-label="Поделиться в Telegram">
 <i class="fa-brands fa-telegram"></i>
 </a>

 <!-- WhatsApp (только мобильные) -->
 <a href="https://api.whatsapp.com/send?text=%20" 
 class="social-btn social-btn--wa" target="_blank" rel="noopener noreferrer" aria-label="Поделиться в WhatsApp">
 <i class="fa-brands fa-whatsapp"></i>
 </a>

 <!-- Яндекс Коллекции / Пульс -->
 <a href="https://collections.yandex.ru/save?url=*" 
 class="social-btn social-btn--ya" target="_blank" rel="noopener noreferrer" aria-label="Сохранить в Яндекс">
 <i class="fa-brands fa-yandex"></i>
 </a>
 <!-- Копировать ссылку (требует минимального JS) -->
 <button class="social-btn social-btn--copy" aria-label="Копировать ссылку" onclick="copyLink">
 <i class="fa-solid fa-link"></i>
 </button>
</div>

Важно: Вместо вставляйте динамические переменные вашего движка (PHP: urlencode($_SERVER['REQUEST_URI']), WP: get_permalink, JS: encodeURIComponent(window.location.href)). Все контакты и почты в коде маскированы () в соответствии с политикой безопасности.

Шаг 3: CSS-стилизация (Современный подход)

Используем CSS-переменные для легкой смены темы и Flexbox для выравнивания.

:root {
 --btn-size: 44px; /* Размер кнопки (доступность: мин 44px) /
 --btn-radius: 12px; / Скругление: 50% = круг, 12px = "капсула" */
 --gap: 10px;
 --transition: 0.3s ease;
}

.social-share {
 display: flex;
 align-items: center;
 gap: var(--gap);
 flex-wrap: wrap;
 font-family: system-ui, sans-serif;
}

.social-share__label {
 font-size: 0.9rem;

 color: #555;
 margin-right: 5px;
}

.social-btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: var(--btn-size);
 height: var(--btn-size);
 border-radius: var(--btn-radius);
 text-decoration: none;
 font-size: 1.2rem;
 color: #fff;
 transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
 border: none;
 cursor: pointer;
 background: #e0e0e0; /* Фоллбэк /
}

/ Уникальные брендовые цвета /
.social-btn--vk { background: #0077FF; }
.social-btn--tg { background: #0088CC; }
.social-btn--wa { background: #25D366; }
.social-btn--ya { background: #FFCC00; color: #000; }
.social-btn--copy { background: #6c757d; }

/ Эффекты взаимодействия /
.social-btn:hover {
 transform: translateY(-3px) scale(1.05);
 box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}

.social-btn:active {
 transform: scale(0.95);
}
.social-btn:focus-visible {
 outline: 2px solid #000;
 outline-offset: 2px;
}

/ Скрываем WhatsApp на десктопе /
@media (min-width: 769px) {
 .social-btn--wa { display: none; }
}

/ Адаптив: уменьшаем на очень маленьких экранах */
@media (max-width: 400px) {
 :root { --btn-size: 40px; --gap: 8px; }
}

Шаг 4: Минимальный JS для «Копировать ссылку» и динамических URL

Если вы не используете серверный рендеринг (PHP/SSG), подставьте URL клиентским скриптом:

<script>
document.addEventListener('DOMContentLoaded',  => {
 const pageUrl = encodeURIComponent(window.location.href);
 const pageTitle = encodeURIComponent(document.title);
 
 // Находим все кнопки с data-атрибутами или по классам
 document.querySelectorAll('.social-btn').forEach(btn => {
 let href = btn.href;
 if (href) {
 // Простая замена плейсхолдеров, если они есть в href
 btn.href = href.replace('', pageUrl).replace('', pageTitle);
 }
 });
});

function copyLink {
 navigator.clipboard.writeText(window.location.href).then( => {
 const btn = document.querySelector('.social-btn--copy'); btn.innerHTML = '<i class="fa-solid fa-check"></i>';
 btn.style.background = '#28a745';
 setTimeout( => { btn.style.background = '';
 }, 2000);
 });
}
</script>

SVG-иконки вместо иконочных шрифтов (Best Practice 2026)

Иконочные шрифты (Font Awesome) могут блокироваться адблоками или не загружаться. Профессиональный подход — инлайн SVG или SVG-спрайт.

Пример кнопки с инлайн SVG (ВКонтакте):

<a href="..." class="social-btn social-btn--vk" ...>
 <svg class="social-btn__icon" viewBox="0 0 24 24" aria-hidden="true">
 <path fill="currentColor" d="M21.5 2.5v19h-19v-19h19m-1.5 1.5H4.5v16h15.5v-16zm-11 4.5c0 1.5-1.2 2.7-2.7 2.7s-2.7-1.2-2.7-2.7 1.2-2.7 2.7-2.7 2.7 1.2 2.7 2.7zm7.5 0c0 1.5-1.2 2.7-2.7 2;7s-2.7-1.2-2.7-2.7 1.2-2.7 2.7-2.7 2.7 1.2 2.7 2.7zm4.3 7.2h-3.3v-3.3h-2.2v3.3h-3.3v2.2h3.3v3.3h2.2v-3.3h3.3v-2.2z"/>
 </svg>
</a>

CSS для SVG:

.social-btn__icon {
 width: 20px;
 height: 20px;
 /* currentColor наследует color родителя (белый) */
}

Типичные ошибки при установке (Чек-лист)

Основано на анализе ошибок из источника [2] и лучших практиках:

  • Слишком много кнопок: «Паралич выбора». Оставьте топ-3 для десктопа и топ-4 для мобильного (добавив WhatsApp/Telegram).
  • Отсутствие rel="noopener noreferrer": Дыра в безопасности при target="_blank".
  • Счетчики на JS без кэширования: Тормозят первый экран. Лучше отключить счетчики или кэшировать их на бэкенде.
  • Неадаптивные иконки: Мелкие (менее 44px) или слипшиеся — неудобно попадать пальцем.
  • Битые ссылки шаринга: Не закодированы спецсимволы в URL/Title (пробелы, кавычки, эмодзи). Обязательно используйте encodeURIComponent.
  • Игнорирование Open Graph / Twitter Cards: Без разметки og:title, og:image, og:description соцсети подхватят случайный мусор вместо красивого сниппета.
  • Показ десктопных мессенджеров: WhatsApp/Viber на ПК часто бессмысленны.

Микроразметка Open Graph, обязательный спутник кнопок

Кнопки — это «пусковая площадка», а OG-теги — это «ракета», которая летит в ленту пользователя. Без них ваш репост будет выглядеть уродливо.

<meta property="og:type" content="article">
<meta property="og:title" content="Заголовок статьи (до 60-)">
<meta property="og:description" content="Описание для превью (до )">
<meta property="og:image" content="https://site.ru/images/og-image.jpg"> <!-- 1200x630 px -->
<meta property="og:url" content="https://site.ru/current-page-url">
<meta property="og:site_name" content="Название сайта">

<!-- Для Twitter / X -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Заголовок">
<meta name="twitter:description" content="Описание">
<meta name="twitter:image" content="https://site.ru/images/og-image.jpg">

Продвинутый уровень: Web Share API (Native Sharing)

На мобильных устройствах (iOS Safari, Android Chrome) можно вызвать нативное системное меню шаринга (как в нативных приложениях), куда входят все установленные приложения, AirDrop, Nearby Share, почта, SMS и т.д.

<button class="social-btn social-btn--native" id="nativeShareBtn">
 <i class="fa-solid fa-share-nodes"></i>
</button>

<script>
const shareBtn = document.getElementById('nativeShareBtn');
const shareData = {
 title: document.title,
 text: 'Посмотрите эту статью!',
 url: window.location.href
};

// Показываем кнопку только если API поддерживается
if (navigator.share) {
 shareBtn.style.display = 'inline-flex'; // или flex
 shareBtn.addEventListener('click', async  => {
 try {
 await navigator.share(shareData);
 console.log('Успешно поделено');
 } catch (err) {
 if (err.name !== 'AbortError') console.error(err);
 }
 });
}
</script>

Задача Рекомендация
Максимальная скорость (Core Web Vitals)
Нужен счетчик репостов Виджет Яндекса или кастомный бэкенд, опрашивающий API сетей по крону (кэш).
WordPress / Битрикс (нет времени на код) Легкий плагин (например, «Social Media Share Buttons» с отключенными скриптами там, где не нужно).
Мобильный трафик > 70% Обязательно Web Share API + WhatsApp/Telegram/Viber + Sticky Bottom Bar.

Создание социальных кнопок своими руками, это задача уровня Junior/Middle верстальщика, которая закрывает 90% потребностей бизнеса: скорость, дизайн, приватность, доступность (a11y). Вы избавляетесь от зависимости от сторонних виджетов, трекеров и лишних килобайт JavaScript.

Главные шаги к успеху:

  1. Подключите SVG-спрайт или инлайн-иконки.
  2. Сверстайте кнопки на Flex/Grid с минимальным CSS (размер 44px+, gap, radius).
  3. Используйте URL API сетей (vk.com/share, t.me/share, wa.me) с encodeURIComponent.
  4. Добавьте Open Graph разметку в <head>.
  5. Реализуйте Web Share API для мобильных нативных меню.
  6. Протестируйте в Lighthouse и на реальных устройствах.
  7. Теперь у вас есть полноценный, легкий и красивый модуль шаринга, который вы можете переносить из проекта в проект, просто подставляя переменные URL. Удачи в разработке!


    Статья подготовлена на основе материалов SchoolsW3 (контакты: @schoolsw3;com, @schoolsw3.com) и Envybox.

    Дата актуализации: . При копировании кода замените маски * на динамические переменные вашего CMS/фреймворка.