SEO: fix CTR + internal links for "agentic infrastructure" query - #21062
SEO: fix CTR + internal links for "agentic infrastructure" query#21062workprentice[bot] wants to merge 2 commits into
Conversation
- 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)
Pre-merge Review — Last updated 2026-08-22T00:21:53ZTip Summary: An SEO pass for the "agentic infrastructure" query: three blog posts gain an inline link to Review confidence:
Investigation log
🔍 Verification trail18 claims extracted · 9 verified · 0 unverifiable · 0 contradicted
📊 Editorial balanceSingle-subject post; balance check N/A. 🚨 Outstanding in this PRNo outstanding findings in this PR.
|
…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.
|
Your site preview for commit 78a291c is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-21062-78a291c3.s3-website.us-west-2.amazonaws.com Changed pages: |
…#21072) * Fix internal links to old /docs/concepts/ URLs (redirect-hop cleanup) Several docs, blog, and tutorial pages still link to the pre-restructure /docs/concepts/... URLs, which now 301 (some via a double hop) to their current /docs/iac/concepts/..., /docs/esc/concepts/, or /docs/reference/glossary/ locations. Updated 79 files (154 link occurrences, both root-relative markdown links and fully-qualified https://www.pulumi.com/... links) to point directly at the final destination, verified live against the current redirect map. Every fragment (#anchor) and the handful of double-hop cases (missing trailing slash -> slash -> new path) were preserved/collapsed correctly. One additional file with the same pattern (content/blog/why-choose-pulumi-over-terraform/index.md) was intentionally left untouched because it already has open PRs (#21062, #21066) touching it today; filed a follow-up board card to catch it separately. * Address pre-merge review: fix stale anchors and mislabeled links Follow-up to the automated review of the /docs/concepts/ redirect-hop cleanup. The path rewrites were correct, but several rewritten links kept a #fragment whose section had moved off the destination page entirely, adding back a second (client-side JS) redirect hop -- exactly what this PR set out to remove: - #components -> /docs/iac/concepts/components/ - #autonaming -> /docs/iac/concepts/resources/names/#autonaming - #urns -> /docs/iac/concepts/resources/names/#urns - #dependson -> /docs/iac/concepts/resources/options/dependson/ - #explicit-provider-configuration -> /docs/iac/concepts/providers/ - #additionalsecretoutputs -> /docs/iac/concepts/resources/options/additionalsecretoutputs/ - #transformations -> /docs/iac/concepts/resources/options/transformations/ Applied across all lines in this PR's diff carrying these anchors (verified each target live), including a couple the review didn't individually cite but that matched the same pattern. Also fixed two mislabeled docs-page links flagged by review in content/docs/iac/guides/migration/import/_index.md: a `retainOnDelete` mention that pointed at the unrelated `protect` option's page (now points at its own retainOnDelete page), and a `#autonaming` anchor pointing at the wrong page (now the names page). Fixed three "Pulumi Service" (deprecated product name) mentions on lines this PR already touches, per STYLE-GUIDE.md: keep-your-secrets-secure-by-default, six-things-about-pulumi-service, and stack-readme now say Pulumi Cloud / Pulumi Cloud console, and the six-things and keep-your-secrets posts' own links to the old /product/pulumi-service/ and /docs/pulumi-cloud/self-hosted/ URLs (which themselves redirect) now point directly at their live targets. Verified: node ./scripts/lint/lint-markdown.js and yarn prettier --check on all 17 touched files, 0 errors; every new/changed anchor and link target fetched live to confirm a 200 response before use. * Address second pre-merge review pass: finish Pulumi Cloud rename, style suggestions - Finish the Pulumi Service -> Pulumi Cloud rename in six-things-about-pulumi-service/index.md (blocker): the prior commit only updated the one line the style linter flagged, leaving six more mentions and one /product/pulumi-service/ alias hop in the same post. - Apply 26 of 27 flagged style suggestions across 20 files: punctuation, wordiness, filler, weasel words, difficulty qualifiers, spacing, vague link text, an unbacked CLI command, and a directional reference. - Decline one word-choice suggestion (double click -> double select) in six-things-about-pulumi-service/index.md as not a real improvement; double-click is a named UI gesture with no natural select equivalent. Verified: yarn prettier --check and node ./scripts/lint/lint-markdown.js both pass clean on all touched files. * Fix low-confidence style-edit regressions flagged in third review pass The 483d4d1 style sweep dropped meaning or grammar in five spots while clearing linter flags on adjacent words: - keep-your-secrets-secure-by-default L34: restore the "often" hedge ("is enough" -> "is often all you need") so the claim isn't stronger than the original and isn't contradicted by the next sentence. - ai-slack-bot-...-pulumi-on-aws L284: same shape, milder -- restore "often" before "happens" for the same reason. - iac-best-practices-understanding-code-organization-stacks L82: restore the coordinating clause the linter's target word was carrying ("lightweight to create or delete" -> "lightweight, and creating or deleting one is quick"). - next-level-iac-pulumi-runtime-logic L293, L331: restore "immediately" before "before the program exits" -- the removed "just" was temporal, not a difficulty qualifier, and matches the Node.js/Python docs this section quotes. - six-things-about-pulumi-service L48: fix a pre-existing "such the current git SHA" typo (missing "as") while already touching this line for the Pulumi Cloud rename. Verified: yarn prettier --check and node ./scripts/lint/lint-markdown.js both pass clean on all 5 touched files. --------- Co-authored-by: workprentice <257153108+workprentice@users.noreply.github.com>
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:
content/blog/the-agentic-infrastructure-era/index.md: themeta_descnow 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).bring-your-terraform-estate-into-the-agentic-era/index.mdandwhy-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.)acceptedAnswer.texthad 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 comparedsub-heading, which the collector always treats as a hard stop. No template change — this is a one-file content restructure, andfaq-entity.htmlitself was left untouched.Verification
layouts/partials/schema/+ its dependencies + the real content file) and parsed the rendered<script type="application/ld+json">block directly: FAQPage now has 19 cleanmainEntityentries, zero leaked|/#/code-fence characters in anyacceptedAnswer.text; the affected entity's answer is now 545 chars of clean prose instead of leaking a raw markdown table.node scripts/lint/lint-markdown.jsagainst all 4 changed files: 0 errors./what-is/what-is-agentic-infrastructure/) matches the file's real content slug.Not in scope here (tracked separately)
faq-entity.htmltemplate-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.🧠 This PR was created by workprentice.