“抓取错误”是 Google网站管理员工具(Webmaster Tools)中最受欢迎的工具之一。它可以帮助你检查错误的链接,不仅仅是URL链接,还包行DNS解析失败、服务器链接、robots.txt 文件等问题,几乎所有网站都会出现抓取错误。
网站站长工具将错误分为两类:网站错误(site errors)和链接地址错误(URL errors)。如果在一个网站上出现多个抓取错误,那么你的网站信任度会下降,甚至会影响到排名,当然这工具对于百度优化同样有效。那么应当如何解决 Google网站管理员工具的抓取错误呢。
当一个网站上的网页(例如,当用户在浏览器中访问您的网页或Googlebot抓取页面时)到您的服务器发出请求,服务器返回HTTP状态码响应请求。
如果出现403状态,可以不用理睬,这表明是你的主机阻止了Googlebot抓取。对于所有HTTP状态码的列表文件,可以参考Google HTTP状态码帮助页面。
二、Sitemap中的错误
Sitemap错误往往会造成404错误页面,或在当前地图返回一个404错误页面,如果出现404错误页面请检查Sitemap中所有的链接,
Google会不断抓取你已经删除的Sitemap,这点很郁闷,但也有办法解决:确保旧的Sitemap已经在管理员工具中被删除。如果不想被抓取,确保旧Sitemap出现404或者重新定向到新的Sitemap。
来自Google员工Susan Moskwa解释道:
阻止Googlebot的爬行,最好的办法是使这些网址(例如旧的sitemaps)出现404,当我们看到一个URL多次出现404后,Googlebot会停止爬行。
三、重定向错误
有些错误是因为301从定向引起的,执行重定向后要注意什么:
1:确保他们返回到正确的HTTP状态码。
2:确保没有任何循环重定向。
3:确保重定向指向有效的网页,而不是404页,或其他错误页,如503(服务器错误)或403(禁止抓取)
4:确保重定向不是指向一个空页面。
四、404错误
404错误可能会出现在以下几个方面:
1:删除了网站上的网页;
2:改变了网页的名称;
4:链接到了一个不存在的页面;
5:其他网站链接到你网站上一个不存在的页面;
6:网站迁移到一个新的域名不完全匹配的网站。
二、修复ueditor在IE8下shCore.js报错
出现问题的文件为:
shCore.js
行数:299行
文件路径:ueditor\third-party\SyntaxHighlighter\shCore.js
报错的代码为:
299行
real.replace.call(str.toString().slice(match.index), r2, function () {
for (var i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined)
match[i] = undefined;
}
});
错误原因为:299行中的
str.toString().slice(match.index)
传递进来的str变量未经过判断
在函数开始处增加
if(str!==undefined) 既可以修复该问题
RegExp.prototype.exec = function (str) {
if(str!==undefined){
var match = real.exec.apply(this, arguments),
name, r2;
if (match) {
// Fix browsers whose `exec` methods don't consistently return `undefined` for
// nonparticipating capturing groups
if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) {
r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", ""));
// Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed
// matching due to characters outside the match
real.replace.call(str.toString().slice(match.index), r2, function () {
for (var i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined)
match[i] = undefined;
}
});
}
// Attach named capture properties
if (this._xregexp && this._xregexp.captureNames) {
for (var i = 1; i < match.length; i++) {
name = this._xregexp.captureNames[i - 1];
if (name)
match[name] = match[i];
}
}
// Fix browsers that increment `lastIndex` after zero-length matches
if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
this.lastIndex--;
}
return match;
}