假設我有一個定義以下路徑的 angular 應用程式。
{ path: ':lang/journal/:id/:title', component: JournalComponent, runGuardsAndResolvers: 'always', resolve: {journalOverview: JournalOverviewResolver} },
決議器JournalOverviewResolver請求頁面詳細資訊。這個 http 請求真的只需要:idurl 引數就可以得到想要的回應。這意味著訪問 url:www.mywebsite.com/en/journal/12/the-actual-title-of-journal將加載頁面,但 urlwww.mywebsite.com/en/journal/12/dslfjslishshsdkljf也會導致同一頁面。
我不想允許這樣。只有一個 url 可以是有效的。因此,當最后一個路徑段與期刊的實際標題不同時,我希望應用程式自動更改瀏覽器中的 url。我為此使用以下內容。
import {Location} from '@angular/common'
constructor(private location: Location)
{
}
changeCurrentUrl()
{
let parts = window.location.pathname.split('/');
parts[parts.length - 1] = actualJournalTitle;
this.changeUrl(parts.join('/'));
}
changeUrl(url: string)
{
this.location.replaceState(url);
}
這很好用,但我想知道這對 SEO 有什么樣的影響。如果google爬蟲爬取到一個標題路徑段無效的url,而這個路徑段被app自動改了,google爬蟲會不會撿到這個?或者 google 爬蟲仍然會將無效的 url 視為指向該頁面的實際鏈接?
我知道這個網站 (stackoverflow) 也會在鏈接無效時自動更改鏈接的 url。就拿例如這太問題:https://stackoverflow.com/questions/32939620/this-is-not-the-correct-title。訪問該頁面時,最后一部分會自動更改為password-finder-something-like-bruteforce-java. 我假設該網站只是更改了 url 而不是重定向。但是谷歌網路爬蟲會選擇類似的東西嗎?
uj5u.com熱心網友回復:
Google 最終將location頁面加載時的JavaScript 更改視為與服務器端重定向相同。使用location更改來規范化您的 URL 對 SEO 來說是很好的。
適用于所有 JavaScript 驅動頁面的相同警告也適用于這種情況:
- 谷歌似乎需要更長的時間來索引頁面并在必須呈現它們時對更改做出反應。JavaScript 重定向可能不會像服務器端重定向那樣被識別為重定向。谷歌可能需要額外幾周甚至幾個月的時間。
- Google 不會看到回應用戶操作(例如單擊或滾動)而發生的任何更改。只有在沒有用戶互動的情況下頁面加載幾秒鐘內發生的更改才會被識別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360633.html
