Addresses the high-volume issues from the Ahrefs audit: - Worker entrypoint 301s every request not on https://paseo.sh (www subdomain and http variants), killing the duplicate-page errors and the HTTP→HTTPS internal-link notices. - pageMeta() emits <link rel="canonical"> and og:url per route; every head() call now passes its canonical path. - /blog stops rewriting itself to /blog?drafts=false; the search param only appears when explicitly true. - Sitemap includes /blog and each post. - Trim homepage title under SERP truncation, rewrite /agents meta description under 160 chars, pad short descriptions on /privacy, /download, /cloud, /changelog, /docs. - app.paseo.sh gets <meta robots=noindex,nofollow> and a Disallow-all robots.txt so the SPA shell stops polluting the crawl with H1-missing / no-OG / low-word-count warnings.
26 lines
827 B
TypeScript
26 lines
827 B
TypeScript
import { createFileRoute } from "@tanstack/react-router";
|
|
import ReactMarkdown from "react-markdown";
|
|
import changelogMarkdown from "../../../../CHANGELOG.md?raw";
|
|
import { SiteShell } from "~/components/site-shell";
|
|
import { pageMeta } from "~/meta";
|
|
|
|
export const Route = createFileRoute("/changelog")({
|
|
head: () =>
|
|
pageMeta(
|
|
"Changelog - Paseo",
|
|
"Product updates, bug fixes, and improvements shipped in each Paseo release. Track new agent providers, mobile features, and daemon changes over time.",
|
|
"/changelog",
|
|
),
|
|
component: Changelog,
|
|
});
|
|
|
|
function Changelog() {
|
|
return (
|
|
<SiteShell>
|
|
<article className="changelog-markdown rounded-xl border border-border bg-card/40 p-6 md:p-8">
|
|
<ReactMarkdown>{changelogMarkdown}</ReactMarkdown>
|
|
</article>
|
|
</SiteShell>
|
|
);
|
|
}
|