開發歷程:GA 只能告訴你一半,另一半在 Search Console

這是 LocalPapa Notes 開發紀錄系列的第三十一篇。這一篇講的是:裝了 Google Analytics 之後,到底要看什麼才會真的改善網站。

先說結論,因為這是我們自己差點做錯的地方:GA 沒辦法告訴你要改什麼。 它告訴你的是「人來了以後發生什麼事」。而一個網站最大的問題,通常發生在人還沒進來的時候。

打開 GA,你會先看到一張排行榜——那不是待辦清單

GA 的頁面報表會列出哪些頁面流量最高。很容易把它讀成優先順序:流量高的頁面重要,所以先改它。

但仔細想一下這張表在說什麼:有人來的頁面,本來就是已經做對的頁面。 排行榜是結果,不是待辦清單。真正需要動手的地方,多半是那些「應該有人來、卻沒人來」的頁面——而它們在 GA 上的樣子,跟「本來就沒人想要的頁面」一模一樣,都是零。

零流量有兩種:沒人搜尋,跟有人搜尋但沒點進來。GA 分不出這兩種,Search Console 可以。

兩份報表的分工,就在「按下連結」那一刻

兩份報表的交界,就在「使用者按下連結」那一刻 兩份報表的交界,就在「使用者按下連結」那一刻 Search Console 看得到這兩段 GA 看得到這兩段 出現在搜尋結果 2822 次 被點擊 15 次 頁面載入 最多 15 次 按下「分析」 沒點進來的 2807 次曝光,GA 完全看不到——而那正是最大的一群。只看 GA,這一頁看起來只是「沒什麼人用的小工具」;看了Search Console 才知道它是全站曝光第二高的頁面。反過來也一樣:Search Console 只到「點擊」為止,進來的人有沒有真的把工具用完,只有 GA 的自訂事件答得出來。兩份報表誰都取代不了誰
曝光與點擊屬於 Search Console;頁面載入與按鈕事件屬於 GA。兩者的交界是使用者按下連結的瞬間。

這張圖用的是我們自己一頁工具的真實數字:一個月內出現在搜尋結果 2822 次,被點擊 15 次。

GA 只看得到那 15 個人。 剩下 2807 次「看到了但沒點」,在 GA 裡不留下任何痕跡。從 GA 的角度看,這一頁就是個沒什麼人用的小工具;從 Search Console 的角度看,它是全站曝光第二高的頁面。同一頁,兩個完全相反的結論。

反過來也一樣:Search Console 到「點擊」為止就結束了。進來的人有沒有真的把工具用完,只有 GA 的自訂事件答得出來。

你想知道的事 該看哪一份
有多少人看到我,卻沒點進來?Search Console(曝光、CTR)
大家是用什麼字找到我的?Search Console(查詢)
我排在第幾名?Search Console(平均排名)
進來的人有沒有真的用這個功能?GA(自訂事件)
大家卡在哪一步不做了?GA(事件漏斗)
手機版是不是特別容易跳出?GA(裝置維度)

這兩份誰都取代不了誰。 只裝 GA,你會很認真地優化一群「已經願意進來的人」的體驗,而完全不知道門口有十倍的人轉身就走。

實際案例:一頁排名第六、點閱率 0.53% 的工具

Search Console 的「熱門網頁」報表裡,我們按曝光排序,不是按點擊排序(這一步很關鍵,按點擊排序你會再一次只看到已經成功的頁面)。第二名是姓名學五格工具:曝光 2822 次、平均排名 6.34、點擊 15 次、CTR 0.53%

一個數字要有意義,得有東西可以比。全站平均沒有用——不同主題的 CTR 天差地遠。要比的是排名相近的鄰居

曝光前十名的頁面:平均排名(上好下差)對點閱率 曝光前十名的頁面:平均排名(上好下差)對點閱率 0% 5% 10% 15% 達摩一掌經 排名 3.38 13.70% 姓名學五格 排名 6.34 0.53% 傾角儀 排名 6.45 6.10% 八字排盤 排名 7.03 7.81% Mermaid 編輯器 排名 8.08 2.42% 調音器 排名 8.24 4.55% 首頁 排名 8.33 10.75% 紫微斗數 排名 9.38 4.34% 節拍器 排名 10.48 1.08% 塔羅牌 排名 14.64 4.20% ← 排名第二好,長條最短 ← 下一個要查的 點閱率(CTR,%) 姓名學的平均排名 6.34,比八字(7.03)、調音器(8.24)、紫微(9.38)都前面,點閱率卻只有它們的十分之一。排名到了而人不點,跟排名不到是兩個問題,要改的東西也完全不同。這張圖不能證明姓名學那一頁哪裡壞掉,它只指出「這一格不合群,值得去看」。真正的原因是實際操作那支工具之後才發現的。
依平均排名由好到差排列,長條是點閱率。姓名學排在第二好的位置,長條卻是全表最短。

達摩一掌經排名 3.38、CTR 13.70%;八字排名 7.03、7.81%;傾角儀排名 6.45、6.10%;紫微排名 9.38、4.34%。姓名學的排名比其中三個都好,CTR 卻只有它們的十分之一。

這個對照排除掉一整類解釋:問題不是排名不夠前面。 排名到了人不點,跟排名不到,是兩個問題,要改的東西也完全不同。前者要改的是搜尋結果上那三行字,後者要改的是內容與連結。分不清楚,就會花好幾週去做一堆對這一頁沒用的事。

資料指出哪裡不對勁,但不會告訴你為什麼

到這裡為止,資料能做的事就做完了。它說「這一格不合群」,沒說「哪裡壞了」。

所以下一步不是繼續看報表,是去用一次自己的工具

我們原本以為要做的是「把標題寫得吸引人一點」。實際操作之後才發現完全不是那回事:只輸入「陳」「怡君」按下分析,工具自動帶出了每個字的康熙筆畫,五格直接算出來。這支工具早就會自動查筆畫了。

但使用者在點進來之前看得到的三個地方,全都在說相反的話:

位置 修正前 使用者讀到的意思
標題「免費姓名學五格剖象 — 五格、三才、八十一數理吉凶」全是術語,看不出要輸入什麼
描述「輸入姓名康熙筆畫即得……」我得先自己去查筆畫
常見問題第一題「為何輸入筆畫而非名字?」確認了,這工具不吃名字

第三項最要命。那一題寫在頁面的 FAQPage 結構化資料(JSON-LD)裡,而結構化資料是可以被搜尋引擎直接展示在搜尋結果上的。也就是說,那一問一答不是站內的說明文字,是我們親手掛在搜尋結果上的勸退標語——在使用者還沒點進來以前就先告訴他「這裡要你自己查筆畫」。

而搜尋詞本身(有人是打「三才五格線上算」找過來的)擺明了說:來的人要的就是「輸入名字就算」。

所以要修的不是語氣,是一句已經不成立的敘述。 文案落後於程式,是這種頁面最常見的狀況,而且只能靠實際操作發現——看程式碼不會發現(程式是對的),看文案也不會發現(文案自己讀起來很通順)。

改了什麼

  • 標題改成描述實際行為:「免費姓名學 — 輸入姓名自動查康熙筆畫,算五格三才吉凶」。
  • 描述與社群分享文字改成「直接輸入中文姓名,自動帶入康熙筆畫(可逐字核對修改)」。
  • 常見問題第一題改成「需要自己查康熙筆畫嗎?」,答案是「不用」——並且畫面上的中英文、語言字典、JSON-LD 三份一起改。只改畫面而漏掉結構化資料,等於畫面修好了、搜尋結果上還是舊的那句。
  • 順手把頁面裡的「如何使用」步驟也改了。它原本寫「1. 查康熙筆畫 → 2. 輸入筆畫」,跟實際操作不符。它不影響點閱率,但它是錯的——修文案時碰到的錯誤就當場修,不要因為「這一項不影響本次目標」而留著。

GA 真正好用的地方:分開「有人來」跟「有人用」

講完 Search Console,回來講 GA 到底該怎麼用。

我們站上每支工具都埋了自訂事件(在 ANALYTICS_EVENTS.md 裡集中列管)。頁面瀏覽數只告訴你有人打開了頁面;事件才告訴你他有沒有按下去。這兩個數字的落差是最有價值的一個訊號:

  • 瀏覽多、事件少 → 頁面沒問題,但工具本身讓人卡住了(欄位太多?看不懂要填什麼?)
  • 瀏覽少、事件比例高 → 進來的人都很滿意,問題在門口(回到 Search Console)
  • 兩個都少 → 這一頁可能根本沒有需求

這是我們用 GA 做的主要判斷,不是看流量排行榜。

隱私:只量頁面與按鈕,不量內容

我們是一個承諾「檔案不上傳」的網站,所以量測的界線必須劃得很清楚:事件只記錄「哪一頁的哪一個按鈕被按了」,不帶任何內容參數。

生日、姓名、上傳的檔案,全部只存在你的瀏覽器裡,不會因為我們想知道使用狀況就被送出去。想知道「有多少人用了姓名學」,記一個 name_analyze 就夠了,不需要知道任何人叫什麼名字。量測需求永遠可以在不碰內容的前提下滿足——如果你發現做不到,通常是量測問題問錯了。

五個判讀陷阱(都是我們自己踩過的)

  1. 排行榜是結果,不是待辦清單。 流量高的頁面是已經做對的頁面。要找的是「該有人來卻沒人來」的。
  2. 平均值會騙人。 全站平均 CTR 沒有意義。要跟排名相近的頁面比,因為 CTR 本來就隨排名劇烈變動。
  3. 小樣本不是訊號。 曝光 5 次、點擊 1 次不叫「20% 的高點閱率」。我們自己的報表裡就有好幾筆這種數字,全部略過。至少要三位數的曝光才值得下判斷。
  4. 改文案不保證數字會動。 點閱率由標題、描述、對手長什麼樣、以及搜尋引擎有沒有自行改寫你的標題共同決定。我們能確定的只有一件事:修正前的文案在說一件工具已經不做的事,這本身就該修。 至於有沒有效,兩三週後才知道。
  5. 一次只動一個變因。 我們同時還有另一件待辦(同一頁有加不加 .html 兩種網址被分別索引)。兩件事一起上線,兩三週後就算數字動了也不知道是哪一個有效。刻意把另一件延後,是為了讓這一件可以被量測。

你可以照著做的檢查清單

  1. 打開 Search Console 的「成效 → 網頁」,按曝光排序(不是按點擊)。
  2. 找出「曝光有三位數以上、平均排名進得了前十、CTR 明顯低於排名相近鄰居」的頁面。
  3. 用無痕視窗實際搜尋那個關鍵字,看自己的標題與描述在搜尋結果上長什麼樣。你會看到使用者看到的東西,而不是你以為你寫了什麼。
  4. 實際操作一次自己的工具,確認文案講的事情現在還成立。
  5. 檢查頁面裡的結構化資料(FAQPageHowTo 之類),裡面有沒有過時的句子——那些是會被直接展示在搜尋結果上的。
  6. 回到 GA,看這一頁的事件數與瀏覽數的比例,確認進來的人真的用得下去。
  7. 一次只改一頁,記下日期,兩三週後回來看同一份報表

最後

資料不會告訴你要改什麼。它只告訴你哪裡值得去看

那一格不合群的數字,價值不在於它是個問題,而在於它讓我們去做了一件本來不會做的事——實際去用一次自己的工具。真正的答案在那裡,不在報表裡。

Dev Log: Analytics Tells You Half the Story

This is the thirty-first post in the LocalPapa Notes dev-log series. It is about what to actually look at, once Google Analytics is installed, if you want the site to get better.

The conclusion first, because it is where we nearly went wrong ourselves: Analytics cannot tell you what to fix. It tells you what happens after people arrive. And a site's biggest problem usually happens before anyone arrives.

Analytics opens on a leaderboard — that is not a to-do list

The pages report lists your highest-traffic pages. It is easy to read that as a priority order: high traffic means important, so fix that first.

But think about what the table is actually saying: a page with visitors is a page that already works. The leaderboard is a result, not a to-do list. The pages that need work are usually the ones that should have visitors and don't — and in Analytics those look exactly like pages nobody ever wanted. Both are zero.

There are two kinds of zero: nobody searches for it, and people search but don't click. Analytics cannot tell those apart. Search Console can.

The two reports meet at the moment someone clicks

The seam between the two reports is the moment someone clicks The seam between the two reports is the moment someone clicks Search Console sees these two Analytics sees these two Shown in results 2,822 Clicked 15 Page loads 15 at most Presses "Analyse" ? The 2,807 impressions that never became clicks are invisible to Analytics — and they are the biggest group by far. From Analytics alone this page looks like a tool nobody uses; Search Console shows it is the second most-seenpage on the whole site.The reverse holds too: Search Console stops at the click. Whether visitors actually finish using the tool is a questiononly a custom Analytics event can answer. Neither report replaces the other.
Impressions and clicks belong to Search Console; page loads and button events belong to Analytics. The seam is the instant the visitor clicks the link.

The numbers in that diagram are real, from one of our own tool pages: shown in search results 2,822 times in a month, clicked 15 times.

Analytics only ever sees those 15 people. The other 2,807 — saw it, didn't click — leave no trace at all. From Analytics this page is a tool nobody uses; from Search Console it is the second most-seen page on the entire site. Same page, opposite conclusions.

The reverse holds too. Search Console stops at the click. Whether the people who did arrive actually finished using the tool is a question only a custom Analytics event can answer.

What you want to know Which report
How many people saw me and didn't click?Search Console (impressions, CTR)
What words did people find me with?Search Console (queries)
Where do I rank?Search Console (average position)
Did visitors actually use the feature?Analytics (custom events)
Where do people give up?Analytics (event funnel)
Is mobile bouncing harder?Analytics (device dimension)

Neither replaces the other. With Analytics alone you will carefully optimise the experience of people already willing to come in, while ten times that number turn around at the door without you ever knowing.

A worked case: ranking sixth, clicked 0.53% of the time

In Search Console's Pages report we sorted by impressions, not by clicks — this step matters, because sorting by clicks just shows you your successful pages again. Second on the list was our name-numerology tool: 2,822 impressions, average position 6.34, 15 clicks, CTR 0.53%.

A number only means something next to a comparison. A site-wide average is useless here, because CTR varies enormously by topic. The comparison that counts is neighbours at a similar rank:

Top ten pages by impressions: average position (best at top) vs click-through rate Top ten pages by impressions: average position (best at top) vs click-through rate 0% 5% 10% 15% Palm Sutra pos. 3.38 13.70% Name numerology pos. 6.34 0.53% Inclinometer pos. 6.45 6.10% BaZi chart pos. 7.03 7.81% Mermaid editor pos. 8.08 2.42% Tuner pos. 8.24 4.55% Home pos. 8.33 10.75% Zi Wei chart pos. 9.38 4.34% Metronome pos. 10.48 1.08% Tarot pos. 14.64 4.20% ← Second-best position, shortest bar ← Next one to look at Click-through rate (%) Name numerology averages position 6.34 — ahead of BaZi (7.03), the tuner (8.24) and Zi Wei (9.38) — yet itsclick-through rate is a tenth of theirs. Ranking well but not being clicked is a different problem from notranking, and it calls for a different fix.This chart cannot show what is wrong with that page. It only says the bar is out of line and deserves a look. The actualcause only turned up when we used the tool ourselves.
Sorted by average position, best at the top; bar length is click-through rate. The name tool sits second-best on position, with the shortest bar on the chart.

The Palm Sutra tool ranks 3.38 with 13.70% CTR; BaZi ranks 7.03 with 7.81%; the inclinometer 6.45 with 6.10%; Zi Wei 9.38 with 4.34%. Name numerology ranks ahead of three of those, and gets a tenth of their clicks.

That comparison rules out a whole class of explanation: the problem is not the ranking. Ranking well but not being clicked is a different problem from not ranking, and the fixes have nothing in common. The first is about the three lines of text in the search result; the second is about content and links. Confuse them and you can spend weeks doing things that cannot possibly help this page.

Data points at the anomaly; it will not tell you why

That is as far as the data goes. It says this bar is out of line. It does not say what is broken.

So the next step is not more reports. It is to go and use your own tool once.

We assumed the job was "write a more appealing title". Using the page proved otherwise: typing just the surname and given name and pressing Analyse, the tool filled in the Kangxi stroke count for every character and produced the five grids immediately. The tool had been looking the strokes up automatically all along.

But the three things a searcher sees before clicking all said the opposite:

Where Before What a searcher reads
Title"Free name numerology — five grids, three talents, 81 numbers"All jargon; no idea what to type
Description"Enter the Kangxi stroke counts of the name…"I have to look strokes up myself
First FAQ"Why strokes, not the name?"Confirmed: it won't take a name

The third one is the damaging one. That question lives in the page's FAQPage structured data (JSON-LD), and structured data can be displayed directly in the search result by the search engine. So that question and answer were not on-site help text. They were a discouraging notice we had hung on the search result ourselves, telling people to go away before they ever clicked.

Meanwhile the search queries bringing people in ("three talents five grids calculate online") say plainly that what they want is to type a name and get an answer.

So the thing to fix was not the tone. It was a sentence that had stopped being true. Copy falling behind code is the most common failure mode for pages like this, and the only way to find it is to use the thing — the code looks fine, because it is fine, and the copy reads fine on its own.

What changed

  • The title now describes the actual behaviour: "Free name numerology — type a name, Kangxi strokes filled in automatically".
  • The description and social sharing text now say "type the Chinese name; Kangxi strokes are filled in for you and can be checked character by character".
  • The first FAQ became "Do I have to look up Kangxi strokes myself?", answered "No" — updated in all three places at once: the visible text in both languages, the language dictionary, and the JSON-LD. Fixing the visible page but not the structured data means the page is right and the search result is still wrong.
  • We also fixed the on-page "How to use" steps, which still read "1. Look up Kangxi strokes → 2. Enter strokes". They do not affect click-through, but they were wrong — fix the errors you walk past, rather than leaving them because they are not this task's target.

What Analytics is genuinely good at: separating "arrived" from "used"

Back to Analytics itself.

Every tool on our site fires a custom event, tracked centrally in ANALYTICS_EVENTS.md. A pageview tells you someone opened the page; an event tells you whether they pressed the button. The gap between the two is the single most valuable signal there:

  • Many views, few events → the page is fine, the tool itself is where people get stuck (too many fields? unclear what to enter?)
  • Few views, high event ratio → the people who arrive are happy; the problem is at the door (back to Search Console)
  • Both low → there may be no demand for this page at all

That ratio, not the traffic leaderboard, is what we actually use Analytics for.

Privacy: measure pages and buttons, never content

We are a site that promises your files never leave your device, so the measurement boundary has to be drawn explicitly: events record which button on which page was pressed, and carry no content parameters.

Birth dates, names and uploaded files stay in your browser. They do not get sent anywhere because we were curious about usage. To know how many people used the name tool, a name_analyze count is enough; no one's actual name is needed. A measurement need can almost always be met without touching content — if it seems it can't, the question is usually the wrong question.

Five ways to misread the data (all of which we did)

  1. The leaderboard is a result, not a to-do list. High-traffic pages are the ones already working. Look for pages that should have traffic and don't.
  2. Averages lie. A site-wide average CTR means nothing. Compare against pages at a similar rank, because CTR swings hugely with position.
  3. A small sample is not a signal. Five impressions and one click is not "a 20% click-through rate". Our own report has several rows like that; we ignored all of them. Three-digit impressions before you draw conclusions.
  4. Changing copy does not guarantee the number moves. CTR depends on your title, your description, what your competitors look like, and whether the search engine rewrites your title anyway. The one thing we can be sure of: the old copy described something the tool no longer does, and that was worth fixing on its own terms. Whether it works, we find out in a few weeks.
  5. Change one variable at a time. We have another item outstanding on the same page (both the .html and extensionless URLs are indexed separately). Ship both and a change in the numbers tells you nothing about which one did it. Deliberately deferring the other one is what makes this one measurable.

A checklist you can follow

  1. Open Search Console → Performance → Pages and sort by impressions, not clicks.
  2. Find pages with three-digit impressions, an average position inside the top ten, and a CTR clearly below similarly-ranked neighbours.
  3. Search that keyword yourself in a private window and look at how your title and description actually appear. You will see what users see, rather than what you think you wrote.
  4. Use your own tool once, and check that what the copy claims is still true.
  5. Check the page's structured data (FAQPage, HowTo and friends) for stale sentences — those can be shown directly in the search result.
  6. Back in Analytics, look at that page's event-to-pageview ratio to confirm arrivals can actually get through the tool.
  7. Change one page at a time, write down the date, and come back to the same report in two or three weeks.

Finally

Data will not tell you what to fix. It tells you where it is worth looking.

The value of that one out-of-line number was not that it was a problem. It was that it made us do something we would not otherwise have done: use our own tool. The real answer was there, not in the report.

探索 61 個隱私優先的瀏覽器工具
全程本地運算、檔案不上傳。
前往 LocalPapa →
Explore 61 privacy-first browser tools
Everything runs locally — your files never leave your device.
Visit LocalPapa →

想看英文版?點右上角 EN 切換語言。

Prefer Chinese? Tap at the top-right to switch.