Start with search intent at the route level
A portfolio should not rely on a single homepage to rank for every topic. Individual routes need a clear purpose so search engines and visitors can immediately understand what the page is about.
That means each route should have its own title, description, canonical URL, and content hierarchy. The page intent has to be visible in both the metadata and the body copy.
- Use one primary topic per page instead of mixing service, biography, and project content together.
- Write titles that combine the page purpose with relevant role or technology terms.
- Keep descriptions specific enough that they describe the actual page content, not the whole site.
Metadata should support content, not replace it
Good metadata helps indexing, but it does not fix a weak page. Search-friendly portfolio pages still need a readable headline structure, internal links, and content that explains the work in concrete terms.
For project and article pages, I treat metadata and visible content as one system. The title sets the expectation, the introduction confirms it, and the body expands on the implementation details.
Performance still matters for discoverability
SEO work is weaker if the page feels slow or unstable. Clean route composition, lighter bundles, and predictable layouts help both users and search engines reach the important content faster.
In Vite-based React apps, route-level pages, lean shared components, and static SEO snapshots make a strong combination because they preserve maintainability without giving up crawlable metadata.
- Avoid loading heavy page-only content into the home route.
- Prefer reusable page shells so new sections inherit the same quality baseline.
- Generate static snapshots for key routes when the app is otherwise client-rendered.