2013-12-17 81 views
1

我有幾個關於頁面加載與AJAX和JQuery的問題 - 什麼繼承人利用來加載外部的.html的頁面無需重新加載索引頁IM:這是什麼:SEO在AJAX鏈接

$('a').click(function() { 
    var page = $(this).attr("href"); 
     $("#content").load(page + ".html"); 
     return false; 
}); 

<a href="page_one.html#page_one"> 1 </a> 
<a href="page_two.html?page_two"> 1 </a> 

<div id="content"> ..content from ext pages load here.. </div> 

Q1 「返回假」實際上在這裏做?第二季度:鏈接「page_one.html#page_one」會被Google索引嗎? Q3:我應該使用散列標籤還是?在鏈接中 - 兩者似乎都在起作用,所以有什麼不同?

希望有人給出了答案

回答

1

「return false」究竟在這裏做了什麼?

正如John Conde所解釋的,這樣可以防止瀏覽器跟隨超鏈接(例如頁面page_one.html#page_one而不是僅僅使用AJAX加載)。

鏈接「page_one.html#page_one」會被Google索引嗎?

是的,頁page_one.html將。 #page_one部分將被忽略。從任何網絡爬蟲的角度來看,<a href="page_one.html#page_one"> 1 </a>是一個完全標準的錨標籤。不過,我猜,page_one.html不是一個完整的網頁,其中包含導航和內容,而只是頁面內容?所以你可能不想讓Google索引那個頁面。

我應該使用散列標籤還是?在鏈接 - 兩者似乎都起作用,所以區別是什麼?

你不應該真的需要他們中的任何一個。由於您沒有使用散列片段#page_one(在您的javascript中),您可以將其刪除(這對於在瀏覽器中廣泛支持HTML5歷史記錄操作之前跟蹤AJAX狀態非常有用。散列碎片也可用於跳轉到點擊一個以#header1結尾的URL會導致瀏覽器跳轉到一個帶有id="header1"的HTML元素(但這與您的案例無關)。?page_one通常用於爲某些服務器端腳本(如PHP腳本)提供額外的參數,因此它對於平面HTML文件沒有多大意義。

+0

感謝您解答所有問題的答案。除了對於「空白」頁面的索引有點困惑之外 - 你對Jquery加載的頁面是否僅包含帶有內容,沒有頭部或者主體的元素,元標記等等的理解是正確的 - 爲什麼頁面不好索引?還有什麼替代方案 - 外部頁面的內容必須被編入索引 - 如果沒有,整個網站將只包含一個帶有一些導航的頁面。?! – jan199674

+0

@KennethHayes如果沒有導航的頁面被編入索引,那麼這是用戶通過Google找到的頁面。 我發現最好的解決方案是使用PHP(或其他服務器端腳本)來創建純內容版本(無導航,頭,元,..)和動態整頁。 舉例來說_yoursite.com/page_one.php_可能會返回完整頁面,_yoursite.com/page_one.php?viewMode=ajax_可能只返回純內容版本。 然後你可以調用'$(「#content」)。load(page +「?viewMode = ajax」);'在你的javascript中檢索沒有菜單的頁面。 – ChrisGulddahl

0

什麼是 「返回false」,其實在這裏做?

停止從該元素的默認操作下通過瀏覽器在這種情況下,是按照超鏈接

將鏈接「page_one.html#page_one」由谷歌獲得索引?

號這並不Google's crawlable Ajax standard

我應該使用哈希標籤或滿足?在鏈接中 - 兩者似乎都在起作用,所以有什麼不同?

不管它是否有效。但是,如果你希望它是搜索引擎友好的,你將需要找到一種替代方法來做到這一點。

+0

[這篇關於Google和AJAX的文章](https://developers.google.com/webmasters/ajax-crawling/)更新且更準確。 – Blazemonger

+0

我知道'pushstate'這可能是我必須實現的東西,以獲得搜索引擎優化鏈接 - 但我不明白爲什麼機器人不會接受哈希之前的鏈接的第一部分 - 鏈接在那裏,但也許這就是隻是它的方式.. Id仍然想知道#和?之間的區別?鏈接 – jan199674

+0

當您在瀏覽器中請求URL時,散列碎片#blabla不會發送到服務器。這只是一個客戶端的事情。查詢部分?blabla另一方面被髮送到服務器。 Web服務器可以根據?blabla部分提供不同的內容,但不能提供#blabla。對不起,最初沒有說清楚。 – ChrisGulddahl