SEO metadata, structured data, and a purged self-hosted asset pipeline#49
Open
HeyItsGilbert wants to merge 4 commits into
Open
SEO metadata, structured data, and a purged self-hosted asset pipeline#49HeyItsGilbert wants to merge 4 commits into
HeyItsGilbert wants to merge 4 commits into
Conversation
…d assets Head SEO (baseof.html): - add rel=canonical and og:locale on every page - fix home og:title (was the brandless page title); de-duplicate article <title> via a new params.brand suffix - emit article:published_time/modified_time/author/section/tag for posts - switch Twitter tags to name= and add twitter:site/creator - prefer og_description for social cards, keep full description for SERP Structured data (new partials, gated by section): - schema-site.html: Organization + WebSite on the home page - schema-article.html: Article + BreadcrumbList on articles and podcasts Crawl: - enable robots.txt advertising the sitemap (layouts/robots.txt) Performance: - replace the ~2.9 MB Tailwind CDN file with a ~35 KB purged, self-hosted build served minify|fingerprint via Hugo Pipes (assets/css/tailwind.css) - self-host Inter from assets/fonts via @font-face + preload; drop the render-blocking Google Fonts @import; add CDN preconnect hints - regen tooling: purgecss.config.cjs + scripts/build-tailwind.mjs (npm run build:css)
…cription Three migrated 2012-2014 posts had an empty `title:`, so they shipped with no <title>, <h1>, og:title, or Article schema headline. Restore titles from slug and body. Also replace the home description with keyword-rich copy under the ~155-char SERP cutoff.
- ADR 0005: head-level SEO, JSON-LD by section, and the committed purged-CSS / self-hosted-font pipeline, with the constraints a future maintainer must keep - README: document `npm run build:css` and the updated dependency list
✅ Deploy Preview for powershellorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Flag the custom defaultExtractor and the safelist as load-bearing guardrails, not incidental config: the stock extractor shreds : / variants, and any class not present as a literal token is dropped with no build error.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A technical-SEO + performance pass on the page
<head>, plus the structured-dataand asset-pipeline changes that support it. Audited against the homepage and the
latest article, then validated across the whole archive.
Head SEO (
baseof.html,hugo.yaml)rel=canonicalon every page (was absent — material given the 2,221 build aliases)og:locale; fixed homeog:title(was the brandless page title)<title>via a newparams.brandsuffix(
… - PowerShell.org - Welcome Automaters!→… — PowerShell.org)article:published_time/modified_time/author/section/tagon postsname=withtwitter:site/creatorog_description; SERP keeps the full descriptionStructured data (new partials, gated by section)
Organization+WebSite(schema-site.html)Article+BreadcrumbList(schema-article.html)Crawl
robots.txtenabled, advertising the sitemap (layouts/robots.txt)Performance
minify | fingerprintvia Hugo Pipes. Retained rules are byte-identical to theCDN file (purge of the exact v2.2.19 source), so no visual change for used classes.
assets/fonts/via@font-face+ preload; render-blockingGoogle Fonts
@importremoved; preconnect added for the remaining CDNs.purgecss.config.cjs+scripts/build-tailwind.mjs(npm run build:css).Content fixes
title:on three migrated 2012–2014 posts that shipped with empty<title>/<h1>/og:title/schema headline.Verification
baseURL https://powershell.org,--gc --minify): 0 errors.BreadcrumbList/author/image/headline. The 189 pages withoutArticleschema arepagination + section indexes (correct).
audio player,
group-hoverYouTube facade) — no visual regression with the 35 KB CSS.Notes for reviewers
netlify.toml,deploy.yml) run barehugoand pick up the committedassets/css/tailwind.css.After editing markup that introduces new Tailwind classes, run
npm run build:cssand commit the result (a missing class is visible in
npm run dev, which serves thesame file). Rationale in
docs/adr/0005.community_stats.json) are pinnedin the purge safelist.
description, so their meta/schema descriptionfalls back to the auto-summary (valid; a separate content effort could improve this).
CONTEXT.mdwas intentionally left out of this branch (unrelated in-progress edit).