Blog or resource section has clear structure
Why it matters
A blog or resources section without navigational structure is harder to trust and harder to use than no blog at all. Visitors who land on a blog index page with no post dates cannot assess content freshness — for any topic where recency matters (tech, compliance, product features), undated posts are untrustworthy. Blog posts without a visible path back to the index trap visitors: they read one post and cannot find the next one, so they leave the site entirely. For SEO, a blog listing page with accessible titles and dates signals a maintained content repository to crawlers; a blog with no listing page and posts only accessible via direct URL provides minimal SEO benefit and zero organic discovery.
Severity rationale
Low because a structurally deficient blog is harder to use and trust than no blog, and provides diminished SEO benefit — but the impact is limited to visitors who actively seek out the blog.
Remediation
A minimally structured blog needs three elements:
1. A listing page at /blog with post titles visible and sortable by date
2. A visible date on each individual post
3. A "← Back to Blog" link or breadcrumb on each post page
In a Next.js MDX blog, ensure each post's frontmatter includes a date field and that the listing component reads and displays it:
// app/blog/page.tsx — listing page showing dates
import { getAllPosts } from '@/lib/mdx'
export default async function BlogIndex() {
const posts = await getAllPosts() // returns [{title, slug, date, excerpt}]
return (
<main>
<h1>Blog</h1>
<ul>
{posts.map(post => (
<li key={post.slug}>
<Link href={`/blog/${post.slug}`}>{post.title}</Link>
<time dateTime={post.date}>{formatDate(post.date)}</time>
</li>
))}
</ul>
</main>
)
}
Add <Link href="/blog">← Back to Blog</Link> at the top of each post's app/blog/[slug]/page.tsx.
Detection
-
ID:
blog-resource-structure -
Severity:
low -
What to look for: Count all relevant instances and enumerate each. If a blog, resources section, or knowledge base exists (detected by the presence of a
/blog,/resources,/articles, or/postsroute), examine whether it has: a visible list of posts/articles with titles and dates, a way to navigate between posts (next/previous or back-to-list link), and whether the most recent post is within the last 6 months (check the date on the most recent post if dates are present). If no blog exists, this check is not applicable. -
Pass criteria: The blog or resource section has a listing page with post titles visible, individual posts have an identifiable date, and there is a navigation path back to the listing from individual posts. At least 1 implementation must be verified.
-
Fail criteria: A blog exists but has no listing page (posts are only accessible via direct URL), posts have no visible dates, or the blog listing has no titles (only thumbnails or slugs).
-
Skip (N/A) when: No blog, resources section, or knowledge base detected. Signal: no
/blog,/resources,/articles,/posts, or equivalent route found. -
Detail on fail: Describe the structural gap. Example:
"Blog exists at /blog but posts have no visible dates — visitors cannot assess content freshness"or"Blog posts are accessible but the /blog listing page is empty — no post list" -
Remediation: A blog without structure is harder to navigate and less credible. Add the minimum: a listing page with post titles and dates, and a "Back to Blog" link on each post.
For Next.js MDX blogs: if you're using a file-based MDX setup, ensure each post's frontmatter includes a
datefield and that your listing component renders it. For a dynamic CMS, confirm that the listing query includes and displays the publish date.Review the configuration in
src/orapp/directory for implementation patterns.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from marketing-content-quality·automated