<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sgard</title>
    <description>The latest articles on DEV Community by sgard (@sgard_5f0618276575f).</description>
    <link>https://dev.to/sgard_5f0618276575f</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3969321%2F29d74af2-87d5-464c-836e-9f1d5edbac7f.png</url>
      <title>DEV Community: sgard</title>
      <link>https://dev.to/sgard_5f0618276575f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sgard_5f0618276575f"/>
    <language>en</language>
    <item>
      <title>How I Organize a Small Next.js Content Hub by Search Intent</title>
      <dc:creator>sgard</dc:creator>
      <pubDate>Fri, 05 Jun 2026 06:48:56 +0000</pubDate>
      <link>https://dev.to/sgard_5f0618276575f/how-i-organize-a-small-nextjs-content-hub-by-search-intent-fja</link>
      <guid>https://dev.to/sgard_5f0618276575f/how-i-organize-a-small-nextjs-content-hub-by-search-intent-fja</guid>
      <description>&lt;p&gt;When building a small content site, the framework is usually not the hardest part.&lt;/p&gt;

&lt;p&gt;The harder part is deciding what each page should be responsible for.&lt;/p&gt;

&lt;p&gt;A lot of sites start as a simple article list. That works for a while, but it becomes messy when visitors arrive with different search intents.&lt;/p&gt;

&lt;p&gt;Some users want to learn what something means. Some want download or setup information. Others are trying to fix a specific issue.&lt;/p&gt;

&lt;p&gt;Those users should not all land on the same generic page.&lt;/p&gt;

&lt;h2&gt;
  
  
  The structure I use
&lt;/h2&gt;

&lt;p&gt;For a small Next.js content hub, I like to separate routes by intent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Homepage: broad entry point&lt;/li&gt;
&lt;li&gt;Learn hub: basic explanations and guides&lt;/li&gt;
&lt;li&gt;Learn detail pages: specific guide topics&lt;/li&gt;
&lt;li&gt;Download page: download or install intent&lt;/li&gt;
&lt;li&gt;Fix hub: troubleshooting entry point&lt;/li&gt;
&lt;li&gt;Fix detail pages: specific issue pages&lt;/li&gt;
&lt;li&gt;English and Japanese routes: language-specific entry points&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This structure is simple, but it keeps the site easier to maintain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Page role comes first
&lt;/h2&gt;

&lt;p&gt;Before writing a page, I define its role.&lt;/p&gt;

&lt;p&gt;A learn page answers what something is, how it works, and what a beginner should understand first.&lt;/p&gt;

&lt;p&gt;A download page answers where a user should get something, what should be checked before installing, and which platform or device matters.&lt;/p&gt;

&lt;p&gt;A fix page answers what is not working, what should be checked first, and whether the problem is related to permissions, notifications, device settings, or installation.&lt;/p&gt;

&lt;p&gt;The page role decides the title, description, internal links, and body structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this helps SEO
&lt;/h2&gt;

&lt;p&gt;This approach helps avoid pages competing with each other.&lt;/p&gt;

&lt;p&gt;For example, a download page should not try to rank for every tutorial query. A troubleshooting page should not read like a general homepage.&lt;/p&gt;

&lt;p&gt;Each page can link to related pages, but the primary intent stays clear.&lt;/p&gt;

&lt;p&gt;That makes the site cleaner for both users and search engines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metadata and sitemap discipline
&lt;/h2&gt;

&lt;p&gt;In a Next.js App Router project, I also like to keep metadata and sitemap updates close to the route change.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If a public SEO route is added, check the sitemap.&lt;/li&gt;
&lt;li&gt;If a page is only legal or utility content, do not automatically treat it as an SEO page.&lt;/li&gt;
&lt;li&gt;Keep title and description aligned with the page role.&lt;/li&gt;
&lt;li&gt;Avoid mixing unrelated intents in the same metadata.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a small habit, but it prevents messy indexing later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Internal links should route intent
&lt;/h2&gt;

&lt;p&gt;Internal links should help users move to the next useful page.&lt;/p&gt;

&lt;p&gt;A learn page can link to download if the user is ready to install.&lt;/p&gt;

&lt;p&gt;A download page can link to troubleshooting if installation is not the issue.&lt;/p&gt;

&lt;p&gt;A fix page can link back to a guide if the user misunderstood the basic workflow.&lt;/p&gt;

&lt;p&gt;That is more useful than adding a generic list of links everywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multilingual pages need intent review
&lt;/h2&gt;

&lt;p&gt;If the site has multiple languages, I do not treat every language as a direct copy.&lt;/p&gt;

&lt;p&gt;Different markets search differently.&lt;/p&gt;

&lt;p&gt;A Japanese page may need a different explanation than a Korean page. An English page may be better as a broad overview.&lt;/p&gt;

&lt;p&gt;The route structure can be similar, but the content should still match the local search intent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical checklist
&lt;/h2&gt;

&lt;p&gt;Before publishing a page, I ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is this page role?&lt;/li&gt;
&lt;li&gt;What single intent should this page satisfy?&lt;/li&gt;
&lt;li&gt;What should the user do next?&lt;/li&gt;
&lt;li&gt;Could this page compete with another route?&lt;/li&gt;
&lt;li&gt;Should this page be included in the sitemap?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those five questions keep a small content hub from turning into a pile of loosely related posts.&lt;/p&gt;

&lt;p&gt;I used this approach on a small Next.js information project here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://setloghub.com/" rel="noopener noreferrer"&gt;https://setloghub.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>nextjs</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
