基礎知識:SEO(Search Engine Optimization):漢譯為搜索引擎優(yōu)化,它利用搜索引擎的規則提高網(wǎng)站在有關(guān)搜索引擎內的自然排名。
John DeFeo
我喜歡開(kāi)玩笑說(shuō)SEO代表“其他人的義務(wù)”,因為當出現問(wèn)題時(shí)很容易被指責。工程師們懂得這種痛。很多人指責他們,有時(shí)是“SEO人員”。但是,事實(shí)是這樣的:如果你的技術(shù)問(wèn)題已經(jīng)全部解決,就不會(huì )有搜索引擎優(yōu)化這樣的事情。
工程師有責任理解他們在SEO中的角色,同樣,那些與工程師一起工作的人也有責任與他們合作,而不是在出現問(wèn)題時(shí)責怪他們。這種關(guān)系需要公開(kāi)和誠實(shí)地分享信息。
我希望這篇文章突出了一些重要但很少討論的話(huà)題,這些話(huà)題不僅值得工程界討論,也值得依賴(lài)工程團隊的人討論。
服務(wù)器穩定性和停機時(shí)間
503服務(wù)不可用”HTTP響應代碼是處理計劃停機或意外停機的最佳方式。與其他5XX響應相比,它對搜索排名的影響很小。
500、502和504 HTTP響應代碼會(huì )導致谷歌關(guān)閉一個(gè)網(wǎng)頁(yè)或完全取消索引。每次一個(gè)人或搜索爬蟲(chóng)收到這些響應代碼中的一個(gè),隨著(zhù)時(shí)間的推移,預計會(huì )失去5-10次有機訪(fǎng)問(wèn)。
快速溝通,并在出現問(wèn)題時(shí)向管理者發(fā)送更新。否則,你會(huì )被許多尋找答案的人所困擾(這會(huì )妨礙你的團隊尋找解決方案)。
為每個(gè)有害響應代碼(例如4XX和5XX錯誤)創(chuàng )建自定義皮膚和跟蹤事件。當外行人能夠提供一些細節時(shí),問(wèn)題就更容易診斷。
計算錯誤率時(shí)要非常小心。一個(gè)復雜的web頁(yè)面在加載完成時(shí)可能會(huì )調用服務(wù)器150次。這意味著(zhù)日志文件將低估預先發(fā)生的有害響應代碼的頻率。假設一個(gè)web頁(yè)面被加載了兩次。第一次,它響應一個(gè)“200-OK”狀態(tài)碼,并加載頁(yè)面上的其他所有內容。第二次嘗試時(shí),它會(huì )響應一個(gè)“502-Bad Gateway”狀態(tài)碼,頁(yè)面的其余部分無(wú)法加載。服務(wù)器總共被調用了151次,其中只有一次是502狀態(tài),但是,該用戶(hù)的錯誤率是50%,而不是0.6%!
抵抗擱置軼事證據的誘惑。許多被認為是“不能重現”而擱置的bug是更大問(wèn)題的預兆。
內容交付網(wǎng)絡(luò )和緩存
緩存不能替代基本的站點(diǎn)優(yōu)化??梢园丫彺骓?yè)面想象成約會(huì )網(wǎng)站上一張很棒的照片。這是人們看到的第一件事,但是當你開(kāi)始一段關(guān)系,一個(gè)人開(kāi)始了解“真正的你”。用戶(hù)和搜索引擎也是如此。
類(lèi)似地,支持AMP的頁(yè)面也不能替代速度慢的移動(dòng)站點(diǎn)。
注意頁(yè)面大小限制。例如,Akamai有一個(gè)嚴格的的1MB文件大小限制,當超過(guò)該限制時(shí)將導致一個(gè)500響應代碼。
將內部日志與CDN日志合并,否則90%以上的問(wèn)題可能無(wú)法檢測到。
考慮在大型網(wǎng)站上使用“304-Not Modified”響應代碼,這些網(wǎng)站有很多頁(yè)面不經(jīng)常更改。
尋找沒(méi)有必要的動(dòng)態(tài)查詢(xún)(例如填充很少更改的列表頁(yè)面的邏輯)。你可以通過(guò)緩存查詢(xún)和調度刷新來(lái)避免服務(wù)器上不必要的負擔。
重寫(xiě)規則和重定向管理
當你更改URL時(shí),確保在啟動(dòng)時(shí)驗證了重定向。這將帶來(lái)最大程度的舊頁(yè)面的信任和公平。讓URL斷開(kāi),然后再修復它們這無(wú)異于自殺:谷歌會(huì )隨著(zhù)時(shí)間的推移而降低此故障頁(yè)面的值。
檢查重寫(xiě)標志或規則是否正在導致重定向鏈。當站點(diǎn)以HTTP形式啟動(dòng)并遷移到HTTPs時(shí),這很容易發(fā)生。一些URL在安全版本和非安全版本之間來(lái)回切換,直到到達最終目的地。這些額外的跳轉會(huì )破壞原始URL具有的公平性(equity)。
如果撤銷(xiāo)或反向重定向,請清除你的CDN緩存,以避免重定向循環(huán)。
機器人阻塞
在被證明有罪之前,寧可做無(wú)罪的事。網(wǎng)站的超級用戶(hù)最有可能是那些像機器人一樣的人,因為他們的瀏覽速度很“不正?!?,或者瀏覽器安裝的插件也可能會(huì )讓人掉入陷阱。這聽(tīng)起來(lái)像是一個(gè)邊緣案例,但在Quora這樣的社區網(wǎng)站上,一個(gè)超級用戶(hù)每月可以吸引1萬(wàn)到1.2萬(wàn)的訪(fǎng)問(wèn)量。
俄羅斯的機器人不會(huì )自動(dòng)變壞,美國的機器人也不會(huì )自動(dòng)變好。許多壞蛋在亞馬遜公司的美國境內部署基于A(yíng)WS服務(wù)器的機器人。
延遲和PageSpeed
PageSpeed(一款網(wǎng)頁(yè)速度測量工具,也可以理解為頁(yè)面加載速度)
快速選擇一種測量工具(比如Rigor,Lighthouse或PageSpeed Insights)并堅持使用。趨勢比精確的數字更重要,在工具上吹毛求疵很容易浪費時(shí)間。
手機移動(dòng)頁(yè)面速度很重要,即使你運行的是一個(gè)AMP版本的網(wǎng)站。谷歌根據網(wǎng)站的本地移動(dòng)體驗(包括速度、用戶(hù)體驗和其他因素)來(lái)判斷網(wǎng)站。
要求某個(gè)人擁有添加到頁(yè)面中的每個(gè)跟蹤像素和標記的所有權,然后讓這些責任人每六個(gè)月對他們的標記整理一次。如果你不這樣做,人們會(huì )要求你在頁(yè)面中添加垃圾,直到你的團隊因為站點(diǎn)緩慢而受到指責。
服務(wù)器響應時(shí)間對于擁有數百萬(wàn)頁(yè)面的站點(diǎn)尤其重要。如果你的服務(wù)器響應緩慢,谷歌不會(huì )停留太久。
如果你在大型網(wǎng)站上運行NGINX,請確保實(shí)時(shí)Gzip壓縮不會(huì )弊大于利(比如,造成瓶頸,從而降低服務(wù)器響應時(shí)間)。
清除任何阻礙頁(yè)面呈現的東西。這將同時(shí)改善許多指標。(即使是純文本網(wǎng)站[1],在加載JS、CSS和字體時(shí)也會(huì )遇到瓶頸。)
關(guān)注頁(yè)面加載的前200ms和2s期間發(fā)生的事情。由于動(dòng)態(tài)元素(如廣告)的影響,有些頁(yè)面從不會(huì )加載“完全”。
關(guān)鍵渲染路徑
Time-to-first-byte(TTFB全稱(chēng)Time To First Byte,是指網(wǎng)絡(luò )請求被發(fā)起到從服務(wù)器接收到第一個(gè)字節的這段時(shí)間,它包含了 TCP連接時(shí)間,發(fā)送HTTP請求時(shí)間和獲得響應消息第一個(gè)字節的時(shí)間。)是一個(gè)重要的指標,但同樣重要的是第一個(gè)字節中包含的內容。在打開(kāi)與服務(wù)器的新連接之前,瀏覽器應該能夠構建第一屏的內容。
定義頁(yè)面元素的大小,以避免跳躍和搖晃頁(yè)面。當頁(yè)面來(lái)回移動(dòng)時(shí),用戶(hù)會(huì )感到沮喪,這會(huì )讓整個(gè)頁(yè)面看上去很慢,即使它加載得很快。
閱讀Ilya Grigorik在這個(gè)主題上發(fā)表的文章[2]。即使是經(jīng)驗豐富的開(kāi)發(fā)人員也可以從中學(xué)到一些東西。
GOOGLEBOT(谷歌網(wǎng)頁(yè)抓取機器人)的“新”技術(shù)和可訪(fǎng)問(wèn)性
客戶(hù)端呈現可能意味著(zhù)SEO的死亡。(看看Hulu發(fā)生了什么[3]。)谷歌建議你為他們的搜索爬蟲(chóng)程序提供一個(gè)服務(wù)器端呈現的頁(yè)面,即使用戶(hù)也將會(huì )看到客戶(hù)端呈現的頁(yè)面。(注:谷歌并不認為這是一種掩飾,盡管它看起來(lái)是。)
在用戶(hù)看到“無(wú)限滾動(dòng)”的情況下,為Googlebot提供簡(jiǎn)單的分頁(yè)。
避免使用“塊級別”鏈接,即使它簡(jiǎn)化了代碼。所有這些額外的東西都被打包到一個(gè)標記中,這使得Googlebot很難將上下文值傳遞到目標頁(yè)面。
STAGING(模擬)和QA
使用robots.txt文件阻止搜索引擎從模擬和QA(Question Asked)站點(diǎn)爬取數據。
在谷歌搜索控制臺注冊staging和QA站點(diǎn)。這聽(tīng)起來(lái)不可思議(因為你不希望搜索引擎找到這些域名),但是如果測試域名意外地被索引時(shí),你可以在搜索控制臺中刪除整個(gè)域名的索引。
產(chǎn)品需求
找個(gè)人(最好是SEO團隊里的,但如果沒(méi)有的話(huà),那就是產(chǎn)品經(jīng)理)來(lái)定義必須構建到頁(yè)面中的所有東西,包括一些顯而易見(jiàn)的東西,比如標簽和其他元數據。這很乏味,他們會(huì )討厭你問(wèn)這問(wèn)那,但如果你創(chuàng )建的頁(yè)面沒(méi)有考慮到這些關(guān)鍵標簽,他們會(huì )更討厭你。
內部鏈接
鏈接是網(wǎng)站和整個(gè)網(wǎng)絡(luò )的生命線(xiàn)。任何重要的東西離主頁(yè)的距離都不應該超過(guò)5次點(diǎn)擊,所以對于那些想要去掉登錄頁(yè)面、導航鏈接等的“偉大的簡(jiǎn)化者”來(lái)說(shuō),這會(huì )存在很多問(wèn)題。
注冊商和IP管理
永遠不要讓營(yíng)銷(xiāo)人員從網(wǎng)站托管的IP地址發(fā)送時(shí)事通訊和促銷(xiāo)電子郵件。一個(gè)違反CAN-SPAM(反垃圾電子郵件)法案的流氓員工可能會(huì )導致整個(gè)網(wǎng)站被列入黑名單。
確保有人花時(shí)間填寫(xiě)注冊機構要求的年度“你的聯(lián)系方式是最新的嗎”調查問(wèn)卷。如果你不這樣做,就會(huì )使某些不法分子更容易地從技術(shù)上竊取你的域名。
JAVASCRIPT腳本
一個(gè)頁(yè)面開(kāi)始呈現,然后變成純白色,經(jīng)常會(huì )因為開(kāi)啟 write()標記而中斷。
Google會(huì )嘗試在Javascript中遵循相對路徑,即使它們不存在。這會(huì )導致受污染的爬取錯誤報告。
當錯誤發(fā)生時(shí)
行動(dòng)要快,因為谷歌是個(gè)善變的情人。建造一所房子需要幾個(gè)月的時(shí)間,而燒毀它只需幾分鐘,所以要迅速地熄滅火柴,并花時(shí)間向每個(gè)人傳授消防安全知識!
聯(lián)系客服