Ошибка сжатия Google Sitemaps в Инструментах для веб-мастеров

Мы создаем XML-файлы Sitemap и указываем на них в Инструментах Google для веб-мастеров, которые эпизодически выдает следующее сообщение об ошибке некоторым файлам:

Ошибка сжатия

"Как исправить" в документации Google на самом деле не дает никаких намеков на что может быть не так.

Файл создается в .NET и сжимается с помощью System.IO. .Compression.GZipStream и через MSDN. рекомендуемый способ использования.

Это работает, когда мы открываем файл в 7-zip и просто повторно сохраняем файл без каких-либо изменений.

Есть подсказки?


person Seb Nilsson    schedule 13.02.2014    source источник
comment
Я бы сравнил исходный и пересохраненный файл 7-zip в двоичном формате. Если они отличаются, это может дать подсказку. Если нет - то ошибка скорее всего на стороне гугла.   -  person Petr Abdulin    schedule 17.02.2014
comment
Они отличаются. Не приближает меня. Только означает, что 7-zip имеет некоторую разницу в реализации GZip.   -  person Seb Nilsson    schedule 17.02.2014
comment
О, ну, это было довольно глупое предложение, так как они будут значительно отличаться из-за разного уровня сжатия. Не могли бы вы опубликовать какой-либо образец файла, который терпит неудачу?   -  person Petr Abdulin    schedule 18.02.2014
comment
Разница в файле, который я случайно протестировал, заключалась только в изменении с 51 КБ на 56 КБ. Я попытаюсь опубликовать образец файла, но не уверен, как это поможет. Он не поврежден, так как 7zip может его открыть и прочитать этот файл. Может быть, вы могли бы создать здесь SO-ответ с вашими шагами по отладке этой проблемы?   -  person Seb Nilsson    schedule 18.02.2014
comment
Зачем ты его сжимаешь? Если ваша карта сайта размещена на IIS, IIS правильно отправит ее с помощью GZip вместе с правильными заголовками.   -  person Akash Kava    schedule 23.02.2014


Ответы (3)


Хорошо, вот мои мысли о проблеме. Очевидно, что System.IO.Compression.GZipStream создает файл, который не поврежден, но все еще имеет небольшие проблемы, которые не нравятся Google.

Прямое решение и проверка - переключиться на другую библиотеку сжатия и посмотреть, поможет ли это.

Чуть более сложным решением будет строгая проверка спецификаций формата файла GZIP. Конкретно я бы проверил (сравнил) заголовки файлов (оригинал и 7zip). Таким образом, вы могли бы найти ошибку в файле и, возможно, исправить ее.

person Petr Abdulin    schedule 18.02.2014

+1 за ответ @Akash. У меня были проблемы с IIS (особенно IIS 6) при попытке доступа к сжатому содержимому. Позвольте IIS выполнить сжатие, просто поместите несжатый XML-файл в удобное место.

person robrich    schedule 24.02.2014

Если у вас есть доступ к файлу .htaccess, я дам вам несколько советов по его редактированию, чтобы весь ваш файл был кэширован и сжат автоматически. Хорошо, вот советы по размещению в корневом каталоге вашего сайта, содержащем файл .htaccess.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>


<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

вы можете проверить, будет ли ваша карта сайта сжата не с помощью некоторых инструментов, таких как woorank.com, она отобразит, что ваш сайт использует преимущества Gzip, да, это будет автоматически сделано, когда Google просканирует вашу карту сайта и любой другой файл, включенный в приведенный выше код.

person Vikram Parmar    schedule 21.12.2014