你在这里


Sitemap

多语言网站xml sitemap中网址的相互链接

James Qi 2016年2月19日 - 10:10 发布

  2013年8月份写了一篇博文《Drupal网站多语言版的站点地图自动转换》,是修改xmlsitemap.page.inc程序来实现多种语言网站的sitemap,这是多种语言网站提供对应的多种sitemap,博文中提到Google推荐的另外一种办法《通过站点地图指明备选语言网页》(英文版Use a sitemap to indicate alternate language pages, 

修改Drupal的xmlsitemap模块来控制搜索引擎爬取网站地图速度

James Qi 2016年2月2日 - 16:40 发布

  以前托管服务器或者租用的服务器一般都是100M共享的带宽,很少出现机器带宽被占满的情况,去年开始采用阿里云平台后,带宽就是一个不得不考虑的成本因素,我们一般都是每台ECS购买的10M左右带宽,每年费用已经不少了,而投入使用后很轻易就会被占满,关键是网站的流量并没有特别提升,广告收入没有增加,成本却在大幅提高,还导致正常用户访问变慢、困难。

  同事在Linux服务器上安装了一个iftop来查看带宽占用情况,很容易就发现了是搜索引擎的爬虫抓取sitemap.xml这样的网址占用了很大带宽,我们网站系列多、页面多、还有多语言或者手机版,网站地图就特别的多,如果爬虫来得过于频繁就给我们不小困扰。

  但爬虫这种抓取活动还不宜直接屏蔽以免影响收录,所以考虑限制抓取速度的办法,安装了apache的mod_bw模块,还没有调试好,不过在网上搜索到文章说可以用PHP编程来实现控制下载速度,这个对我启发还比较大,因为我们正好修改过Drupal的xmlsitemap模块xmlsitemap.pages.inc文件来改变网站地图中的内容和格式,只要再把输出方式改一点、增加一点sleep循环就可以,代码如下:

Drupal网站用drush生成sitemap.xml以及通过drush.ini修改PHP内存限制

James Qi 2016年1月12日 - 10:51 发布

  我们做的Drupal网站数据量都比较大,几年前一开始就遇到cron运行报错的情况,主要就是因为cron运行期间要生成xmlsitemap,遇到php的内存限制或者运行时间限制导致出错无法正常执行,我们当时采取的办法是修改“Minimum sitemap lifetime(sitemap最小存在时间)”为10年(drush vset xmlsitemap_minimum_lifetime "315360000",并且还要修改modules/xmlsitemap/xmlsitemap.admin.inc中的内容,增加10年这个表单选项),这样10年内让cron碰不到需要重新生成sitemap的情况,从而来禁止cron运行期间生成xmlsitemap(具体见《Drupal网站中不让Cron自动更新Boost_Cache及XML_Sitemap》),这样修改后,cron就可以正常运行。

自由标签:

调用Bing Webmaster API批量提交sitemap

James Qi 2013年10月15日 - 10:12 发布

  Google Webmaster Tools我们很早就在用,去年也开始使用其API,写过一篇记录《调用Google Webmaster Data API批量提交sitemap》,Bing和Yahoo的类似Webmaster工具我们也很早就注册、尝试过,后来Yahoo搜索并入Bing后,我们也没有多关注。

  上个月接到微软必应搜索部门客户经理的邮件,推荐使用Bing Toolbox Webmaster,想到我们现在的网站以外文、国外浏览者为主要发展方向,而Bing在美国的市场占有率也达到20%多,还是有必要去多了解、利用的,而且Bing去年也推出了新的API便于批量操作,所以这几天花了一些时间去尝试。

自由标签:

Drupal网站多语言版的站点地图自动转换

James Qi 2013年8月15日 - 11:45 发布

  多语言Drupal网站的站点地图有一个名为xmlsitemap_i18n (XML sitemap internationalization)的插件,安装后就可以用为网站添加、生成各种语言相应的xmlsitemap,这个功能很强,特别是对于各种语言版本有不同的网址、不同的内容、不同的页面数量的复杂情况,都可以适用。

  但我们在实际使用中,因为网站的数据量大(页面数达到几十万甚至上百万)、语言多(50种语言)、子网站多(一个系列可能有几十甚至几百个子网站),生成站点地图需要很长时间,而我们网站的多语言没有页面数量不同的情况,每个页面的每种语言都有一一对应的页面,生成的站点地图其实只有网址中语言代码部分的不同。

检查系列网站sitemap.xml的Shell脚本

James Qi 2013年7月9日 - 09:40 发布

  6月份放置jamesqi.com这个站点的服务器出了一些问题,一直没有搞好,站点临时转移到其它服务器上,所以也没有写什么日志,现在依然没有搞好,但还是先写日志吧。

  我们有些系列网站数量多,再加上多语言后,xmlsitemap网站地图的数量就更多了,例如50子网站*50种语言后就是2500个网站地图,生成就需要很长时间,中途还可能遇到各种报错,而生成后人工检查也难以进行,7月1日编写了一个简单的脚本来进行自动检查、记录:

checksitemap.sh

更改Drupal生成Sitemap中的最后修改时间

James Qi 2013年1月8日 - 10:15 发布

  用Drupal搭建网站中,我们通常是初期导入大量数据,后来再反复修改分类、Views、显示模板、菜单等项目来改善用户体验,特别是显示模板可能会在几个月、几年后多次修改,甚至是重要的全面修改,显示内容已经面目全非了,但搜索引擎的快照中还是以前的内容,没有及时重新抓取、更新排名。

  搜索引擎应该是基本参照网站的xmlsitemap中的页面最后修改时间lastmod、更新频率changefreq来决定是否回来抓取、多长时间回来抓取的,而Drupal生成的sitemap中某个页面的最后更改时间很可能就是当初创建的时间,但显示内容因为模板修改而早就不同了,造成修改后的内容无法及时被搜索引擎发现。

  这几天实验了一下,用一段php程序批量将Drupal页面的node时间($node->changed、$node->revision_timestamp)修改为当前时间或者比较早的时间后,再重建sitemap(可用drupal菜单rebuild xmlsitemap或者drush xmlsitemap-rebuild),确实可以达到修改sitemap中页面最后修改时间的目的。

自由标签:

调用Google Webmaster Data API批量提交sitemap

James Qi 2012年10月25日 - 17:18 发布

  前几天在为系列网站提交网站地图的时候,发现提交多语言、包含手机版的上百个sitemap实在是太痛苦了,不停地click+copy&paste做多了直让人犯困,算了一下,至少需要几十个小时来做这种极度无聊的工作。

  了解到Google Webmaster Data API是可以用于批量提交sitemap的,但不知道如何使用,查了一些资料也没有找到突破头绪就先搁置了,后来尝试用robots.txt提交,但这种办法只能提交网站更目录下的sitemap(例如http://che.postcodebase.com/sitemap.xml),无法识别子目录(或者说子路径)下的sitemap(例如http://che.postcodebase.com/m/ar/sitemap.xml)。

Drupal网站手机版的站点地图Mobile XML Sitemap

James Qi 2012年6月4日 - 17:07 发布

  近期集中为以前的一些网站添加了手机版,为了让搜索引擎优化的效果更佳,我们为手机版都添加了Mobile XML Sitemap,在MediaWiki网站中是逐一对电脑版中的地图文件进行人工修改保存,而在Drupal网站中我们采用的办法是自动实时转换,下面记录几个要点:

页面

订阅 RSS - Sitemap