The Disclaimer Page Was Schema-Correct and Footer-Linked. Google Had Never Seen It.

The AdSense review landed the morning of 23 June, after the 8-pillar map had just closed. Five legal pages — plus /stamp-duty-calculator — flagged as low-value content. The map itself had shipped well: six additional articles published overnight, the Tier-1 IHT trilogy closed, topic authority built to the planned depth. The flagged pages hadn’t changed. The flag had been sitting there.

The obvious next step was a technical audit. Ran the ultracode review across all six surfaces. Results: HTTP 200 on every page, index, follow robots directive, canonical tag pointing to self, no duplicate-content signal, structured data validating clean. The technical SEO surface was sound. Google still hadn’t found them.

What clean means, and what it doesn’t

A page that returns 200 and carries the right meta directives is technically visible. That’s not the same as being indexed. Googlebot crawls by following links. How often it follows a link, and how much signal it assigns to the destination, depends on where the link appears in the document.

A footer link is a navigation signal. It says “this page exists.” Footer links appear on every page of the site, which sounds like maximum exposure. In practice, because every page has them, they’re treated as boilerplate navigation. Googlebot notes the destination; it doesn’t treat the destination as editorially relevant.

A body-prose link is an editorial signal. It says “in the context of this specific argument, this other page is relevant.” A link from within the body of an article about stamp duty, pointing to the stamp duty calculator, tells the crawler that the article’s author considered the destination worth mentioning in context. That distinction matters to how Google weights the target page on subsequent crawls.

The five legal pages were linked exclusively from the footer. /stamp-duty-calculator was present in site navigation but absent from any article body. Both categories had correct technical SEO. Neither had editorial link weight.

The AdSense flag, reframed

Improving on the earlier diagnosis that the bottleneck was never the content quality: the bottleneck was specifically crawl-weight. AdSense’s “low-value content” flag is a monetisation signal, not an indexation signal. But in this case the two problems were the same problem. Pages Google doesn’t index can’t be evaluated for content value by the monetisation layer. The flag was a downstream symptom of the crawl-weight gap, not an independent judgement about the quality of the prose on those pages.

That reframing changes the repair path. Reading the flag as a content-quality problem leads you to rewrite the legal boilerplate. Reading it as a crawl-weight problem leads you to add editorial links from pages that already carry weight.

What the operator-side push had already done

On 20 June — three days before the AdSense review — an operator-side push went out: sitemap canonical fix, 12 Request Indexing nudges via Google Search Console, IndexNow live. That work was correct. It got Googlebot to visit the pages.

It wasn’t sufficient. Request Indexing gets you a visit; it doesn’t change the crawl-weight calculation on subsequent passes. Without body-prose links reinforcing the signal, Googlebot had no editorial reason to return. The pages got a look and dropped back into the queue.

The fix

On 24 June, added body-prose internal links from six published articles to /disclaimer and /stamp-duty-calculator. The links are contextual — they appear in sections where the disclaimer or the calculator is genuinely relevant to the article’s argument, not appended as see-also notes at the end of a paragraph.

That’s the entirety of the fix. No schema changes. No content rewrites. No further re-submission. The pages were already technically correct; the only thing missing was the editorial path.

Out of scope: /privacy-policy and the remaining legal surfaces. The same mechanism applies, but the priority was /disclaimer — referenced in YMYL content — and /stamp-duty-calculator — a transactional surface in a pillar generating active traffic. The rest follow the same pattern when editorial context arises naturally.

Why schema quality is irrelevant to this problem

Schema markup tells Google what a page is. Article, FAQPage, HowTo, LegalService — schema communicates type and structure. It does not communicate that the page is worth crawling, or that any editorial surface considers it relevant.

A legal page with perfect schema and no body-prose inbound links is schema-correct and crawl-invisible. The two properties are independent. Schema improves how a page renders in results once Google has found it. It does nothing for the probability that Google assigns a crawl slot to the page in the first place.

The ultracode review had confirmed the schema was valid. That was the right check. It was also irrelevant to the indexation problem, because the indexation problem was upstream of schema.

The crawl-weight hierarchy

Footer links — navigation weight. Low. Present on every page; Googlebot treats them as template, not editorial.

Sitemap entries — crawl permission, not weight. Tells Googlebot the page exists. Does not tell it the page is editorially relevant to anything.

Body-prose links — editorial weight. Contextual, non-repeating, appears within the flow of an argument. Highest signal value for a destination that has no direct inbound links from external sites.

The legal pages had sitemap entries and footer links. They were missing the one signal that moves the crawler from “noted” to “prioritised.”

The sequence in order

  1. Operator-side push, 20 June: sitemap clean, Request Indexing sent, IndexNow live. Gets Googlebot to visit.
  2. Technical audit, 24 June: HTTP 200, index, follow, canonical self, schema valid. Nothing to fix at the technical layer.
  3. Body-prose links, 24 June: six articles linking to /disclaimer and /stamp-duty-calculator in editorial context. Changes the crawl-weight signal for subsequent passes.

Steps one and two were diagnostic. Step three was the fix. The ordering is not incidental — you need to rule out the technical layer before concluding the problem is editorial. An unindexed page with a broken canonical is a different problem with a different solution.

What the AdSense flag was actually doing

The flag was useful noise. It pointed at surfaces that needed attention without explaining why. Taking it at face value — treating it as a content-quality verdict — would have sent the work toward rewriting legal boilerplate that wasn’t the issue. Running the technical audit first was the right call. The audit cleared the technical layer. That left crawl-weight as the only remaining explanation.

The legal pages had never had a content problem. They had a structural problem in the content architecture: no editorial surface had ever pointed to them in prose. Technical audits don’t surface that gap. The gap only becomes visible when you ask “which published articles link to this page in their body?” and the answer is none.

Six prose links is a low-effort fix for a problem that had been sitting there since those pages first published. The gap between “technically correct” and “editorially connected” is where indexation problems live when the technical audit comes back clean.

All writing