Нет, запрещать копирование текста через CSS или JavaScript я бы не стал: если страница доступна публично, такой запрет не защищает контент, а только убирает самые простые способы его скопировать.
CSS-свойство user-select: none запрещает обычное выделение текста. JavaScript может перехватить событие copy, отменить стандартное копирование или изменить данные, которые попадут в буфер обмена. Это штатные возможности браузера, но механизмом защиты контента они не являются.
Человек или парсер, которому действительно нужен текст, может получить его из HTML, DOM или сетевых ответов страницы. Для пользовательских ограничений также достаточно отключить соответствующий JavaScript, изменить стили через DevTools или использовать другой способ получения страницы. В профессиональных обсуждениях веб-разработчиков эта проблема разбирается много лет: блокировка правой кнопки, выделения и Ctrl+C создаёт препятствие обычному пользователю, но не останавливает получение самого содержимого страницы.
Добавлять ссылку на источник при копировании можно
Это единственный клиентский вариант, который я считаю более-менее осмысленным, если воспринимать его не как защиту, а как автоматическое указание источника.
Например:
document.addEventListener('copy', function (event) { const text = document.getSelection().toString();
event.clipboardData.setData(
'text/plain',
text + '\n\nИсточник: ' + location.href
);
event.preventDefault();
});
При обычном Ctrl+C пользователь получит выбранный текст вместе со ссылкой на страницу.
Но ограничения очевидны:
- ссылку можно удалить перед публикацией;
- парсер HTML такой обработчик вообще не вызывает;
- бот, обращающийся напрямую к сайту, не использует пользовательский буфер обмена;
- скрипт можно отключить или обойти.
Поэтому добавление ссылки имеет смысл как мягкая атрибуция. Рассматривать его как способ предотвращения копирования не стоит.
От автоматического парсинга нужна серверная защита
Если проблема не в том, что посетитель скопировал пару абзацев, а в массовом выгружании сотен или тысяч страниц, CSS и JavaScript вообще находятся не на том уровне.
Здесь применяются серверные меры:
- ограничение частоты запросов;
- WAF;
- системы определения ботов;
- ограничения для подозрительных IP и сетей;
- challenge для подозрительного трафика;
- отдельные правила для аномального последовательного обхода большого количества URL.
Например, Cloudflare прямо предлагает сочетать rate limiting с Bot Management для ограничения автоматизированных запросов.
Это уже действительно может сделать массовый парсинг дороже и медленнее. Но абсолютной защиты всё равно нет: продвинутый сборщик может распределять запросы между адресами, соблюдать небольшую скорость обхода и имитировать обычных посетителей.
Если текст должен быть принципиально недоступен постороннему человеку, единственный надёжный вариант — не отдавать его публично вообще, например закрыть авторизацией. Google также указывает защиту паролем как способ не предоставлять содержимое неавторизованным пользователям; естественно, такой контент одновременно перестаёт быть обычной публичной страницей для поискового продвижения.
Запрет копирования сам по себе ничего не даёт для SEO
Нет оснований считать отключение выделения, правой кнопки или Ctrl+C способом защиты позиций от сайтов, копирующих текст.
Google не рассматривает само наличие дублирующего контента как автоматическое нарушение. При обнаружении дублей поисковик определяет репрезентативную версию контента. При этом Google отдельно признаёт, что в редких ситуациях алгоритм может выбрать URL чужого сайта, скопировавшего материал без разрешения.
Поэтому логика «не дам выделить текст — не украдут — не будет SEO-проблем» не работает.
У Яндекса больше нет старого инструмента «Оригинальные тексты». Сейчас сам Яндекс рекомендует для сообщения о новом контенте использовать «Переобход страниц» или обход по счётчику Метрики. Это помогает быстрее показать роботу новую страницу, но не является технической защитой от последующего копирования.
Если чужой сайт уже скопировал материал, Яндекс также прямо пишет, что одно лишь совпадение контента недостаточно для исключения копии из поиска. Для нарушения авторских прав предлагается обращаться к владельцу ресурса или его хостинг-провайдеру. У Google для подобных случаев предусмотрена процедура удаления контента из результатов поиска по заявлению правообладателя.
Что применять на практике
На обычном информационном или коммерческом сайте я бы оставил возможность свободно выделять текст и пользоваться контекстным меню.
Если хочется получать дополнительные упоминания при ручном копировании — можно незаметно добавлять к скопированному фрагменту строку «Источник: URL». Это не защита, поэтому сложную систему вокруг неё строить нет смысла.
Если тексты начинают массово выкачивать автоматически — смотреть логи сервера и ограничивать именно парсинг через rate limiting, WAF и антибот-механизмы.
А запрещать выделение текста, Ctrl+C и правую кнопку ради «защиты контента» смысла практически нет. Будет нужно — текст действительно заберут не через кнопку «Копировать», а непосредственно из данных, которые сайт всё равно вынужден отдать посетителю.