fix(website): SEO canonicals, host redirects, sitemap, app noindex

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.
This commit is contained in:
Mohamed Boudra
2026-05-21 10:07:41 +07:00
parent ea36f0879f
commit cae3deb6e7
17 changed files with 106 additions and 55 deletions
+3 -4
View File
@@ -7,11 +7,10 @@ import { pageMeta } from "~/meta";
export const Route = createFileRoute("/docs/$")({
head: ({ params }) => {
const slug = params._splat ?? "";
const path = `/docs/${slug}`;
const doc = getDoc(slug);
if (!doc) return { meta: pageMeta("Not Found - Paseo Docs", "Doc not found.") };
return {
meta: pageMeta(`${doc.frontmatter.title} - Paseo Docs`, doc.frontmatter.description),
};
if (!doc) return pageMeta("Not Found - Paseo Docs", "Doc not found.", path);
return pageMeta(`${doc.frontmatter.title} - Paseo Docs`, doc.frontmatter.description, path);
},
component: DocsPage,
});
+7 -4
View File
@@ -7,10 +7,13 @@ import { pageMeta } from "~/meta";
export const Route = createFileRoute("/docs/")({
head: () => {
const doc = getDoc("");
if (!doc) return { meta: pageMeta("Docs - Paseo", "Paseo documentation.") };
return {
meta: pageMeta(`${doc.frontmatter.title} - Paseo Docs`, doc.frontmatter.description),
};
if (!doc)
return pageMeta(
"Docs - Paseo",
"Install Paseo and start running coding agents from your phone, desktop, and terminal.",
"/docs",
);
return pageMeta(`${doc.frontmatter.title} - Paseo Docs`, doc.frontmatter.description, "/docs");
},
component: DocsIndex,
});