Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions apps/blog/src/app/(blog)/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -237,10 +237,6 @@ export default async function Page(props: { params: Promise<{ slug: string }> })
{seriesContext ? <SeriesMarker series={seriesContext} /> : null}
</header>

{/* About the author(s) — surfaced high in the document for E-E-A-T and
so LLMs/agents encounter author credentials early. */}
<AuthorBio authors={page.data.authors} />

{/* Body */}
<article className="w-full flex flex-col pb-8 mt-12">
<div className="prose min-w-0 [&_figure]:w-full [&_figure]:md:max-w-140 [&_figure]:lg:max-w-200">
Expand Down Expand Up @@ -281,6 +277,11 @@ export default async function Page(props: { params: Promise<{ slug: string }> })
/>
</div>
</article>

{/* About the author(s) — placed at the end of the post so readers reach
the author credentials right after finishing the article. */}
<AuthorBio authors={page.data.authors} />

{seriesContext ? (
<>
<SeriesBanner series={seriesContext} />
Expand Down
4 changes: 2 additions & 2 deletions apps/blog/src/components/AuthorBio.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ export function AuthorSocialLinks({
}

/**
* E-E-A-T "About the author" card surfaced near the top of a blog post, so
* both readers and LLM/agent crawlers encounter author credentials early.
* E-E-A-T "About the author" card rendered at the end of a blog post, so
* readers reach the author credentials right after finishing the article.
* Renders one entry per author that has a published bio; authors without a
* bio are silently skipped.
*/
Expand Down
Loading