做SEO的兄弟,估计都头疼过网站地图这档子事。
以前用WordPress,插件一装完事。
换到帝国CMS,嘿,那叫一个清爽,但也真叫一个麻烦。
很多新手站长,为了个sitemap,去网上扒代码,结果一跑,全是乱码,或者静态页生成失败。
别急,今天咱不整那些虚头巴脑的理论。
我就直说,怎么用帝国CMS自带的灵动标签,最快速度搞定一个能百度抓取的网站地图。
先说个真事儿。
我有个学员,老李,搞建材网站的。
他非要去买那种几千块的SEO工具,说能自动生成sitemap。
我一看他后台,好家伙,栏目页都还没建好,就想着搞地图?
结果呢?百度站长平台提交上去,全是404。
为啥?因为他的链接结构不对,而且没有做伪静态或者动态链接的规范处理。
咱们今天这个法子,不用插件,不用数据库复杂查询,就用灵动标签。
简单,粗暴,有效。
第一步,你得先想清楚,你的网站地图要包含哪些内容。
通常就三类:栏目页、文章页、还有首页。
有些高端玩法还会加上专题页,但咱们先搞基础版。
别贪多,基础稳了,再往上加。
第二步,在后台新建一个页面。
注意,是新建页面,不是新建模板。
帝国CMS的“页面”功能,专门用来生成静态文件的。
你进去之后,选择“生成HTML页面”。
模板选择,选那个“自定义页面模板”。
然后,最关键的一步来了。
在模板内容里,直接敲代码。
别怕,就几行。
先看栏目页的写法。
[e:loop={"select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder",0,24,0}]
[/e:loop]
这段代码,意思是提取所有一级栏目。
注意看,这里有个小坑。
有些站长喜欢把二级栏目也写进去,结果链接重复,百度会认为你作弊。
所以,建议只写一级栏目,或者用递归写法,但递归容易出Bug。
新手建议,先写一级,稳当。
第三步,写文章页。
这个稍微复杂点,因为文章多啊。
你不能把全站文章都列出来,那样文件太大,百度也不爱爬。
建议只列最新的500条,或者按栏目分批。
[e:loop={"select title,titleurl,titleurl from [!db.pre!]ecms_news where newstime>unix_timestamp()-86400*30 order by newstime desc limit 500",0,24,0}]
[/e:loop]
这段代码,是生成sitemap的XML格式。
注意,这里有个细节。
很多教程里,lastmod写的是今天的时间,那是错的。
百度喜欢新鲜的,但也喜欢真实的更新时间。
所以,用文章本身的发布时间,更靠谱。
第四步,生成静态文件。
在页面管理里,找到你刚才新建的那个页面。
点击“生成HTML”。
这时候,你会在根目录看到一个sitemap.html,或者sitemap.xml,取决于你模板里写的后缀。
建议生成xml格式,因为百度官方推荐的是sitemap.xml。
但如果你不会改模板,生成html也行,百度也能抓。
第五步,提交给百度。
去百度站长平台,找到“sitemap”工具。
提交你的链接。
比如:https://www.yoursite.com/sitemap.xml
然后,点“提交”。
这时候,别急着走。
去“抓取诊断”里,看看百度有没有抓取到。
如果有404,那就是链接错了。
如果显示成功,那就齐活了。
这里再补充个经验。
很多站长做完sitemap,就不管了。
这是大忌。
百度爬虫是懒的,你不更新,它就不来。
所以,每次发文章,最好手动更新一下sitemap的更新时间。
或者,写个简单的PHP脚本,每次发布文章时,自动更新sitemap.xml里的最后修改时间。
这步稍微有点技术含量,但为了SEO,值得。
还有个小窍门。
如果你的网站栏目特别深,比如三级、四级栏目。
灵动标签里,可以用递归调用。
但要注意,递归调用容易死循环。
一定要加个深度限制,比如depth=3。
不然,服务器容易崩。
我见过好几个站,因为sitemap生成代码写错了,导致服务器CPU飙到100%。
那场面,挺吓人的。
总之,帝国CMS做sitemap,核心就是灵动标签。
只要逻辑理顺了,比那些花里胡哨的插件好用多了。
插件还要担心兼容性问题,灵动标签是原生的,稳如老狗。
最后,提醒一句。
别迷信那些“一键生成”的工具。
自己写的代码,自己心里有底。
出了问题,你知道咋改。
要是用别人的工具,报错了你连门都找不着。
这点,血泪教训。
好了,今天就聊到这。
照着做,肯定能成。
要是还有啥不懂的,评论区见。
咱们一起折腾,一起进步。
毕竟,做SEO这条路,本来就是孤独的。
有人搭把手,总好过一个人瞎摸。
希望这篇干货,能帮你省下不少折腾的时间。
毕竟,时间就是金钱,对吧?
行了,我去喝口水,继续搬砖去了。
祝各位站长,流量蹭蹭涨。