The Technical Layer Most Portfolios Skip Your portfolio looks great. The pieces are strong. The mobile rendering is clean. You sent the link to 12 studios and heard back from one. Six months later,...
The Technical Layer Most Portfolios Skip
Your portfolio looks great. The pieces are strong. The mobile rendering is clean. You sent the link to 12 studios and heard back from one. Six months later, you Google your own name and your portfolio sits on page three behind a 10-year-old Pinterest board.
This is the SEO problem specific to portfolio sites. Most portfolio guides skip it because the audience does not expect technical depth. Most site builders ship pages with weak technical SEO foundations and the creator never knows because the surface looks polished.
This guide expands the SEO basics referenced in the Indie Creator Portfolio Playbook. The pillar covers what to build. This one covers how to make it findable.
The right SEO checklist depends on whether you host your portfolio on your own domain or on a platform.
If you host on a profile-driven platform (Devdazzle, an industry-standard portfolio platform, or similar), the platform handles most of the technical layer for you. Title tags get generated from your profile data. Structured data (Person and CreativeWork schema) is added automatically. The platform's root domain has its own sitemap, robots.txt, and search engine indexing. You do not control those settings, and you do not need to.
If you host on your own domain, you control every setting and bear the responsibility of getting them right. The full checklist below applies.
The strongest portfolio strategies use both. A platform profile for discovery within that audience, plus a self-hosted site for SEO authority you own outright. Each section that follows is tagged with which scenario it applies to.
The single biggest SEO factor for portfolio pages is the text you write next to your images. Search engines cannot read pixels. They read words.
On any platform, the description field is your ranking surface. A piece with two sentences of description and twelve images cannot rank against a page with a 200-word case study explaining the project. This applies on your own site, on Devdazzle, on any industry-standard portfolio platform, anywhere your work lives.
Write 150 to 250 words per project description. Cover the problem, the constraints, your role, and a measurable outcome. Generic project pages ("a character I made") get skipped by search ranking algorithms. Specific project pages ("optimized for mobile delivery at 4K texture resolution") rank because the keywords match what people actually search for.
Images are the bulk of your portfolio's content. They are also the bulk of what search engines cannot read without help.
Alt Text Discipline
Every image needs a unique, descriptive alt text. "image1.jpg" or "portfolio piece" wastes the ranking opportunity. This is true whether you upload to your own site or to a platform that asks for alt text on upload.
Good alt text describes the actual content. "Stylized female warrior character, low-poly, 3,400 triangles, hand-painted texture pass, three-quarter front view." A screen reader user understands the image. A search engine indexes the relevant keywords.
Bad alt text is the default the platform or CMS produces. Audit every image after upload regardless of where you host.
File Names
The image file name is a small ranking signal that survives upload on most platforms. "fortress-environment-hero.jpg" beats "DSC_0234.jpg" by a small but real margin. Rename your hero images and process shots before upload.
Format and Compression
For self-hosted: use WebP for everything except where compatibility matters. WebP delivers meaningfully smaller files than JPEG at equivalent quality (Google's reported test set averaged 25 to 34 percent smaller than JPEG at equivalent SSIM). Smaller files mean faster page loads, which factor into mobile ranking.
For platform uploads: the platform usually re-encodes your image. You still control the source quality you upload, so start with a clean source rather than an over-compressed JPEG.
For hero images on a self-hosted site, target under 200 KB. For process work, under 80 KB.
If you host on Devdazzle or any other platform, the platform generates your page title and meta description from your profile and project data. You cannot change the format, and you should not need to. Skip ahead to the next applicable section.
If you host your own portfolio site, the title tag is the strongest on-page SEO signal. Most self-hosted portfolios get this wrong because the static site generator defaults to "Home" or the site name.
Homepage Title Formula
"[Your Name] - [Discipline]" works on a self-hosted homepage. "Jane Doe - 3D Character Artist for Games" outranks "Home | Jane Doe."
Avoid stacking keywords. "Jane Doe - 3D Character Artist | 3D Modeling | Game Art | Substance Painter | Maya | Blender" reads as spam to ranking algorithms. Three keywords maximum, separated by hyphens or pipes.
Project Page Title Formula
"[Project Name] - [Your Name] - [Discipline]" works for most projects on a self-hosted site. "Fortress Environment - Jane Doe - 3D Environment Artist" tells the reader and the algorithm what they are looking at without ambiguity.
Meta Descriptions
The meta description is your roughly 155-character pitch in search results. It does not affect ranking directly but it affects click-through rate at a given ranking position. A clear, action-oriented meta description outperforms a generic one consistently in real-world tests.
Format: action plus outcome plus tools. "Stylized fantasy environment built in Unreal 5, 4K textures, optimized for mobile delivery. Process breakdown and asset list included." That sells the click better than "A 3D environment I made in 2024."
Platforms like Devdazzle add Person and CreativeWork schema to your profile automatically. You do not need to write JSON-LD yourself.
If you host your own site, schema markup tells search engines what your site is in machine-readable form. Most self-hosted portfolio sites have none. The ones that do appear in rich results with thumbnails, byline photos, and discipline labels displayed prominently.
The two schemas that matter are Person (for your profile) and CreativeWork (for each project).
Person Schema for the Homepage
Add a JSON-LD script in your head section with these fields: an @type of Person, your full name, your portfolio URL, an absolute URL to a profile photo, a sameAs array listing your other platform URLs (your Devdazzle profile, social handles, code-hosting profile, any industry portfolio platform profile), a jobTitle matching your discipline, and a worksFor Organization with name "Freelance" or your employer.
The sameAs array is the field most creators skip. It tells Google your identity across platforms. The same name on multiple platforms reads as a single canonical identity, which strengthens ranking for your name across all of them.
CreativeWork Schema for Each Project
Per-project, the fields are @type set to CreativeWork, the project name, a creator reference pointing back to your Person schema, the hero image URL, an ISO date for when the work was created, and a keywords field listing style, engine, and discipline.
Validate every schema before going live with Google's Rich Results Test. A malformed schema returns no ranking benefit and can cause crawl errors.
Platforms manage their own crawl files. Devdazzle's root domain has its own sitemap, robots.txt, and llms.txt covering all profile and content pages. You inherit that infrastructure without doing anything.
For self-hosted sites, three files at your root domain tell crawlers how to read your site.
sitemap.xml
Lists every page on your site with last-modified dates. Most static site generators produce this automatically at /sitemap.xml. Confirm it exists. If not, generate one and host it manually.
A self-hosted portfolio sitemap should include every project page plus the homepage. Skip thumbnail archives and tag pages.
robots.txt
Tells crawlers which paths to skip. Keep it minimal. Three lines: a user-agent rule applying to all crawlers, an allow rule for the root path, and a sitemap line pointing to your sitemap URL.
Most self-hosted portfolio sites do not need to block crawlers from anything. Resist the temptation to add complex rules. Misconfigured robots.txt files have de-ranked entire sites by accident.
llms.txt
The newer file. AI search engines read llms.txt for context about your site. Add it at /llms.txt as plain text. Twenty lines maximum. Start with your name as a heading, a one-sentence description of your discipline, a list of your top project URLs, and your contact info.
If you host on Devdazzle or another platform, the platform's root domain is already indexed by Google and Bing. Your profile inherits that indexing. You do not submit your profile URL separately, and the platform does not allow it to be added as a property in its own right.
For self-hosted sites, two free submissions take ten minutes combined.
Google Search Console: add your domain as a property, verify via DNS TXT record or HTML meta tag, submit your sitemap. GSC also shows you which queries surface your site, which pages get clicks, and what is indexed.
Bing Webmaster Tools: same flow. They added an import button that pulls your GSC setup automatically. Use it.
Skip third-party SEO submission services that promise to submit your site to hundreds of search engines. The only ones that matter are Google and Bing. Yandex if you target Russian-speaking audiences. Baidu if you target Chinese.
This is the work that matters most for platform-hosted creators and matters significantly for self-hosted creators.
Add your platform profiles to your Devdazzle profile's external links. Add your Devdazzle profile URL to your other public platform profiles (industry portfolio platforms, social handles, code-hosting profile). Add it to the sameAs array if you have a self-hosted site with Person schema. The cross-linking builds a single identity that search engines recognize as one canonical creator across platforms.
The same logic applies to project pages. If you have a Devdazzle project showcasing a 3D character and a process write-up on your blog, link each to the other. Each platform's authority feeds into the other.
Five patterns that apply across both scenarios.
Duplicate Meta Descriptions or Project Summaries
Whether on your own site or on a platform, copying the same description across multiple pieces reads as low-effort. Write a unique description per project even if it takes more time.
Missing or Broken Cross-Links
A piece on Devdazzle that does not link to the matching piece on your own site (and vice versa) leaks search authority. Cross-link wherever the same work appears.
Slow Loading on Mobile (Self-Hosted Mostly)
Self-hosted sites can produce very slow mobile loading if you use large uncompressed images or heavy frameworks. Platform-hosted profiles inherit the platform's mobile optimization. For self-hosted, page speed is a ranking factor: aim for Largest Contentful Paint under the "good" Core Web Vitals threshold (2.5 seconds) and ideally faster on mid-range mobile hardware.
No Internal Linking Between Projects
Project pages that do not link to each other waste authority. Most platforms (including Devdazzle) link related work automatically through the profile structure. On a self-hosted site, add a "More projects" section to every project page with 3-4 thumbnail links to related pieces.
Forgetting to Update After URL Changes
You renamed a project. The old URL returns 404. Search engines that indexed the old URL now show a broken link. Platforms generally handle redirects automatically. For self-hosted sites, set up 301 redirects from old URLs to new ones whenever you change a slug.
A few weeks after you ship the SEO setup on a self-hosted site, check your indexing in Google Search Console. The Coverage report shows how many pages have been indexed. The Performance report shows what searches surface your site.
If indexed pages are far below the count you submitted, there is a technical problem. Most common causes are broken canonical tags, slow page loads, or robots.txt misconfiguration.
For platform-hosted profiles, the equivalent check is searching your own name and discipline in Google. New small sites and pages typically take 1 to 4 weeks for initial indexing on Google, and meaningful ranking can take an additional 2 to 6 months as Google evaluates the content (Google indexing timeline). If your profile does not surface in your own name search after several months, the content may be too thin to compete.
SEO does not produce overnight results. Indexed pages typically take a couple of months to start appearing in stable rankings, with most sites reaching meaningful search performance in three to six months (longer in competitive verticals) (SEO timeline benchmarks). Once rankings stabilize, the curve compounds. A portfolio that gets the technical setup right in year one (whether self-hosted, platform-hosted, or both) shows in search results indefinitely afterward.
The work is one-time. The payoff is durable. This is the closest thing to a free distribution channel an indie creator has.
Your portfolio looks great. The pieces are strong. The mobile rendering is clean. You sent the link to 12 studios and heard back from one. Six months later, you Google your own name and your portfolio sits on page three behind a 10-year-old Pinterest board.
This is the SEO problem specific to portfolio sites. Most portfolio guides skip it because the audience does not expect technical depth. Most site builders ship pages with weak technical SEO foundations and the creator never knows because the surface looks polished.
This guide expands the SEO basics referenced in the Indie Creator Portfolio Playbook. The pillar covers what to build. This one covers how to make it findable.
Where You Host Determines What You Control
The right SEO checklist depends on whether you host your portfolio on your own domain or on a platform.
If you host on a profile-driven platform (Devdazzle, an industry-standard portfolio platform, or similar), the platform handles most of the technical layer for you. Title tags get generated from your profile data. Structured data (Person and CreativeWork schema) is added automatically. The platform's root domain has its own sitemap, robots.txt, and search engine indexing. You do not control those settings, and you do not need to.
If you host on your own domain, you control every setting and bear the responsibility of getting them right. The full checklist below applies.
The strongest portfolio strategies use both. A platform profile for discovery within that audience, plus a self-hosted site for SEO authority you own outright. Each section that follows is tagged with which scenario it applies to.
Project Descriptions and Page Content (Applies to Both)
The single biggest SEO factor for portfolio pages is the text you write next to your images. Search engines cannot read pixels. They read words.
On any platform, the description field is your ranking surface. A piece with two sentences of description and twelve images cannot rank against a page with a 200-word case study explaining the project. This applies on your own site, on Devdazzle, on any industry-standard portfolio platform, anywhere your work lives.
Write 150 to 250 words per project description. Cover the problem, the constraints, your role, and a measurable outcome. Generic project pages ("a character I made") get skipped by search ranking algorithms. Specific project pages ("optimized for mobile delivery at 4K texture resolution") rank because the keywords match what people actually search for.
Image SEO (Applies to Both)
Images are the bulk of your portfolio's content. They are also the bulk of what search engines cannot read without help.
Alt Text Discipline
Every image needs a unique, descriptive alt text. "image1.jpg" or "portfolio piece" wastes the ranking opportunity. This is true whether you upload to your own site or to a platform that asks for alt text on upload.
Good alt text describes the actual content. "Stylized female warrior character, low-poly, 3,400 triangles, hand-painted texture pass, three-quarter front view." A screen reader user understands the image. A search engine indexes the relevant keywords.
Bad alt text is the default the platform or CMS produces. Audit every image after upload regardless of where you host.
File Names
The image file name is a small ranking signal that survives upload on most platforms. "fortress-environment-hero.jpg" beats "DSC_0234.jpg" by a small but real margin. Rename your hero images and process shots before upload.
Format and Compression
For self-hosted: use WebP for everything except where compatibility matters. WebP delivers meaningfully smaller files than JPEG at equivalent quality (Google's reported test set averaged 25 to 34 percent smaller than JPEG at equivalent SSIM). Smaller files mean faster page loads, which factor into mobile ranking.
For platform uploads: the platform usually re-encodes your image. You still control the source quality you upload, so start with a clean source rather than an over-compressed JPEG.
For hero images on a self-hosted site, target under 200 KB. For process work, under 80 KB.
Title Tags and Meta Descriptions (Self-Hosted Only)
If you host on Devdazzle or any other platform, the platform generates your page title and meta description from your profile and project data. You cannot change the format, and you should not need to. Skip ahead to the next applicable section.
If you host your own portfolio site, the title tag is the strongest on-page SEO signal. Most self-hosted portfolios get this wrong because the static site generator defaults to "Home" or the site name.
Homepage Title Formula
"[Your Name] - [Discipline]" works on a self-hosted homepage. "Jane Doe - 3D Character Artist for Games" outranks "Home | Jane Doe."
Avoid stacking keywords. "Jane Doe - 3D Character Artist | 3D Modeling | Game Art | Substance Painter | Maya | Blender" reads as spam to ranking algorithms. Three keywords maximum, separated by hyphens or pipes.
Project Page Title Formula
"[Project Name] - [Your Name] - [Discipline]" works for most projects on a self-hosted site. "Fortress Environment - Jane Doe - 3D Environment Artist" tells the reader and the algorithm what they are looking at without ambiguity.
Meta Descriptions
The meta description is your roughly 155-character pitch in search results. It does not affect ranking directly but it affects click-through rate at a given ranking position. A clear, action-oriented meta description outperforms a generic one consistently in real-world tests.
Format: action plus outcome plus tools. "Stylized fantasy environment built in Unreal 5, 4K textures, optimized for mobile delivery. Process breakdown and asset list included." That sells the click better than "A 3D environment I made in 2024."
Schema.org Structured Data (Self-Hosted Only)
Platforms like Devdazzle add Person and CreativeWork schema to your profile automatically. You do not need to write JSON-LD yourself.
If you host your own site, schema markup tells search engines what your site is in machine-readable form. Most self-hosted portfolio sites have none. The ones that do appear in rich results with thumbnails, byline photos, and discipline labels displayed prominently.
The two schemas that matter are Person (for your profile) and CreativeWork (for each project).
Person Schema for the Homepage
Add a JSON-LD script in your head section with these fields: an @type of Person, your full name, your portfolio URL, an absolute URL to a profile photo, a sameAs array listing your other platform URLs (your Devdazzle profile, social handles, code-hosting profile, any industry portfolio platform profile), a jobTitle matching your discipline, and a worksFor Organization with name "Freelance" or your employer.
The sameAs array is the field most creators skip. It tells Google your identity across platforms. The same name on multiple platforms reads as a single canonical identity, which strengthens ranking for your name across all of them.
CreativeWork Schema for Each Project
Per-project, the fields are @type set to CreativeWork, the project name, a creator reference pointing back to your Person schema, the hero image URL, an ISO date for when the work was created, and a keywords field listing style, engine, and discipline.
Validate every schema before going live with Google's Rich Results Test. A malformed schema returns no ranking benefit and can cause crawl errors.
Crawl Files: Sitemap, Robots.txt, llms.txt (Self-Hosted Only)
Platforms manage their own crawl files. Devdazzle's root domain has its own sitemap, robots.txt, and llms.txt covering all profile and content pages. You inherit that infrastructure without doing anything.
For self-hosted sites, three files at your root domain tell crawlers how to read your site.
sitemap.xml
Lists every page on your site with last-modified dates. Most static site generators produce this automatically at /sitemap.xml. Confirm it exists. If not, generate one and host it manually.
A self-hosted portfolio sitemap should include every project page plus the homepage. Skip thumbnail archives and tag pages.
robots.txt
Tells crawlers which paths to skip. Keep it minimal. Three lines: a user-agent rule applying to all crawlers, an allow rule for the root path, and a sitemap line pointing to your sitemap URL.
Most self-hosted portfolio sites do not need to block crawlers from anything. Resist the temptation to add complex rules. Misconfigured robots.txt files have de-ranked entire sites by accident.
llms.txt
The newer file. AI search engines read llms.txt for context about your site. Add it at /llms.txt as plain text. Twenty lines maximum. Start with your name as a heading, a one-sentence description of your discipline, a list of your top project URLs, and your contact info.
Indexing: GSC and Bing Submission (Self-Hosted Only)
If you host on Devdazzle or another platform, the platform's root domain is already indexed by Google and Bing. Your profile inherits that indexing. You do not submit your profile URL separately, and the platform does not allow it to be added as a property in its own right.
For self-hosted sites, two free submissions take ten minutes combined.
Google Search Console: add your domain as a property, verify via DNS TXT record or HTML meta tag, submit your sitemap. GSC also shows you which queries surface your site, which pages get clicks, and what is indexed.
Bing Webmaster Tools: same flow. They added an import button that pulls your GSC setup automatically. Use it.
Skip third-party SEO submission services that promise to submit your site to hundreds of search engines. The only ones that matter are Google and Bing. Yandex if you target Russian-speaking audiences. Baidu if you target Chinese.
Cross-Platform Linking (Applies to Both)
This is the work that matters most for platform-hosted creators and matters significantly for self-hosted creators.
Add your platform profiles to your Devdazzle profile's external links. Add your Devdazzle profile URL to your other public platform profiles (industry portfolio platforms, social handles, code-hosting profile). Add it to the sameAs array if you have a self-hosted site with Person schema. The cross-linking builds a single identity that search engines recognize as one canonical creator across platforms.
The same logic applies to project pages. If you have a Devdazzle project showcasing a 3D character and a process write-up on your blog, link each to the other. Each platform's authority feeds into the other.
Common Mistakes
Five patterns that apply across both scenarios.
Duplicate Meta Descriptions or Project Summaries
Whether on your own site or on a platform, copying the same description across multiple pieces reads as low-effort. Write a unique description per project even if it takes more time.
Missing or Broken Cross-Links
A piece on Devdazzle that does not link to the matching piece on your own site (and vice versa) leaks search authority. Cross-link wherever the same work appears.
Slow Loading on Mobile (Self-Hosted Mostly)
Self-hosted sites can produce very slow mobile loading if you use large uncompressed images or heavy frameworks. Platform-hosted profiles inherit the platform's mobile optimization. For self-hosted, page speed is a ranking factor: aim for Largest Contentful Paint under the "good" Core Web Vitals threshold (2.5 seconds) and ideally faster on mid-range mobile hardware.
No Internal Linking Between Projects
Project pages that do not link to each other waste authority. Most platforms (including Devdazzle) link related work automatically through the profile structure. On a self-hosted site, add a "More projects" section to every project page with 3-4 thumbnail links to related pieces.
Forgetting to Update After URL Changes
You renamed a project. The old URL returns 404. Search engines that indexed the old URL now show a broken link. Platforms generally handle redirects automatically. For self-hosted sites, set up 301 redirects from old URLs to new ones whenever you change a slug.
Did It Work?
A few weeks after you ship the SEO setup on a self-hosted site, check your indexing in Google Search Console. The Coverage report shows how many pages have been indexed. The Performance report shows what searches surface your site.
If indexed pages are far below the count you submitted, there is a technical problem. Most common causes are broken canonical tags, slow page loads, or robots.txt misconfiguration.
For platform-hosted profiles, the equivalent check is searching your own name and discipline in Google. New small sites and pages typically take 1 to 4 weeks for initial indexing on Google, and meaningful ranking can take an additional 2 to 6 months as Google evaluates the content (Google indexing timeline). If your profile does not surface in your own name search after several months, the content may be too thin to compete.
The Compounding Curve
SEO does not produce overnight results. Indexed pages typically take a couple of months to start appearing in stable rankings, with most sites reaching meaningful search performance in three to six months (longer in competitive verticals) (SEO timeline benchmarks). Once rankings stabilize, the curve compounds. A portfolio that gets the technical setup right in year one (whether self-hosted, platform-hosted, or both) shows in search results indefinitely afterward.
The work is one-time. The payoff is durable. This is the closest thing to a free distribution channel an indie creator has.