对于很多站点运营者来说,提交XML Sitemap几乎是上线后的固定动作。可是经常遇到这样的困惑:Sitemap里清清楚楚列了所有URL,后台也显示已提交甚至已抓取,但实际还是有一部分URL长时间没有搜索蜘蛛出现。这种提交了不等于被发现的落差,与蜘蛛池日常运营中的预期偏离不无关系。下面从URL发现的角度,聊聊其中容易忽视的原因。
Sitemap在URL发现中扮演什么角色
Sitemap的主要作用是向搜索蜘蛛批量告知站内存在哪些URL,相当于给出一份目录。搜索蜘蛛看到目录后,会根据自身的抓取安排和策略来分配资源,并不保证所有目录条目都会被立刻或多频次地拜访。对于蜘蛛池运营来说,Sitemap更像是一个引子,真正的发现和抓取还要看URL本身的价值信号。
另外,Sitemap并不能替代站内链接。如果站点的重要页面只能靠Sitemap发现,而没有任何来自其他页面的链接,那么这些URL的发现优先级往往会被调低,抓取频率也可能远远落后于有内部链接支撑的页面。
Sitemap已提交,URL仍没被发现的常见原因
一、Sitemap文件本身存在可用性问题
比如Sitemap格式不规范,URL转义不正确,或者文件大小超过搜索引擎建议的上限,都可能导致Sitemap被整体忽略或部分解析失败。还有一种常见情况是Sitemap的路径写错了,或robots.txt没有允许搜索引擎抓取Sitemap,这样就相当于根本没有提交成功。
二、URL对应内容质量或权重积累不足
搜索蜘蛛的资源有限,它会优先抓取那些被判定为有价值、用户会需要的URL。如果URL指向的内容较为空洞、与其他页面重复度高,或者站点本身权重低,蜘蛛即便在Sitemap中看到这个URL,也可能因为判断其价值不高而不急着抓取。
三、网站抓取配额限制了单轮抓取量
每个站点在一定时间内能获得的抓取量是有上限的。如果站点首页、栏目页已经在消耗大量抓取配额,剩下的配额自然不够分给Sitemap里的长尾URL。此时单个URL的发现时间就会大大延后,甚至轮不到。
四、URL缺乏站内其他入口支撑
搜索蜘蛛的日常发现路径更多是沿着站点内部的链接关系爬行。如果某个URL只存在于Sitemap中,没有被首页或重要内页链接到,那么它就是一座孤岛。蜘蛛需要每次专门从Sitemap出发去探访,效率不高,自然容易被推迟。
五、URL本身存在抓取障碍
比如服务器返回状态异常、强制跳转链过长、页面中使用了被robots禁止的脚本加载关键链接等,也都可能让蜘蛛到了入口却进不去。即使Sitemap正确提交,这些技术问题也会阻断实际抓取动作。
提升URL发现效率的可行做法
面对这些问题,站长和蜘蛛池运营者可以从三个层面入手优化。
1. 校核Sitemap基本规范
确认Sitemap的XML格式严格符合协议,URL必须为绝对地址,且与站点实际收录地址保持统一。避免在Sitemap中混入大量参数不同但内容相同的URL,这会让蜘蛛把资源浪费在去重上。
2. 让重要URL获得站内链接支持
将需要优先发现的URL自然地融入站内导航、相关推荐、面包屑等位置。对于蜘蛛池场景,可以合理设计站内链布局,让蜘蛛顺着内部链接更容易触达长尾页面。这比单纯依赖Sitemap更符合蜘蛛的自然爬行规律。
3. 关注抓取配额和日志反馈
观察搜索蜘蛛的抓取日志,看看抓取配额主要消耗在哪些URL上。如果发现大量配额被无用页面占用,可通过robots或noindex等方式引导蜘蛛聚焦优质内容。同时,定期检查服务器返回码和页面响应速度,避免因技术问题造成无效抓取。
需要提醒的是,蜘蛛池、Sitemap、内链优化都只是辅助手段。搜索蜘蛛是否最终抓取一个URL,根本上还是取决于页面内容对用户是否有价值。没有优质内容支撑的URL,即便被反复提交,也难获得长期稳定的抓取与索引。
结语
Sitemap不是提交完就万事大吉的工具。当遇到已提交却未被抓取的情况,先排查Sitemap和URL本身的状态,再审视站点内部的链接网络与抓取配额分配,通常能找到可行解。结合蜘蛛池进行有节奏的URL调度时,更应从整体发现链路去思考,而不是仅仅把URL塞进Sitemap或提交队列就结束。