Skip to content

SEO: fix CTR + internal links for "agentic infrastructure" query - #21062

Open
workprentice[bot] wants to merge 2 commits into
masterfrom
seo/agentic-infrastructure-internal-links
Open

SEO: fix CTR + internal links for "agentic infrastructure" query#21062
workprentice[bot] wants to merge 2 commits into
masterfrom
seo/agentic-infrastructure-internal-links

Conversation

@workprentice

@workprentice workprentice Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Search Console shows the query "agentic infrastructure" (roughly 1,500 impressions over the trailing 90 days) sitting just outside page one, in the position band where targeted on-page and internal-linking fixes tend to move the needle fastest. On investigation, the on-page basics one would normally check first (title/meta_desc exact-phrase match, an answer-first definition, FAQ schema) turned out to already be fully shipped on /what-is/what-is-agentic-infrastructure/. That page is well-optimized but gets very little of this query's traffic, because almost no internal links point to it with the bare phrase as anchor text, and because the page currently absorbing most of the traffic — /blog/the-agentic-infrastructure-era/ — reads as a dated launch announcement rather than a definition, which likely explains a click-through rate well below what its ranking position would normally earn.

This PR is a small, targeted fix on both fronts rather than a rewrite:

  1. Click-through-rate fix on the incumbent post. content/blog/the-agentic-infrastructure-era/index.md: the meta_desc now leads with the plain definition ("Agentic infrastructure is cloud infrastructure that AI agents provision, govern, and operate through code...") instead of "what we're shipping today," and a one-line orientation link to the what-is page was added right after the <!--more--> break, ahead of Joe Duffy's own copy (untouched otherwise — title is his editorial headline, not an SEO field, and was left alone).
  2. Exact-phrase internal links. Two more posts already use the bare phrase "agentic infrastructure" in prose and now link it to the definitional page: bring-your-terraform-estate-into-the-agentic-era/index.md and why-choose-pulumi-over-terraform/index.md. (Checked every other page using the phrase; several either already link it, use it inside an unlinkable compound like "agentic infrastructure engineer," or only appear in a bolded label — those were left alone rather than forcing an awkward link.)
  3. A real schema defect, fixed at the content level. While auditing the what-is page's rendered FAQPage JSON-LD I found one FAQ entity ("What about infrastructure for AI agents?") whose acceptedAnswer.text had a raw markdown comparison table leaking into it verbatim (|, ---, bold/italic markers). The collector's known any-heading answer-boundary fix (PR schema: any markdown heading terminates a FAQ answer, not just "## " #20841) is already live in master, but a table sitting directly under a question heading with no intervening non-question sub-heading still bleeds through by design. Fixed by shortening that section's direct answer to clean prose and moving the comparison table under a new non-question ### The two meanings compared sub-heading, which the collector always treats as a hard stop. No template change — this is a one-file content restructure, and faq-entity.html itself was left untouched.

Verification

  • Built the page through an isolated Hugo harness (layouts/partials/schema/ + its dependencies + the real content file) and parsed the rendered <script type="application/ld+json"> block directly: FAQPage now has 19 clean mainEntity entries, zero leaked |/#/code-fence characters in any acceptedAnswer.text; the affected entity's answer is now 545 chars of clean prose instead of leaking a raw markdown table.
  • Ran node scripts/lint/lint-markdown.js against all 4 changed files: 0 errors.
  • Confirmed every new/changed link target (/what-is/what-is-agentic-infrastructure/) matches the file's real content slug.
  • Re-read every diff after writing to confirm no indentation/whitespace corruption.
  • Checked PR Add: Platform Engineering in the Agentic Era #20949 ("Add: Platform Engineering in the Agentic Era") — still open/unmerged, so it was not touched here; a follow-up board card tracks adding this page's link there once it merges.

Not in scope here (tracked separately)

  • The faq-entity.html template-level any-heading fix is already shipped (PR schema: any markdown heading terminates a FAQ answer, not just "## " #20841) — verified still present in master, no further template work needed.
  • A GSC re-measurement of this query's CTR/position ~4-6 weeks post-merge is tracked as a follow-up board card; no ranking-movement claims are made in this PR.

🧠 This PR was created by workprentice.

- Rewrite the-agentic-infrastructure-era meta_desc to lead with the
  answer-first definition (was reading as a dated launch announcement,
  suppressing CTR at position ~6.7 for the query 'agentic infrastructure')
- Add an early orientation link from that post to the definitional
  what-is/what-is-agentic-infrastructure page
- Add exact-phrase internal links from two more blog posts that already
  use the bare phrase 'agentic infrastructure' in prose
- Split a what-is-agentic-infrastructure.md FAQ section so its comparison
  table sits under a non-question sub-heading, preventing raw markdown
  table syntax from leaking into the rendered FAQPage acceptedAnswer text
  (verified via isolated Hugo schema harness: 19 clean FAQ entities, zero
  leaked '|'/'#'/code-fence characters)
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:docs PR touches technical docs domain:mixed PR touches more than one domain domain:blog PR touches blog posts or customer stories review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-08-22T00:21:53Z

Tip

Summary: An SEO pass for the "agentic infrastructure" query: three blog posts gain an inline link to /what-is/what-is-agentic-infrastructure/ (one of them also a rewritten meta_desc that leads with the definition), and the what-is page itself is lightly restructured — the "both meanings compound" wrap-up moves ahead of the two-meanings comparison table, which picks up a new ### The two meanings compared heading. The wrongness that would matter here is a link that doesn't resolve, a meta_desc that overpromises or misdefines the term relative to the page it points at, or a reordering that leaves the what-is section reading out of sequence. The link target, the definition wording, and the Terraform-state-backend sentences carrying the new anchors were all checked against the canonical docs and the what-is page; a prose/readthrough pass and pattern-based linting also ran. No blocking issues; one ordering nit noted below.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts HIGH
coherence MEDIUM The what-is reordering is a judgment call — see the ⚠️ note; both readings are defensible.
Investigation log
  • Cross-sibling reads: not run (not in a templated section)
  • External claim verification: 9 of 18 claims verified (0 unverifiable, 0 contradicted) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 15 Pass 1, 0 Pass 2, 3 Pass 3 (verified 2, contradicted 0, unverifiable 1).
  • Cited-claim spot-checks: not run (no cited claims)
  • Frontmatter sweep: ran on body + meta_desc + social.{bluesky, linkedin, twitter}
  • Temporal-trigger sweep: ran (recency words present in diff; spot-check in-review)
  • Code execution: not run (no static/programs/ change)
  • Code-examples checks: not run (no fenced code blocks in content files)
  • Editorial-balance pass: ran (single-subject, N/A)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 1 0 0

🔍 Verification trail

18 claims extracted · 9 verified · 0 unverifiable · 0 contradicted
  • L42 in content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md "Pulumi Cloud provides guardrails and enterprise readiness needed to safely move fast in the agentic infrastructure era." → ➖ not-a-claim (evidence: This is a subjective marketing/positioning statement about Pulumi's own product ("Pulumi Cloud provides the guardrails and enterprise readiness needed to safely move fast in this new era") describing the author's own platform value…; source: repo:content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md)
  • L44 in content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md "Pulumi is launching three new ways that let users avoid trading off building for the future against building for today, described at…" → ✅ verified (evidence: The blog post's own body states: "Today, we are launching three ways that Pulumi lets you avoid trading off building for the future against building for today," and the post enumerates…; source: repo:content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md; repo:content/blog/terraform-to-pulumi-cloud-hands-on/index.md)
  • L44 in content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md "Users do not have to rip out Terraform to adopt Pulumi's agentic infrastructure capabilities." → ✅ verified (evidence: The blog itself documents three GA capabilities—Pulumi Cloud as Terraform state backend, native Terraform module import, and HCL as a first-class Pulumi language—all explicitly designed to work with existing Terraform without rewriting…; source: repo:content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md)
  • L44 in content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md "Pulumi Cloud brings agentic infrastructure capabilities to an existing Terraform-based IaC estate without requiring migration." → ✅ verified (evidence: The blog post itself states: "You don't have to rip out Terraform to enter the agentic era. Pulumi Cloud brings agentic infrastructure to the IaC estate you already have," and the linked release note…; source: repo:content/blog/bring-your-terraform-estate-into-the-agentic-era/index.md and repo:content/releases/terraform-state-backend-modules-hcl.md)
  • L5 in content/blog/the-agentic-infrastructure-era/index.md "Agentic infrastructure is defined as cloud infrastructure that AI agents provision, govern, and operate through code." → ✅ verified (framing: Source: "provision, govern, and operate autonomously, writing code, running deployments, enforcing policy, and proposing changes through pull requests"…; evidence: Pulumi's own "What Is Agentic Infrastructure?" page defines it nearly identically: "Agentic infrastructure is cloud infrastructure that AI agents provision, govern, and operate autonomously, writing code, running deployments, enforcing…; source: https://www.pulumi.com/what-is/what-is-agentic-infrastructure/)
  • L5 in content/blog/the-agentic-infrastructure-era/index.md "Pulumi is building tools/features to make agentic infrastructure real." → ✅ verified (evidence: The Pulumi blog post itself and companion release page describe numerous concrete tools/features (30+ new CLI commands, integration catalog, Scheduled Tasks, Read-Only Sessions, Pulumi Cloud in the CLI) explicitly framed as building…; source: https://www.pulumi.com/releases/agentic-infrastructure-era/ and https://www.pulumi.com/blog/the-agentic-infrastructure-era/)
  • L31 in content/blog/the-agentic-infrastructure-era/index.md "Pulumi has a page at /what-is/what-is-agentic-infrastructure/ that explains what agentic infrastructure is and how it works." → ✅ verified (evidence: content/what-is/what-is-agentic-infrastructure.md exists and renders at /what-is/what-is-agentic-infrastructure/; it defines agentic infrastructure ("cloud infrastructure that AI agents provision, govern, and operate autonomously...")…; source: repo:content/what-is/what-is-agentic-infrastructure.md)
  • L33 in content/blog/the-agentic-infrastructure-era/index.md "Pulumi Neo is described as the agent at the center of the capabilities discussed in the post." → ➖ not-a-claim (evidence: Line 33 of the reviewed post itself states: "Neo is the agent at the center of everything below: it previews changes, checks them against policy, and opens PRs for your review." This is the author's own descriptive framing of their…; source: repo:content/blog/the-agentic-infrastructure-era/index.md)
  • L33 in content/blog/the-agentic-infrastructure-era/index.md "Pulumi Neo is described as the agent at the center of the capabilities discussed in the post." → ➖ not-a-claim (evidence: Line 33 of the reviewed post itself states "Neo is the agent at the center of everything below: it previews changes, checks them against policy, and opens PRs for your review." This is the author's own editorial framing/positioning of…; source: repo:content/blog/the-agentic-infrastructure-era/index.md)
  • L244 in content/blog/why-choose-pulumi-over-terraform/index.md "Teams can keep using the Terraform or OpenTofu CLI for day-to-day operations while using Pulumi Cloud as their Terraform state backend." → ✅ verified (evidence: The canonical docs page states: "Pulumi Cloud can serve as a Terraform state backend... Your team can continue using the Terraform or OpenTofu CLI for day-to-day operations while gaining the benefits of Pulumi Cloud" — this matches the…; source: pulumi/docs:content/docs/iac/get-started/terraform/terraform-state-backend.md)
  • L246 in content/blog/why-choose-pulumi-over-terraform/index.md "Pulumi Cloud uses Terraform's standard remote backend interface, so users can point the Terraform CLI at Pulumi Cloud without changing their infrastructure…" → ✅ verified (evidence: Multiple Pulumi docs pages confirm this: "Pulumi Cloud implements the Terraform remote backend API. You point the Terraform CLI at Pulumi Cloud using the standard backend "remote" configuration block, and no changes to your Terraform…; source: pulumi/docs:content/docs/iac/get-started/terraform/terraform-state-backend.md)
  • L246 in content/blog/why-choose-pulumi-over-terraform/index.md "Users can point the Terraform or OpenTofu CLI at Pulumi Cloud without changing their infrastructure code." → ✅ verified (evidence: Official docs page (content/docs/iac/get-started/terraform/terraform-state-backend.md) states: "Pulumi Cloud can serve as a Terraform state backend... Your team can continue using the Terraform or OpenTofu CLI for day-to-day operations."…; source: pulumi/docs:content/docs/iac/get-started/terraform/terraform-state-backend.md)
  • L87 in content/what-is/what-is-agentic-infrastructure.md "Infrastructure for AI agents and infrastructure managed by AI agents compound, in that agents that understand infrastructure can also manage the…" → ➖ not-a-claim (evidence: This is an editorial/conceptual assertion by the post's author about how two concepts ("infrastructure for AI agents" and "infrastructure managed by AI agents") relate and compound — not a falsifiable technical or product claim checkable…; source: content/what-is/what-is-agentic-infrastructure.md)
  • L87 in content/what-is/what-is-agentic-infrastructure.md "GPU clusters, inference endpoints, vector databases, and RAG pipelines are examples of the platform underneath AI workloads." → ➖ not-a-claim (evidence: This is the author's own conceptual/definitional framing distinguishing "infrastructure for AI agents" from "infrastructure managed by AI agents" — not a third-party factual assertion. The same list (GPU clusters, vector databases…; source: repo:content/what-is/what-is-agentic-infrastructure.md)
  • L94 in content/what-is/what-is-agentic-infrastructure.md "Neo provisions and updates a user's AWS environment as an example of infrastructure managed by AI agents." → ➖ not-a-claim (evidence: Line 94 is a table cell in the document's own comparison table, illustrating "infrastructure managed by AI agents" with a generic example ("Neo provisions and updates your AWS environment"), consistent with the Neo workflow example…; source: repo:content/what-is/what-is-agentic-infrastructure.md)
  • L94 in content/what-is/what-is-agentic-infrastructure.md "A GPU cluster running a training job or inference service is an example of infrastructure for AI agents." → ➖ not-a-claim (evidence: This is an illustrative example within the article's own conceptual table distinguishing 'infrastructure for AI agents' from 'infrastructure managed by AI agents' — a definitional/explanatory device the author is using to illustrate…; source: repo:content/what-is/what-is-agentic-infrastructure.md)
  • L95 in content/what-is/what-is-agentic-infrastructure.md "Infrastructure for AI agents is managed by a platform team, often using infrastructure as code (IaC)." → ➖ not-a-claim (evidence: This is the author's own explanatory/editorial framing in a comparison table ("Your platform team, often using IaC") distinguishing two senses of "agentic infrastructure." It's a general industry description, not a falsifiable, sourced…; source: repo:content/what-is/what-is-agentic-infrastructure.md)
  • L87 in content/what-is/what-is-agentic-infrastructure.md "Reordering: the 'most organizations need both / the two compound' wrap-up now precedes the comparison table that establishes the distinction" → 🤷 unverifiable (evidence: readthrough/ordering judgment rather than a factual assertion — the moved sentences are accurate either way; source: repo:content/what-is/what-is-agentic-infrastructure.md)
  • L97 in content/what-is/what-is-agentic-infrastructure.md "Teams building AI products benefit from AI agents operating that platform, i.e., infrastructure managed by agents." → ➖ not-a-claim (evidence: This is an editorial/positioning statement expressing the author's own thesis about AI agents managing infrastructure, not a falsifiable factual assertion citing an external source or specific data point.; source: content/what-is/what-is-agentic-infrastructure.md (self-authored positioning statement))

📊 Editorial balance

Single-subject post; balance check N/A.

🚨 Outstanding in this PR

No outstanding findings in this PR.

⚠️ Low-confidence

Review each and resolve as appropriate — these don't block the PR.

  • [L87] content/what-is/what-is-agentic-infrastructure.md — the section now states its conclusion before the evidence. The opening paragraph ends with "That is related to, but distinct from, this page's subject… Most organizations need to think about both, and the two compound: agents that understand infrastructure can also manage the infrastructure their own workloads run on." — so by the time the reader reaches ### The two meanings compared, the takeaway has already landed and the table is a recap. The old order (distinction → table → "most organizations will need to think about both") built to it instead. What's left after the table is also a floating pair of sentences with no topic sentence: "Teams building AI products need the platform layer (infrastructure for agents). Those same teams also benefit from AI agents operating that platform (infrastructure managed by agents)." One way to keep the new heading and the tighter intro without the inversion is to leave the compounding sentence below the table, where it can lead the closing paragraph:

    That is related to, but distinct from, this page's subject, which is infrastructure managed by AI agents.

    …and then, after the table:

    Most organizations need to think about both. Teams building AI products need the platform layer (infrastructure for agents), and those same teams also benefit from AI agents operating that platform (infrastructure managed by agents). The two compound: agents that understand infrastructure can also manage the infrastructure their own workloads run on.

    Not blocking — if leading with the conclusion is the deliberate SEO/snippet play here (it does put a quotable summary high on the page), keep it as written.

Style suggestions

Optional polish from pattern-based linting — never blocking, not counted above. Take the ones that read better and ignore the rest. ✏️ marks one you can apply from the Files changed tab — use Add suggestion to batch on each, then Commit suggestions to take several in a single commit.

content/what-is/what-is-agentic-infrastructure.md
  • line 97: [style] wordiness — 'benefit from' is too wordy.

💡 Pre-existing issues in touched files (optional)

No pre-existing issues in touched files.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-08-22T00:21:53Z — Link target, rewritten meta_desc, and the sentences carrying the new anchors all check out; no blockers, one ⚠️ note on the what-is section's new conclusion-first ordering (9b51958)

  • Refresh this review — comment @claude #update-review. Say what you fixed, or which finding you dispute and why; both work in the same mention.
  • Ask for anything else — comment @claude with no hashtag (questions, one-off fixes). Leaves this review untouched.

Important

Please don't hide, resolve, or delete this comment! It breaks things!

📖 How pre-merge review works — the full lifecycle, short-circuits, and escape hatches.

@github-actions github-actions Bot added review:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Aug 22, 2026
…e two-meanings section

Move the compounding/conclusion sentence to close the section after the
comparison table instead of before it, per the pre-merge review's
non-blocking readability note. No schema impact: the table remains
under the non-question '### The two meanings compared' sub-heading.
@github-actions github-actions Bot added review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention and removed review:no-blockers Claude review completed cleanly; outstanding is empty labels Aug 22, 2026
@pulumi-bot

pulumi-bot commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:blog PR touches blog posts or customer stories domain:docs PR touches technical docs domain:mixed PR touches more than one domain review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants