close

37150038940_1520f95a76_z.jpg

(圖片來源)

什麼是 Sitemap?

「Sitemap」是一種XML格式的檔案,您可以在其中列出網站上的網頁,讓 Google 和其他搜尋引擎瞭解您的網站內容架構。搜尋引擎網路檢索器 (例如 Googlebot) 會讀取這個檔案,以更靈活的方式檢索您的網站。簡單來說就是,交出自己網站架構,讓搜尋引擎爬網站時小力一點!

Laravel 專案如何產生 Sitemap?

這問題非常好! 前人造的輪子太多太好用了,也包括 Sitemap 在內,依照下面的步驟就可以產出屬於自己站台的 Sitemap。

Step1 搜尋套件

首先開啟 Composer Package 的網站,輸入並選擇 roumen/sitemap。

Step2 安裝套件

打開 Teriminal 輸入 composer require roumen/sitemap,並等待它完成安裝。

安裝完成後打開專案的 composer.json 檔就可以看到已經裝入套件

在 Laravel 中註冊此項服務,打開 config/app.php ,並在 providers 加入下方元素。

'providers' => [
   ...
     Roumen\Sitemap\SitemapServiceProvider::class,
],

Step3 加入路由

//取得 SiteMap 文件
Route::get('/SiteMap', 'ServiceController@getSiteMap');

Step4 在 Controller 加入 function

// 取得 SiteMap XML文件
public function getSiteMap()
{
    $sitemap = App::make('sitemap');
 
    // add items to the sitemap (網址, 最後更新日期, 優先權, 平均網站更新頻率)
    $sitemap->add(url('/'), '2012-08-25T20:10:00+02:00', '1.0', 'daily');
    $sitemap->add(url('/Login'));
    $sitemap->add(url('/Register'));
    $sitemap->add(url('/Register/Mobile'));
    $sitemap->add(url('/Member'));
    $sitemap->add(url('/Member/ForgetPassword'));
    $sitemap->add(url('/Feed'));
    $sitemap->add(url('/Contact'));
    $sitemap->add(url('/links.html'));
 
    // 取得所有的文章類別
    $categorys = DB::table('categorys')
     ->where( 'en_name' ,'!=','' )
     ->get();
 
    foreach ($categorys as $category)
    {
     $url = url('/') .'/'. $category->en_name;
        $sitemap->add($url);
    }
 
    // 取得所有類別的文章
    $posts = DB::table('articles')
     ->join('categorys', 'articles.category_id', '=', 'categorys.id')
     ->select('categorys.en_name','articles.*')
     ->orderBy('created_datetime', 'desc')
     ->get();
 
    foreach ($posts as $post)
    {
     $url = url('/') .'/'. $post->en_name .'/'. date('Ymd',strtotime($post->show_date)) . '-' . $post->id . '.html';
        $sitemap->add($url);
    }
 
    // 取得所有標籤
    $tags = DB::table('tags')
     ->orderBy('id')
     ->get();
 
    foreach ($tags as $tag)
    {
     $url = url('/Tag') .'/'. $tag->id;
        $sitemap->add($url);
    }
 
    // generate your sitemap (format, filename)
    // this will generate file mysitemap.xml to your public folder
    $sitemap->store('xml', 'sitemap');
 
    // 下方程式可以在網頁印出 XML,但是若網址數很多建議還是下載下來,不然戶無法顯示在瀏覽器上
    // return $sitemap->render('xml');
}

Step5 檢查檔案並開起測試

在 /public/ 底下會看到產生的 sitemap.xml

打開的結果會如下,恭喜你完成你網站的 SiteMap!

產生完 Sitemap 下一步呢?

我們接下來就是要提交 Sitemap 給各大搜尋引擎,好告訴這些搜尋引擎我們有些東西可以給他們了。

Step1 開啟下方搜尋引擎 Sitemap 提交網站

Google 網站管理員工具
Bing 網站管理員工具
百度站長平台
360搜索站長平台
Yande

Step2 在網域的根目錄下,建立 robots.txt

這是一份用於指揮搜尋引擎的文字檔案,在其中添加下面這段敘述

 

是否該使用 Sitemap?

如果網站上的頁網頁連結妥當,我們的網路檢索器通常可以找出大部分的網站內容。即使如此,Sitemap 還是能夠改善網站的檢索結果,尤其當您的網站符合下列其中一項條件時更有幫助:

1. 網站規模極大:

Google 網路檢索器很有可能會因此漏失部分新網頁或近期更新的網頁,沒有檢索到。

2. 網站擁有大量的內容網頁,但這些網頁處於隔離狀態或彼此之間沒有適當的連結:

如果網站上的網頁無法彼此參照,您可以將這些網頁列在 Sitemap 中,確保 Google 不會漏失部分網頁。

3. 網站才剛建立,而且連往該網站的連結不多:

Googlebot 和其他網路檢索器是透過網頁層層連結的方式來檢索網頁,因此如果沒有其他網站連往您的網頁,Googlebot 可能很難發現這些網頁。

4. 網站使用 Google 新聞中顯示的互動式多媒體內容,或使用其他與 Sitemap 相容的註解。

在適當的情況下,Google 會把 Stiemap 所提供的額外資訊納入搜尋範圍。

※由於 Google 的處理程序仰賴複雜的演算法來安排檢索作業,因此即便您使用 Sitemap,Google 也無法保證一定會檢索 Sitemap 中的所有項目並建立索引。不過,提交 Sitemap 絕對不會造成負面影響;在大多數情況下,網站都能因此而受惠。

 

※ sitemap 產生器

Wonder Web Ware – SiteMap Generator (官方網站EXE執行檔,已測試過,速度快、資訊完整很好用!)

SiteMap Generator (免費網站產生器,已測試過,時間久)

參考:

瞭解 Sitemap

Sitemaps XML 格式

如何有效正確的提交Sitemap給搜索引擎

建立網站地圖 Sitemap.xml 並提交給搜尋引擎

arrow
arrow
    文章標籤
    sitemap roumen Laravel
    全站熱搜

    Mayuge 發表在 痞客邦 留言(0) 人氣()