I Redefined the Go/No-Go Gate
For four months I fixed only Google indexing, but the traffic was coming from Naver, and 4,300 pages indexed on Naver produced 27 clicks. I threw out the old gate that had come up unmeasurable three times in a row and pinned two judgment dates, November 15 and January 10, on a GA4 non-direct session baseline of 54
The legislative-activity tracker is a side project with a deadline pinned to it: if traffic doesn’t grow, it goes into hibernation. The go/no-go gate I set in August was to be judged on search position in Google results. Before the judgment date even arrived, measurement came back impossible three times in a row, and a gate you can’t measure isn’t a gate.
What I set out to do
On August 23 I had set the go/no-go gate for the legislative-activity tracker. I had asked whether I should fold it since traffic wasn’t growing, and we agreed on “don’t fold, but pin a deadline.” The principle was one line. Hibernation, not deferral.
Gate A was November 15: among Google search queries, if the median search position for queries containing a sitting lawmaker’s name was 20 or below, continue; over 40, hibernation. Gate B was January 10 the following year: continue if 28-day clicks were 60 or more. The precondition was passing 2,000 pages indexed on Google.
How I asked
Measurement failed three times in a row. On August 24, 425 pages indexed, 21% of the precondition. There was one lawmaker-name query, with 1 impression. A median over a population of one is not a metric. On August 31 the index report was frozen at the 21st. Not no change, but no report. I asked “why hasn’t it started yet, I think it’s been a week,” but it was a question with no answer. On September 3 a month’s worth of Google queries was two, and lawmaker-name queries were 0.
In the meantime I connected GA4 for the first time. 28-day Google organic sessions: 0. The traffic was Naver and ChatGPT. Google impressions 435 versus Naver impressions 9,700, clicks 0 versus 27. The premise behind four months of fixing only Google indexing had been wrong.
Where it broke
I thought maybe I could just switch the channel to Naver, but Naver Search Advisor has no search-position column at all. The shape of the metric had to change. On the morning of September 3 I uploaded a capture of the Naver site diagnostics. 4,300 pages indexed. 10 times Google, from 561 to 4,300 in a month. And yet clicks were 27. 2.3 impressions per page per month, 1 click per 160 pages. The agent’s conclusion was “it’s not the index, it’s thin demand.” That meant the index-expansion strategy was void, and the “crawl budget bottleneck” that had justified the IndexNow I put in two days earlier was also a Google statistic, not a bottleneck on Naver, the actual channel. A self-correction came with it. “Half of my IndexNow justification was wrong.”
I also measured the search results for a person’s name. Within the website collection we were 3rd, but that collection sits at the 48% point of the results page. Above it are people info, news, video, and blogs. Territory we can’t fix.
A recommendation came out and I couldn’t decide.
I can’t decide. What are you trying to do?
The agent’s answer was “the real question is how many people a day need to come in for it to be worth continuing to spend time, and I can’t answer that for you. If you can’t decide, use what I decide and undo it later.” I took the default.
How I fixed it
The new gate is the 28-day sum of GA4 non-direct sessions. It’s measured automatically every day, doesn’t care about the channel, and excludes Direct to measure only discovery. The baseline is that day’s measured 54. On November 15, 150 or more means continue, 70–149 means one extension, under 70 means hibernation. If extended, January 10 of the following year is a single cut at 150 with no re-extension. Room for interpretation like “the trend is good” is another name for deferral. 150 is 3x. If six SEO tasks shipped over two days can’t make 3x in 10 weeks, the remaining bottleneck is domain authority, and that’s a game against a 22-year-old site.
The code review bot caught 7 items over 6 rounds. Another section of the same document was presenting the old rule as current, there was no rule for the 70–149 range, and the source for “28 days” and whether it included the current day were undecided. I fixed the judgment to a direct GA4 API query, not the DB. The collector’s DB is three days behind, so it’s for trends. I also removed the line that had recorded the metrics collector’s reason for existing as “the gate requires long-term comparison.” The “I inflated the rationale” the agent had already admitted was still sitting in the code as is.
Lessons
- A gate is only a gate if it can be measured. With a median over a population of one, judgment was impossible three times in a row. I switched to a number that comes out automatically every day.
- Verify the channel assumption first. For four months I looked only at Google, but the traffic was Naver. One GA4 connection would have told me.
- Even if the index grows, clicks don’t grow without demand. 4,300 pages, 27 clicks. The rationale for the effort spent on index expansion disappeared.
- Put rules on the middle range in advance. If I had left 70–149 empty, deferral would have come back in on judgment day.
- No one can set a judgment threshold for you. Still, if you can’t decide, taking a default and pinning a date beats not deciding.