~/blog/wordpress-schema-structured-data-engineer-guide-2.md
SEO 與數位行銷 · 2026 / 01 / 08

Google 看不懂你的網站?工程師教你用 Schema 結構化資料「說人話」,打造霸榜 SEO 的核心原理

Eric — 浪花科技創辦人 / AI 架構師
Eric
浪花科技創辦人 · AI 架構師
Google 看不懂你的網站?工程師教你用 Schema 結構化資料「說人話」,打造霸榜 SEO 的核心原理
目錄 table-of-contents.md

內容寫得再好、關鍵字也塞了、SEO 外掛燈號全綠,排名卻始終卡在第二頁——問題很可能不在文筆,而是 Google 根本「看不懂」這個網頁在講什麼。Schema 結構化資料做的事,就是把人類看得懂的內容,翻譯成搜尋引擎能精準理解的語言。這篇從核心原理講起,帶你把這層翻譯做對。

經常有客戶跑來問我:「Eric,為什麼我們內容寫得這麼好,關鍵字也塞了,Yoast SEO 也是綠燈,但在 Google 搜尋結果裡看起來還是平平無奇,甚至排名上不去?」

通常這時候我會打開 Chrome 的開發者工具,看一眼原始碼,然後嘆口氣:「因為你的網站只寫給人看,沒寫給機器看。」

這就是今天的主角——Schema 結構化資料 (Structured Data)。在工程師眼裡,SEO 不只是行銷學,更是一門翻譯學。你需要把人類優美的文案,翻譯成 Google 爬蟲(Crawler)能秒懂的 JSON-LD 程式碼。這篇文章,我會用工程師的視角,帶你手把手實作 Schema,讓你的 WordPress 網站在演算法眼裡「裸奔」,看清楚你每一寸的好。

什麼是 Schema 結構化資料?為什麼工程師都要懂?

想像一下,你遞給 Google 一張名片。如果是普通網頁,Google 拿到的是一張白紙,上面隨意寫滿了字,它得自己猜哪裡是名字、哪裡是電話。但如果你加了 Schema,就像是遞給它一張填好欄位的 Excel 表格:

  • @type: Person(這是個人)
  • name: Eric(名字叫 Eric)
  • jobTitle: Senior Engineer(職稱是資深工程師)

Google 不需要「猜」,它直接「讀」。這帶來的結果就是 Rich Snippets(複合式搜尋結果)。你的網站在搜尋結果頁(SERP)上,可能會多出星星評分、產品價格、常見問題(FAQ),甚至是活動時間。這對點擊率(CTR)的提升是毀滅性的打擊——我是指打擊你的對手。

根據 2024 年 Google 最新的 Search Central 文件,隨著 SGE (Search Generative Experience) 和 AI 搜尋的崛起,結構化資料的重要性不減反增。AI 需要結構化的數據來訓練和生成準確的回答,Schema 就是餵養這些 AI 模型的最佳飼料。

JSON-LD vs. Microdata:工程師的選擇

在實作 Schema 時,主要有兩種流派:

  1. Microdata: 直接寫在 HTML 標籤裡(例如 <div itemscope itemtype="...">)。這簡直是前端工程師的惡夢,維護困難,改個版型就全毀了。
  2. JSON-LD (JavaScript Object Notation for Linked Data): 這是 Google 官方強烈推薦的格式。它是一段獨立的 JavaScript 程式碼,通常放在 <head> 裡。

作為工程師,我無條件支持 JSON-LD。因為它實現了「數據與視圖分離」(Separation of Concerns)。你的 HTML 結構怎麼改都沒關係,只要確保 JSON 資料正確輸出即可。這才是現代化開發該有的樣子。

實戰教學:在 WordPress 中手刻 Schema (不依賴肥大外掛)

雖然市面上有 RankMath 或 Schema Pro 這種外掛,但身為工程師,有時候為了效能或極致的客製化(例如針對特定的 Custom Post Type 輸出特定的資料),我們會選擇在 functions.php 或自製外掛中處理。

以下我示範如何為單篇文章(Article)加入動態生成的 JSON-LD。這段程式碼可以直接用於經典編輯器或區塊編輯器環境,因為它是掛載在 wp_head 上的。

1. 基本架構

我們使用 WordPress 的 wp_head hook,在頁面頭部插入 script。


function eric_add_dynamic_schema() {
    // 確保只在單篇文章頁面執行,避免全站污染
    if ( !is_single() ) return;

    global $post;
    
    // 獲取特色圖片 URL
    $thumbnail_url = get_the_post_thumbnail_url($post->ID, 'full') ?: '';
    
    // 獲取作者資訊
    $author_id = $post->post_author;
    $author_name = get_the_author_meta('display_name', $author_id);
    
    // 建構 JSON-LD 陣列
    $schema = [
        '@context' => 'https://schema.org',
        '@type'    => 'Article',
        'headline' => get_the_title(),
        'image'    => [
            $thumbnail_url
        ],
        'datePublished' => get_the_date('c'), // ISO 8601 格式
        'dateModified'  => get_the_modified_date('c'),
        'author'   => [
            [
                '@type' => 'Person',
                'name'  => $author_name,
                'url'   => get_author_posts_url($author_id)
            ]
        ],
        'publisher' => [
            '@type' => 'Organization',
            'name'  => get_bloginfo('name'),
            'logo'  => [
                '@type' => 'ImageObject',
                'url'   => 'https://yoursite.com/logo.png' // 記得換成你的 Logo
            ]
        ],
        'description' => get_the_excerpt()
    ];

    // 輸出 JSON,記得轉義以防 XSS
    echo '' . wp_json_encode($schema) . '';
}

add_action('wp_head', 'eric_add_dynamic_schema');

2. 進階技巧:巢狀結構 (Nested Schema) 與 E-E-A-T

Google 現在非常看重 E-E-A-T(經驗、專業、權威、信任)。為了讓 Google 知道這篇文章是由「真人專家」撰寫的,我們可以在 author 欄位做更多著墨,甚至連結到 sameAs(社群媒體連結)。

工程師的小囉嗦:注意上面的 dateModified。對於 SEO 來說,「更新內容」比「發布內容」更重要。如果你更新了文章,Schema 必須誠實告訴 Google,這會讓爬蟲更願意重新索引你的頁面。

常見的 Schema 類型與應用場景

不同的頁面類型,需要不同的 Schema。別在「關於我們」頁面放「產品 Schema」,那是牛頭不對馬嘴。

  • LocalBusiness: 適合企業官網首頁。告訴 Google 你的地址、電話、營業時間。
  • Product: WooCommerce 必備。包含價格 (offers)、庫存狀態、評分 (aggregateRating)。
  • FAQPage: 這是佔領版面的神器。如果你文章最後有 QA 區塊,務必加上這個 Schema,Google 有很大概率直接把問答顯示在搜尋結果中。
  • BreadcrumbList: 麵包屑導航。這有助於 Google 理解網站層級結構。

如何驗證你的 Code 沒寫壞?

工程師寫 Code 不測試,就像廚師出菜不試吃一樣危險。我們寫好了 Schema,怎麼知道 Google 吃不吃這套?

請將你的網址或程式碼片段丟進去以下兩個工具:

  1. Google 複合式搜尋結果測試 (Rich Results Test):這是官方標準。如果出現紅字 Error,Google 是不會顯示 Rich Snippets 的;如果是黃字 Warning,通常是建議欄位沒填,雖然不影響顯示,但建議補齊。
  2. Schema Markup Validator:Schema.org 官方的驗證器,更偏向語法檢查。

工程師視角的 SEO 總結

SEO 不再是關鍵字堆砌的遊戲。現代 SEO 是「內容為王,技術為后」。作為工程師,我們的職責是確保網站的技術架構(Technical SEO)足夠穩健,讓內容能被機器無障礙地理解。

Schema 結構化資料就是這種技術力的體現。它不難,但需要細心。從今天起,別再讓你的 WordPress 網站在 Google 面前「沈默寡言」,用 JSON-LD 大聲說出你的價值吧!

延伸閱讀:

你的網站結構化資料還是一團亂碼嗎?或是想導入更進階的 SEO 技術架構?
別讓技術限制了你的流量上限。

立即聯繫浪花科技,幫你的網站做一次深度健檢

// FAQ

常見問題

什麼是 Schema 結構化資料,對 SEO 有什麼幫助?
Schema 結構化資料是用機器能讀懂的格式(如 JSON-LD)標註網頁內容,讓 Google 不必猜測而能直接讀懂頁面資訊。加上 Schema 後,搜尋結果可能出現複合式結果(Rich Snippets),例如星星評分、產品價格、常見問題或活動時間,有助於提升點擊率。
做 Schema 該選 JSON-LD 還是 Microdata?
建議使用 JSON-LD,它是 Google 官方強烈推薦的格式,以一段獨立的程式碼放在 head 中,實現了資料與視圖分離。HTML 結構怎麼改都不影響,只要確保 JSON 資料正確輸出即可。Microdata 直接寫在 HTML 標籤裡,改版型容易整個失效,維護困難。
在 WordPress 手動加入 Article 的 JSON-LD 該怎麼做?
可掛載 wp_head hook 動態輸出 script。先用 is_single() 確保只在單篇文章頁執行,再組出包含 @context、@type 為 Article、headline、image、datePublished、dateModified、author、publisher、description 的陣列,日期採 ISO 8601 格式(get_the_date('c')),最後用 wp_json_encode 輸出以防 XSS。
Schema 裡的 dateModified 為什麼重要?
對 SEO 來說「更新內容」往往比「發布內容」更重要。如果文章更新過,Schema 應誠實透過 dateModified 告訴 Google,這會讓爬蟲更願意重新索引你的頁面。
怎麼驗證寫好的 Schema 是否正確?
可使用兩個工具驗證:Google 複合式搜尋結果測試(Rich Results Test)是官方標準,出現紅字 Error 時 Google 不會顯示 Rich Snippets,黃字 Warning 通常是建議欄位未填、不影響顯示但建議補齊;另一個是 Schema.org 官方的 Schema Markup Validator,較偏向語法檢查。
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。

$
// final.exec()

準備好讓你的網站開始為你工作了嗎?