Google Image возвращаем трафик!
А вам понравились изменения в Google images от 24.01.2013?
Согласен, со стороны пользователя гугл картинками сделано все пристойно, но как же веб-мастера? Поисковая система изначально создавалась для поиска сайтов и предоставлению ее пользователям релевантных запросу сайтов. Теперь поисковая система больше смахивает на убогий граббер контента, который в свою очередь совсем не думает о бедных веб-мастерах и плюет на их работу.
Вы дизайнер? Фотограф? Вам есть чего боятся, теперь ваши фотки будут качать прямо с гугла, а ваш сайт будет служить как очередной сервер для картинок, печально не правда ли?
Имея сайты с картинками, меня это зацепило по полной программе. ИМХО потери трафика просто колоссальные, при том что сервер потребляет те же самые ресурсы.
Но как же быть, как же бороться с этим убожеством, с чудо пиратом Google Images?
С самого начала изменения серпа картинок я искал решение данной проблемы, кто то писал закрыть доступ к картинками, но это же не вариант! Трафик то тоже жизненно необходим!
Поиски привели пока что к одному белому решению, использовать хотлинт на картинки полного размера, с заманчивым текстом на них, плюнуть в ответ гуглу.
Юзеры в Google images на столько ленивы, что и так было в падлу переходить на сайт в прежнем серпе, а тут им вобще нет нужды, открыл картинку и скачал ее спокойно.
Давайте как то бороться с этим делом, обратно то уже ничего не вернуть, будем накладывать ватермарки, гугл тоже будет терять трафик, так как его юзеры не будет сидеть и просматривать ватермарки. Но цель наша сделать красивый ватермарк и наложить его как будто это кнопочка с надписью «Скачать оригинальное изображение».
Давайте рассмотрим сам watermark.php
<?php
header('Content-type: image/jpeg');
// Примем гетом картинку, переданную нам .htaccess, об этом чуть позже
$images = $_GET['image'];
// Укажем качество картинки
$quality = 100; // хотите хуже сделать, пишите меньше 100
// Укажем позицию ватермарка
$place = 'c';
// определяем расширение изображения
$filetype = substr($images,strlen($images)-4,4);
$filetype = strtolower($filetype);
switch($filetype)
{
case '.gif':
$image = @imagecreatefromgif($images);
break;
case '.jpg':
$image = @imagecreatefromjpeg($images);
break;
case '.png':
$image = @imagecreatefrompng($images);
break;
default:
die();
break;
}
// Получение размера оригинального изображения
$image_width = imagesx($image);
$image_height = imagesy($image);
// путь к ватермарку
$watermark = @imagecreatefrompng('watermark.png');
// Получение размера watermarka
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
// Определяем место наложение водяного знака
switch($place)
{
case 'tl':
$x = 0;
$y = 0;
break;
case 'tc':
$x = ($image_width - $watermark_width)/2;
$y = 0;
break;
case 'tr':
$x = $image_width - $watermark_width;
$y = 0;
break;
case 'cl':
$x = 0;
$y = ($image_height - $watermark_width)/2;
break;
case 'c':
$x = ($image_width - $watermark_width)/2;
$y = ($image_height - $watermark_width)/2;
break;
case 'cr':
$x = $image_width - $watermark_width;
$y = ($image_height - $watermark_width)/2;
break;
case 'bl':
$x = 0;
$y = $image_height - $watermark_width;
break;
case 'bc':
$x = ($image_width - $watermark_width)/2;
$y = $image_height - $watermark_width;
break;
case 'br':
$x = $image_width - $watermark_width;
$y = $image_height - $watermark_width;
break;
}
// получаем
imagecopy($image, $watermark, $x, $y, 0, 0, $watermark_width, $watermark_height);
imagejpeg($image, null, $quality);
// зачищаем
imagedestroy($image);
imagedestroy($watermark);
Теперь воспользуемся услугой mod_rewrite и пропишем в .htaccess следующее
RewriteCond %{HTTP_REFERER} !^http://scriptland.com.ua/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://scriptland.com.ua/$ [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot-Image [NC]
RewriteCond %{HTTP_USER_AGENT} !Mediapartners-Google [NC]
RewriteCond %{HTTP_USER_AGENT} !Mediapartners [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot-Mobile [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot-Video [NC]
RewriteCond %{HTTP_USER_AGENT} !Googlebot-News [NC]
RewriteCond %{HTTP_USER_AGENT} !msnbot [NC]
RewriteCond %{HTTP_USER_AGENT} !slurp [NC]
RewriteCond %{HTTP_USER_AGENT} !Bingbot [NC]
RewriteRule (.*)/uploads/post/(.*) $1watermark.php?image=uploads/post/$2
Мод реврайт будет проверять реферера и если реферер не ваш сайт, то накладывает ватермарк на картинку из папки uploads/post
Если это боты, то он тоже не накладывает никаких знаков, чтобы в выдаче все было чисто и пушисто.
Данный способ является белым, так как наложение ватермарка разрешается правилами ПС.
Если у вас есть какие то еще предложения, пишите, будет интересно почитать, может даже маул какой составим по этому поводу!
Многие проекты со временем требуют все больше и больше ресурсов для их дальнейшего поддержания, вы можете воспользоваться услугой размещение сервера в дата центре, где ваш сервер будет хранится и обслуживаться должным образом.
38 комментариев
Плюс к тому же я лично делаю еще и проверку на размер изображения, и к каждому изображению свой размер ватермарка + можно еще сделать определение цвета картинки и если скажем белая то ватермарк черный или наоборот.
А так ты просто накладываешь ватермарк и все, конечно если у тебя стандартный размер всех изображений, то ты можешь подстроить ватермарк чтобы тот скажем по центру накладывался, а если нет, то нужен обработчик.
Вот здесь обсуждается об этом
forum.searchengines.ru/showthread.php?t=773261
forum.searchengines.ru/showthread.php?t=770018
Ты просто не понял самой сути видать.
Вобщем ты заходишь в гугл картинки и ищешь картинку. После клика по картинке на нее будет наложен ватермарк, я тут писал что ватермарк желательно сделать кнопочкой, что то вроде Кликни что бы увидеть изображение. Юзеры гугла на это ведутся, но к сожалению не все.
Можешь в гугле глянуть пример моего сайта, сам знаешь какого.
Перейди на www.google.ru/imghp?hl=ru&tab=wi
и введи запрос с адресом моего сайта так
site: мойсайт.ру
кликни на картинку и все увидишь.
Здесь прописать полный путь или достаточно положить их вместе?
Лучше полный путь укажи.
не срабатывает
Здесь все правильно?
Картинки берутся из категории Интерьер. Но все равно ватермарк не накладывается.
akudjee 26 февраля 2013, 18:44 0
avatar
Перед images/wallpapers/originals/interer удбрал слеш, картинки теперь выводятся плохого качества. Значит .htaccess работает. Но ватера нет.
akudjee 26 февраля 2013, 19:14 0
avatar
Картинки получаются плохого качества, потому что перестаются открываться через гугл, гугл их загружает то ли из кеша, то ли уменьшенные копии в увеличенном виде.
первым делаем условие для наложения что наложение должно проходить только для картинок из этой папки, второе ($2) тут должно определяться название картинки.
Картинки получаются плохого качества
Значит что то не так сделал. Или попробуй посмотреть картинки в гугле которые ты еще не открывал и проверь не менял ли ты качество в самом ватермарке
попробуй другое значение поставить, скажем
это не путь вместе с адресом
где $1 = site.ru/
images/wallpapers/originals/devushki/
Каким образом прописать для остальных категорий? Пишу для каждой категории отдельно
но не получается. Картинка в оригинале тоже идет с ватермарком.
«На виртуальном хостинге данный скрипт работает только на одной из 5 доступных версий PHP. На версии PHP Native (версия по умолчанию для панели управления).
Что говорит о том, что скрипту нужны определенные версии библиотек PHP. С другими версиями скрипт работать отказывается. Ошибок при этом не возникает, поэтому нет возможности понять, где именно проблема.»
Не подскажешь, где копать?
Если да иди по цепочки скрипта, проверяй на вывод информации, где застопорится там и копать. Я первый раз вобще о таком слышу, поэтому больше ничего посоветовать не могу.
ПС. если хостеры не снабдили сервер стандартами, то думаю не стоило переезжать к ним.
xorst.ru/watermark.php?image=images/wallpapers/originals/gorod/0208131824_1051523309.jpg
а в гугле не накладывается.
Нужно в конфиге убрать правило для статики
Вот приблизительно то что написано в конфиге
Нужно вместо
Прописать
где
/components/com_virtuemart/shop_image/product
путь до корня папки с картинками