搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE) (DUPLICATE) (DUPLICATE)

文章目錄

本指南適用對象

如果您是線上內容的擁有者或管理員,或者會使用 Google 搜尋服務宣傳線上內容或透過線上內容營利,請閱讀本指南。如果您是成長中企業的負責人、眾多網站的擁有者、網路代理商的搜尋引擎最佳化 (SEO) 專家,又或者是 SEO DIY 達人,熱衷於瞭解 Google 搜尋服務的運作機制,那麼您也是本指南的適用對象。只要您想依照我們的最佳做法全面掌握 SEO 基本知識,本指南就是最佳幫手。雖然本指南沒有秘訣可讓網站自動登上 Google 搜尋結果榜首 (抱歉!),但是只要採用本文介紹的最佳做法,便能讓搜尋引擎更容易檢索及解讀您的網站內容,並為這些內容建立索引。

搜尋引擎最佳化 (SEO) 通常是指對網站的某些部分進行小幅修改。如果分開來看,這些變更可能並不明顯,但是在結合其他最佳化措施的情況下,它們對您網站的使用者體驗以及自然搜尋結果中的表現有顯著影響。指南中的許多主題都是構成網頁的基本元素,因此您可能已經非常熟悉,但可能尚未充分發揮這些元素的完整功能。

您建立的網站應該要能讓使用者受益,並著眼於任何能改善使用者體驗的最佳化作業。搜尋引擎也是這些使用者的其中一員,能幫助其他使用者發現您的內容,搜尋引擎最佳化作業 (SEO) 則可以協助搜尋引擎解讀及呈現網站內容。您的網站規模可能和我們的示範網站有差距,網站內容可能也大相逕庭,但是本指南探討的最佳化主題適用於各種規模和類型的網站。希望這份指南能在改善網站方面提供啟發,也非常歡迎您前往 Google 搜尋中心產品討論社群發問、提供意見及分享成功案例。

踏出第一步

詞彙解釋

這份指南有幾個重要用語,以下說明這些用語的定義與例句:

  • 索引:Google 會將所有已知網頁儲存在「索引」中,每個網頁的索引項目都會記錄網頁的內容及位置 (網址)。所謂的「建立索引」,是指 Google 擷取、讀取網頁,然後將網頁加入索引的過程。例句:Google 今天為我的網站建立了幾個網頁索引。
  • 檢索:尋找新網頁或更新網頁的程序。Google 會透過追蹤連結、讀取 Sitemap 等多種方法發掘網址。例句:Google 檢索網路,尋找新網頁,然後在適當情況下為這些網頁建立索引。
  • 檢索器:在網路上檢索 (擷取) 網頁並建立網頁索引的自動化軟體。
  • Googlebot:Google 檢索器的通稱。例句:Googlebot 會持續檢索網路。
  • SEO:搜尋引擎最佳化 (Search Engine Optimization),也就是讓搜尋引擎更容易發現網站的程序;這個字眼也可以是工作職稱,意指從事搜尋引擎最佳化業務的專業人士。例句:我們聘請了一位新的 SEO 專員來提升網路曝光度。

您的網站在 Google 索引中嗎?

判斷網站是否在 Google 索引中

使用 site: 語法搜尋網站的首頁網址,如果查得到相關結果,就代表 Google 已為網站建立索引。舉例來說,搜尋「site:wikipedia.org」會傳回這些結果site: 運算子不一定會傳回在查詢中所指定前置字元下建立索引的所有網址。進一步瞭解 site: 運算子

如果網站不在 Google 索引中

儘管 Google 會檢索數十億個網頁,但有時還是難免有所遺漏。如果我們的檢索器遺漏了您的網站,通常是下列其中一個原因所造成:

  • 網路上的其他網站無法順利連至您的網站
  • 您的網站剛上線運作,Google 還來不及進行檢索
  • 網站本身的設計讓 Google 難以有效檢索其內容
  • Google 在嘗試檢索您的網站時收到錯誤訊息
  • 您的政策禁止 Google 檢索網站

該如何讓 Google 顯示我的網站?

Google 是全自動化的搜尋引擎,會使用網路檢索器不斷檢索網路,尋找可加入索引的網站;通常您不須採取任何行動,只要在網站上張貼資訊,就能夠讓網頁顯示在 Google 的搜尋結果中。實際上,列入搜尋結果中的絕大多數網站都不是由人工提交,而是 Google 在檢索網路時找出並自動添加至搜尋結果。瞭解 Google 如何尋找、檢索並提供網頁

搜尋基礎入門概略說明了在打造適合 Google 檢索的網站時,需要注意的重要元素。雖然無法保證檢索器一定會找到特定網站,但遵循「搜尋基礎入門」的做法有助於讓您的網站顯示在搜尋結果中。

Google Search Console 提供各種工具,可協助您將自己的內容提交給 Google,並監控這些內容在 Google 搜尋服務中的表現。您也可以按需求進行設定,如果 Google 在處理您的網站時遭遇重大問題,Search Console 甚至可發送快訊通知。申請使用 Search Console

首先,請根據以下這些基本問題對您的網站進行評估。

  • 我的網站會顯示在 Google 搜尋結果中嗎?
  • 我是否為使用者提供了優質內容?
  • 我的當地商家資訊會顯示在 Google 服務中嗎?
  • 使用者能在所有裝置上快速且輕鬆地存取我的內容嗎?
  • 我的網站安全嗎?
我是標題我是標題我是標題我是標題我是標題我是標題我是標題我是標題
我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔
我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔
我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔
我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔
我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔
我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔

您需要聘請 SEO 專家嗎?

SEO 專家是受過相關訓練的人員,能協助提升網站在搜尋引擎中的曝光度。只要跟著本指南學習,您就能掌握足夠的知識進行網站最佳化。不過除此之外,我們也建議您聘請一位 SEO 專家來協助您稽核網頁。

聘請 SEO 是一項重大決定,雖然有可能改善網站並節省時間,但也有破壞網站、影響聲譽的風險。因此,除了要瞭解聘請 SEO 有什麼好處之外,也要想想不負責任的 SEO 可能會對網站造成哪些傷害。許多 SEO、代理商和顧問都可以為網站擁有者提供實用的服務,包括:

  • 檢查網站的內容或結構
  • 網站開發的技術建議:例如,代管、重新導向、錯誤網頁、JavaScript 的使用
  • 內容開發
  • 線上商務發展活動管理
  • 關鍵字搜尋
  • SEO 訓練
  • 特定市場和地理方面的專業知識

開始尋找 SEO 之前,最好能先具備相關知識,並且熟悉搜尋引擎的運作方式。建議先詳閱這份指南,並且多加利用下列資源:

如果您考慮聘請 SEO,建議越早越好,最佳時機就是考慮重新設計網站或打算推出新網站的時候。因為這麼一來,您和 SEO 就可以確保整個網站的設計都能讓搜尋引擎輕鬆運作。不過,優秀的 SEO 也能協助改善現有的網站。

如要深入分析自己是否需要聘請 SEO,以及在尋找 SEO 時應留意哪些地方,請參閱「您需要聘請 SEO 嗎?」。

協助 Google 找到您的內容

想讓 Google 顯示您的網站,首先您必須確保 Google 能找到您的網站,最理想的做法就是提交「Sitemap」。Sitemap 是網站用來向搜尋引擎傳達資訊的一種檔案,搜尋引擎可藉此得知網站上新增或更新了哪些網頁。進一步瞭解如何建立及提交 Sitemap

Google 也會透過其他網頁的連結尋找網頁。瞭解如何宣傳網站,吸引使用者探索您的網站內容。

告訴 Google「不要」檢索哪些網頁

透過 robots.txt 檔案禁止系統檢索非機密資訊

robots.txt 檔案會告訴搜尋引擎,網站上有哪些部分開放存取及檢索,又有哪些部分禁止相關作業。這個檔案必須命名為「robots.txt」,並放置在網站的根目錄中。請注意,搜尋引擎仍可能檢索到 robots.txt 檔案禁止檢索的網頁,因此,請使用更安全的方法來處理含有機密資訊的網頁。

# brandonsbaseballcards.com/robots.txt
# Tell Google not to crawl any URLs in the shopping cart or images in the icons folder,
# because they won't be useful in Google Search results.
User-agent: googlebot
Disallow: /checkout/
Disallow: /icons/

您可能不希望搜尋引擎檢索網站中的某些網頁,因為這些網頁出現在搜尋結果中對使用者而言並無益處。請注意,如果網站使用了子網域,而且您不希望搜尋引擎檢索特定子網域中的某些網頁,就必須為該子網域單獨建立一個 robots.txt 檔案。如要進一步瞭解 robots.txt,建議參閱這份 robots.txt 檔案使用指南

瞭解防止內容出現在搜尋結果中的其他方法

請避免:

  • 讓 Google 檢索內部搜尋結果網頁。使用者不會希望在點選搜尋引擎結果後,卻來到您網站上的另一個搜尋結果網頁。
  • 允許檢索因 Proxy 服務而建立的網址。

用更安全的方法處理機密資訊

如要封鎖敏感或機密內容,使用 robots.txt 檔案並不是最理想有效的方法;這種做法只能阻擋正常執行的檢索器檢索網頁,無法阻止您的伺服器將網頁傳送給發送相關要求的瀏覽器。不應採用 robots.txt 檔案的一個原因是,如果網際網路上碰巧存在連至您封鎖網址的連結 (例如參照記錄),則搜尋引擎仍然可以參照該網址 (只是顯示網址,而不顯示標題連結或摘要)。此外,有些不合規範或惡意的搜尋引擎並不遵守「漫遊器排除標準」,可能會違背您在 robots.txt 檔案中的指示。最後,好奇的使用者可能會查看 robots.txt 檔案中的目錄或子目錄,並猜中您不想曝光的內容網址。

如果只是不想讓 Google 顯示網頁,並不介意其他知道連結的使用者造訪網頁,便可使用 noindex 標記。但如果想要確保絕對安全,請採用更徹底的驗證方法,例如要求使用者輸入密碼,或者是將網頁完全從網站中移除。

協助 Google (及使用者) 瞭解您的內容

向 Google 和使用者呈現完全相同的網頁

Googlebot 在檢索網頁時,應該和一般使用者看到完全相同的網頁。為了以最理想的方式轉譯您的網站並順利建立索引,請一律允許 Google 存取網站使用的 JavaScript、CSS 及圖片檔。如果網站的 robots.txt 檔案禁止檢索這些資源,我們的演算法將首當其衝,因而無法有效轉譯內容並為其建立索引,連帶可能導致網站排名降低。

建議做法:使用網址檢查工具。這項工具可讓您確實瞭解 Google 所看到的內容以及實際轉譯結果,也能夠協助您找出網站上存在的許多索引問題並進行修正。

建立可準確傳達內容的獨特網頁標題

使用 </code> 元素可以讓使用者和搜尋引擎知道特定網頁的主題是什麼。請將 <code><title></code> 元素放在 HTML 文件的 <code><head></code> 元素中,並為網站上的每個網頁建立獨一無二的標題文字。</p> <ul class="ReadMore wp-block-list"> <li>我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔</li> <li>我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔</li> <li>我是內容喔喔喔喔喔喔我是內容喔喔喔喔喔喔</li> </ul> </div><div id="brxe-ee416e" class="brxe-div bricks-lazy-hidden"><div id="brxe-6b7ee1" class="brxe-post-taxonomy post_tag separator"><a href="http://rglive.tw/zh/tag/容以及實際轉/">容以及實際轉</a><span> / </span><a href="http://rglive.tw/zh/tag/獨一無二/">獨一無二</a><span> / </span><a href="http://rglive.tw/zh/tag/確實瞭解-google/">確實瞭解 Google</a><span> / </span><a href="http://rglive.tw/zh/tag/網頁標題/">網頁標題</a></div></div><nav id="brxe-ed2c56" class="brxe-post-navigation" aria-label="文章导航" data-no-translation-aria-label=""><a class="prev-post" href="http://rglive.tw/zh/搜尋引擎最佳化seo-入門指南-duplicate-duplicate/"><div class="swiper-button bricks-swiper-button-prev"><i class="ion-ios-arrow-back"></i></div><div class="content"><span class="label" data-no-translation="" data-trp-gettext="">上一篇文章</span><h6 class="title">搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE) (DUPLICATE)</h6></div></a><a class="next-post" href="http://rglive.tw/zh/搜尋引擎最佳化seo-入門指南-duplicate-duplicate-duplicate-duplicate/"><div class="content"><span class="label" data-no-translation="" data-trp-gettext="">下一篇文章</span><h6 class="title">搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE) (DUPLICATE) (DUPLICATE) (DUPLICATE)</h6></div><div class="swiper-button bricks-swiper-button-next"><i class="ion-ios-arrow-forward"></i></div></a></nav></div><div id="brxe-3da0c7" class="brxe-div bricks-lazy-hidden"><nav class="brxe-breadcrumbs breadcrumbs" aria-label="面包屑" data-no-translation-aria-label=""><a class="item" href="http://rglive.tw/zh" data-no-translation="" data-trp-gettext="">首页</a><span class="separator"><i class="fas fa-chevron-right"></i></span><a class="item" href="http://rglive.tw/zh/category/google/">Google</a><span class="separator"><i class="fas fa-chevron-right"></i></span><span class="item" aria-current="page">搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE) (DUPLICATE) (DUPLICATE)</span></nav><div class="brxe-div post_sideitem bricks-lazy-hidden"><h5 class="brxe-heading post_sidetitle">熱門分類</h5><div id="brxe-cfd200" class="brxe-shortcode post_sideContent"><ul id="psot_categories"><li><a href="http://rglive.tw/zh/category/google/">Google</a></li><li><a href="http://rglive.tw/zh/category/使用者呈現/">使用者呈現</a></li></ul></div></div><div class="brxe-div post_sideitem bricks-lazy-hidden"><h5 class="brxe-heading post_sidetitle">熱門標籤</h5><div id="brxe-92c323" class="brxe-shortcode post_sideContent"><ul id="post_tags"><li><a href='http://rglive.tw/zh/tag/容以及實際轉/'>容以及實際轉</a></li><li><a href='http://rglive.tw/zh/tag/獨一無二/'>獨一無二</a></li><li><a href='http://rglive.tw/zh/tag/確實瞭解-google/'>確實瞭解 Google</a></li><li><a href='http://rglive.tw/zh/tag/網頁標題/'>網頁標題</a></li></ul></div></div><div id="brxe-03da06" class="brxe-div post_sideitem bricks-lazy-hidden"><h5 class="brxe-heading post_sidetitle">文章目錄</h5><nav id="brxe-215311" data-script-id="215311" class="brxe-post-toc" data-nowrap="true" data-content-selector=".post_content" aria-label="目录" data-smooth-scroll="1" data-no-translation-aria-label=""></nav></div></div></div></section><section class="brxe-section bricks-lazy-hidden"><div id="brxe-a4fe03" class="brxe-container bricks-lazy-hidden"><h3 class="brxe-heading">你可能也喜歡</h3><div id="brxe-4584f3" class="brxe-div brx-grid bricks-lazy-hidden"><div class="brxe-e9ff9c brxe-div posts_item hover bricks-lazy-hidden"><div class="brxe-4ff5f5 brxe-div posts_content bricks-lazy-hidden"><div class="brxe-d68f33 brxe-div bricks-lazy-hidden"><ul class="brxe-8f8e5c brxe-post-taxonomy posts_tax category"><li><a class="bricks-button sm bricks-background-secondary" href="http://rglive.tw/zh/category/google/">Google</a></li></ul><div class="brxe-6e737c brxe-post-meta posts_date post-meta"><span class="item">2024 年 6 月 28 日</span></div></div><h2 class="brxe-c26873 brxe-heading"><a href="http://rglive.tw/zh/搜尋引擎最佳化seo-入門指南-duplicate-duplicate-duplicate-duplicate/">搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE) (DUPLICATE) (DUPLICATE) (DUPLICATE)我是一個標題</a></h2></div></div><div class="brxe-e9ff9c brxe-div posts_item hover bricks-lazy-hidden"><div class="brxe-4ff5f5 brxe-div posts_content bricks-lazy-hidden"><div class="brxe-d68f33 brxe-div bricks-lazy-hidden"><ul class="brxe-8f8e5c brxe-post-taxonomy posts_tax category"><li><a class="bricks-button sm bricks-background-secondary" href="http://rglive.tw/zh/category/使用者呈現/">使用者呈現</a></li></ul><div class="brxe-6e737c brxe-post-meta posts_date post-meta"><span class="item">2024 年 6 月 28 日</span></div></div><h2 class="brxe-c26873 brxe-heading"><a href="http://rglive.tw/zh/搜尋引擎最佳化seo-入門指南-duplicate-duplicate/">搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE) (DUPLICATE)我是一個標題</a></h2></div></div><div class="brxe-e9ff9c brxe-div posts_item hover bricks-lazy-hidden"><div class="brxe-4ff5f5 brxe-div posts_content bricks-lazy-hidden"><div class="brxe-d68f33 brxe-div bricks-lazy-hidden"><ul class="brxe-8f8e5c brxe-post-taxonomy posts_tax category"><li><a class="bricks-button sm bricks-background-secondary" href="http://rglive.tw/zh/category/使用者呈現/">使用者呈現</a></li></ul><div class="brxe-6e737c brxe-post-meta posts_date post-meta"><span class="item">2024 年 6 月 18 日</span></div></div><h2 class="brxe-c26873 brxe-heading"><a href="http://rglive.tw/zh/hello-world-2-2/">搜尋引擎最佳化 (SEO) 入門指南 (DUPLICATE)我是一個標題</a></h2></div></div><div class="brx-query-trail brx-infinite-scroll" data-query-element-id="e9ff9c" data-query-vars="{"posts_per_page":9,"orderby":"date","post_status":"publish","paged":1,"post__not_in":[113]}" data-original-query-vars="[]" data-page="1" data-max-pages="1"></div></div></div></section><section id="brxe-d02cbc" class="brxe-section bricks-lazy-hidden"><div class="brxe-container bricks-lazy-hidden"><button id="brxe-0ca398" data-script-id="0ca398" class="brxe-toggle" aria-label="目錄" aria-expanded="false" data-selector="#TOC_m"><i class="fas fa-bolt-lightning"></i></button><div id="TOC_m" data-script-id="bd7531" class="brxe-offcanvas bricks-lazy-hidden" aria-label="侧边导航" data-direction="left" data-close-on="backdrop" data-effect="offset" data-no-translation-aria-label=""><div class="brxe-block brx-offcanvas-inner bricks-lazy-hidden"><div id="brxe-e8f807" class="brxe-div bricks-lazy-hidden"><h5 class="brxe-heading post_sidetitle">文章目錄</h5><nav id="brxe-4915da" data-script-id="4915da" class="brxe-post-toc" data-nowrap="true" data-content-selector=".post_content" aria-label="目录" data-smooth-scroll="1" data-no-translation-aria-label=""></nav></div></div><div class="brxe-block brx-offcanvas-backdrop bricks-lazy-hidden"></div></div></div></section></main><footer id="brx-footer"><i id="go_top" class="ion-md-arrow-round-up brxe-icon"></i><section id="brxe-xlcwkr" class="brxe-section bricks-lazy-hidden"><div id="brxe-imsrqv" class="brxe-container bricks-lazy-hidden"><div id="brxe-ptopyu" class="brxe-div bricks-lazy-hidden"><div id="brxe-njncqp" class="brxe-div bricks-lazy-hidden"><a id="brxe-hytqnp" class="brxe-logo" href="http://rglive.tw/zh/"><img width="512" height="142" src="http://rglive.tw/wp-content/uploads/2024/07/RC富博_LOGO.webp" class="bricks-site-logo css-filter" alt="RC富博" data-bricks-logo="http://rglive.tw/wp-content/uploads/2024/07/RC富博_LOGO.webp" loading="eager" decoding="async" srcset="http://rglive.tw/wp-content/uploads/2024/07/RC富博_LOGO.webp 512w, http://rglive.tw/wp-content/uploads/2024/07/RC富博_LOGO-300x83.webp 300w" sizes="(max-width: 512px) 100vw, 512px" /></a><img width="512" height="643" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20643'%3E%3C/svg%3E" class="brxe-image css-filter size-full bricks-lazy-hidden" alt="" id="brxe-vfoikv" decoding="async" loading="lazy" data-src="http://rglive.tw/wp-content/uploads/2024/07/限制級ICON.webp" data-type="string" data-sizes="(max-width: 512px) 100vw, 512px" data-srcset="http://rglive.tw/wp-content/uploads/2024/07/限制級ICON.webp 512w, http://rglive.tw/wp-content/uploads/2024/07/限制級ICON-239x300.webp 239w, http://rglive.tw/wp-content/uploads/2024/07/限制級ICON-10x12.webp 10w" /><div id="brxe-jbxthz" class="brxe-shortcode"><div class="trp_language_switcher_shortcode"> <div class="trp-language-switcher trp-language-switcher-container" data-no-translation> <div class="trp-ls-shortcode-current-language"> <a href="#" class="trp-ls-shortcode-disabled-language trp-ls-disabled-language" title="简体中文" onclick="event.preventDefault()"> <img class="trp-flag-image" src="http://rglive.tw/wp-content/plugins/translatepress-multilingual/assets/images/flags/zh_CN.png" width="18" height="12" alt="zh_CN" title="简体中文"> 简体中文 </a> </div> <div class="trp-ls-shortcode-language"> <a href="#" class="trp-ls-shortcode-disabled-language trp-ls-disabled-language" title="简体中文" onclick="event.preventDefault()"> <img class="trp-flag-image" src="http://rglive.tw/wp-content/plugins/translatepress-multilingual/assets/images/flags/zh_CN.png" width="18" height="12" alt="zh_CN" title="简体中文"> 简体中文 </a> <a href="http://rglive.tw/搜尋引擎最佳化-seo-入門指南-duplicate-duplicate-duplicate/" title="繁體中文"> <img class="trp-flag-image" src="http://rglive.tw/wp-content/plugins/translatepress-multilingual/assets/images/flags/zh_TW.png" width="18" height="12" alt="zh_TW" title="繁體中文"> 繁體中文 </a> <a href="http://rglive.tw/en/搜尋引擎最佳化-seo-入門指南-duplicate-duplicate-duplicate/" title="English"> <img class="trp-flag-image" src="http://rglive.tw/wp-content/plugins/translatepress-multilingual/assets/images/flags/en_US.png" width="18" height="12" alt="en_US" title="English"> English </a> <a href="http://rglive.tw/vi/搜尋引擎最佳化-seo-入門指南-duplicate-duplicate-duplicate/" title="Tiếng Việt"> <img class="trp-flag-image" src="http://rglive.tw/wp-content/plugins/translatepress-multilingual/assets/images/flags/vi.png" width="18" height="12" alt="vi" title="Tiếng Việt"> Tiếng Việt </a> </div> <script type="application/javascript"> // need to have the same with set from JS on both divs. Otherwise it can push stuff around in HTML var trp_ls_shortcodes = document.querySelectorAll('.trp_language_switcher_shortcode .trp-language-switcher'); if ( trp_ls_shortcodes.length > 0) { // get the last language switcher added var trp_el = trp_ls_shortcodes[trp_ls_shortcodes.length - 1]; var trp_shortcode_language_item = trp_el.querySelector( '.trp-ls-shortcode-language' ) // set width var trp_ls_shortcode_width = trp_shortcode_language_item.offsetWidth + 16; trp_shortcode_language_item.style.width = trp_ls_shortcode_width + 'px'; trp_el.querySelector( '.trp-ls-shortcode-current-language' ).style.width = trp_ls_shortcode_width + 'px'; // We're putting this on display: none after we have its width. trp_shortcode_language_item.style.display = 'none'; } </script> </div> </div></div></div><div class="brxe-text"><p>RC富博真人視訊提供高清直播、美女荷官互動,以及百家樂、區塊鏈遊戲等多種娛樂選擇,帶來極致賭場體驗。立即加入,享受無與倫比的刺激感受。</p> </div><a class="brxe-button bricks-button bricks-background-primary circle" href="https://t.me/richmanclub9">聯繫我們</a></div><div id="brxe-padnyq" class="brxe-div bricks-lazy-hidden"><div id="brxe-kbxxpy" class="brxe-div bricks-lazy-hidden"><span id="brxe-ofrsqf" class="brxe-heading title_left">關於RC富博</span><div id="brxe-okfpjy" data-script-id="okfpjy" class="brxe-nav-menu"><nav class="bricks-nav-menu-wrapper never"><ul id="menu-%e9%97%9c%e6%96%bcrc%e5%af%8c%e5%8d%9a" class="bricks-nav-menu"><li id="menu-item-186" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-186 bricks-menu-item"><a href="https://rglive.tw/zh/#introduction" data-brx-anchor="true">遊戲介紹</a></li> <li id="menu-item-187" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-187 bricks-menu-item"><a href="https://rglive.tw/zh/#anchor-features" data-brx-anchor="true">主播特色</a></li> <li id="menu-item-188" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-188 bricks-menu-item"><a href="https://rglive.tw/zh/#platform-features" data-brx-anchor="true">平台特色</a></li> <li id="menu-item-189" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-189 bricks-menu-item"><a href="https://rglive.tw/zh/#cooperation-mode" data-brx-anchor="true">合作模式</a></li> <li id="menu-item-191" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-191 bricks-menu-item"><a href="https://rgslot.tw">RG電子</a></li> <li id="menu-item-190" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-190 bricks-menu-item"><a href="https://rglive.tw/zh/#about" data-brx-anchor="true">關於我們</a></li> </ul></nav></div></div><div id="brxe-thzsyv" class="brxe-div bricks-lazy-hidden"><span id="brxe-miattp" class="brxe-heading title_left">支援中心</span><div id="brxe-fkheqv" data-script-id="fkheqv" class="brxe-nav-menu"><nav class="bricks-nav-menu-wrapper never"><ul id="menu-side_%e9%9a%b1%e7%a7%81%e6%ac%8a%e7%b3%bb%e5%88%97" class="bricks-nav-menu"><li id="menu-item-122" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-122 bricks-menu-item"><a href="http://rglive.tw/zh/privacy-policy/">隱私權政策</a></li> <li id="menu-item-123" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-123 bricks-menu-item"><a href="http://rglive.tw/zh/disclaimer/">免責聲明</a></li> <li id="menu-item-124" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-124 bricks-menu-item"><a href="http://rglive.tw/zh/service/">服務條款</a></li> <li id="menu-item-125" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-125 bricks-menu-item"><a href="http://rglive.tw/zh/responsibility/">責任博彩</a></li> </ul></nav></div></div></div><div id="brxe-fovzqr" class="brxe-div bricks-lazy-hidden"><div id="brxe-whqpok" class="brxe-text"><p>Copyright © 2023 – 2025 RC富博. All rights reserved.</p> </div></div></div></section><section id="brxe-ctcupq" class="brxe-section bricks-lazy-hidden"><div id="brxe-lwjfcz" class="brxe-container brx-grid bricks-lazy-hidden"><div class="brxe-div footerM_item bricks-lazy-hidden"><i class="fas fa-atom brxe-icon footerM_icon"></i><div class="brxe-text footerM_text"><p>我是首頁</p> </div></div><div class="brxe-div footerM_item bricks-lazy-hidden"><i class="fas fa-atom brxe-icon footerM_icon"></i><div class="brxe-text footerM_text"><p>我是首頁</p> </div></div><div class="brxe-div footerM_item bricks-lazy-hidden"><i class="fas fa-atom brxe-icon footerM_icon"></i><div class="brxe-text footerM_text"><p>我是首頁</p> </div></div><div class="brxe-div footerM_item bricks-lazy-hidden"><i class="fas fa-atom brxe-icon footerM_icon"></i><div class="brxe-text footerM_text"><p>我是首頁</p> </div></div><div class="brxe-div footerM_item bricks-lazy-hidden"><i class="fas fa-atom brxe-icon footerM_icon"></i><div class="brxe-text footerM_text"><p>我是首頁</p> </div></div></div></section></footer><template id="tp-language" data-tp-language="zh_CN"></template><script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/zh/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/bricks/*","/zh/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="trp-dynamic-translator-js-extra"> var trp_data = {"trp_custom_ajax_url":"http://rglive.tw/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php","trp_wp_ajax_url":"http://rglive.tw/wp-admin/admin-ajax.php","trp_language_to_query":"zh_CN","trp_original_language":"zh_TW","trp_current_language":"zh_CN","trp_skip_selectors":["[data-no-translation]","[data-no-dynamic-translation]","[data-trp-translate-id-innertext]","script","style","head","trp-span","translate-press","[data-trp-translate-id]","[data-trpgettextoriginal]","[data-trp-post-slug]"],"trp_base_selectors":["data-trp-translate-id","data-trpgettextoriginal","data-trp-post-slug"],"trp_attributes_selectors":{"text":{"accessor":"outertext","attribute":false},"block":{"accessor":"innertext","attribute":false},"image_src":{"selector":"img[src]","accessor":"src","attribute":true},"submit":{"selector":"input[type='submit'],input[type='button'], input[type='reset']","accessor":"value","attribute":true},"placeholder":{"selector":"input[placeholder],textarea[placeholder]","accessor":"placeholder","attribute":true},"title":{"selector":"[title]","accessor":"title","attribute":true},"a_href":{"selector":"a[href]","accessor":"href","attribute":true},"button":{"accessor":"outertext","attribute":false},"option":{"accessor":"innertext","attribute":false},"aria_label":{"selector":"[aria-label]","accessor":"aria-label","attribute":true},"video_src":{"selector":"video[src]","accessor":"src","attribute":true},"video_poster":{"selector":"video[poster]","accessor":"poster","attribute":true},"video_source_src":{"selector":"video source[src]","accessor":"src","attribute":true},"audio_src":{"selector":"audio[src]","accessor":"src","attribute":true},"audio_source_src":{"selector":"audio source[src]","accessor":"src","attribute":true},"picture_image_src":{"selector":"picture image[src]","accessor":"src","attribute":true},"picture_source_srcset":{"selector":"picture source[srcset]","accessor":"srcset","attribute":true},"image_alt":{"selector":"img[alt]","accessor":"alt","attribute":true},"meta_desc":{"selector":"meta[name=\"description\"],meta[property=\"og:title\"],meta[property=\"og:description\"],meta[property=\"og:site_name\"],meta[property=\"og:image:alt\"],meta[name=\"twitter:title\"],meta[name=\"twitter:description\"],meta[name=\"twitter:image:alt\"],meta[name=\"DC.Title\"],meta[name=\"DC.Description\"],meta[property=\"article:section\"],meta[property=\"article:tag\"]","accessor":"content","attribute":true},"page_title":{"selector":"title","accessor":"innertext","attribute":false},"meta_desc_img":{"selector":"meta[property=\"og:image\"],meta[property=\"og:image:secure_url\"],meta[name=\"twitter:image\"]","accessor":"content","attribute":true}},"trp_attributes_accessors":["outertext","innertext","src","value","placeholder","title","href","aria-label","poster","srcset","alt","content"],"gettranslationsnonceregular":"fba2516578","showdynamiccontentbeforetranslation":"1","skip_strings_from_dynamic_translation":[],"skip_strings_from_dynamic_translation_for_substrings":{"href":["amazon-adsystem","googleads","g.doubleclick"]},"duplicate_detections_allowed":"100","trp_translate_numerals_opt":"no","trp_no_auto_translation_selectors":["[data-no-auto-translation]"]}; //# sourceURL=trp-dynamic-translator-js-extra </script> <script src="http://rglive.tw/wp-content/plugins/translatepress-multilingual/assets/js/trp-translate-dom-changes.js?ver=3.0.5" id="trp-dynamic-translator-js"></script> <script id="bricks-scripts-js-extra"> var bricksData = {"debug":"","locale":"zh_CN","ajaxUrl":"http://rglive.tw/wp-admin/admin-ajax.php","restApiUrl":"http://rglive.tw/zh/wp-json/bricks/v1/","nonce":"c5f71f71d0","formNonce":"52feaf6eb7","wpRestNonce":"ff0f246182","postId":"113","recaptchaIds":[],"animatedTypingInstances":[],"videoInstances":[],"splideInstances":[],"tocbotInstances":[],"swiperInstances":[],"queryLoopInstances":[],"interactions":[],"filterInstances":[],"isotopeInstances":[],"mapStyles":{"ultraLightWithLabels":{"label":"Ultra light with labels","style":"[ { \"featureType\": \"water\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#e9e9e9\" }, { \"lightness\": 17 } ] }, { \"featureType\": \"landscape\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#f5f5f5\" }, { \"lightness\": 20 } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#ffffff\" }, { \"lightness\": 17 } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry.stroke\", \"stylers\": [ { \"color\": \"#ffffff\" }, { \"lightness\": 29 }, { \"weight\": 0.2 } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#ffffff\" }, { \"lightness\": 18 } ] }, { \"featureType\": \"road.local\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#ffffff\" }, { \"lightness\": 16 } ] }, { \"featureType\": \"poi\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#f5f5f5\" }, { \"lightness\": 21 } ] }, { \"featureType\": \"poi.park\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#dedede\" }, { \"lightness\": 21 } ] }, { \"elementType\": \"labels.text.stroke\", \"stylers\": [ { \"visibility\": \"on\" }, { \"color\": \"#ffffff\" }, { \"lightness\": 16 } ] }, { \"elementType\": \"labels.text.fill\", \"stylers\": [ { \"saturation\": 36 }, { \"color\": \"#333333\" }, { \"lightness\": 40 } ] }, { \"elementType\": \"labels.icon\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"transit\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#f2f2f2\" }, { \"lightness\": 19 } ] }, { \"featureType\": \"administrative\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#fefefe\" }, { \"lightness\": 20 } ] }, { \"featureType\": \"administrative\", \"elementType\": \"geometry.stroke\", \"stylers\": [ { \"color\": \"#fefefe\" }, { \"lightness\": 17 }, { \"weight\": 1.2 } ] } ]"},"blueWater":{"label":"Blue water","style":"[ { \"featureType\": \"administrative\", \"elementType\": \"labels.text.fill\", \"stylers\": [ { \"color\": \"#444444\" } ] }, { \"featureType\": \"landscape\", \"elementType\": \"all\", \"stylers\": [ { \"color\": \"#f2f2f2\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"road\", \"elementType\": \"all\", \"stylers\": [ { \"saturation\": -100 }, { \"lightness\": 45 } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"simplified\" } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"labels.icon\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"transit\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"water\", \"elementType\": \"all\", \"stylers\": [ { \"color\": \"#46bcec\" }, { \"visibility\": \"on\" } ] } ]"},"lightDream":{"label":"Light dream","style":"[ { \"featureType\": \"landscape\", \"stylers\": [ { \"hue\": \"#FFBB00\" }, { \"saturation\": 43.400000000000006 }, { \"lightness\": 37.599999999999994 }, { \"gamma\": 1 } ] }, { \"featureType\": \"road.highway\", \"stylers\": [ { \"hue\": \"#FFC200\" }, { \"saturation\": -61.8 }, { \"lightness\": 45.599999999999994 }, { \"gamma\": 1 } ] }, { \"featureType\": \"road.arterial\", \"stylers\": [ { \"hue\": \"#FF0300\" }, { \"saturation\": -100 }, { \"lightness\": 51.19999999999999 }, { \"gamma\": 1 } ] }, { \"featureType\": \"road.local\", \"stylers\": [ { \"hue\": \"#FF0300\" }, { \"saturation\": -100 }, { \"lightness\": 52 }, { \"gamma\": 1 } ] }, { \"featureType\": \"water\", \"stylers\": [ { \"hue\": \"#0078FF\" }, { \"saturation\": -13.200000000000003 }, { \"lightness\": 2.4000000000000057 }, { \"gamma\": 1 } ] }, { \"featureType\": \"poi\", \"stylers\": [ { \"hue\": \"#00FF6A\" }, { \"saturation\": -1.0989010989011234 }, { \"lightness\": 11.200000000000017 }, { \"gamma\": 1 } ] } ]"},"blueEssence":{"label":"Blue essence","style":"[ { \"featureType\": \"landscape.natural\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"visibility\": \"on\" }, { \"color\": \"#e0efef\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"visibility\": \"on\" }, { \"hue\": \"#1900ff\" }, { \"color\": \"#c0e8e8\" } ] }, { \"featureType\": \"road\", \"elementType\": \"geometry\", \"stylers\": [ { \"lightness\": 100 }, { \"visibility\": \"simplified\" } ] }, { \"featureType\": \"road\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"transit.line\", \"elementType\": \"geometry\", \"stylers\": [ { \"visibility\": \"on\" }, { \"lightness\": 700 } ] }, { \"featureType\": \"water\", \"elementType\": \"all\", \"stylers\": [ { \"color\": \"#7dcdcd\" } ] } ]"},"appleMapsesque":{"label":"Apple maps-esque","style":"[ { \"featureType\": \"landscape.man_made\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#f7f1df\" } ] }, { \"featureType\": \"landscape.natural\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#d0e3b4\" } ] }, { \"featureType\": \"landscape.natural.terrain\", \"elementType\": \"geometry\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"poi.business\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"poi.medical\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#fbd3da\" } ] }, { \"featureType\": \"poi.park\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#bde6ab\" } ] }, { \"featureType\": \"road\", \"elementType\": \"geometry.stroke\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"road\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#ffe15f\" } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry.stroke\", \"stylers\": [ { \"color\": \"#efd151\" } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#ffffff\" } ] }, { \"featureType\": \"road.local\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"black\" } ] }, { \"featureType\": \"transit.station.airport\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#cfb2db\" } ] }, { \"featureType\": \"water\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#a2daf2\" } ] } ]"},"paleDawn":{"label":"Pale dawn","style":"[ { \"featureType\": \"administrative\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"on\" }, { \"lightness\": 33 } ] }, { \"featureType\": \"landscape\", \"elementType\": \"all\", \"stylers\": [ { \"color\": \"#f2e5d4\" } ] }, { \"featureType\": \"poi.park\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#c5dac6\" } ] }, { \"featureType\": \"poi.park\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"on\" }, { \"lightness\": 20 } ] }, { \"featureType\": \"road\", \"elementType\": \"all\", \"stylers\": [ { \"lightness\": 20 } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#c5c6c6\" } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#e4d7c6\" } ] }, { \"featureType\": \"road.local\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#fbfaf7\" } ] }, { \"featureType\": \"water\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"on\" }, { \"color\": \"#acbcc9\" } ] } ]"},"neutralBlue":{"label":"Neutral blue","style":"[ { \"featureType\": \"water\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#193341\" } ] }, { \"featureType\": \"landscape\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#2c5a71\" } ] }, { \"featureType\": \"road\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#29768a\" }, { \"lightness\": -37 } ] }, { \"featureType\": \"poi\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#406d80\" } ] }, { \"featureType\": \"transit\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#406d80\" } ] }, { \"elementType\": \"labels.text.stroke\", \"stylers\": [ { \"visibility\": \"on\" }, { \"color\": \"#3e606f\" }, { \"weight\": 2 }, { \"gamma\": 0.84 } ] }, { \"elementType\": \"labels.text.fill\", \"stylers\": [ { \"color\": \"#ffffff\" } ] }, { \"featureType\": \"administrative\", \"elementType\": \"geometry\", \"stylers\": [ { \"weight\": 0.6 }, { \"color\": \"#1a3541\" } ] }, { \"elementType\": \"labels.icon\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"poi.park\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#2c5a71\" } ] } ]"},"avocadoWorld":{"label":"Avocado world","style":"[ { \"featureType\": \"water\", \"elementType\": \"geometry\", \"stylers\": [ { \"visibility\": \"on\" }, { \"color\": \"#aee2e0\" } ] }, { \"featureType\": \"landscape\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#abce83\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#769E72\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"labels.text.fill\", \"stylers\": [ { \"color\": \"#7B8758\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"labels.text.stroke\", \"stylers\": [ { \"color\": \"#EBF4A4\" } ] }, { \"featureType\": \"poi.park\", \"elementType\": \"geometry\", \"stylers\": [ { \"visibility\": \"simplified\" }, { \"color\": \"#8dab68\" } ] }, { \"featureType\": \"road\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"visibility\": \"simplified\" } ] }, { \"featureType\": \"road\", \"elementType\": \"labels.text.fill\", \"stylers\": [ { \"color\": \"#5B5B3F\" } ] }, { \"featureType\": \"road\", \"elementType\": \"labels.text.stroke\", \"stylers\": [ { \"color\": \"#ABCE83\" } ] }, { \"featureType\": \"road\", \"elementType\": \"labels.icon\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"road.local\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#A4C67D\" } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#9BBF72\" } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#EBF4A4\" } ] }, { \"featureType\": \"transit\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"administrative\", \"elementType\": \"geometry.stroke\", \"stylers\": [ { \"visibility\": \"on\" }, { \"color\": \"#87ae79\" } ] }, { \"featureType\": \"administrative\", \"elementType\": \"geometry.fill\", \"stylers\": [ { \"color\": \"#7f2200\" }, { \"visibility\": \"off\" } ] }, { \"featureType\": \"administrative\", \"elementType\": \"labels.text.stroke\", \"stylers\": [ { \"color\": \"#ffffff\" }, { \"visibility\": \"on\" }, { \"weight\": 4.1 } ] }, { \"featureType\": \"administrative\", \"elementType\": \"labels.text.fill\", \"stylers\": [ { \"color\": \"#495421\" } ] }, { \"featureType\": \"administrative.neighborhood\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"off\" } ] } ]"},"gowalla":{"label":"Gowalla","style":"[ { \"featureType\": \"administrative.land_parcel\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"landscape.man_made\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"poi\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"road\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"simplified\" }, { \"lightness\": 20 } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"geometry\", \"stylers\": [ { \"hue\": \"#f49935\" } ] }, { \"featureType\": \"road.highway\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"simplified\" } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"geometry\", \"stylers\": [ { \"hue\": \"#fad959\" } ] }, { \"featureType\": \"road.arterial\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"road.local\", \"elementType\": \"geometry\", \"stylers\": [ { \"visibility\": \"simplified\" } ] }, { \"featureType\": \"road.local\", \"elementType\": \"labels\", \"stylers\": [ { \"visibility\": \"simplified\" } ] }, { \"featureType\": \"transit\", \"elementType\": \"all\", \"stylers\": [ { \"visibility\": \"off\" } ] }, { \"featureType\": \"water\", \"elementType\": \"all\", \"stylers\": [ { \"hue\": \"#a1cdfc\" }, { \"saturation\": 30 }, { \"lightness\": 49 } ] } ]"}},"facebookAppId":"","headerPosition":"top","offsetLazyLoad":"300","baseUrl":"http://rglive.tw/zh/\u641c\u5c0b\u5f15\u64ce\u6700\u4f73\u5316-seo-\u5165\u9580\u6307\u5357-duplicate-duplicate-duplicate/","useQueryFilter":"1","pageFilters":[],"language":"","wpmlUrlFormat":"","multilangPlugin":"","i18n":{"openAccordion":"\u6253\u5f00\u624b\u98ce\u7434","openMobileMenu":"\u6253\u5f00\u79fb\u52a8\u83dc\u5355","closeMobileMenu":"\u5173\u95ed\u83dc\u5355"},"selectedFilters":[],"filterNiceNames":[]}; //# sourceURL=bricks-scripts-js-extra </script> <script src="http://rglive.tw/wp-content/themes/bricks/assets/js/bricks.min.js?ver=1732171034" id="bricks-scripts-js"></script> <script src="http://rglive.tw/wp-content/themes/bricks/assets/js/filters.min.js?ver=1732171034" id="bricks-filters-js"></script> <script src="http://rglive.tw/zh/?code-snippets-js-snippets=footer&ver=3" id="code-snippets-site-footer-js-js"></script> <script src="http://rglive.tw/wp-content/themes/bricks/assets/js/libs/tocbot.min.js?ver=4.21.0" id="bricks-tocbot-js"></script> <script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"wpemoji":"http://rglive.tw/wp-includes/js/wp-emoji.js?ver=6.9","twemoji":"http://rglive.tw/wp-includes/js/twemoji.js?ver=6.9"}} </script> <script type="module"> /** * @output wp-includes/js/wp-emoji-loader.js */ /* eslint-env es6 */ // Note: This is loaded as a script module, so there is no need for an IIFE to prevent pollution of the global scope. /** * Emoji Settings as exported in PHP via _print_emoji_detection_script(). * @typedef WPEmojiSettings * @type {object} * @property {?object} source * @property {?string} source.concatemoji * @property {?string} source.twemoji * @property {?string} source.wpemoji */ const settings = /** @type {WPEmojiSettings} */ ( JSON.parse( document.getElementById( 'wp-emoji-settings' ).textContent ) ); // For compatibility with other scripts that read from this global, in particular wp-includes/js/wp-emoji.js (source file: js/_enqueues/wp/emoji.js). window._wpemojiSettings = settings; /** * Support tests. * @typedef SupportTests * @type {object} * @property {?boolean} flag * @property {?boolean} emoji */ const sessionStorageKey = 'wpEmojiSettingsSupports'; const tests = [ 'flag', 'emoji' ]; /** * Checks whether the browser supports offloading to a Worker. * * @since 6.3.0 * * @private * * @returns {boolean} */ function supportsWorkerOffloading() { return ( typeof Worker !== 'undefined' && typeof OffscreenCanvas !== 'undefined' && typeof URL !== 'undefined' && URL.createObjectURL && typeof Blob !== 'undefined' ); } /** * @typedef SessionSupportTests * @type {object} * @property {number} timestamp * @property {SupportTests} supportTests */ /** * Get support tests from session. * * @since 6.3.0 * * @private * * @returns {?SupportTests} Support tests, or null if not set or older than 1 week. */ function getSessionSupportTests() { try { /** @type {SessionSupportTests} */ const item = JSON.parse( sessionStorage.getItem( sessionStorageKey ) ); if ( typeof item === 'object' && typeof item.timestamp === 'number' && new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds. typeof item.supportTests === 'object' ) { return item.supportTests; } } catch ( e ) {} return null; } /** * Persist the supports in session storage. * * @since 6.3.0 * * @private * * @param {SupportTests} supportTests Support tests. */ function setSessionSupportTests( supportTests ) { try { /** @type {SessionSupportTests} */ const item = { supportTests: supportTests, timestamp: new Date().valueOf() }; sessionStorage.setItem( sessionStorageKey, JSON.stringify( item ) ); } catch ( e ) {} } /** * Checks if two sets of Emoji characters render the same visually. * * This is used to determine if the browser is rendering an emoji with multiple data points * correctly. set1 is the emoji in the correct form, using a zero-width joiner. set2 is the emoji * in the incorrect form, using a zero-width space. If the two sets render the same, then the browser * does not support the emoji correctly. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.9.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} set1 Set of Emoji to test. * @param {string} set2 Set of Emoji to test. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( context, set1, set2 ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set1, 0, 0 ); const rendered1 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set2, 0, 0 ); const rendered2 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); return rendered1.every( ( rendered2Data, index ) => { return rendered2Data === rendered2[ index ]; } ); } /** * Checks if the center point of a single emoji is empty. * * This is used to determine if the browser is rendering an emoji with a single data point * correctly. The center point of an incorrectly rendered emoji will be empty. A correctly * rendered emoji will have a non-zero value at the center point. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.8.2 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} emoji Emoji to test. * * @return {boolean} True if the center point is empty. */ function emojiRendersEmptyCenterPoint( context, emoji ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( emoji, 0, 0 ); // Test if the center point (16, 16) is empty (0,0,0,0). const centerPoint = context.getImageData(16, 16, 1, 1); for ( let i = 0; i < centerPoint.data.length; i++ ) { if ( centerPoint.data[ i ] !== 0 ) { // Stop checking the moment it's known not to be empty. return false; } } return true; } /** * Determines if the browser properly renders Emoji that Twemoji can supplement. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.2.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} type Whether to test for support of "flag" or "emoji". * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * @param {Function} emojiRendersEmptyCenterPoint Reference to emojiRendersEmptyCenterPoint function, needed due to minification. * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browserSupportsEmoji( context, type, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ) { let isIdentical; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. Added in Unicode 13. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width joiner sequence '\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for Sark flag compatibility. This is the least supported of the letter locale flags, * so gives us an easy test for full support. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([C] + [Q]). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDDE8\uD83C\uDDF6', // as the sequence of two code points '\uD83C\uDDE8\u200B\uD83C\uDDF6' // as the two code points separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather a five letter sub-division code. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( context, // as the flag sequence '\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F', // with each code point separated by a zero-width space '\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F' ); return ! isIdentical; case 'emoji': /* * Is there a large, hairy, humanoid mythical creature living in the browser? * * To test for Emoji 17.0 support, try to render a new emoji: Hairy Creature. * * The hairy creature emoji is a single code point emoji. Testing for browser * support required testing the center point of the emoji to see if it is empty. * * 0xD83E 0x1FAC8 (\uD83E\u1FAC8) == 🫈 Hairy creature. * * When updating this test, please ensure that the emoji is either a single code point * or switch to using the emojiSetsRenderIdentically function and testing with a zero-width * joiner vs a zero-width space. */ const notSupported = emojiRendersEmptyCenterPoint( context, '\uD83E\u1FAC8' ); return ! notSupported; } return false; } /** * Checks emoji support tests. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.3.0 * * @private * * @param {string[]} tests Tests. * @param {Function} browserSupportsEmoji Reference to browserSupportsEmoji function, needed due to minification. * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * @param {Function} emojiRendersEmptyCenterPoint Reference to emojiRendersEmptyCenterPoint function, needed due to minification. * * @return {SupportTests} Support tests. */ function testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ) { let canvas; if ( typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ) { canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement. } else { canvas = document.createElement( 'canvas' ); } const context = canvas.getContext( '2d', { willReadFrequently: true } ); /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering support to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; const supports = {}; tests.forEach( ( test ) => { supports[ test ] = browserSupportsEmoji( context, test, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ); } ); return supports; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {string} src The url where the script is located. * * @return {void} */ function addScript( src ) { const script = document.createElement( 'script' ); script.src = src; script.defer = true; document.head.appendChild( script ); } settings.supports = { everything: true, everythingExceptFlag: true }; // Obtain the emoji support from the browser, asynchronously when possible. new Promise( ( resolve ) => { let supportTests = getSessionSupportTests(); if ( supportTests ) { resolve( supportTests ); return; } if ( supportsWorkerOffloading() ) { try { // Note that the functions are being passed as arguments due to minification. const workerScript = 'postMessage(' + testEmojiSupports.toString() + '(' + [ JSON.stringify( tests ), browserSupportsEmoji.toString(), emojiSetsRenderIdentically.toString(), emojiRendersEmptyCenterPoint.toString() ].join( ',' ) + '));'; const blob = new Blob( [ workerScript ], { type: 'text/javascript' } ); const worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojiSupports' } ); worker.onmessage = ( event ) => { supportTests = event.data; setSessionSupportTests( supportTests ); worker.terminate(); resolve( supportTests ); }; return; } catch ( e ) {} } supportTests = testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ); setSessionSupportTests( supportTests ); resolve( supportTests ); } ) // Once the browser emoji support has been obtained from the session, finalize the settings. .then( ( supportTests ) => { /* * Tests the browser support for flag emojis and other emojis, and adjusts the * support settings accordingly. */ for ( const test in supportTests ) { settings.supports[ test ] = supportTests[ test ]; settings.supports.everything = settings.supports.everything && settings.supports[ test ]; if ( 'flag' !== test ) { settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && settings.supports[ test ]; } } settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && ! settings.supports.flag; // When the browser can not render everything we need to load a polyfill. if ( ! settings.supports.everything ) { const src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } ); //# sourceURL=http://rglive.tw/wp-includes/js/wp-emoji-loader.js </script> </body></html>