2016-01-24 75 views
0

我想弄清楚什麼是使angularJS網絡應用程序搜索引擎友好的最好方法。AngularJS和SEO澄清

我讀過這個How do search engines deal with AngularJS applications?

,推薦使用:<meta name="fragment" content="!">作爲我的web應用程序使用html5mode。

網站訪問時,根URL /和正常瀏覽到其他領域,但只要我重裝/刷新網站(當我在根URL可不是)返回url not foundAdditionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

運行良好

現在,我的理解是,使用這個技巧,谷歌將能夠正常抓取網站?我還添加了嘗試使用這個第三方網站https://www.xml-sitemaps.com/創建一個網站地圖,但只有一個網址(根網址)返回。

我的網站沒有類似節點的服務器,它只是簡單的angularJS。

解決所有這些問題的正確方法是什麼?

謝謝!

+0

Google已經更新了他們關於Ajax驅動網站的抓取規範。建議閱讀最新的內容。 3年的信息不再準確 – charlietfl

回答

1

基本上,你要做的就是告訴Google它正在看到的頁面的內容是什麼。例如,如果你有這個URL#/ services,Google只知道主頁面,即example.com,因爲AngularJS是一個簡單的頁面。 AngularJS通過javascript處理路線。因此,如果你使用html5mode,你會得到一個更好的URL,例如:/ services,但對於google來說,它仍然是一樣的。

解決方案是將Google重定向到靜態內容。你可以手動完成,但這很痛苦。

我向您推薦這項服務:https://prerender.io/。我將它用於我在AngularJS中創建的所有網站。 此服務會爲您呈現AngularJS中的每個頁面,儘管.htaccess會將Google重定向到此服務。

+0

我看到,這是使用快遞,我的網站沒有任何後端,它只是簡單的angularjs。我如何配置它?他們只是說'npm install prerender-node --save',但是這只是下載了一堆node_modules,我不知道在做什麼之後:( –

0

當訪客在登錄除基本網址以外的任何網址時將收到404錯誤,沒有任何目的可以讓您的網站被搜索引擎索引。所以首先要發送所有http請求到執行你的AngularJS應用程序的那個文件,在大多數情況下是index.php。您可以通過添加做到這一點下面給您的.htaccess文件:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^(.*)/$ $1 [R=301,L] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

現在,根據谷歌本身,你有一切就緒獲得索引。幾個月前我跑了一些測試,看看AngularJS應用程序是否可以在沒有任何回退的情況下獲得索引。它的確如此,只要它在預期中顯示出來並且在Google Web Mastertools -> Crawl as Google中沒有錯誤,它就會得到正確的索引。