如何在Odoo中進行搜索引擎優化(SEO)?
搜索引擎優化(SEO)是一組優秀的實踐方法,用于優化您的網站,以便在Google等搜索引擎中獲得更好的排名。簡而言之,良好的SEO可以讓您獲得更多的訪問者。
一些SEO規則的例子:您的網頁應該加載快速,您的頁面應該只有一個標題 <h1>
,元標簽(alt-tag,title-tag)應該與內容一致,您的網站應該有一個 /sitemap.xml
文件等。
為了保證Odoo網站和Odoo電子商務用戶擁有出色的SEO,Odoo抽象出所有的技術復雜性,并以最佳方式處理所有事務。以下將對此進行解釋。
首先,讓我們看看如何通過優化網站內容和元標簽來輕松提高排名。
標題,描述?
每個網頁都應該定義 <title>
和 <description>
元數據。這些信息元素被搜索引擎用于推廣您的網站。它們基于頁面標題和內容自動生成,但您可以微調它們。確保它們與頁面內容匹配,否則您將被搜索引擎降級。

關鍵詞?
為了撰寫高質量的內容并提高流量,Odoo 提供了一個 <keyword>
查找器。這些關鍵詞是您希望引導到您的網站的搜索。對于每個關鍵詞,您可以看到它在內容中的使用情況(H1、H2、頁面標題、頁面描述、頁面內容)以及在 Google 中的相關搜索。使用的關鍵詞越多,效果越好。

注解
如果您的網站有多種語言,您可以為單個頁面的每種語言使用Promote工具,并設置特定的標題、描述和搜索標簽。
內容為王?
在SEO方面,內容通常是王者。Odoo提供了幾個模塊來幫助您構建網站內容:
Odoo 博客 : 寫出優質內容。
Odoo Slides : 發布您的所有Powerpoint或PDF演示文稿。它們的內容會自動索引到網頁上。例如: odoo.com/slides/public-channel-1
Odoo 論壇 : 讓您的社區為您創建內容。例如: odoo.com/forum/1 (占 Odoo.com 登錄頁面的 30%)
Odoo 郵件列表歸檔 : 在您的網站上發布郵件列表歸檔。例如: `odoo.com/groups/community-59 <https://www.odoo.com/groups/community-59>`_(每月創建1000個頁面)
注解
404 頁面是一個普通頁面,您可以像編輯其他頁面一樣在 Odoo 中編輯它。這樣,當訪問者在無效的 URL 中迷失時,您可以構建一個出色的 404 頁面,將其重定向到您網站的頂部內容。
Facebook 頁面?
將構建塊 Facebook頁面 拖放到頁面上,以顯示您的Facebook業務頁面的小部件,并鼓勵訪問者關注它。您可以顯示時間軸、下一個事件和消息。
Twitter 滾動條?
在您的網站上展示帶有客戶滿意度的 Twitter 動態。這將增加推文和分享的數量。
測試您的網站?
您可以使用WooRank免費服務: woorank.com,比較您的網站在SEO方面與Odoo的排名。
URL處理?
本節將介紹Odoo如何使URL更加友好,有利于SEO。
URL結構?
一個典型的Odoo URL看起來像這樣:
使用以下組件:
https:// = 協議
www.mysite.com = 您的域名
/fr_FR = 頁面語言。如果訪問者瀏覽網站的主要語言,則會刪除此部分URL。因此,此頁面的主要版本為:https://www.mysite.com/shop/product/my-great-product-31
/shop/product = 每個模塊都定義了自己的命名空間(/shop 用于電子商務模塊的目錄,/shop/product 用于產品頁面)。
my-great-product = 默認情況下,這是頁面所指向的產品的 slugified 標題。但是,您可以為了 SEO 目的進行自定義。一個名為“Pain carré”的產品將被 slugified 為“pain-carre”。根據命名空間的不同,這可能是不同的對象(博客文章、頁面標題、論壇帖子、論壇評論、產品類別等)
-31 = 產品的唯一標識符
請注意,URL 的任何動態組件都可以縮減為其 ID。例如,以下 URL 都會對上述 URL 進行 301 重定向:
http://mysite.com/fr_FR/shop/product/31(更短的版本)
http://mysite.com/fr_FR/shop/product/other-product-name-31 (舊產品名稱)
有些URL有多個動態部分,比如這個(一個博客分類和一篇文章):
在上面的例子中:
“ 公司新聞 ”是博客的標題
Odoo的故事 是一篇特定博客文章的標題
當Odoo頁面有分頁器時,頁面編號直接設置在URL中(沒有GET參數)。這使得每個頁面都可以被搜索引擎索引。例如:
URL和標題的更改?
當頁面的URL發生變化時(例如,產品名稱更改為更符合SEO的版本),您無需擔心更新所有鏈接:
Odoo 將自動更新所有鏈接到新的 URL。
如果外部網站仍然指向舊的URL,則會進行301重定向,將訪問者路由到頁面的新地址。
例如,此URL:
將自動重定向到:
http://mysite.com/shop/product/新的更好的產品名稱-31
簡而言之,只需更改博客文章的標題或產品的名稱,更改將自動應用于您網站的所有位置。當外部網站使用舊鏈接時,通過301重定向,舊鏈接仍然有效,保持SEO鏈接權重。
HTTPS?
搜索引擎會提高安全的HTTPS/SSL網站的排名。因此,默認情況下,所有Odoo在線實例都完全基于HTTPS。如果訪問者通過非HTTPS的URL訪問您的網站,則會被重定向到其HTTPS等效網址。
鏈接:Nofollow 策略?
一個頁面被外部和優質網站鏈接得越多,對您的SEO越有好處。
以下是 Odoo 管理鏈接的策略:
您添加到網站的每個鏈接都是“dofollow”,這意味著該鏈接將為鏈接頁面的SEO Juice做出貢獻。
每個由貢獻者發布的鏈接(論壇帖子、博客評論等)指向您自己的網站也是“dofollow”。
但是,每個貢獻者發布的鏈接指向外部網站時都是“nofollow”。這樣,您就不會冒險讓人們在您的網站上發布指向聲譽不佳的第三方網站的鏈接。
請注意,在使用論壇時,擁有很高Karma值的貢獻者是值得信賴的。在這種情況下,他們的鏈接將不會有任何
rel="nofollow"
屬性。
多語言支持?
多語言URL?
如果您在多種語言中運行網站,則相同的內容將在不同的URL上提供,具體取決于所使用的語言:
https://www.mywebsite.com/shop/product/my-product-1 (主要語言,英語在這里)
https://www.mywebsite.com/fr_FR/shop/product/mon-produit-1 (法語版)
在這個例子中,fr_FR是頁面的語言。你甚至可以有同一語言的幾個變體:pt_BR(巴西葡萄牙語),pt_PT(葡萄牙葡萄牙語)。
語言注釋?
為了讓搜索引擎知道第二個URL是第一個URL的法語翻譯,Odoo會在頭部添加一個HTML鏈接元素。在主版本的HTML <head>部分,Odoo會自動添加一個鏈接元素,指向該網頁的翻譯版本;
<link rel=”alternate” hreflang=”fr” href=”https://www.mywebsite.com/fr_FR/shop/product/mon-produit-1”/>
采用這種方法:
搜索引擎將根據訪客的語言自動重定向到正確的語言頁面。
如果您的頁面尚未翻譯,搜索引擎不會對您進行懲罰。實際上,這不是重復的內容,而是相同內容的不同版本。
語言檢測?
當訪問者第一次訪問您的網站(例如 yourwebsite.com/shop)時,他們可能會根據瀏覽器語言偏好自動重定向到相應的翻譯版本(例如 yourwebsite.com/fr_FR/shop)。
下一次,它會保留當前語言的 cookie,以避免任何重定向。
為了強制訪問者使用默認語言,您可以在鏈接中使用默認語言的代碼,例如:yourwebsite.com/en_US/shop。這將始終將訪問者引導到頁面的英文版本,而不使用瀏覽器語言偏好設置。
頁面速度?
介紹?
頁面加載時間是搜索引擎的重要標準。更快的網站不僅可以改善訪客的體驗,還可以提高頁面排名。一些研究表明,如果將頁面加載時間減少一半(例如,將4秒減少到2秒),訪客的放棄率也會減少一半(從25%降至12.5%)。加載頁面多花費一秒鐘可能會導致亞馬遜銷售額損失16億美元。

幸運的是,Odoo會為您完成所有的魔法。下面,您將找到Odoo用于加速頁面加載時間的技巧。您可以使用以下兩個工具來比較您的網站排名:
圖片?
當您上傳新圖片時,Odoo會自動壓縮它們以減小它們的大?。▽τ?.PNG 和 .GIF 使用無損壓縮,對于 .JPG 使用有損壓縮)。
從上傳按鈕開始,您可以選擇保持原始圖像不變,如果您更喜歡優化圖像的質量而不是性能。

注解
Odoo在上傳到您的網站時壓縮圖像,而不是在訪問者請求時壓縮。因此,如果您使用第三方主題,它可能提供的圖像未經有效壓縮。但是,Odoo官方主題中使用的所有圖像都已默認壓縮。
當您單擊圖像時,Odoo會顯示 <img>
標記的Alt和title屬性。您可以單擊它來為圖像設置自己的標題和Alt屬性。

當您單擊此鏈接時,將出現以下窗口:

Odoo的象形圖標是使用字體實現的(在大多數Odoo主題中使用 Font Awesome)。因此,您可以在頁面中使用盡可能多的象形圖標,它們不會導致額外的請求來加載頁面。

靜態資源:CSS?
所有 CSS 文件都經過預處理、合并、壓縮、緩存(服務器端和瀏覽器端)。結果為:
加載頁面只需要一個CSS文件請求
這個 CSS 文件是在頁面之間共享和緩存的,這樣當訪問者點擊另一個頁面時,瀏覽器甚至不需要加載任何 CSS 資源。
此CSS文件已經優化為較小的尺寸
預處理: Odoo使用的CSS框架是Bootstrap。雖然主題可能使用其他框架,但大多數 `Odoo主題<https://www.odoo.com/apps/themes>`__直接擴展和自定義Bootstrap。由于Odoo支持Less和Sass,您可以修改CSS規則,而不是通過額外的CSS行覆蓋它們,從而使文件更小。
合并: 在Odoo中,您可能使用的每個模塊或庫都有自己的CSS、Less或Sass文件(電子商務、博客、主題等)。擁有多個CSS文件對于模塊化來說非常好,但對于性能來說不好,因為大多數瀏覽器一次只能執行6個請求,導致大量文件串行加載。對于像.JS和.CSS這樣的小文件,文件傳輸的延遲時間通常比實際數據傳輸時間長得多。因此,加載CSS資源的時間更多地取決于要執行的請求數量,而不是實際文件大小。
為了解決這個問題,所有的CSS/Less/Sass文件都會被合并成一個單獨的.CSS文件發送給瀏覽器。因此,每個頁面只需要 加載一個.CSS文件 ,這非常高效。由于CSS在所有頁面之間共享,當訪問者點擊另一個頁面時,瀏覽器甚至不需要加載新的CSS文件!
<head>標簽中都有這兩個文件 |
訪問者獲得的內容(僅一個文件) |
---|---|
/* 來自 bootstrap.css * / |
.text-muted { |
.text-muted { |
顏色:#666; |
顏色: #777; |
背景:黃色 |
背景:黃色; |
} |
} |
|
/* 來自 my-theme.css * / |
|
.text-muted { |
|
顏色:#666; |
|
} |
Odoo發送的CSS包括所有頁面/模塊的CSS/Less/Sass。這樣,同一訪問者的額外頁面視圖將不必加載CSS文件。但是,某些模塊可能包含巨大的CSS/Javascript資源,您不希望在第一頁預取它們,因為它們太大。在這種情況下,Odoo將此資源拆分為第二個包,僅在請求使用它的頁面時加載。這種情況的一個例子是僅在訪問者登錄并訪問后端(/web)時才加載的后端。
注解
如果CSS文件非常大,Odoo將把它分成兩個較小的文件,以避免Internet Explorer每個表格的4095個選擇器限制。但大多數主題都適用于此限制以下。
壓縮: 在預處理和連接后,生成的 CSS 會被壓縮以減小其大小。
縮小之前 |
縮小后 |
---|---|
/* 一些注釋 * / |
.text-muted {顏色:#666} |
.text-muted { |
|
顏色:#666; |
|
} |
最終結果會被壓縮后再傳送到瀏覽器。
然后,服務器端和瀏覽器端都會緩存版本(這樣我們就不必在每個請求中預處理、合并和壓縮),并且瀏覽同一網站的訪問者只需加載一次 CSS。
靜態資源:Javascript?
與 CSS 資源一樣,JavaScript 資源也會被合并、壓縮、緩存(服務器端和瀏覽器端)。
Odoo創建了三個JavaScript捆綁包:
適用于網站所有頁面的代碼(包括視差效果、表單驗證等)。
一個用于前端和后端共享的常見JavaScript代碼(Bootstrap)
一個用于后端特定的Javascript代碼(Odoo Web客戶端界面,供您的員工使用Odoo)
您網站的大多數訪問者只需要前兩個捆綁包,這將導致最多加載兩個Javascript文件以呈現一個頁面。由于這些文件在所有頁面之間共享,因此同一訪問者的進一步點擊不會加載任何其他Javascript資源。
注解
如果您在 開發者模式 下工作,CSS 和 Javascript 既不會被合并,也不會被壓縮。因此,速度會慢很多。但是,這樣可以讓您輕松使用 Chrome 調試器進行調試,因為 CSS 和 Javascript 資源不會從其原始版本轉換。
內容分發網絡(CDN)?
如果您在Odoo中啟用CDN功能,則靜態資源(Javascript、CSS、圖像)將從內容交付網絡加載。使用內容交付網絡有三個優點:
從附近的服務器加載資源(大多數CDN在全球主要國家都有服務器)
高效緩存資源(不占用自己服務器的計算資源)
將資源加載分配到不同的服務上,允許并行加載更多資源(因為Chrome限制每個域名最多6個并行請求)
您可以通過 網站管理 應用程序中的配置菜單配置CDN選項。以下是您可以使用的配置示例:

HTML頁面?
HTML頁面可以進行壓縮,但通常由您的Web服務器(NGINX或Apache)處理。
The Odoo網站構建器已經優化,以確保干凈簡潔的HTML代碼。已經開發了構建塊以生成干凈的HTML代碼,通常使用Bootstrap和HTML編輯器。
例如,如果您使用顏色選擇器將段落的顏色更改為您網站的主要顏色,Odoo將生成以下代碼:
<p class="text-primary">我的文本</p>
大多數HTML編輯器(如CKEditor)將生成以下代碼:
<p style="color: #AB0201">我的文本</p>
響應式設計?
不支持移動設備的網站會對搜索引擎排名產生負面影響。所有Odoo主題都依賴于Bootstrap,以便根據設備(桌面、平板電腦或移動設備)高效地呈現。

由于所有Odoo模塊共享相同的技術,因此您網站上的所有頁面都是移動友好的。
瀏覽器緩存?
Javascript、圖像和CSS資源的URL會在其內容更改時動態更改。例如,所有CSS文件都通過此URL加載: localhost:8069/web/content/457-0da1d9d/web.assets_common.0.css。如果您修改了網站的CSS,則此URL的 457-0da1d9d
部分將更改。
這使得Odoo可以在這些資源上設置非常長的緩存延遲(XXX):XXX秒,同時如果您更新資源,它會立即更新。
可擴展性?
除了速度快之外,Odoo比傳統的CMS和電子商務平臺(Drupal,WordPress,Magento,Prestashop)更具可擴展性。
這是一張總結 Odoo 網站和電子商務可擴展性的幻燈片。

搜索引擎文件?
網站地圖?
站點地圖指向需要被搜索引擎機器人索引的頁面。Odoo 會自動生成一個 /sitemap.xml
文件。出于性能原因,該文件會被緩存并每 12 小時更新一次。
默認情況下,所有的URL都會在一個單獨的 /sitemap.xml
文件中,但是如果您有很多頁面,Odoo會自動創建一個Sitemap索引文件,遵循 `sitemaps.org協議<http://www.sitemaps.org/protocol.html>`__,每個文件將URL分組為45000個塊。
每個站點地圖條目都有4個自動計算的屬性:
<loc>
: 頁面的URL<lastmod>
: 資源的最后修改日期,根據相關對象自動計算。對于與產品相關的頁面,這可以是產品或頁面的最后修改日期。<priority>
: 模塊可以根據其內容實現自己的優先級算法(例如: 論壇可能根據特定帖子的投票數分配優先級)。靜態頁面的優先級由其優先級字段定義,該字段已經歸一化(默認值為16)。
結構化數據標記?
結構化數據標記用于在搜索引擎結果中生成豐富片段。這是網站所有者向搜索引擎機器人發送結構化數據的一種方式;幫助它們理解您的內容并創建良好呈現的搜索結果。
Google支持多種內容類型的富媒體片段,包括:評論、人物、產品、企業、事件和組織。
Odoo 實現了 schema.org 規范中定義的微數據,用于事件、電子商務產品、論壇帖子和聯系地址。這使得您的產品頁面可以在 Google 中顯示額外的信息,如產品的價格和評分:

機器人協議文件(robots.txt)?
搜索引擎在索引您的網站時,首先查看 /robots.txt
文件的一般索引規則(允許的機器人、站點地圖路徑等)。Odoo會自動創建它。其內容為:
用戶代理: * 網站地圖: https://www.odoo.com/sitemap.xml
這意味著所有機器人都被允許索引您的網站,并且沒有其他索引規則,除了在以下地址找到的站點地圖中指定的規則。
您可以在 開發者模式 下自定義 robots 文件,方法是在 設置 –> 技術 –> 用戶界面 –> 視圖 中排除 robots,排除某些頁面,重定向到自定義站點地圖。將視圖的模型數據設置為 不可更新 ,以避免系統升級后重置文件。
社交網絡?
Odoo 允許在您的網站頁腳中鏈接所有社交網絡賬戶。您只需要在公司設置中引用所有賬戶即可。