SEO notes
SEO for frontend developers: metadata, sitemaps, and structured data
An official-source-backed SEO checklist for frontend developers building with Next.js: metadata, canonical URLs, sitemaps, robots.txt, BlogPosting schema, and localized pages.
Search needs clear, helpful pages
A one-page portfolio can rank, but supporting pages make expertise easier to discover. Blog posts and case studies give search engines specific topics to crawl and give visitors more proof than a single landing page can provide.
Google's official guidance focuses on creating helpful, reliable, people-first content. For frontend developers, that means writing pages that explain real technical decisions: metadata strategy, accessibility trade-offs, performance work, design systems, and how UI decisions affect product outcomes.
Each important page should have a distinct title, description, canonical URL, and language alternate when the site is localized. These signals reduce ambiguity and make the page easier to present correctly in search results and social previews.
Use Next.js Metadata API for route-level SEO
Next.js App Router provides the generateMetadata function for dynamic metadata and static metadata exports for route-level metadata. This is the official API surface for title, description, robots, Open Graph, Twitter, alternates, and other metadata fields in App Router projects.
A portfolio should avoid one generic site-wide title for every page. The homepage, blog index, and each article should have page-specific metadata based on the real content of that route.
When the blog is localized, metadata should use the same content model as the rendered page. That keeps English and Turkish titles, descriptions, canonical URLs, and alternate links consistent.
Create sitemap and robots routes
Google's sitemap documentation says a sitemap provides information about pages, files, and relationships between them, helping search engines crawl the site more efficiently. It can also include last modified dates and alternate language versions.
A sitemap does not guarantee indexing, but it is still useful for new sites, sites with few external links, and sites with content that may not be discovered quickly through links alone.
In Next.js, app/sitemap.ts and app/robots.ts are clean integration points. The sitemap should include localized homepages, blog index pages, and each blog article. Robots should allow important content and reference the sitemap URL.
Add BlogPosting structured data
Schema.org defines BlogPosting as a more specific type of SocialMediaPosting and Article. It is appropriate for blog article pages when the content is an actual post with a headline, author, publication date, and body.
For a developer portfolio blog, BlogPosting JSON-LD can include headline, description, datePublished, dateModified, author, publisher, inLanguage, URL, and keywords. These fields help machines understand the page type and authorship.
Structured data should describe visible content. It should not invent ratings, fake reviews, fake authors, or claims that are not present on the page.
Make internal links intentional
Search engines discover pages through links. A portfolio should link from the homepage to the blog, from portfolio cards to relevant case studies, and from articles to related posts.
Internal links also help visitors. A user reading about portfolio SEO should be able to jump into a related case study, contact section, or another article without returning to the top-level navigation.
The anchor text should describe the destination. Labels such as read case study, SEO for frontend developers, or Next.js portfolio architecture are more useful than vague labels when they match the actual destination.
Frequently asked questions
What metadata should every blog post have?
Each blog post should have a unique title, meta description, canonical URL, Open Graph title and description, publication date, language information, and author information. Localized posts should also include alternate language URLs.
Does a sitemap guarantee that Google indexes every page?
No. Google's documentation says a sitemap helps search engines discover URLs, but it does not guarantee crawling or indexing. It is still useful because it tells search engines which pages are important.
What structured data fits a blog article?
BlogPosting structured data fits article-style blog pages. It can describe headline, author, published date, modified date, language, URL, and keywords when those facts match the visible page.