emlog程序是一个国内知名的php个人博客建站程序,emlog是一款基于PHP语言和MySQL数据库的开源、免费、功能强大的个人或多人联合撰写的博客系统,用过它的朋友都知道,这程序体积小,操作上手快,而且功能强大,非常适合新手建站使用,安装和使用都非常方便,目前 emlog 正在受到越来越多的广大用户的青睐。
但是emlog网站程序本身并不支持多么复杂的优化手段,emlog在很多细节上并没有针对seo优化来完善,例如网页标题重复,今天就在这里就分享一下关于emlog的一些实用的seo优化方法,希望对大家有帮助,新手如果想优化一下自己的网站,可以按照以下方法来操作。
一、链接优化
使用过emlog建站程序的都知道,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);?>添加到网页头部即可,大家可以在我的文章页面查看源码体验效果。
顺便给大家普及一下什么是canonical标签:
rel=”canonical” 这个标签已经推出很久了,canonical 是 Google、雅虎、微软等搜索引擎一起推出的一个标签,它的主要作用是用来解决由于网址形式不同内容相同而造成的内容重复问题,这个标签对搜索引擎作用非常大,简单的说它可以让搜索引擎只抓取你想要强调的内容。
二、解决链接重复推送
现在百度站长平台及360站长平台都推出了自己的链接自动推送JS,但是百度还是360的这个JS工具都算是半产品,都没有考虑到重复推送问题,注意:JS自动推送不能判断重复提交,百度官方自己也说了恶意提交垃圾页面或者重复页面的站点将会被惩罚限制提交,直至关闭提交权限,这样我们该怎么做才能避免重复提交呢?
1.找到主题的module.php文件,在文件最底部添加如下代码
<?php //判断内容页是否百度收录及百度自动推送代码function baidu($url){$url='http://www.baidu.com/s?wd='.$url;$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$rs=curl_exec($curl);curl_close($curl);if(!strpos($rs,'没有找到')){return 1;}else{return 0;}}function logurl($id){$url=Url::log($id);if(baidu($url)==1){echo "<a rel=\"external nofollow\" title=\"本文已被百度收录\" target=\"_blank\" href=\"http://www.baidu.com/s?wd=$url\">本文已被百度收录!</a>";}else{echo "<a>本文已提交百度!</a><script>(function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(bp, s);})();</script>";}}?>
2.找到文章页面文件echo_log.php,在合适的位置添加以下代码:
<?php echo logurl($logid);?>
三、网站title优化
网站title在任何搜索引擎规则中都是大头,而emlog程序默认首页title为列表页和文章页title的后缀,导致页面title大量重复、关键词冲突,分类页、标签页、作者页、搜索页等等,文件都在include/controller/ 里面。
标题太长,不利于用户体验。
所以我们需要修改一处地方,把它改为 分类标题_站点标题。
以分类页为例子,文件是:sort_controller.php :
找到大概43行,把$site_title 改成 $blogname
也就是不调用浏览器标题了,改为调用站点标题。 好了,现在保存文件,上传覆盖原文件,然后刷新一下分类页,看看标题是不是改变了??
这个方法可以用于更改搜索页、标签页、作者页、存档页的修改,这些文件都存放于include/controller/ 文件夹,大家可以按照上面的方法来修改。
Emlog程序默认的分页title都一模一样,造成很多同名页面,关键词冲突;以下是解决这个问题的方法。
第一步:写一个从第二页开始显示分页标题的函数,放在模版文件的module.php里面,代码如下:
<?php//分页标题后面加 - 第几页function page_tit($page){ if ($page>=2){ echo ' - 第'.$page.'页'; }}?>
第二步:header.php(如果你的头部文件修改过的话,就要找到对应的头部文件)文件头部调用
<?php echo page_tit($page); ?>