SEO usually brings to mind meta tags and sitemaps, but those are the last step. The decisions that actually matter happen when you decide on your URL structure and i18n strategy.
When I set up jhun.tech with separate locale segments under /tr and /en, I defined the canonical/hreflang relationship via alternates.languages for every static and dynamic page from day one. Trying to add this later is far harder than fixing canonicals that search engines have already indexed incorrectly.
A common mistake when using Next.js's generateMetadata function is returning a 200 status and a generic title even when data isn't found on dynamic pages (like project or blog details). Instead, tying the 'not found' state to a real 404 prevents search engines from indexing thin-content pages.
On the structured data side, embedding Person, Organization, BlogPosting, and SoftwareApplication JSON-LD schemas into project and blog detail pages is a basic but often-skipped step for getting rich snippets in search results. Rendering those schemas server-side, rather than injecting them as a script after the page renders, lets search engines read the data without depending on executing JavaScript.
Finally, set robots.txt settings like crawl-delay based on your own server capacity rather than copying them from a random large site — unnecessarily throttling search bots just delays your organic traffic.
{ }
