Many bloggers also do client work, freelance projects, or sell creative services. A portfolio section on your blog showcases that work and converts readers into clients. WordPress handles this several ways. This post is the practical guide.

Short answer: Use a custom post type for “Projects” (separate from blog posts). Either via a portfolio plugin (Portfolio Post Type, Visual Portfolio) or via your theme’s built-in portfolio feature. Display in grid with filters by category. Each project gets its own detailed page with images, description, and client info.
A portfolio page showing grid of project cards with category filters and project descriptions

Portfolios vs blog posts

A portfolio is structured differently than a blog:

  • Blog posts: chronological, text-heavy, regularly added.
  • Portfolio projects: showcase pieces, image-heavy, infrequently added, organized by category not date.

Mixing them in the same content type confuses both readers and SEO. Separate them.

Custom post types

The cleanest way to add a portfolio is via a custom post type called “Projects” or “Portfolio.”

Benefits:

  • Separate from blog posts in admin.
  • Own taxonomy (Project Categories, Project Tags).
  • Own template (portfolio archive page).
  • Own URL structure (yourdomain.com/portfolio/project-slug).

Options for adding the post type

Theme built-in

Many themes include portfolio support. Aurora supports portfolios. Other portfolio-friendly themes: Astra Pro, Kadence, Divi, Avada.

Check your theme’s documentation. If built-in, use it. Saves a plugin.

Portfolio plugins

If your theme doesn’t include portfolio:

  • Portfolio Post Type: simple, lightweight, free. Adds the post type and that’s it.
  • Visual Portfolio: free + pro. Adds post type and display blocks.
  • Essential Grid: paid. Powerful grid display capabilities.
  • WP Portfolio: dedicated portfolio plugin by Elegant Themes.

Custom code

For developers, registering a custom post type is 15 lines of PHP. Most bloggers go with a plugin or theme feature.

Designing project pages

Each individual project page should include:

  • Hero image or video of the project.
  • Project title.
  • Client name and link (if appropriate).
  • Project type / category.
  • Date completed.
  • The story: brief, the brief, the approach.
  • The work: gallery of images / screenshots / video.
  • Outcomes: results, metrics, testimonial.
  • Tools used.
  • Call to action: “Hire me for similar work.”

Don’t just dump images. The story and outcome turn a portfolio piece into a sales tool.

Portfolio archive (the main grid)

The main portfolio page shows all projects in a grid. Considerations:

  • Number of projects per row: 2–4 depending on density preference.
  • Hover effects: reveal project title and brief description on hover.
  • Filters: by category (web design, branding, photography, etc.).
  • Order: by date, by featured, or manual ordering.

Filtering options

Filtering by category is the most-requested portfolio feature. Implementation:

  • Isotope / MixItUp: JavaScript filtering. Smooth animation.
  • Page reload filtering: simpler, slightly less polished.
  • Search: add search-as-you-type for portfolios with many items.

Most portfolio plugins include filtering. Visual Portfolio and Essential Grid both do this well.

Portfolio grid with category filter buttons at top: All, Web, Branding, Photography

Image optimization for portfolios

Portfolios are image-heavy. Same rules as photography blogs:

  • Resize before upload (max 2000–2400px wide).
  • WebP format.
  • Compression plugin.
  • Lazy loading.
  • CDN.

A portfolio page with 30 unoptimized images will load in 10+ seconds. Visitors don’t wait.

Categories for portfolios

Project categories should match how clients search for you:

  • By service: web design, branding, illustration, photography.
  • By industry: tech, food, fashion, healthcare.
  • By project type: logo, website, app, print.

5–10 categories. Too many fragments the portfolio.

Case studies

For high-stakes work (paid client projects), consider going beyond portfolio entries to full case studies:

  • Long-form (1000–3000 words).
  • Problem the client faced.
  • Your approach.
  • Decisions and tradeoffs.
  • Outcomes with real numbers.
  • Testimonial.

Case studies convert better than image-only portfolios. They demonstrate thinking, not just output.

Testimonials

Testimonials per project or aggregated across the portfolio:

  • Real names.
  • Real photos.
  • Real company / role / link.
  • Specific praise (not generic “great to work with”).

Plugins: Strong Testimonials, Easy Testimonials. Or just hand-code them — testimonials don’t need a plugin.

Contact CTAs

The point of a portfolio is to get hired. Make contact easy:

  • Contact button visible on every project.
  • “Available for [X] projects starting [date]” status indicator.
  • Pricing info if you want to filter inquiries.
  • Direct calendar booking (Calendly embedded) for serious inquiries.

Portfolio + blog navigation

How portfolios fit in site navigation:

  • Top-level menu item: “Portfolio” or “Work” in main menu.
  • Linked from About: visitors learn who you are, then see what you’ve done.
  • Linked from blog posts: if you write about a topic you do client work in, link to relevant portfolio pieces.

SEO for portfolios

Portfolio pages can rank for service-related searches:

  • “[Your service] portfolio.”
  • “[Industry] [your service].”
  • “[Location] [your service].”

Write real text on portfolio pages, not just image galleries. Google needs text to understand the content.

Schema for creative work

CreativeWork schema is appropriate for portfolio entries. Most SEO plugins don’t auto-add it.

Schema fields:

  • Name.
  • Image.
  • Author / creator.
  • Date created.
  • Description.

Not strictly required for ranking. Helps with rich snippets potentially.

Photography portfolios specifically

For photographers, the portfolio IS the blog often. Considerations:

  • Image quality matters more than for other portfolios.
  • Watermarking debate (see the photography blog post).
  • Lightbox / gallery functionality.
  • Print-sale integration if you sell prints.

Writer portfolios specifically

Writers don’t have “images” of their work — they have published articles.

  • Embed PDFs or screenshots of published pieces.
  • List with title, publication, date, link.
  • Highlight metrics: word count, audience reach, awards.
  • Topic-based organization works well.

Developer portfolios specifically

For developers, code samples and live links matter:

  • Embed GitHub repos.
  • Show live URLs to deployed projects.
  • Include tech stack list.
  • Brief technical description.

Updating frequency

Portfolios don’t need weekly updates. Common cadence:

  • Add new projects when finished and approved by client.
  • Refresh 1–2 times per year — remove older or weaker pieces.
  • Update featured order based on direction you want new work.

The honest summary

A portfolio adds professional credibility to a blog and converts readers into clients. Use a custom post type — either via theme support or a plugin (Portfolio Post Type, Visual Portfolio). Each project page should tell a story, not just display images. Include filters, testimonials, and clear contact CTAs. Aim for 8–20 strong pieces rather than 50 mediocre ones. The portfolio’s job is to win the next inquiry; design it accordingly.