隨著人們將越來越多的時間放在手機上,以前只在電腦上才能完成的購物、聊天、信息獲取等行為越來越傾向于移動手機上了。手機網民的增多,巨大的流量又會形成“倒逼”壓力,讓之前不關注、不在乎手機流量的網站不得不考慮一下移動搜索上的排名。
移動搜索優化給部落的直觀感受就是已經有不少的朋友留言要求開發一個部落博客的手機主題,因為現在的PC主題在手機上瀏覽并不是很方便。從百度的角度來看,百度現在正在發力移動搜索,尤其是在改善移動搜索體驗不斷下功夫,近期還傳出百度移動搜索要取消PC網頁收錄。
原標題:移動搜索優化SEO-用PHP自動生成百度開放適配Sitemap文件提升手機站排名
百度開放適配Sitemap不同于我們平常所說的網站地圖Sitemap,百度開放適配Sitemap里面是PC頁—手機頁的對應關系,例如www.freehao123.com/cj-payoneer/對應移動頁面m.freehao123.com/cj-payoneer/,百度會在移動搜索中將原PC頁結果替換為對應的手機頁結果。
提交百度開放適配Sitemap對于一些已經在百度PC搜索中有著良好排名的網站十分重要,它可以最快實現將PC網頁搜索結果轉化為移動搜索結果,而不是在移動搜索中經歷漫長的權重提升過程,尤其是未來移動流量不可估量,提前做好移動搜索SEO服務對未來有著至關重要的意義。
PC網站的URL多如牛毛,按照百度開放適配Sitemap文件格式要求文件描述url級別的PC頁與手機頁的對應關系,手動寫肯定不行。本篇文章就來分享一下“張戈博客”開發的用PHP自動生成百度開放適配Sitemap文件的方法,一勞永逸。該方法同樣適用于360移動適配服務。
一、生成百度開放適配Sitemap文件前準備
1、你需要一個PC網站的手機版本,對于Wordpress可以直接安裝一個Wordpress手機版本的主題。
二、自動生成開放適配Sitemap的PHP代碼
1、適用于百度開放適配Sitemap的PHP代碼:
<?php
require('./wp-blog-header.php');
header("Content-type: text/xml");
header('HTTP/1.1 200 OK');
$posts_to_show = 1000; //限制最大生成1000篇
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=http://www.sitemaps.org/schemas/sitemap/0.9
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';
?>
<url>
<loc>http://zhangge.net</loc>
<lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate('Y-m-d\TH:i:s+00:00', strtotime($ltime)); echo $ltime; ?></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
<data>
<display>
<!-- 以下三種版式,請根據實際的手機站版式選擇 –>
<html5_url>http://m.zhangge.net</html5_url>
<wml_url>http://m.zhangge.net</wml_url>
<xhtml_url>http://m.zhangge.net</xhtml_url>
</display>
</data>
</url>
<?php
header("Content-type: text/xml");
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) { ?>
<url>
<loc><?php the_permalink(); ?></loc>
<lastmod><?php the_time('c') ?></lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
<data>
<display>
<!-- 以下三種版式,請根據實際手機站版式選擇 –>
<html5_url><?php echo str_replace("zhangge.net","m.zhangge.net",the_sitemaplink()); ?></html5_url>
<wml_url><?php echo str_replace("zhangge.net","m.zhangge.net",the_sitemaplink()); ?></wml_url>
<xhtml_url><?php echo str_replace("zhangge.net","m.zhangge.net",the_sitemaplink()); ?></xhtml_url>
</display>
</data>
</url>
<?php } ?>
</urlset>
2、適用于360移動適配的PHP代碼:
<?php
require('./wp-blog-header.php');
header("Content-type: text/txt");
header('HTTP/1.1 200 OK');
$posts_to_show = 1000; //限制最大生成1000篇
?>
http://zhangge.net<?php echo "\t"; ?>http://m.zhangge.net<?php echo "\n"; ?>
<?php
header("Content-type: text/txt");
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) { ?>
<?php the_permalink(); ?><?php echo "\t"; ?><?php echo str_replace("zhangge.net","m.zhangge.net",the_sitemaplink()); ?><?php echo "\n"; ?>
<?php } ?>
3、代碼說明:
1、以上代碼默認限制1000篇文章,如需修改請改變第5行的數值即可; 2、涉及到張戈博客域名( *.zhangge.net )的代碼,請根據實際情況修改成自己網站的域名; 3、百度開放適配代碼中,如第17、35行所述,請根據手機站的實際版式決定使用后面的三種版式之一,如有多種版式多選,如有只有一種,請刪除其他2種,如,張戈博客的手機版是XHTML版式,所以只需要保留XHTML那一行即可!
4、如何查看網站版式?一般在網站的<head>前面都會有相應的版式申明,如下所示:
XHTML版式申明:
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
WML版式申明:
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
HTML5版式申明:
<!DOCTYPE HTML>
5、如果你的手機站有多種版式,那么上面百度適配代碼也請選擇多個,總之以實際為準。如果發現還是PC通用的版式申明,那么請改成相應的mobile版式申明!
6、如果是 http://yoursite.com/wap 這種二級目錄形式,請將代碼中的m.zhangge.net全部替換成 yoursite.com/wap即可。
7、如果是http://yoursite.com?type=mobile 這種參數形式,請將2種代碼中的<?php echo str_replace("zhangge.net","m.zhangge.net",the_sitemaplink()); ?>修改為:<?php the_permalink(); ?>?type=mobile
8、即加上你移動站對應的轉換參數即可,至于代碼中的首頁對應關系該如何修改,相信可以自行搞定,無需贅述!而且這種形式站點可以略過下面的第二步,即不需要新增the_sitemaplink()函數。
三、修改Wordpress主題:新增the_sitemaplink()函數
1、請編輯主題目錄下的functions.php文件,插入以下函數代碼:
/** 開放適配相關函數 **/
function the_sitemaplink() {
return esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}
2、做完以上步驟,你就可以手動訪問2個php腳本查看效果了,比如:http://zhangge.net/sitemap_baidu_sp.php或者http://zhangge.net/sitemap_360_sp.php
3、若顯示正常,你可以繼續下一步了。若訪問報500 Internal Server Error :File xxx is writeable by group錯誤,請將以上2個文件權限設置為644。
四、設置偽靜態規則調整Sitemap中URL地址
1、從第上面最后的訪問地址可以看出,用的是php的動態路徑,而百度寫明了需要提交xml格式(其實,我發現php格式也可以提交成功),360則寫明了需要提交txt格式。
2、于是,接下來就是將地址偽靜態化。編輯網站根目錄的 .htaccess文件,如下代碼所示位置新增8~11行內容:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.zhangge\.net)(:80)? [NC]
RewriteRule ^(.*) http://zhangge.net/$1 [R=301,L]
#sitemap-shipei-start
RewriteRule ^(sitemap_baidu_sp)\.xml$ $1.php
RewriteRule ^(sitemap_360_sp)\.txt$ $1.php
#sitemap-shipei-end
order deny,allow
.....略....
3、保存之后,應該可以直接訪問xml和txt路徑了,如:http://zhangge.net/sitemap_baidu_sp.xml或者http://zhangge.net/sitemap_360_sp.txt
五、在站長平臺提交開放適配Sitemap文件
1、百度站長平臺-開放適配:http://zhanzhang.baidu.com/mobiletools/add,點擊放大。
2、提交成功預覽:
3、360站長平臺-移動適配:http://zhanzhang.so.com/index.php?m=Urlmap&a=submit,點擊放大。
4、提交成功預覽:
5、若以上未出現問題,那恭喜你!一勞永逸地搞定了百度開放適配和360移動適配這項閑得蛋疼的項目...!
六、PHP自動生成百度開放適配Sitemap文件小結
1、PHP代碼是動態生成的,如此就保證了搜索引擎更新抓取的時候,是最新狀態!而不會是之前那樣苦逼手動去生成和更新!不過,暫時也稍有遺憾,僅僅生成了文章頁面的對應關系,單頁面和分類并未提供!不過,能適配文章也差不多了!
2、注意事項:本文提供的方法僅適合Wordpress建站程序,其他PHP建站程序僅提供參考思路;代碼默認支持Linux系統,若是windows系統,需要修改換行符,若有疑問請留言咨詢。最后,再次感謝php二次開發網的php技術支持!
評論(0人參與,0條評論)
發布評論
最新評論