DEV Community

Sandeep Singh
Sandeep Singh

Posted on

SEO Health Basics for Personal Websites and Portfolios

A personal website does a specific job. When a recruiter, client, conference organiser or potential collaborator searches your name, it should come up, look professional and lead them to your best work. You don't need to rank for competitive keywords. You need to be findable for your name and your niche, and you need the site to work when someone arrives.

That second part gets overlooked. Portfolios are built once, often in a weekend, and then left alone for years while the things they link to change underneath them: demo apps on free hosting tiers get shut down, repos get renamed or archived, client sites get redesigned, conference talk pages disappear. The person reviewing your work doesn't know any of that. They just see a broken link next to your name.

This guide is a health check, not a growth hack. It covers what to set up once, and what to check regularly so the site keeps doing its job.

Part 1: Can Google find and index your site?

Verify in Search Console

Add your site to Google Search Console. It's free, and it's the only direct source of truth about how Google sees your site. After verification:

  • Use URL Inspection on your homepage. It tells you whether the page is indexed and, if not, why.
  • Check Indexing → Pages for pages excluded by noindex, redirects or errors.

Check you haven't hidden the site by accident

A common portfolio problem is a noindex left over from development, or a theme setting like WordPress's "Discourage search engines from indexing this site" left ticked. Google's documentation is explicit: when it finds the noindex rule, it will "drop that page entirely from Google Search results, regardless of whether other sites link to it" (Block Search indexing with noindex). View the page source and search for noindex, and check response headers for X-Robots-Tag:

curl -sI https://yourname.dev | grep -i x-robots-tag
Enter fullscreen mode Exit fullscreen mode

Also check robots.txt isn't blocking everything (Disallow: /). Note that the same Google page warns that if robots.txt blocks a page, Google can't see its noindex rule at all, so don't combine the two.

Do you need a sitemap?

Probably not urgently. Google says you might not need a sitemap if your site is "small", about 500 pages or fewer, and comprehensively linked internally (Sitemaps overview). Most portfolios qualify. If your static site generator or CMS produces one automatically, though, submitting it in Search Console doesn't hurt.

Part 2: Make your links crawlable

This one catches a lot of developer portfolios, especially single-page apps.

Google's link guidance says that, generally, Google "can only crawl your link if it's an <a> HTML element ... with an href attribute", and that most other formats won't be parsed (Link best practices). So if your navigation is built from <div onClick> or <button> elements that change routes in JavaScript, crawlers may never discover your project pages.

<!-- Crawlable -->
<a href="/projects/weather-app">Weather app</a>

<!-- Not reliably crawlable -->
<span onclick="router.push('/projects/weather-app')">Weather app</span>
<button onclick="goTo('weather')">Weather app</button>
Enter fullscreen mode Exit fullscreen mode

Most frameworks' router link components (<Link> in Next.js, <router-link> in Vue, and so on) render a real <a href>, so use those rather than click handlers. A quick check: disable JavaScript in your browser and see whether you can still navigate.

Part 3: Titles and descriptions

Page titles

The <title> is usually the clickable headline in search results. Google's guidance asks for titles that are descriptive and concise, unique to each page, and free of keyword stuffing (Title links). For a portfolio:

  • Homepage: Ana Rivera, Frontend Developer in Lisbon
  • Project page: Weather App (React, Mapbox) | Ana Rivera
  • Blog post: the post's actual title, plus your name if it fits

The commonest problem on portfolios is every page sharing the same title, like "Portfolio" or "Home", because the template was never changed.

Meta descriptions

Google says snippets are primarily created from the page content, but it "sometimes uses the meta description HTML element if it might give users a more accurate description of the page" (Snippets). Write a unique, plain-English description for at least the homepage and key projects. One or two sentences on who you are, what you do and what's on the page is enough.

Duplicate URLs

If your site responds on both www and non-www, or on both http and https, pick one version and redirect the others to it with a single 301. You can also add a rel="canonical" tag pointing at the preferred URL. Google treats canonical tags as a strong signal for choosing which duplicate to show, but not as a guarantee (Consolidate duplicate URLs).

Part 4: The links that actually matter, to your work

Here's where personal sites lose the most value. A portfolio is a set of claims ("I built this", "I spoke here", "I wrote this") backed by links. When the links die, the claims look unverifiable.

Link rot is not a fringe problem. Pew Research Center found that 38% of webpages that existed in 2013 were no longer accessible a decade later, and even of pages collected in 2021, about one in five were gone two years later (Pew Research Center, 2024). A portfolio that links out to many projects, employers and talks is exposed to all of that.

Common culprits:

  • Live demos on free hosting tiers that sleep, expire or were deleted when you cleaned up your account
  • GitHub repos that were renamed, made private or moved to an organisation (GitHub redirects renamed repos, but not deleted or private ones)
  • Client and employer sites that were redesigned, so the specific page you built no longer exists
  • Talks and articles on event or publication sites that reorganised their archives
  • Your own old URLs after you moved from one static site generator or host to another

How to check

  • Crawl your own site with Screaming Frog SEO Spider (free for up to 500 URLs; limits). Enable external link checking, then look at Response Codes → Client Error (4xx) and Server Error (5xx), and use Inlinks to find which page holds each broken link.
  • Or script it. For a small site, a short script that pulls every href and requests each one is a fine weekend exercise. Treat timeouts and 5xx errors as "check again later" rather than definitely broken.
  • Look past status codes. A deleted demo on some hosts returns a 200 with a generic "app not found" page. Open your most important links by hand now and then.

How to fix

  • Update the link to the new location.
  • For a dead demo, replace it with a short screen recording or screenshots, and say the live version is offline.
  • For a deleted article or talk page, link to an archived copy in the Wayback Machine if one exists.
  • If you changed your own URL structure, redirect old paths to the new ones so links from other people's sites keep working.

Part 5: Images, HTTPS and speed

Images

Portfolios are image-heavy, and missing images are the most visible kind of breakage: a gallery of broken-image icons. After any move or rebuild, check every project page. For the images that work, add meaningful alt text. Google calls alt text "the most important attribute when it comes to providing more metadata for an image", and it also helps people using screen readers (Image SEO best practices).

HTTPS and mixed content

Serve everything over HTTPS. If an HTTPS page loads assets over plain HTTP, browsers treat that as mixed content. Some images, video and audio are automatically upgraded to HTTPS, and scripts, stylesheets and iframes are blocked outright (MDN: Mixed content). Old embeds and hard-coded http:// image URLs are the usual cause. Search your source for http://.

Speed

Run your homepage and a heavy project page through PageSpeed Insights or Lighthouse in Chrome DevTools. On portfolios the big wins are almost always oversized images (export at display size, use modern formats) and unnecessary third-party scripts.

Part 6: A maintenance routine that fits a side project

You won't audit your personal site every week, and you don't need to. A light routine:

After every change (deploy, redesign, host move):

  • Click through every page with JavaScript disabled
  • Check for noindex and robots.txt surprises
  • Confirm old URLs redirect in one hop

Monthly (10 minutes):

  • Glance at Search Console for new errors
  • Open your three most important project links by hand

Quarterly:

  • Full crawl with external link checking
  • Fix or replace dead demos, repos and article links
  • Update titles and descriptions if your role or focus has changed

Automate what's tedious. Link and image checks are the part that's easy to forget and easy for software to do. An automated daily check means a demo that dies the week before you apply for a job shows up as an email, not as a recruiter's silent impression.

Disclosure: I build Uchik, a tool for that last step. Uchik crawls your site every day and emails a short report of broken internal and external links, missing images, redirect chains, HTTPS problems and basic SEO gaps such as missing titles, meta descriptions and canonical tags, each with the page and HTML element to fix. The features page lists the checks, and the FAQ covers what it does and doesn't do. One limit is relevant here: links that only exist after JavaScript runs may be missed, which is one more reason to use real <a href> links. You can sign up for free, no credit card needed. Screaming Frog's free tier and a quarterly reminder in your calendar also work.

Quick checklist

  • [ ] Site verified in Search Console; homepage indexed
  • [ ] No stray noindex, X-Robots-Tag or Disallow: /
  • [ ] Navigation uses real <a href> links
  • [ ] Unique, descriptive <title> on every page
  • [ ] Meta descriptions on homepage and key projects
  • [ ] One canonical version of the domain (HTTPS, www or not)
  • [ ] No broken links to demos, repos, employers, talks or articles
  • [ ] No missing images; alt text on project images
  • [ ] No mixed content
  • [ ] Routine scheduled or automated

Your personal site is often the first piece of your work someone sees. Keeping it findable and unbroken is a small, regular job, and it's worth it.

Top comments (0)