Google Image возвращаем трафик!

Поисковые системы: 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 комментариев

avatar
Ниже список восстановленных комментариев после сбоя
  • admin
  • 0
avatar
Я не совсем понял для чего нужен ватермарк? Если достаточно mod_rewrite прописать.
  • admin
  • 0
avatar
А как ты укажешь место расположения ватермарка с помощью mod_rewrite?
Плюс к тому же я лично делаю еще и проверку на размер изображения, и к каждому изображению свой размер ватермарка + можно еще сделать определение цвета картинки и если скажем белая то ватермарк черный или наоборот.
А так ты просто накладываешь ватермарк и все, конечно если у тебя стандартный размер всех изображений, то ты можешь подстроить ватермарк чтобы тот скажем по центру накладывался, а если нет, то нужен обработчик.
avatar
Да при чем тут вообще ватермарк? Можно и без него сделать запрет поисковикам стаскивать картинки с сайта.
Вот здесь обсуждается об этом
forum.searchengines.ru/showthread.php?t=773261
forum.searchengines.ru/showthread.php?t=770018
  • admin
  • 0
avatar
Запрещать? тема вроде как вернуть трафик, а не потерять!
Ты просто не понял самой сути видать.
avatar
я себе 50% трафика вернул потерянного с изменениями и потихоньку начинает расти
avatar
Я просто не пойму при чем тут ватермарк?
  • admin
  • 0
avatar
Данная тема подразумевает под собой наложение картинки на картинку которую спарсил гугл с твоего сайта и показывает ее у себя.
Вобщем ты заходишь в гугл картинки и ищешь картинку. После клика по картинке на нее будет наложен ватермарк, я тут писал что ватермарк желательно сделать кнопочкой, что то вроде Кликни что бы увидеть изображение. Юзеры гугла на это ведутся, но к сожалению не все.
Можешь в гугле глянуть пример моего сайта, сам знаешь какого.
Перейди на www.google.ru/imghp?hl=ru&tab=wi
и введи запрос с адресом моего сайта так
site: мойсайт.ру
кликни на картинку и все увидишь.
  • admin
  • 0
avatar
Классно сделано. Тоже надо так же сделать себе. Постараюсь сделать, будут вопросы обращусь.
  • admin
  • 0
avatar
Не подскажешь как проверить его на работоспособность? И ватермарк накладывается на картинки только в поисковике или же картинки с уже наложенным ваетрмарком хранятся на сервере?
  • admin
  • 0
avatar
// путь к ватермарку
        $watermark = @imagecreatefrompng('watermark.png');


Здесь прописать полный путь или достаточно положить их вместе?
  • admin
  • 0
avatar
ватермарк накладывается во время обращения к картинки, на сервере у тебя на картинки ничего накладываться не будет.
Лучше полный путь укажи.
  • admin
  • 0
avatar
А как посмотреть ватермарк в деле? Ждать пока гугл проиндексирует картинки? Но должен же быть другой способ просмотра ватермарка.
  • admin
  • 0
avatar
открой свою картинку в гугле, если ватермарк отображается, значит все норм, если нет, значит что то не правильно сделал и он не накладывается.
avatar
Чтобы в гугле открыть надо же ждать индексации. Я хотел это сделать для другого движка. И хотел посмотреть его в деле. Если что исправить.
  • admin
  • 0
avatar
размести картинку на другом домене, или на другом своем сайте, и глянь
avatar
Сделал как здесь написано, но ватермарк не выводится. Жаль.
  • admin
  • 0
avatar
По ходу переменная
$images = $_GET['image'];


не срабатывает
  • admin
  • 0
avatar
RewriteRule (.*)/uploads/post/(.*) $1watermark.php?image=uploads/post/$2


Здесь все правильно?
  • admin
  • 0
avatar
да, все правильно если у тебя картинки хранятся в папке /uploads/post/
avatar
так картинки должны лежать в /uploads/post/? Мне казалось, что там должен быть ватермарк. У меня картинки лежат в /images/wallpapers/originals/имя_категории/. Где исправить?
  • admin
  • 0
avatar
Исправил на такой:
RewriteRule (.*)/images/wallpapers/originals/interer/(.*) $1watermark.php?image=images/wallpapers/originals/interer/$2


Картинки берутся из категории Интерьер. Но все равно ватермарк не накладывается.
akudjee 26 февраля 2013, 18:44 0
avatar
RewriteRule (.*)images/wallpapers/originals/interer/(.*) $1watermark.php?image=images/wallpapers/originals/interer/$2


Перед images/wallpapers/originals/interer удбрал слеш, картинки теперь выводятся плохого качества. Значит .htaccess работает. Но ватера нет.
akudjee 26 февраля 2013, 19:14 0
avatar
Картинки получаются плохого качества, потому что перестаются открываться через гугл, гугл их загружает то ли из кеша, то ли уменьшенные копии в увеличенном виде.
  • admin
  • 0
avatar
RewriteRule (.*)/images/wallpapers/originals/interer/(.*) $1watermark.php?image=images/wallpapers/originals/interer/$2

первым делаем условие для наложения что наложение должно проходить только для картинок из этой папки, второе ($2) тут должно определяться название картинки.

Картинки получаются плохого качества
Значит что то не так сделал. Или попробуй посмотреть картинки в гугле которые ты еще не открывал и проверь не менял ли ты качество в самом ватермарке
$quality = 100;

попробуй другое значение поставить, скажем
$quality = 90;
avatar
Ниче не выходит. В какой папке у тебя лежит watermar.php и png? Затем в какой папке у тебя лежат картинки? И как выглядит строка в httaccess
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
avatar
все так же как и в топике, в топике правильно все написано, где то накосячил
avatar
Где в httaccess указывается путь для watermark.php? (.*)/uploads/post/(.*) этот? А этот uploads/post/$2 путь для картинок?
  • admin
  • 0
avatar
$1watermark.php?i
это не путь вместе с адресом
где $1 = site.ru/
avatar
watermark.php его куда положить? В корневую папку сайта? Полный путь вместе в итоге каким получится?
  • admin
  • 0
avatar
в корень
avatar
Вроде получилось для одной категории. К примеру так:
images/wallpapers/originals/devushki/

Каким образом прописать для остальных категорий? Пишу для каждой категории отдельно
RewriteRule, 
RewriteRule (.*)images/wallpapers/originals/devushki/(.*) $1watermark.php?image=images/wallpapers/originals/devushki/$2
RewriteRule (.*)images/wallpapers/originals/zhivotnye/(.*) $1watermark.php?image=images/wallpapers/originals/zhivotnye/$2


но не получается. Картинка в оригинале тоже идет с ватермарком.
  • admin
  • 0
avatar
может так
RewriteRule (.*)images/wallpapers/originals/(.*) $1watermark.php?image=images/wallpapers/origi
avatar
Привет. Перенес на ВПС хостинг сайт и ватермарк перестал накладываться. Говорят:
«На виртуальном хостинге данный скрипт работает только на одной из 5 доступных версий PHP. На версии PHP Native (версия по умолчанию для панели управления).
Что говорит о том, что скрипту нужны определенные версии библиотек PHP. С другими версиями скрипт работать отказывается. Ошибок при этом не возникает, поэтому нет возможности понять, где именно проблема.»
Не подскажешь, где копать?
  • admin
  • 0
avatar
модреврайт то включен?
Если да иди по цепочки скрипта, проверяй на вывод информации, где застопорится там и копать. Я первый раз вобще о таком слышу, поэтому больше ничего посоветовать не могу.
ПС. если хостеры не снабдили сервер стандартами, то думаю не стоило переезжать к ним.
avatar
Понятия не имею, надо будет у хостера спросить. На виртуальном же работало, у того же хостера.
  • admin
  • 0
avatar
Странно вот так работает:
xorst.ru/watermark.php?image=images/wallpapers/originals/gorod/0208131824_1051523309.jpg
а в гугле не накладывается.
  • admin
  • 0
avatar
это хешь, F5 нажимай и все норм будет
  • admin
  • 0
avatar
В гугле нажимаю обновить страницу, другим браузером открвывал. Все равно нет ватермарка в поиске картинок гугла. Не пойму в чем причина. У тебя есть на моем сайте в поиске гугла ватермарк?
  • admin
  • 0
avatar
проблема в nginx
Нужно в конфиге убрать правило для статики
Вот приблизительно то что написано в конфиге
server
{
        listen 78.***.***.89:80;
        server_name ваш_домен.ru www.ваш_домен.ru;
        rewrite ^(/manager/.*)$ https://$host$1 permanent;
        error_page 404 = @fallback;
        location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
                proxy_pass http://78.***.***.89:8080;
                proxy_redirect http://ваш_домен.ru:8080/ /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }
        location / {
                proxy_pass http://78.***.***.89:8080;
                proxy_redirect http://ваш_домен.ru:8080/ /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }
location ~* /images\/.* {
        proxy_pass http://78.***.***.89:8080;
        proxy_redirect http://ваш_домен.ru:8080/ /;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
}
        location ~* ^.+\\.(jpg|jpeg|png|svg|exe|css|js|tft|sys|ini|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                root /var/www/joomla/data/www/ваш_домен.ru;
                access_log /var/www/httpd-logs/ваш_домен.ru.access.log ;
                access_log /var/www/nginx-logs/art-joomla isp;
        }
        location @fallback {
                proxy_pass http://78.***.***.89:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }
}

Нужно вместо
location ~* /images\/.* {

Прописать
location ~* /components/com_virtuemart/shop_image/product\/.* {

где
/components/com_virtuemart/shop_image/product
путь до корня папки с картинками
  • admin
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.