您的網站是否受到效能低下和網路流量大的困擾?在cookie往往是罪魁禍首的情況下,一個有效的解決方案是使用無cookie域名。
雖然cookie是我們線上體驗的主要基石之一,但它們並不總是像其名稱所暗示的那樣美味。除了涉及第三方cookie的隱私和安全問題外,自動附著在你的網站影象和其他靜態內容上的cookie會對頁面效能產生嚴重影響。
值得慶幸的是,通過使用無cookie的域名,有可能減去死的重量(在這種情況下,死的cookie)。在這個完整的指南中,我們將回顧無cookie域名的基礎知識,為什麼它們如此有用,以及你如何配置你的WordPress網站來使用它們。
但是,首先,讓我們把手伸進數字餅乾罐,仔細看看域名如何使用cookies–無論好壞。
什麼是無Cookie的域名?
無Cookie域是指網站中不向使用者的瀏覽器傳送Cookie的部分。
但為什麼不一直髮送cookie呢?畢竟,給使用者提供儘可能多的cookies不是很禮貌嗎?
不一定。當我們談論無cookie域名時,我們當然是指HTTP cookie。與我們最喜歡的烘烤食品不同,HTTP cookie是網站傳送給使用者瀏覽器的小資料包。雖然不是很好吃,但它們對於讓網站在使用者下次訪問時 “記住 “他們是非常有用的。
然而,就像實際的cookies一樣,你不希望提供太多的HTTP cookies。正如我們很快就會看到的,訪問者喜歡一些cookie–但任何超過他們需要的cookie都會使他們感到遲鈍和臃腫。
什麼是HTTP Cookies?
HTTP cookies在網路上隨處可見。
每當你訪問一個網站時,該網站很有可能會要求你在瀏覽器中儲存cookies。除了有關網站本身和你所訪問的頁面的資訊外,cookies還包括一個與你和你的瀏覽器相關的個人識別符號。這個識別符號允許網站 “記住 “你是否已經訪問過該頁面。
讓我們仔細看看這個cookie交換是如何進行的(擾流警報:沒有涉及任何迷人的柳條籃子或女童子軍)。
網站如何向使用者的網路瀏覽器傳送HTTP cookie
如上圖所示,交換可分為三個步驟:
- 你的瀏覽器請求一個網頁。 當你在瀏覽器的位址列中輸入一個地址(例如 “wbolt.com “這樣的域名URL)或點選一個網頁連結時,你的瀏覽器就會產生一個HTTP請求,告訴網站它想檢視該網頁。這個請求被髮送到託管網站及其頁面的網路伺服器。
- 網路伺服器會傳送頁面和cookie。 在收到你的請求後,網路伺服器會發回所請求的頁面和一個包含某些資訊的cookie。正如我們前面提到的,這個cookie幾乎總是包括你和你的瀏覽器的個人識別符號。
- 瀏覽器從同一伺服器請求另一個頁面。 現在讓我們假設你點選一個連結到網站上的另一個頁面,例如電子商務網站上的 “商店 “或 “關於我們”。在這裡,你的瀏覽器會向網路伺服器和最初給它的cookie傳送另一個請求。當網路伺服器收到這個請求時,它會看到它之前傳送的cookie,並記住你已經訪問過的網頁。有了這些資訊,網路伺服器可以提供更多的個性化體驗,如保持一個活躍的登入或購物車中的物品。
也有不同的cookie用於不同的目的。在上面的例子中,從事會話管理的網路伺服器維護你的登入或購物車專案–換句話說,你在他們網站上的個人會話。同樣,cookies也可以用來提供個性化的體驗,如顯示最近的訂單、瀏覽過的專案,甚至是有針對性的廣告。
雖然無論你走到哪裡,都能得到cookie聽起來很好,但這並不是它所描述的一切。正如我們在下一節中所看到的,一個網站實際上有可能提供太多的cookies–其中一些是許多人寧願不 “吃 “的。
域名如何使用HTTP Cookies
儘管個人識別符是HTTP cookie的一個非常重要的用途,但它們並不是唯一的用途。事實上,cookies可用於廣泛的目的,以提供更加個性化的網路體驗,提供有針對性的內容,以及更多。
如何利用cookies來侵犯隱私
我們已經介紹了網站和瀏覽器如何交換HTTP cookie來 “記住 “你。雖然這對維持登入會話和顯示購物車專案很有幫助,但cookies也可用於更邪惡(或直接令人厭惡)的目的。
下面是一些最常見的域名使用HTTP cookie的方式:
- 會話管理。 你現在已經知道這一點了。會話管理通常被認為是HTTP cookie的最 “良性 “用途,因為它的唯一目的是提供一致的使用者體驗,幫助使用者避免重複某些操作。雖然看到以前的活動可能會給一些使用者帶來隱私問題,但它相對來說是無害的。真正的隱私問題是在cookies被用於跟蹤時出現的,我們很快就會討論這個問題。
- 個人化。 會話管理也可以用來根據使用者的喜好和活動來個性化網頁。例如,在選擇了他們所選擇的語言後,使用者在以後的訪問中能夠以相同的語言檢視網站,而不必每次都進行更改。Cookies還可以使網站適應不同網路瀏覽器的具體要求。
- 追蹤。 Cookies也有有爭議的一面。由於你的瀏覽器儲存了網站給你的cookies,這些cookies可以用來追蹤你在網路上的任何地方。例如,你可能訪問了一個網站,該網站給你的瀏覽器一個跟蹤cookie,讓網路上的附屬廣告商知道你訪問了他們的頁面。當廣告商注意到這個cookie時,他們可以為原網站顯示有針對性的廣告,甚至利用它作為網路攻擊的載體。在任何情況下,跟蹤cookie都會讓人覺得你被 “跟蹤 “了–這就帶來了一系列的道德和隱私問題。
值得慶幸的是,大多數HTTP cookies是用於會話管理和個性化的。然而,即使是最無辜的cookies也會引起問題。
到目前為止,我們已經探討了一個頁面傳送一個cookie的想法。在現實中,一個頁面通常會傳送多個cookie,通常每個頁面元素都有一個cookie–HTML、影象檔案,等等。雖然其中一些cookie對於會話管理和個性化是必要的,但許多cookie並不是。
因此,有可能傳送太多的cookies,這可能會導致一些問題。我們將在下一節中討論這些問題。
吃了太多的餅乾
與大多數檔案不同,網頁是各種元素的集合,這些元素賦予網頁以形式、結構和意義。這些元素中的每一個都可以有自己的餅乾。
我們可能以.pdf或.docx格式檢視的常規檔案可能看起來是文字和影象的單一 “組合”,而網頁是由許多獨立的小部分組成的。
HTML、CSS和JavaScript是大多數網站的主要組成部分
例如,當你請求一個網頁時,你實際上是在請求獨立的頁面元件,如HTML(結構)、CSS(樣式/格式)、JavaScript(互動性)和媒體,如影象。因此,當你的瀏覽器收到一個網頁時,它實際上是在接收和重新組合這些元件,以便在你的螢幕上顯示完整的頁面。
如果網路伺服器也在傳送cookie,那麼在這個過程中,它可能會隨每一個元素自動傳送一個cookie。對於一個只有幾張圖片的簡單網頁來說,這可能並不意味著什麼,但是如果一個網頁有幾十個甚至幾百個不同的元件,並且為每一個元件傳送一個cookie,那麼它很快就會變得不堪重負。
就像在現實生活中吃了太多的cookie一樣,傳送和接收太多的HTTP cookie會導致效能低下。由於傳送額外的資料需要額外的時間和資源,與每個元素一起傳送cookie會很容易消耗大量的網路資源。
Domain Diet: 無Cookie
值得慶幸的是,傳送太多cookies的解決方案使用了一個現實世界的比喻。為了提高效能,只需吃(讀:傳送)更少的cookies。
但是,我們應該放棄哪些cookie呢?在大多數情況下,最好的做法是刪除頁面上任何靜態元素的cookies。
靜態元素是那些你不會期望隨著使用者行為而改變的元素,如靜態影象或靜態檔案,如CSS檔案。因此,它們不需要附加cookies,這使得刪除它們成為減少網路負載和提高效能的最佳方式之一。
當然,刪除cookies並不像取消勾選 “cookies “覈取方塊那麼簡單。
相反,網路伺服器使用無cookie域,將無cookie的靜態內容與有cookie的內容分開發布。無cookie域通常是一個單獨的域(如子域或FQDN,如 “static.wbolt.com“或 “wbolt.com“)。
顯示子域的URL結構
值得慶幸的是,當你使用正確的工具時,使用無cookie域名並不難–而且設定子域並不是唯一的方法。
但在我們動手之前,讓我們探討一下使用無cookie域名的一些最大好處,以及這對你的網站(和你的預算)會產生多大的影響。
為什麼使用無Cookie的域名?
刪除額外的cookies聽起來可能是一個小動作–坦率地說,它就是這樣。
然而,這個小動作帶來了一些相當大的好處。通過只傳送你需要的cookies,你將減輕你的網路流量,並獲得以下許多其他好處–其中一些與效能完全無關。
減少不必要的網路流量
使用無cookie域名的大多數好處來自於減少不必要的cookie流量帶來的網路負荷。
正如我們前面所提到的,向你的訪問者傳送頁面元素需要一定量的網路資源。除了元素本身之外,每個元素(甚至是同一元素的多個部分)都會與包含路由資訊的響應頭以及其他元素(如cookie)一起傳送。
即使cookie是相對較小的資料檔案,但在每個頁面請求中都要傳送大量的cookie,很快就會累加起來。結果,使用者不得不等待更長的時間來載入頁面,因為你可憐的虛擬主機已經不堪重負(結果就是超出預算)。
然而,如果你使用無cookie的域名,你就會消除因傳送不必要的cookie而造成的大部分麻煩。
提高網站效能
正如你可能想象的那樣,通過減少cookies來減少網路負荷,對載入時間和網站效能有很大影響。
由於每個頁面的點選都是對網路伺服器的單獨請求,使用者可能會發現自己只是為了執行基本的導航(主頁>關於我們>商店,等等)而長時間等待。雖然頁面元素和cookies在第一次載入後可能會被快取和重用,但如果頁面改變或使用者更深入地進入你的網站,這仍然會帶來問題。
對SEO和使用者體驗的好處
通過減少不必要的流量來提高網站效能,你的網站也可能看到有關搜尋引擎優化(SEO)的好處,當然,還有客戶和使用者體驗。
客戶體驗是最明顯的好處:隨著載入時間的縮短,使用者可以更快地訪問他們想要的內容。因此,他們將更有可能探索你的網站(以及你的產品或服務),更不可能在沮喪中點選離開。
同樣的好處也適用於SEO。雖然頁面載入時間並不直接影響搜尋引擎,但你的跳出率–點選離開你的頁面的訪問者的百分比–肯定會影響。
頁面載入速度
根據Unbounce的一份報告,四分之三的貨主如果不得不等待四秒或更長時間來載入一個頁面,就會放棄。
這意味著,即使刪除不必要的cookies只提高了你的載入時間一秒鐘,你仍然會看到跳出的大量減少,並因此提高了你的搜尋排名。
降低託管費用
網路流量最終要花錢買虛擬主機費。
這意味著,如果你傳送的cookie超過你的需要,你也要支付更多的網路託管費。如果cookie影響了頁面效能,損失就會翻倍。除了支付更多的流量,你還需要支付更多的費用,以獲得相同的回報,因為緩慢的載入時間導致的跳出率增加。
無Cookie未來就緒
最後,雖然現在可能沒有直接的好處,但提供無cookie的內容將幫助你為無cookie的未來做更好的準備。
鑑於隱私要求,如GDPR,對cookie的爭議在增加,許多主要的搜尋引擎和技術公司正在尋找方法來完全消除cookie。雖然Cookie可能在一段時間內不會消失,但它們最終很可能會消失–你越早做好準備,過渡就會越容易。
使用無Cookie域名的方法
正如我們前面所介紹的,無cookie域名的一般想法是在不傳遞cookie的情況下傳遞靜態內容。雖然建立一個獨立的靜態域名或子域是最直接的方法,但通過CDN和一些WordPress的技巧也可以做到。
建立一個獨立的、無cookie的域名
用這種方法,你將建立一個單獨的域名來託管你的網站的靜態元件,如圖片和CSS。
雖然你可以註冊一個完全獨立的域名,但通常在你現有的域名上建立一個子域名更容易,也更有成本效益。大多數無cookie的域名只是使用一個靜態字首(例如,”static.yourdomain.com“)作為其子域。
請注意,這隻有在你的域名的 “www “版本(例如,”www.yourdomain.com“)是你的網站根檔案中的根域時才會起作用。
為了使子域不被煮熟,你通常必須找到並使用特殊程式碼直接編輯你的.htaccess檔案。然而,正如我們稍後所見,簡單地重新配置你的WordPress網站或使用一個外掛要容易得多。
無論你如何配置你的無cookie子域,你都可以上傳靜態元件,如你的CSS元件、影象、文字和JavaScript。
使用內容交付網路(CDN)
使用內容交付網路或CDN是使用無cookie域名的一種極其方便的方式。
在這裡,你不必建立單獨的子域和編輯配置檔案,你可以簡單地告訴你的CDN忽略並從你的靜態元件的響應頭中剝離cookies。這聽起來可能有點複雜,但它實際上是許多CDN的一個簡單功能。
請注意,不是每個CDN都提供這種功能。因此,除非你已經在使用一個允許你禁用cookies的CDN,否則一般來說,改變你網站的配置會更好。
重新配置你的WordPress網站
如果你使用的是WordPress,你很幸運:要指定一個無cookie的域名,只需要更新你的wp-config.php檔案中的幾行。跳到下一節(配置WordPress以使用無Cookie的域名)以獲得完整的說明。
使用一個WordPress外掛
另一個簡單的WordPress選項是使用一個外掛來建立WordPress網站的靜態版本。
一個常用的外掛是WP2Static(字面意思是 “WordPress-to-Static”)。安裝該外掛後,只需在你的WordPress儀表板上開啟它,並配置設定,將你的網站匯出為靜態版本:
WP2Static
配置WordPress以使用無Cookie的域名
如上所述,WordPress提供了一個簡單的方法來實現無cookie域名。這個過程可以歸結為幾個簡單的步驟:
- 新增一個備用的子域和相關的DNS
- 告訴WordPress哪個域名將提供靜態資產
- 更新現有的WordPress資料庫記錄以反映這個新地址
Kinsta客戶可以使用MyKinsta儀表盤來完成其中的一些任務。許多其他的WordPress使用者也可以在cPanel中做同樣的事情。
我們將在下文中介紹這兩點:
使用MyKinsta來設定無Cookie的域名
Kinsta的客戶可以在MyKinsta儀表板上將子域(或完全不同的域)與WordPress例項聯絡起來。許多客戶也會使用MyKinsta的工具來為這些域名配置DNS。
在這個例子中,我們將為我們已經在www.example.com上執行的網站建立一個無cookie的域名static.example.com。
第1步:在MyKinsta中建立一個子域
如果你最初在Kinsta建立你的WordPress網站時使用了域名的萬用字元選項(比如:*.example.com),那麼你已經被設定為支援任何子域名稱。如果不是,你可以像這樣為無cookie的內容新增新的域名。
- 在左邊的選單上選擇WordPress Sites。
- 點選你的WordPress網站的名稱。
- 在左邊的選單上選擇Domains。
- 單擊 “Add Domain“按鈕。
在MyKinsta內新增一個子域
在下面的對話方塊中:
- 輸入你的無cookie域名的名稱。
- 單擊 “Add Domain“按鈕。
指定MyKinsta內的新子域
接下來,你的新靜態域名將需要一個DNS記錄,指向你現有的網站。如果你通過第三方供應商管理你的域名的DNS,你將使用他們的工具來完成。如果你的DNS是由我們提供的,在MyKinsta中這樣配置你的新域名。
- 在MyKinta主頁的左手選單上選擇DNS。
- 在DNS Management頁面,向下滾動到DNS Records塊,點選Add DNS Record按鈕。
我們建議將你的新子域作為CNAME記錄新增到DNS,這樣你就可以只依靠二級域名來與IP地址關聯。下面,我們正在為static新增一個CNAME記錄,指向example.com:
在MyKinsta DNS管理中建立一個CNAME記錄。
第2步:禁用你的靜態子域上的Cookies
現在我們將編輯你的WordPress網站的wp-config.php檔案,使 wp-content
資料夾中的資產從 “靜態 “域提供,而cookies只通過 “www”地址提供。
大多數Kinsta客戶會使用FTP/SFTP客戶端來登入他們的WordPress網站,並下載wp-config.php到他們的桌面上進行編輯:
將wp-config.php檔案下載到桌面。
使用文字編輯器在wp-config.php檔案中新增以下幾行(用你自己的域名替換例子):
define("WP_CONTENT_URL", "https://static.example.com/wp-content"); define("COOKIE_DOMAIN", "www.example.com");
儲存檔案後,把它上傳到你的WordPress網站,替換掉以前的版本。
第3步:將現有的資產重定向到子域
上述步驟將允許在瀏覽器從 “www “地址載入網頁和部落格文章等內容時發放cookie,但會導致媒體上傳等內容和主題內的JavaScript、CSS和字型等資產與 “靜態 “域相關。
然而,你的網站可能已經在 “www “地址上有包含這些資產連結的內容。你可以在WordPress資料庫中用一點搜尋和替換來清理這些內容。
在資料庫中工作之前,一定要備份你的WordPress網站。做完這些之後:
- 在MyKinsta儀表板的左側選單中選擇WordPress Sites。
- 點選你的WordPress網站的名稱。
- 在左邊的選單上選擇Domains。
- 在Site Information頁面,向下滾動到資料庫訪問塊。(如果需要,你可以在這裡複製資料庫使用者名稱和密碼資訊)。
- 點選Open phpMyAdmin連結。
- 登入到你的WordPress資料庫。
- 點選SQL標籤。
執行SQL查詢以更新WordPress內容中的資產連結。
執行下面的命令,以確保你現有文章中的任何資產連結被導向你的無cookie子域(同樣,確保用你自己的域來替換):
UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.example.com/wp-content/', ' static.example.com/wp-content/')
你現在已經在MyKinsta的幫助下成功地在WordPress中配置了一個無cookie的域。用這個域來承載任何你不想傳送WordPress cookie的靜態內容,其他的都用你的常規域。
使用cPanel設定一個無Cookie的域名
以下是在MyKinsta中使用cPanel或流行的cPanel替代品完成我們上述工作的步驟。
步驟1. 在cPanel中建立一個子域
導航到cPanel主頁面的Domains部分。在子域工具中,簡單地建立一個連線到你當前WordPress網站的頂級域名的子域。
下面可以看到這些設定,以建立子域static.example.com。
在cPanel中建立一個子域
步驟2. 在cPanel中把子域配置成靜態的
當你的新的靜態子域準備好了,現在是時候讓它名副其實了,讓它在WordPress中提供靜態內容。
我們將通過編輯你的WordPress站點的wp-config.php檔案來做到這一點。訪問這個檔案的最簡單方法是在cPanel的File Manager工具中。
在File Manager中,導航到你的網站的public_html資料夾並選擇wp-config.php (1)。然後,選擇Edit選項(2)來編輯該檔案。
找到wp-config.php檔案
在wp-config.php檔案中,只需新增以下幾行(請確保用你自己的域名替換!)。
define("WP_CONTENT_URL", "https://static.example.com/wp-content"); define("COOKIE_DOMAIN", "www.example.com");
點選“Save Changes.”
步驟3. 將現有的帖子重定向到子域
最後,你需要把你現有的帖子重定向到新的靜態子域。但首先,一定要備份你的WordPress網站,以防它之後不能正常執行。
在cPanel的Database部分,開啟PhpMySQL工具。選擇你的網站的資料庫,然後選擇其_posts表。
點選_posts表的SQL標籤。執行下面的命令來驗證你的帖子URL是否指向你的無cookie子域(同樣,要確保用你自己的域來替換):
UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.example.com/wp-content/', ' static.example.com/wp-content/')
將現有帖子重定向到新的靜態子域
這就是了! 在cPanel的幫助下,你現在已經在WordPress中設定了一個無cookie域。將無cookie域用於靜態內容,如影象、CSS、JavaScript和字型,而在你的網站的主域上允許cookie。
小結
使用無cookie的域名是一個非常有效的方法,可以提高你的網站效能,減少主機成本,甚至提高你的客戶體驗和SEO。
正如我們所看到的,在WordPress中設定無cookie域名是有益的。然而,只有像Kinsta這樣的管理型WordPress主機才能充分利用這些好處。
有了移除設定cookie頭的便捷工具和直接訪問資料庫將帖子重定向到一個靜態子域,使用無cookie域名從未如此簡單。Kinsta的APM工具和其他效能監測功能也可以幫助你跟蹤結果。
評論留言