成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前后端分離SEO混合架構終極解決方案

開發 架構
前后端不分離的方式生成的 HTML 頁面(即SEO專題頁面),搜索引擎爬蟲可以直接抓取頁面內容,有利于提高網站在搜索引擎中的排名。

前言

什么是SEO ?

我們日常頻繁借助搜索引擎,查找各類信息。只需在搜索引擎中輸入簡短字詞,按下回車,就能獲取所需內容。然而,每個搜索關鍵詞往往對應著成千上萬的結果,搜索引擎依據自身算法對這些結果進行排序,根據輸入的搜索詞,運用算法將結果呈現給用戶。

對于網站所有者而言,自然期望自家網站信息能在搜索結果中名列前茅,這正是 SEO 的價值所在。

SEO 即 Search Engine Optimization,意為搜索引擎優化。它是指利用搜索引擎的規則,提升網站在相關搜索引擎中的自然排名,旨在助力網站在行業內占據領先地位,獲取品牌效益,本質上是網站經營者為提升自身或公司排名而采取的商業行為。

SEO 是提升網站排名的有效方式,通過完善和優化網站的排名因素,影響搜索引擎的排名算法。它是網絡營銷策略(online marketing Digital strategy)與數字營銷策略(Digital Marketing strategy)的關鍵環節,能提高網站在搜索引擎中的排名,進而為網站帶來更多流量。

什么是SPA?

SPA 即 Single Page Application,也就是單頁面應用。它的顯著特點是,網站所有效果都展示在一個靜態頁面中。當用戶進行頁面切換操作時,并非真正從一個頁面跳轉到另一個頁面,而是通過 JavaScript 動態修改頁面內容來實現。

SPA 頁面有著諸多優點。從用戶體驗角度來說,數據切換加載速度更快,內容變更無需重新加載整個頁面,避免了不必要的跳轉和重復渲染,極大提升了用戶體驗。從技術層面看,渲染工作由客戶端完成,大大減輕了服務器的請求處理壓力;并且采用前后端分離開發模式,前端專注于交互邏輯,后端負責數據處理,分工明確,有利于提高開發效率和代碼維護性。

然而,SPA 也存在明顯缺點。在初次加載時,需要統一加載基礎的 JavaScript 和 CSS,部分頁面雖可按需加載,但整體加載量依然較大。在搜索引擎優化(SEO)方面,由于所有內容都在同一頁面動態替換顯示,而爬蟲蜘蛛在爬取網頁時,不會執行其中的 JS 邏輯,這就導致隱藏在 JS 中的跳轉邏輯無法被執行,使得搜索引擎蜘蛛難以爬取到頁面的數據內容,在 SEO 上存在天然劣勢。

為什么要做SEO優化?

首先,對于網站來說,搜索引擎是用戶獲取網站信息的重要渠道。如果網站在搜索引擎中的呈現效果不佳,比如標題和內容與實際不符,關鍵信息無法被收錄,這將導致網站在搜索引擎中很難被用戶發現。

以 SPA 應用為例,由于其自身特點(如內容通過 JavaScript 動態修改,而搜索引擎爬蟲通常不執行 JS 邏輯),如果不進行 SEO 優化,搜索引擎抓取的內容就會和實際頁面內容脫節。這意味著網站的價值內容無法通過搜索引擎傳遞給用戶,從而影響網站的流量和曝光度。

圖片圖片

從用戶訪問角度看,用戶在搜索引擎中查找信息時,主要是通過搜索結果中的標題和摘要等來判斷是否點擊訪問網站。如果搜索引擎展示的內容不能準確反映網站實際內容,用戶就不太可能訪問這個網站,這會導致網站失去潛在的訪問量和客戶。

從網站運營角度講,流量是網站生存和發展的重要因素。沒有流量,網站的功能、產品或服務就無法得到有效傳播。因此,為了讓 SPA 應用(以及其他類型的網站)能夠在搜索引擎中正確地展示內容,吸引用戶訪問,進行 SEO 優化是非常必要的。

SEO優化難點

頁面渲染問題

在前后端分離的架構下,原本直接嵌入在HTML中的頁面內容被重構為動態元素,它們依賴于JavaScript在客戶端(瀏覽器)執行后才能完整展現。這也就意味著搜索引擎爬蟲在初步抓取頁面時,可能無法像對待靜態頁面那樣直觀地捕獲所有實質性內容,特別是在爬蟲技術未能完全模擬瀏覽器執行JavaScript的情況下,這可能會導致部分或全部關鍵信息無法被有效索引。

數據獲取方式

前后端分離架構的核心在于通過API接口進行數據傳輸,后端服務器將原本的內嵌于HTML文檔中的數據提取至獨立的數據,并通過接口傳遞至前端應用。

這種情況下,搜索引擎爬蟲在抓取網頁時,無法直接從HTML源碼中抓取到具體業務數據,因為這一些數據是在請求服務端接口之后才被填充至頁面上來的。如果搜索引擎爬蟲不去執行這些接口請求或是不支持對AJAX等異步請求的跟蹤處理時,很有可能會錯失大量有價值的內容信息,進而影響到我們網站在搜索引擎結果頁中的可見性以及排名表現。

服務器端渲染問題

服務器端渲染可以說得上是一種戰略性的技術手段了,它主要是為應對前后端分離設計模式所帶來的SEO挑戰而生。它和傳統的客戶端渲染方式有所不同,SSR允許服務器向瀏覽器發送響應前,就已經完成了對網頁內容的完全構建——也就是將用戶界面試圖預先在服務器端轉換成HTML格式文檔。

這也意味著,當搜索引擎爬蟲訪問一個采用SSR技術的網站時,它們將能夠即時捕獲到豐富的、可供索引的內容,并不需要瀏覽器執行JavaScript后才能顯示到信息。在工作流程上,當服務器接收到客戶端發出的HTTP請求時,它首先負責調用響應的后臺邏輯,從數據庫或其他數據數據源檢索頁面展示所需的所有數據。接著,服務器會將這些實時數據注入到前端框架提供的HTML模版中,經過頁面渲染引擎處理后,生成包含完整的DOM結構和數據的靜態HTML頁面。

最后,這個已渲染完畢的HTML頁面將會被傳送到客戶端中(也就是用戶的瀏覽器中),從而實現了首屏內容的快速加載以及對搜索引擎爬蟲的高度友好。

技術方案選型

方案一 前端SSR

SSR(Server - Side Rendering,服務器端渲染)是當下前端項目極為常用的優化方案。其原理是頁面內容由服務端進行渲染生成,瀏覽器只需直接展示服務端返回的 HTML。這種方式優勢顯著,它大幅提升了首屏加載速度,用戶無需長時間等待頁面加載,能快速獲取信息,極大地優化了用戶體驗;同時,對于搜索引擎優化(SEO)極為有利,搜索引擎爬蟲能更好地抓取頁面關鍵內容,提升網站在搜索結果中的排名,增加曝光與流量。

然而,SSR并非完美無缺。在實際應用中,它存在一些不可忽視的弊端。一方面,項目若要引入 SSR,改造成本巨大,需要對原有的開發架構、代碼邏輯等進行大規模調整;另一方面,開發人員需要掌握額外的技術知識與技能,學習成本相對較高,這對團隊技術能力提出了更高要求。

此外,由于渲染工作在服務端完成,服務端需承擔額外的計算壓力,在高并發場景下,可能導致服務器性能瓶頸,影響整體服務質量。

方案二 無頭瀏覽器

資源占用過大,服務器負擔加重。無頭瀏覽器在渲染網頁時,需要模擬完整的瀏覽器環境,包括加載 HTML、CSS、JavaScript 等資源,執行復雜的腳本邏輯,這會消耗大量的 CPU、內存等服務器資源。對于一些小型網站或者服務器配置較低的情況,使用無頭瀏覽器可能會導致服務器性能下降,甚至出現崩潰的情況,影響網站的正常運行。

成本增加。為了滿足無頭瀏覽器的資源需求,可能需要升級服務器硬件配置或者增加云服務的使用量,這無疑會增加網站運營的成本。例如,原本一臺普通配置的服務器可以滿足網站日常訪問需求,但引入無頭瀏覽器后,需要更換為更高配置的服務器,或者增加服務器實例數量,這都會帶來額外的費用支出。

方案三 PHP后端混合架構

整體思路

借助反向代理把特定需收錄的頁面(像首頁、政策列表以及詳情頁等這類頁面)導向獨立的 SEO 子系統。此子系統運用前后端不分離的開發模式,這里選用超高性能可擴展PHP框架webman框架進行開發,以達成系統輕便實用且穩定性高的目標。

前端使用nginx代理,當UA為爬蟲請求時,直接反向代理到PHP的SEO路由,返回一個純凈的專門讓爬蟲蜘蛛查看的專題頁頁面。

具體實現步驟

反向代理設置:反向代理是位于前端服務器的代理服務器,它接收客戶端的請求,再將請求轉發給內部服務器,并把內部服務器的響應返回給客戶端。在這個方案里,需要把反向代理配置為將特定頁面請求轉發到獨立的 SEO 子系統。

實現方案

前端正常系統配置

開源技術小棧

Nginx 反向代理配置示例。反向代理是位于前端服務器的代理服務器

cms.tinywan.com.conf 配置文件

map $http_user_agent $is_spider {
    default 0;
    ~[\S\s]bot[\S\s] 1;
    ~[\S\s]Bot[\S\s] 1;
    ~[\S\s]pider[\S\s] 1;
    'DingTalk-LinkService/1.0' 1;
    'Yahoo! Slurp China' 1;
    'Mediapartners-Google' 1;
    'YisouSpider' 1;
}

server {
    listen 443 ssl http2;
    server_name cms.tinywan.com;
    root /home/www/website/cms.tinywan.com;

    location / {
        index index.html index.htm;
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
        try_files $uri $uri/ /index.html;
    }

    # SEO-新聞資訊-列表|詳情
    location ~ ^/news(list|detail)$ {
        if ($is_spider) {
            rewrite ^/news(list|detail)$ /seo/news/$1$is_args$args break;
            proxy_pass https://seo.tinywan.com;
        }
        try_files $uri $uri/ /index.html;
    }

    # SEO-首頁
    location = / {
        if ($is_spider) {
            rewrite / /seo/home/index$is_args$args break;
            proxy_pass https://seo.tinywan.com;
        }
        try_files $uri $uri/ /index.html;
    }

}

在上述配置中,/news/list 和 /news/detail 路徑的如果是正常訪問請求會被轉發到正常業務系統,而如果是爬蟲請求會被轉發到獨立的 SEO 子系統。

SEO 服務配置

seo.tinywan.com.conf 配置文件

server {
    listen 443 ssl ;
    server_name seo.tinywan.com;

    location ^~ / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header Access-Control-Allow-Origin *;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_pass http://127.0.0.1:8787;
    }
}

SEO子系統開發

  • 選擇 PHP 框架:為保證系統輕便實用且穩定,這里選擇超高性能可擴展PHP框架webman框架進行開發為例,它簡潔輕量,易于上手。
  • 前后端不分離開發:前后端不分離意味著在服務器端生成完整的 HTML 頁面,然后直接返回給客戶端。

安裝webman

composer create-project workerman/webman

官方文檔:https://www.workerman.net/doc/webman/install.html

開源技術小棧

安裝視圖模板,這里選用 think-template

composer require topthink/think-template

官方文檔:https://www.workerman.net/doc/webman/view.html

優勢分析

  • SEO 友好:前后端不分離的方式生成的 HTML 頁面(即SEO專題頁面),搜索引擎爬蟲可以直接抓取頁面內容,有利于提高網站在搜索引擎中的排名。
  • 穩定性高:PHP 是一種成熟且廣泛應用的服務器端腳本語言,有豐富的資源和社區支持。選用合適的 PHP 框架可以保證系統的穩定性和可維護性。
  • 系統輕便:webman 輕量級 PHP 框架對服務器資源的消耗較少,能夠滿足系統輕便實用的要求。
責任編輯:武曉燕 來源: 開源技術小棧
相關推薦

2018-12-03 11:45:43

紅旗云解決方案

2019-06-12 19:00:14

前后端分離AppJava

2017-02-15 10:18:32

架構前后端分離

2022-05-27 10:40:04

前后端權限控制設計

2017-11-15 07:01:33

互聯網分層架構前后端

2023-02-08 16:29:58

前后端開發

2016-09-21 10:11:19

2015-11-12 10:32:27

前端后端分離

2021-09-18 09:45:33

前端接口架構

2011-03-25 13:38:58

2022-02-22 11:54:05

跨域項目前后端

2022-03-15 23:55:33

混合云云計算遠程辦公

2011-03-25 13:35:36

2020-09-29 07:42:34

互聯網分層架構前后端分離

2017-11-06 08:41:53

互聯網分層架構前后端

2014-04-18 14:43:07

前后端分離NodeJS

2020-09-25 11:50:12

前后端分離架構Web

2021-10-20 18:21:18

項目技術開發

2019-07-09 05:44:35

前后端分離架構接口規范

2021-01-29 14:31:42

Github 解決方案網站
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91麻豆久久久 | 亚洲国产一区二区视频 | 天天干天天爱天天操 | 久久久久国产一区二区三区四区 | 久久国产精品一区二区三区 | 日韩精品一区二区三区久久 | 亚洲小视频| 欧美一区二区三区在线观看视频 | 国产在线一区二区 | 在线午夜 | 久久综合九九 | 免费看黄视频网站 | 一区二区三区网站 | 最新伦理片 | 日韩一级精品视频在线观看 | 日本中出视频 | 天天看片天天干 | hsck成人网 | 91精品国产自产精品男人的天堂 | 成人三级视频 | 成人小视频在线观看 | 亚洲精品一区二区三区中文字幕 | 玖玖国产 | 成人精品一区二区三区中文字幕 | 在线一区二区三区 | 一区二区在线不卡 | 一区二区三区韩国 | 久久久性色精品国产免费观看 | 九九免费视频 | 日韩在线观看网站 | 日韩国产欧美一区 | 91久色| 久久国产综合 | 欧美视频一区二区三区 | 97精品超碰一区二区三区 | 二区成人 | 日韩在线小视频 | 欧美在线视频网 | 91看片免费版 | 久久精品一二三影院 | 国产精品18久久久久久久 |