记录学习与后端知识并分享学习代码过程(会飞的鱼Blog)

分享Emlog博客程序建站SEO优化技巧方法

会飞的鱼 0 1621 2017年9月30日

之所以叫做简易优化指南,是因为emlog网站程序本身并不支持多么复杂的优化手段,比如说尽管5.0.0版实现了首页的网页标题和浏览器标题(也即title)分开设置,但栏目页和作者页还是老样子网页标题和浏览器标题只能一起弄。此外还有缺少二级分类支持啦、无法单独提取置顶和带图文章啦——修改数据库之类的主意就免了吧,可以的话咱尽量只动模板,实在不行稍微改动一下程序文件就够了。

    假定大家都已经具备了最基本的修改模板技能,也就是说能够使用正确的网页编程软件(Dreamweaver、Notepad++、Editplus、EmEditor、UltraEdit皆可,实在不行emlog主题编辑插件也凑合,严厉禁止windows记事本工具)对网页文件进行简单修改,并且模板文件也已基本到位,这就拿起工具按照下面说的改吧。

一、网站title的优化

    网站title在任何搜索引擎规则中都是大头,按说首页、列表页、文章页的title都是站长手工设置的,对于像祈雨其雨这样首页title简短的网站来说根本不需要过多纠结。但在现实中,很多站长偏爱给网站首页title设置一长串关键词组合,而emlog程序默认首页title为列表页和文章页title的后缀,导致页面title大量重复、关键词冲突。

    针对这种情况,一般采取的方法是修改模板title,将header.php文件默认的<title><?php echo $site_title;?></title>替换成<title><?php echo isset($log_title)?$log_title:$site_title;?></title>。这样做可以解决文章页,但解决不了列表页。更为彻底的处理方法是去/include/controller目录修改一干XXX_controller.php文件中的相关字段。再处理/t/index.php文件。

    Emlog程序默认的分页title都一模一样,造成很多同名页面,关键词冲突。不改内核、只通过模板解决的办法是写一个<?php echo page_tit($page); ?>函数放到header.php文件的title标签里,此函数需在module.php文件中定义:具体操作方法见 >>如何解决emlog列表分页标题相同的问题

二、禁止抓取某些页面

    为了减轻蜘蛛抓取压力提高搜索引擎优化效率,原则上建议把不需要蜘蛛收录的页面统统设置成禁止抓取的形式。比如说归档列表这玩意,每天更新会变得无穷无尽,虽然博客用户很喜欢,但是“某年某月某日”这个关键词能带来多少有效流量呢?归档列表内的日志标题会不会与其他页面发生关键词优化冲突呢?

    归档列表的主要入口,也就是日历组件的源代码位于/include/lib/calendar.php文件内,理论中rel="nofollow"标签能够阻止蜘蛛从这个入口爬进去,现在也有一种说法是它只能阻止权重传递但无法阻止蜘蛛爬行。在robots.txt文件中配置disallow标签可以阻止搜索引擎收录,但无法阻止抓取,也就意味着减轻蜘蛛抓取压力的作用十分有限。还有一桩大麻烦,robots.txt容易泄露网站后台地址,原本出于安全目的禁止搜索引擎收录的设置反而会出卖自己。

    试试在模板头部加入<meta name="robots" content="none">标签,这是一个禁止搜索引擎检索本页或跟踪该页任何链接的命令。目前emlog后台管理模板采用的是<meta name="robots" content="noindex, nofollow">标签,noindex表示拒绝索引本页但可跟踪该页链接nofollow是禁止跟踪链接,加起来正好是none的效果。给各位提个醒,目前后台登录模板login.php文件还没配置这个标签。

三、面包屑导航

    为文章页设置面包屑导航非常简单,把<a title="返回首页" href="<?php echo BLOG_URL; ?>"><?php echo $blogname; ?></a> >> <?php blog_sort($logid); ?> >> <?php echo $log_title; ?>贴进echo_log.php文件一切搞定。列表页的面包屑导航比较麻烦,log_list.php文件不仅得负责分类列表,通常情况下还得担负首页、标签、归档、搜索的种种列表职能,每种列表页面对应的获取当前页面方式都不一样。

    这里介绍一种比较通用的log_list.php设置面包屑导航方式:详情见 >>Emlog5的各种标签集合,只分享一些常用的标签函数

四、完善分类置顶

    Emlog程序默认首页文章置顶,而列表页还是按照日期排序。有些人是需要分类置顶功能的,模板制作的时候的确可以用top='y'语句把置顶日志单独提取出来,但是需要在module.php文件里面定义一大堆,所以还是改程序文件算了。

    让我们回到/include/controller目录,打开sort_controller.php文件,搜索到$sqlSegment = "and sortid=$sortid order by date desc";将其修改为$sqlSegment = "and sortid=$sortid order by top DESC ,date desc";即可获得分类置顶效果。有些CMS模板需要在module.php文件中定义分类列表组件,适当“top DESC ,”就能让置顶文章跑到最前面。

五、规范访问路径

    原则上一个网页只能有一个访问路径,复数个访问路径会被搜索引擎视为重复页面,轻则分权重则K站。最典型的莫过于顶级域名和www域名的301重定向问题。这里强调一下,301重定向是一定要做好的,不仅如此,emlog后台设置中的网站地址也一定要写好,如能在模板header.php文件所对应的网页头部加入<base href="<?php echo BLOG_URL; ?>" />标签就更好了。

    还有一个小问题,用惯emlog的朋友们可能早已发现了,就是文章页面访问路径可变。举例来说,本文的正确访问路径应该是/post-189.html,但是换成/post/189.html甚至于/seo/189.html这些根本不应该存在的路径同样可以访问,同一文章页出现了多个访问路径。解决的办法是给文章页面设置canonical标签,对搜索引擎强调网页规范访问路径。

    请将以下代码写入模板module.php文件中加入

<?php //文章访问路径标准化 
function gf_url($id){ 
if ($id){echo '<link rel="canonical" href="'.Url::log($id)."\" />";}
}?>

,再将<?php echo gf_url($logid);?>添加到网页头部

本文由 @会飞的鱼 于 2017-9-30 发布在 会飞的鱼Blog,如无特别说明,本博文章均为原创,转载请保留出处。

网友评论

    暂无评论

会飞的鱼 在线咨询

在线时间:9:00-22:00
周六、周日:14:00-22:00