Overview

NarayanSEO is my personal portfolio website — and a working example of the SEO practices I recommend to clients.

Instead of using a template, I built it from scratch with Next.js and Payload CMS, so every technical and on-page decision could be made with search engines and real visitors in mind.

The goal was a fast, well-structured, easy-to-crawl website that clearly explains who I am, what I do, and the work I've done.

Step 1: Planning the site architecture

Good SEO starts with a structure that makes sense to both visitors and search engines.

Actions taken

  • Planned a simple, flat structure: Home, About, Case Studies, Blog, and Contact.
  • Used clean, descriptive URLs such as /case-studies/foxnett and /blog/understanding-core-web-vitals.
  • Added breadcrumbs on article and case study pages so every page shows where it sits.
  • Linked every key page from the header and footer navigation.

Result: Every important page is reachable within one or two clicks, with URLs that describe the content.

Step 2: Building the technical SEO foundation

The technical setup was built in from day one, rather than fixed afterwards.

Actions taken

  • Set a unique title, meta description, and canonical URL for every page.
  • Added structured data (BlogPosting, BreadcrumbList, and FAQPage) to blog articles.
  • Pre-rendered pages as static HTML so content is available to crawlers immediately.
  • Made filtered views such as /blog?category=… point their canonical back to the main page to avoid duplicates.

Result: Pages that are easy to crawl, clearly described in search results, and free of duplicate-content issues.

Step 3: Optimizing performance and Core Web Vitals

Speed was treated as a design requirement, not an afterthought.

Actions taken

  • Served responsive images in modern formats and loaded the hero image eagerly to protect LCP.
  • Reserved space for images and media to prevent layout shift (CLS).
  • Kept JavaScript to a minimum — animations use CSS, and most sections are server-rendered.
  • Respected reduced-motion preferences across all animations.

Result: A lightweight website where most content renders without client-side JavaScript.

Step 4: Structuring content for people and search

Each page was written and structured around what visitors need to know.

Actions taken

  • Used one clear H1 per page and logical heading hierarchies throughout.
  • Added a table of contents, key highlights, and FAQs to long-form articles.
  • Wrote descriptive link text instead of generic “click here” links.
  • Built accessible pages with semantic HTML, visible focus states, and good color contrast.

Result: Content that's easy to scan, easy for search engines to understand, and accessible to everyone.

Pro tip: Accessibility and SEO overlap a lot. Clear headings, descriptive links, and alt text help screen readers and search engines in the same way.

Step 5: Managing content with a headless CMS

Payload CMS makes it easy to keep the site updated without touching code.

Actions taken

  • Set up collections for posts, case studies, experience, testimonials, and tools.
  • Kept SEO fields such as slugs, excerpts, and image alt text editable for every entry.
  • Pages update automatically when content is published, without a full rebuild.

Result: A website that can grow with new articles and case studies while keeping its SEO structure intact.

Key takeaways

  • Plan the site structure before designing pages.
  • Build technical SEO in from the start — it's harder to fix later.
  • Treat performance as part of the design, not a final check.
  • Write for people first, then structure it so search engines can follow.
  • Choose a CMS that keeps SEO fields editable.

Pro tip

If you're rebuilding a website, write down your URL structure, page titles, and internal links before you start designing. It's much easier to build SEO in than to bolt it on afterwards.

Conclusion

NarayanSEO shows the same approach I bring to client websites: a clear structure, a solid technical foundation, fast pages, and content organized around what visitors need. It's also an ongoing project — I keep testing and improving it as I learn what works.