Понимают ли поисковики GZIP сжатие HTML?

12
Anton111
На сайте с 13.08.2005
Offline
138
3278

Хочу установить на сайте GZIP сжатие HTML с помощью функции "ob_start" (PHP). Вопрос: не повлияет ли это на индексацию поисковиками, поисковики умеют делать разархивацию?

Актуальный seo'шный old school (http://miralinks.ru/users/registration/from:341)
Tow
На сайте с 28.09.2005
Offline
152
Tow
#1

сам сталкивался с этой проблемой, попал мне такой сайтец, в выдаче небыло вообще, убрали сжатие сразу взлетел на 57 место по конкурентному запросу, то ли я так хорошо поработал. то ли...

A
На сайте с 23.10.2003
Offline
196
#2

Умеют, и на индексацию это не влияет.

андроид ТВ (http://qway.com.ua/android_tv) и экшн камеры (qway.com.ua/action-cameras) в Украине.
ironic
На сайте с 09.09.2003
Offline
163
#3

Anton111, всякий нормальный http-товарищ, в частности поисковый робот или браузер, при запросе всякой страницы говорит, что он понимает, а чего нет :)

Т.е. если кто-то или что-то не понимает gzip, то он этого дела просто не запросит и получит обычную несжатую страницу, если же понимает, о чем он серверу сообщает, то сервер, если соответственно настроен, выдаст страницу в gzip'е...

Tow, на индексацию это дело по определению не может влиять, просто видать на том сервере что-то "недонастроили" :D

Anton111
На сайте с 13.08.2005
Offline
138
#4
ironic:
Anton111, всякий нормальный http-товарищ, в частности поисковый робот или браузер, при запросе всякой страницы говорит, что он понимает, а чего нет :)

Т.е. если кто-то или что-то не понимает gzip, то он этого дела просто не запросит и получит обычную несжатую страницу, если же понимает, о чем он серверу сообщает, то сервер, если соответственно настроен, выдаст страницу в gzip'е...

Понятно. Значит можно ставить сжатие. Спасибо!

FM
На сайте с 21.04.2004
Offline
125
#5

function miscGzHandler($buf) {

$zipRatio = 5; // 0 <= zipRatio <= 9

$zipDebug = 0; // 0 <= zipDebug <= 2

if(empty($buf) || !isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {

header('Content-length: '.strlen($buf));

return $buf;

}

$enc_ar = explode(',', $_SERVER['HTTP_ACCEPT_ENCODING']);

$mayZip = false; $encoding = '';

foreach($enc_ar as $enc) {

$enc = trim($enc);

if('gzip' === $enc || 'x-gzip' === $enc) {

$mayZip = true;

$encoding = $enc;

break;

}

}

if(!$mayZip) {

header('Content-length: '.strlen($buf));

return $buf;

}

$bufZiped = gzcompress($buf, $zipRatio);

if($zipDebug) {

$bufLen = strlen($buf);

$bufZipedLen= strlen($bufZiped);

$buf .= (2 == $zipDebug) ? "\n\n<!"."--\n" : "\n<br><pre style='width:1%; border:3px ridge; background-color:white; color:gray; font:xx-small Lucida Console, Courier New; padding:3px; margin:10px;'>\n";

$buf .= "Contenido HTML : ".$bufLen." bytes\n";

$buf .= "Transferidos : ".$bufZipedLen." bytes\n";

$buf .= "Nivel GZip : ".$zipRatio."\n";

$buf .= "Tama+o final : ".sprintf("%.1f%%", ($bufZipedLen/$bufLen)*100)."\n";

$buf .= "Diferencia : ".sprintf("%.1f", $bufLen/$bufZipedLen)." veces\n";

$buf .= (2 == $zipDebug) ? "--".">\n" : "</pre>\n";

$bufZiped = gzcompress($buf, $zipRatio);

}

$bufZiped = pack('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00)

.substr($bufZiped, 0, -4)

.pack('V',crc32($buf))

.pack('V',strlen($buf));

header('Content-encoding: '.$encoding);

header('Content-length: '.strlen($bufZiped));

return $bufZiped;

}

я вот такое сжатие использую - очень хорошо сжимает и никаких проблем с поисковиками

Anton111
На сайте с 13.08.2005
Offline
138
#6

FreeMarket, Спасибо за помошь!

Sergey Petrenko
На сайте с 23.10.2000
Offline
482
#7

А зачем так извращаться — не проще поставить модуль к Апачу?

FM
На сайте с 21.04.2004
Offline
125
#8

да, но модуль будут использовать все сайты на сервере, а так будет использовать только определённый сайт и при этом нагрузки на сервер не будет

KO
На сайте с 19.11.2005
Offline
56
#9

На сколько я знаю, ставят модуль не для апаче а для php...и его легко можно настроить не то что для сжатия отдельных сайтов, а даже для сжатия и отдельных страниц...так что эта функция абсолютно неэффективна, сжатие в php намного быстрее, из-за того что выполняется на уровне ядра.

A
На сайте с 23.10.2003
Offline
196
#10

Нет. И в apache и в php модули написаны на C и используют zlib. Так что здесь вопрос не в скорости, а в удобстве.

"выполняется на уровне ядра" - к чему бы это? :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий