加入搜尋引擎最佳化標籤(Adding SEO tags)

自然搜尋(organic search)是流量的重要來源。要最佳化這一部份,我們需要作到很多事情。

其中一個該做的事情,是在每個網頁上面加上不同的 meta tag。這會提供搜尋引擎一些網頁的資訊,可能會讓網站的自然搜尋表現更好。

以下簡述如何在網站裡面,加上搜尋相關的metadata。

1. Title

設置title非常簡單,在控制器(controller)裡面是:

\Yii::$app->view->title = 'title set inside controller';

在視圖(view)裡面則是:

$this->title = 'Title from view';

備註:在layout裡面設置$this->title,會蓋過所有的頁面,所以不要這麼做。

有預設 title 通常是個好主意,所以可以在layout裡面這樣寫:

$this->title = $this->title ? $this->title : '預設標題';

2. Description 和 Keywords

Yii 內keywordsdescription 沒有對應的參數。因為這兩個在網頁上都是meta標籤,所以我們可以使用registerMetaTag()函式。

在控制器(controller)裡面是:

\Yii::$app->view->registerMetaTag([
    'name' => 'description',
    'content' => 'Description set inside controller',
]);
\Yii::$app->view->registerMetaTag([
    'name' => 'keywords',
    'content' => 'Keywords set inside controller',
]);

在視圖(view)裡面是:

$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Description set inside view',
]);
$this->registerMetaTag([
    'name' => 'keywords',
    'content' => 'Keywords set inside view',
]);

所有登記的 meta tag 會在$this->head()呼叫時產生。

這邊需要注意的是,如果我們對同一個標籤登記不只一次,那麼每一次登記的內容都會出現在網頁中。舉例來說,如果我們layout裡面登記了一個description,view裡面又登記了一個 description,那網頁會出現兩個 description。這樣通常對 SEO 不好。要避免這個狀況,我們可以在registerMetaTag()的第二個參數,加上對應的key:

$this->registerMetaTag([
    'name' => 'description',
    'content' => '網頁描述一',
], 'description');

$this->registerMetaTag([
    'name' => 'description',
    'content' => '網頁描述二',
], 'description');

這樣的話,前面的 description 會被蓋過,網頁的description 會是「網頁描述二」。

3. 其他資料

results matching ""

    No results matching ""