站点地图(sitemap)是一个文件,列出了网站上的页面。搜索引擎机器人使用它来对你网站上的页面进行爬取和编制索引。因此,站点地图的一般用途是帮助搜索引擎,并使它们更容易为你的站点页面建立索引,从而提高它们在互联网上的可见性。

脚本方法

在MediaWiki中,你可以借助该应用程序随附的脚本生成一个站点地图,并定期对其进行更新。在本文中,将详细介绍如何创建和更新站点地图的步骤。

创建站点地图目录

这一步不是必须的。你可以在MediaWiki应用程序的任何文件夹中生成站点地图文件。但是,为了更有条理,最好有一个特定的文件夹来存储站点地图。例如,在MediaWiki根目录下,你可以创建一个名为sitemap的文件夹,然后可以在其中生成站点地图。

mkdir sitemap

有必要的话,记得修改用户组和权限。

生成站点地图

然后,运行如下脚本:

php maintenance/generateSitemap.php --memory-limit=50M --fspath=/data/wwwroot/wiki.mindseed.cn/sitemap/ --identifier=wiki.mindseed.cn --urlpath=/sitemap/ --server=https://wiki.mindseed.cn --compress=yes --skip-redirects

其中要修改的参数:
fspath=是你刚刚建立的sitemap目录的绝对路径;
identifier=为标识符,可以用网站名或者是任何你喜欢的名字,默认使用的是数据库名;
urlpath=是Url路径,就按官网的/sitemap/来就好了;
server=为你的网站名,这没啥好解释的了。

运行完之后,sitemap目录下会生成一堆的文件,其中有一个sitemap-index-example.com.org.xml的文件和一堆以sitemap-index-example.com.org-NS_为前缀的gz压缩文件。你可以手动将sitemap-index-example.com.org.xml提交将给google或百度等站点,也可以做个软链接以便爬虫能爬到,如下:

ln -s /sitemap/sitemap-wiki.mindseed.cn.xml sitemap.xml

更新站点地图

如果再次运行上面的生成代码并且仍保存在sitemap目录中,那么其中的旧文件将被更新后的新文件所替换。因此,为了定期更新站点地图,你需要定期执行脚本。当然你也可以设置一个cron作业以按一定的时间间隔执行脚本,而不必每次都手动执行此操作,无论您认为哪种方法最适合您的站点(例如每天一次,每周一次)。
在控制台中输入:

crontab -e

然后加入以下内容(比如每周日晚上23点更新一次):

00 23 * * 0 /usr/local/php/bin/php /data/wwwroot/wiki.mindseed.cn/maintenance/generateSitemap.php --memory-limit=50M --fspath=/data/wwwroot/wiki.mindseed.cn/sitemap/ --identifier=wiki.mindseed.cn --urlpath=/sitemap/ --server=https://wiki.mindseed.cn --compress=yes --skip-redirects

注意:php命令一定要将完整地址写出来,否则不会起效。想要知道PHP位于什么位置,可以在控制台中输入which php

保存退出后,记得重新加载一下:

systemctl reload crond.service

检查一下定时计划:

crontab -l

具体的crontab用法可以搜索网上的相关教程。

AutoSitemap扩展

如果你对脚本和cron作业不熟悉,那么最好的方式还是选择扩展。虽说此类扩展几乎销声匿迹,但总算是幸存了一两个,更推荐使用AutoSitemap。从名字就能看出,这个扩展能够帮助用户自动创建一个“stitemap.xml”文件,并且可以根据需要设置按什么周期来生成(如每天、每周或每月等)。简单的配置如下,具体可以参考官方文档:

wfLoadExtension( 'AutoSitemap' );
$wgAutoSitemap["filename"] = "sitemap.xml"; //default value
$wgAutoSitemap["notify"] = [
    'https://www.google.com/webmasters/sitemaps/ping?sitemap=https://wiki.mindseed.cn/sitemap.xml',
    'https://www.bing.com/webmaster/ping.aspx?sitemap=https://wiki.mindseed.cn/sitemap.xml'
];    
$wgAutoSitemap["freq"] = "weekly"; 

生成需要一定的时间,所以请耐心等待。

总结

采用脚本方式最大的问题可能就是国内几个搜索引擎会出现“索引型不予处理”的问题,因为不支持嵌套也不支持.gz格式的网站地图,所以最好的方式还是采用扩展。

最后修改:2023 年 07 月 13 日
如果觉得我的文章对你有用,请随意赞赏