01百度移动搜索地域优化说明
一、添加html适配meta标签
在网页前端页面的</head>标签前面添加如下meta标签:
<meta name="location" content="province=北京;city=北京;coord=116.036942,40.361584">
其中province后面是省份的简称,city后面是市级城市的简称,coord后面的数字是经纬度(可以使用百度地图坐标拾取系统获得),坐标可以省略不写(但我建议写上)。
二、移动地域标注注意事项
在百度资源平台有一句话“站长还是需要注意只对页面内容或服务本身具有较强地域属性的页面进行地域信息标注”,也就是说即使你的网站是本地服务类型的网站,有的页面也不需要标注!做SEO优化时不要所有的页面都加一样的meta。
比如一个上门维修电脑的网站,服务本身是本地的网页需要标注,而网站上发布的电脑维修技术相关的知识分享类页面没有地域性,不需要标注。注意移动和PC网页均需要添加。
三、实现该标注的难点
上面的meta代码中,省、市和坐标这三个是动态的,每一个页面并不一样,除了这3个动态参数之外,有的页面还不能标注(也就是不能出现该meta标签),那么问题就在于如何实现想要的时候出现,不要的时候隐藏,并且准确无误。下面以dedecms系统为例来实现这个功能。
02dedecms实现移动搜索地域优化思路
根据前面的需求,我们只需要在文章内容模型添加3个对应的自定义字段来获取省市名称及坐标即可,然后在前端页面上使用判断的方式,哪些页面需要添加该meta标签,哪些需要隐藏,这样可以非常灵活的添加标注。
03添加各省简称和坐标字段
展开dedecms网站后台/核心/频道模型/内容模型管理,选择你的内容模型,添加新字段,①添加坐标字段:“表单提示文字”填写“地图坐标”,“字段名称”填写“mappoint”,“数据类型”这里选择“单行文本(varchar)”;②添加省份字段:“表单提示文字”填写“百度省份”,“字段名称”填写“bdsheng”,“数据类型”选择“使用option下拉框”,并且在“默认值”这里把省份的简称填上,每个省份之间使用英文状态的逗号隔开,因为省份只有三十多个,一个字段足矣。
省份简称和城市简称请百度搜索“百度移动搜索地域优化服务说明”进入百度资源平台获得,一定要使用官方提供名称哦,和我们平时的习惯简称不太一样。
移动标注三个自定义字段
04添加联动类型城市字段
如第三步中的图片字段所示,前面已添加的2个字段都非常容易,坐标在添加文章的时候直接填写,省份通过下拉选择,但是城市简称太多了,每个省下面有多个市,只能使用联动类型来实现,单独写这个字段的添加方法是因为有点难。
一、添加城市联动类别字段
在网站后台点击频道模型下面的“联动类别管理”,右上角的位置点“新增类别组”添加联动枚举分类,下图所示,类别名填写“百度地域”,缓存组名填写“bddiyu”。
dedecms添加联动类别组
点“确定添加”之后,继续添加省份简称,先把省份简称加入,每个名称之间使用英文逗号隔开。
dedecms联动类型添加
使用同样的方法把每个省下面的“市”简称添加完,稍微有点多,一个一个加就行。
二、内容模型关联“联动类型”
回到“频道模型”,点击“内容模型管理”,在前面第三步中添加字段的那个内容模型中添加新字段,“表单提示文字”填写“百度地域”,“字段名称”填写“bddiyu”,特别注意此处的字段名称要和上一步联动缓存组名保持一致,“数据类型”选择“联动类型”,其他的留空,然后保存即可。
通过一番添加和关联,所有的功能性自定义字段全部添加完毕,着实挺麻烦的。
05前端模板添加移动地域meta标签
根据前面的需求和思路,一个分类下面的文章是多种多样的,有的文章不需要添加该meta标签,那么在模板文件中需要使用到判断语句。
在模板文件的</head>标签前面添加如下代码:
{dede:field name='array' runphp='yes'}if(@me['bdsheng'] !='' && @me['bddiyu'] != '' && @me['mappoint'] != '')@me='<' . 'meta' . ' ' . 'name=' . '"' . 'location' . '" ' . 'content=' . '"'.'province='.@me['bdsheng'] .';'.'city=' .@me['bddiyu'] . ';' . 'coord=' .@me['mappoint'] . '"' . '>' ;else @me = "";{/dede:field}{dede:field name='bddiyu' runphp='yes'}if(@me != "") @me = "";else @me = "";{/dede:field}其中bdsheng是自定义字段“省份”,bddiyu是联动类型“市”的字段名,mappoint是经纬度坐标的字段名。将这3个替换为你自己的对应字段名即可,避免出错,建议按照我的添加。
此时基本上所有的功能性修改均添加完成,但是还有一点小问题,如果是dedecms5.7版本系统,默认联动类型会把这个名称显示为数字,比如“城市”我们选择的是石家庄,正确的应该是“city=石家庄”,此时调出来的是数字,也就是“city=1503”这样的,显然不正确。
06织梦联动类型枚举名显示文字
我们需要把联动类型枚举名称直接显示出来,打开dedecms系统根目录\include\taglib\channel\stepselect.lib.php文件,分别搜索以下代码:
return $GLOBALS['em_'.$egroup.'s'][$etopvalue].' -- '.$GLOBALS['em_'.$egroup.'s'][$esonvalue].' -- '.$GLOBALS['em_'.$egroup.'s'][$esecvalue];替换为:
return $GLOBALS['em_'.$egroup.'s'][$esecvalue];//联动枚举名显示 by烈火大地
继续搜索代码:
return $GLOBALS['em_'.$egroup.'s'][$erevalue].' -- '.$GLOBALS['em_'.$egroup.'s'][$evalue];替换为如下代码:
return $GLOBALS['em_'.$egroup.'s'][$evalue];//联动枚举名显示 by烈火大地
经过上面的修改和各种添加,百度移动搜索地域优化针对dedecms系统整改算是完美结束了,这个功能主要是针对文章详情页,对于分类列表页面,由于分类是固定不变的,可以根据具体情况直接将meta代码添加到模板里面。
07修改或发布文章验证meta是否正确
在添加了自定义字段的内容模型分类下面,发布一篇文章(修改也是可以的),下图所示,“坐标”填写文章内容中具体地址的经纬度。
织梦系统移动搜索地域优化功能
坐标、地域(调用市简称)、省份这3项一定要填写,不能为空,并且注意“百度省份”这个字段要选择正确,然后发布文章,前台浏览该文章,在网页空白处点鼠标右键/查看网页源代码,可以看到meta标签中的各项值均准确无误。
带有移动标注meta代码
08隐藏移动meta标签的方法
以上是需要添加百度移动搜索meta的文章页面,如果我们的文章不具有地域限制性,那么这个标签是千万不能加的,不让meta出现的方法是前面我们添加的3个自定义字段:坐标,省份,城市,这3个字段中只要有一个留空即可,因为前台模板代码中已经进行了判断:只有这三个字段均不为空时,移动meta才会显示。所以不显示移动meta的方法是:只要这3个字段中的其中一个或全部都不填就行了。
这种方法算是比较完美了吧,对于编辑发布文章来说可以事半功倍,显示时拾取坐标、选择省市就可以了,字段不显示时留空不管就行。同时也非常有利于SEO优化,针对具体的文章进行meta标注,很灵活。