Tim McGiven's Blog, page 9

February 4, 2025

30 Time-Tested Tips to Increase Website Traffic (+ A Free Downloadable Checklist)

How exactly do you increase your website traffic? It’s a more complex question than it might seem on the surface. With the advancement of AI in search results, shifting social media algorithms, and other factors that impact websites, attracting visitors is challenging.

Fortunately, it’s not impossible. Whether you have a brand-new site or one that’s been around for years, driving more visitors to your website often comes down to doing basic things consistently.   

In this post, we’ll show you steps you can take to maximize potential traffic. We even have a handy checklist that you can download so that you can cross off each item after you complete it.

Download our free website traffic checklist15 SEO strategies that’ll make search engines love you

There are a lot of great reasons to focus on getting organic (non-paid) traffic from search engines. Focusing on this organic traffic is commonly known as search engine optimization, or SEO.

1. Determine your website’s target audience

The first tip we’re going to share has nothing to do with SEO. It also has everything to do with SEO. How can that be possible, and why am I trying to twist your brain into a pretzel?

Before you can start driving traffic to your site, it’s helpful to know who you are trying to attract. Depending on the type of site you’re building, this might be obvious. For example, if you sell running shoes, you’re probably trying to attract runners and fitness enthusiasts. 

But this might get more complicated. Do you serve professional marathon runners or hobbyist joggers? Are you offering specialized types of shoes for specific types of running or a broad selection for all types of runners? 

Getting to know who your audience or customers are takes time though. If you have a new website, don’t stress if you don’t know in detail who exactly you’re trying to bring to your site. It’s sufficient to have a general idea of who is interested in your content and products.

2. Create a list of relevant keywords to target on your website

Which terms do people search for when they’re looking for the type of information or products that your website offers? That’s what we’ll find out by doing some simple keyword research using two free tools:

Google Keyword Planner: This tool shows estimates for how often keywords are searched on Google. Answer the Public: Enter one keyword, and it’ll generate tons of related keywords based on autocomplete suggestions from several search engines.

How should you use these tools? Start by using Keyword Planner to build a list of relevant search terms. Create an account and then select Discover New Keywords:

A screenshot of Google's Keyword Planner with two options: Discover new keywords and Get search volume and forecasts

Next, enter a handful of terms that are relevant to your site (or alternately, enter your website’s address to generate keywords that way):

the discover new keywords page on Google Keyword Planner with two keywords selected: running shoes and jogging shoes

You’ll now be able to see how often your initial keywords were searched. Plus, it’ll give you a massive list of related keywords. You can export all of this data to a .csv or directly to Google Sheets:

the keyword ideas tab in Google Keyword Planner with keywords about running shoes

Next, use Answer The Public to find more specific questions that people ask which are relevant to your site. Start with the same basic keywords you used to generate ideas from Keyword Planner:

A graph from Answer the Public showing questions related to running shoes

Even with a free account, you can export all of these keywords to a .csv. Do this and add these keywords to the same spreadsheet you created to store your keywords from Keyword Planner.

You now have a massive list of keywords that you can use to optimize your pages and determine what content you should create. Best of all, it cost nothing and only took minutes!

3. Add an SEO plugin to your website

If your WordPress.com website is on a plugin-enabled plan, then one of the first types of plugins you should consider is an SEO plugin. Here are four options we recommend:

YoastAll in One SEORankMathJetpack (which comes pre-installed on WordPress.com plans)

These plugins will help you manage important meta data and ensure you’re optimizing your pages to appear in search engines.

4. Optimize title tags on all pages

Title tags are one of the most important SEO elements that you should pay attention to on any web page. They’re essentially labels that tell search engines and users what the page is about. You know the blue links that appear in search results? Those are title tags.

a search result on Google for 'WordPress.com'

Here are some simple tips for optimizing title tags:

Keep them under 60 characters. This will prevent them from getting truncated in search results.Include the primary keyword, or the main topic of the piece of content, that the page is targeting.Ensure they read well to an actual person (rather than just stuffing keywords into them).

If your site is built with WordPress.com, you have a couple different options for editing your title tags:

Use your site’s built-in SEO features that are powered by Jetpack.Use your SEO plugin of choice.5. Optimize meta descriptions on every page, too

Meta descriptions are short summaries of what a web page is about. In search engine results, they often appear below the title tag. While meta descriptions do not affect search engine rankings, they do encourage users to click, so it’s important to write them well.

Make sure they’re relevant to the page. If they’re not descriptive enough, search engines are likely to overwrite your specified meta description and borrow text from the page itself instead.Think about what would entice a user to click. What value will they gain from visiting your page?Keep them under 320 characters. Guidance on maximum length for meta descriptions varies, but as a general rule, this is a good upper limit to avoid truncation.

Like title tags, you can set page or post meta descriptions either with the Jetpack-powered SEO features that come with your WordPress.com site, or with a plugin. Google offers more detailed guidance on writing meta descriptions here.

A blue box and arrow highlighting the SEO title/description Jetpack settings in the WordPress editor 6. Optimize the heading structure of your pages

It’s important to structure on-page content in a way that’s easy to read and easy for search engines to understand. Fortunately, getting this right doesn’t need to be complicated. 

Your headings should be nested, and here are some basic best practices you can follow when using headings throughout your content:

Use just one H1 header per page or post. This should be the title/headline.Use H2 headers to subpoints on pages and in blog posts.Use H3 headers to indicate more detailed subsections under H2s.Use H4 headers sparingly and only to break down more complex ideas.

If you’re curious what these headers look like in actual usage, this very blog post you’re reading uses headings this way. For further guidance, check out our guide on how to add headings on WordPress.com sites. If you have technical knowledge, you can also change the appearance of your headers by editing their CSS.

7. Optimize your site’s structure and ensure you have a sitemap

Imagine sitting down at a restaurant and seeing the desserts listed on the menu first. Then you see appetizers, drinks, and main meals.

That structure would make the menu pretty difficult to navigate.

Your site is no different; it should be structured in a way that makes it easy for users to navigate and find information that helps, educates, or entertains them. Search engines also like a well-structured website, as it improves crawlability, helps you build topical authority, and ensures that link authority is spread effectively across the entirety of your site.

Everything from breadcrumbs to URL structure to categories to pages impacts your site’s structure, and for a deep dive into the ins and outs of website architecture superiority, check out our tips here

You’ll also want to make sure you have an accurate, well-structured sitemap. Luckily, if you host your website on WordPress.com, your sitemap is automatically generated for you.

8. Optimize your menu navigation

Your site’s menu navigation impacts your site structure too, and it’s important to spend a bit more time on making sure you get it right. 

When you have too many menu links, or links that are organized in an unnatural way, users won’t know where you want them to click next.

Your menu should be viewed as a highlight of your best, most relevant pages for your audience; it should serve as an easy way for any visitor, whether they’re brand-new or they visit every day, to navigate your site.

If your website is in a left-to-right language (like English or Spanish), try organizing your menu items from the most important item on the left to the least important item on the right to reflect the natural reading style. Typically, websites have a home or logo button on the left that can bring visitors back to the homepage, and other menu items for things like your About page, your Contact page, and a search button across the top from left to right.

Your menu should be standardized across your site too; it would be confusing to see different menu options on different pages across your site.

You can learn all about how to add menus to your WordPress.com site with our detailed guide.

9. Optimize your site’s homepage and landing page copy

Your site homepage is like the welcome mat of your website home. It should be the best representation of who you are, what you do, how you help your readers, and why your site exists.

Your homepage should include information about:

Your site’s core products, services, or topical focus area.Navigational elements to core sections of your site.Social proof (like quotes, testimonials from customers, or logos from clients).Your most recent articles (if your site is a blog or a magazine-style site).

Other landing pages should be optimized too, and in general, here are some best practices to follow when writing copy for those pages:

Include the primary keyword somewhere in the H1 (and URL if it’s a landing page).Nest any additional headings..Include other relevant keywords in subheadings in a natural way. Include internal links to other relevant pages on your site.Include external links to help build your arguments and give context.Include images that add to the context of the page––meaningful infographics, personal photographs, or relevant logos are often more impactful than generic stock images.Include relevant calls to action (CTAs) using buttons and links.10. Add internal links between landing pages

Search engines use links to understand how different pages are related to each other. They also use them to understand which pages are most important on a site. 

Adding links between relevant landing pages on your site helps both users and search engines find what they’re looking for.

Say for example you have a landing page for a guitar you’re selling. You’ll probably want to add links to related cases, straps, and amps on that guitar landing page in the hopes that site visitors will purchase more than one product.

These internal links help search engines build a “map” of your content, and they help users find related, helpful content more quickly and easily. 

11. Gain backlinks from other relevant websites

When other websites link to your site, it signals that your website is valuable and worthy of attention to search engines. As such, gaining relevant backlinks from trusted websites naturally (i.e. earning them and not paying for them) is important for SEO. 

Here are some ideas for ways to naturally build backlinks back to your site:

Create content that other sites are likely to link to in their own content. This could include infographics, original research, statistics, and other assets that help other sites add value to their own content. Reach out to groups, organizations, influencers, or other blogs that create content that’s relevant to what your site is about. Write guest blog posts for other websites that allow for tastefully-applied links back to your site.Search for sites with local business listing pages that might want to include your site. Local news sites, tourism boards, Chambers of Commerce, and other organizations often have resource pages that link to local business websites.12. Fix broken links

Broken links negatively affect SEO because they create a poor experience for users and make it difficult for search engines to crawl through your site. Fortunately, it’s easy to find and fix them with a free broken link checking tool.

Ahrefs’ Broken Link Checker is one simple-to-use option. Visit the page and enter your site URL:

the Broken Link Checker page on Ahrefs with 'wordpress.com/blog' typed into the search bar

If you have broken links, it’ll show you where to find them. Otherwise, it’ll give your site a clean bill of health:

a 'No broken links found' message on Ahrefs with a doodle of a man with orange hair Ah…well, that’s a relief!13. Optimize your URLs and slugs

When we say “slugs,” we don’t mean slimy things that slide around on the ground. We’re talking about your URLs, and specifically, the part indicates which page you’re on.

If you’re viewing a WordPress post or page, you can see where to edit the slug here:

The WordPress post editor with the slug box open to show a customized slug URL

Here are a few simple tips for optimizing slugs:

Keep them short. Three to five words is a good range.Remove stop words like “the” or “is.” They aren’t necessary and this helps keep your word count down and URLs more memorableInclude a relevant keyword. This will help search engines understand what your page or post is about.

For WordPress.com customers on a Business plan or higher, consider changing your permalink structure as well, so it only includes categories and slugs. This will simplify your URLs in a way that’s SEO friendly, and you can learn how to get this done here.

14. Remove or consolidate duplicate content

If there are two or more pages on your site that contain similar or identical content, search engines aren’t going to know which to rank. That’s why we recommend identifying duplicate content early so that you can fix it. There are a few free tools you can use to find duplicate pages:

Screaming Frog is a great tool (and this is a great tutorial).Siteliner has a free web page-based tool that’s easy to use (but you can’t download any data).Copyscape to check if the exact text on a page exists somewhere else on the internet.

Need to have two copies of a page, or another copy of your page on another website? Use canonical links. They tell search engines which version is the original page. The Yoast, All-in-One SEO, and Rank Math plugins all have settings to set up canonical URLs, or you can set them up manually.

15. Optimize your site for speed

When you go to a website, and it doesn’t load as quickly as you would have hoped, it’s a pretty disappointing experience, right?

Not only is a slow website a disappointment for users, it’s a ranking factor for Google. 

If you want your site to rank well, you’ll want to make sure that your site loads quickly. We have a free tool that’s available for all WordPress users that can help you identify and track your website speed. If you’re a WordPress.com customer, optimized and scalable servers, built-in caching, fast themes, and a content delivery network are included with every plan.

Four blogging tactics to bring in more visitors

Blogs aren’t dead, and we’ll fight anyone who says they are (and by fight, we mean debate in a calm and rational manner, possibly over coffee or another fine beverage). 

We recently published a whole article about blogging tactics to increase website traffic, so we recommend checking that out for more robust advice. That said, here are some important highlights if blogging is a part of your website growth strategy:

1. Create a schedule to regularly publish blog posts

Blogging is all about consistency. While there’s no magic number for how many posts you should publish per month, it’s important to publish regularly. Setting a routine schedule can help make it easier to write and publish consistently, so you always have clear deadlines to meet, without having to think about them.

If you need some help getting started with establishing and maintaining a regular publishing schedule, our article on creating an editorial calendar is a great place to start.    

2. Optimize your blog posts for search engines

Just like general website SEO, blog SEO is all about consistency. 

Here are a few ways you can ensure every post you publish is optimized to rank:

Include the primary keyword in the headline and title tag.Shorten title tag to between 55 and 65 characters.Include the primary keyword in the header image file name.Include the primary keyword in the article introduction in a natural way.Include secondary keywords throughout content and subheads in a natural way.Ensure header image is correct size (not larger than maximum size necessary to ensure crisp photos and a smaller file size).Include relevant keywords in all image file names and alt text.Optimize the URL slug with your primary keyword (i.e. /very-cool-keyword).Include internal links to relevant articles and pages.Include external links to help build your arguments and give context.3. Follow Google E-E-A-T guidelines

Anyone can write a blog post with AI in minutes. Not everyone can write something people want to read and share with others.

What are the quality standards that you hold your content and yourself to?

Google has a helpful concept that helps them determine what high quality content looks like. It comes in the form of an acronym, E-E-A-T:

Experience: What experiences do you have that contribute to your unique ability to talk about the subject matter?Expertise: Back up your content with reputable studies, credentials, or qualifications.Authoritativeness: Build authority by establishing your voice as a credible source of information regarding your site’s focus area.Trustworthiness: Be an ethical, transparent voice in your industry by disclosing affiliations and being upfront with your readers.4. Be careful with categories and tags

If you use categories and tags on your blog, make sure you don’t have a category and a tag with the same name. This can be viewed as duplicate content. Here’s an explanation of how and why and what to do instead.

Two email tactics that’ll get subscribers onto your site

We love a good email list because it’s a great way to have direct contact with the folks who are most interested in your content.

We also love it because your email list isn’t at the mercy of ever-changing social and search algorithms; it’s a list that you own, and it should be treated as such.

If you’re interested in incorporating some email strategies into your website growth plans, here are a few tips you can implement today:

1. Add a newsletter or email subscription option to your site

Give people a way to subscribe to your latest updates via email. Depending on the type of website you’re running, this might mean signing up to hear about deals or new products, or it could mean getting your latest news and blog posts.

If you’re a blogger or newsletter publisher, then WordPress.com’s Newsletter feature is perfect for delivering your latest content to readers. For brands and small businesses selling products or services, you might consider an email marketing plugin like MailPoet.

2. Create a plan to get mentioned in third-party email newsletters

Are there other websites with newsletters that are relevant to your niche? Do they offer space for third-party placements to other sites? If so, reach out to them and see if you can be included! 

There’s no trick here. Subscribe to newsletters and emails from sites and brands that are relevant to what you do, and keep an eye out for opportunities. You might even proactively reach out to those site owners and see if they’d be interested in starting a new partnership. Shoot your shot.

Five social media tactics to turn followers into visitors

Driving traffic from social media is harder than it used to be. Many platforms prefer to keep you on their own sites and apps, tuning their algorithms to limit referral traffic to other sites. That doesn’t mean all hope for website traffic from social media is lost though. Here are some tactics you can try to turn social media followers into website visitors:

1. Auto-share all new blog posts on social media

If you host your website on WordPress.com, posting your new content on social media is as easy as connecting your social media accounts to your website under Tools > Marketing > Connections.

This feature allows Jetpack, which is a pre-installed plugin on WordPress.com sites, to automatically post to your connected social accounts as soon as you publish new content. Simply make sure that the Share when publishing setting is toggled before you go live.

a blue box and arrow highlighting the 'share this post' option on WordPress.com 2. Create a link in bio page with links to your website

A link-in-bio page is a fancy way of saying “these are all of the relevant links that the people who follow me on social media should be able to easily access.”

You’re probably familiar with the format of a link-in-bio page from interacting with other creators on social media; it’s essentially a highlight of sales landing pages, new content, and signup pages for your social audience. 

WordPress.com has a helpful tool called w.link that is endlessly customizable and can be fully integrated into your social strategy.

3. Add links to your website from your social media bios

Along those same lines, actively review the links in your link-in-bio page and add or change them as you post new content or release new products.

Making sure this page is accurate helps ensure that your social media followers are always able to find the content that’s most important for you to promote.

4. Add links to your site from your YouTube channel

Don’t forget about YouTube! If video is a part of your content strategy, you’ll want to ensure that your website, aka the place you’re trying to increase traffic to, is well-represented.

Including relevant website links in video descriptions, your channel description, and profile links gives your YouTube audience obvious next steps after watching your videos. 

You can even create resources that directly relate to your videos that you host on your website and put them behind a newsletter signup to build your email list.

5. Run ads on social media platforms

Once you post on social media, you can boost the post by putting some ad money behind it in the hopes that it gets in front of even more people. 

All social media platforms have their own way of enabling creators to boost their posts, so here are some guidelines straight from the sources:

How to boost posts from your Facebook pageHow to boost an Instagram postUse Promote to grow your TikTok audienceUse Blaze ads on TumblrThree other tactics (that didn’t quite fit anywhere else)

Finally, we have a handful of tips to share that didn’t quite fit elsewhere in this post. We didn’t want to end this article without sharing them though, so we’ll give ‘em a home below:

1. Use SMS marketing

If you’re running a business website, then SMS marketing might be something to consider. It’s a great way to let customers know about sales, new products, and other announcements you have to share. 

It’ll cost some money to market this way, but here are some platforms you can check out that are specifically geared toward small businesses:

SimpleTexting, which integrates with WordPress via Zapier (see what that means here).Ultimate WP SMS, a plugin that directly integrates with WordPress.Omnisend, an affordable SMS service that integrates with WordPress.2. Use Google PPC advertising

Pay-per-click (PPC) advertising works well for selling products and services. There’s a lot to learn about the ins and outs of PPC advertising, but getting started is easy. Check out these guides:

Google’s very own primer on PPCThis 101-level tutorial from CognismSEM Rush’s simple guide to setting up a PPC strategy3. Set up a Discord or Slack community

If you’re not familiar with Discord or Slack, they’re group chat services that let you create space for groups or communities to engage with one another. They can be a good way to build a community around your brand, which might indirectly help send traffic to your site too.

Here are a couple guides to help you get started:

MailChimp has a great piece on managing a Slack community. If your community is focused on work or networking with other professionals, Slack is the way to go.If your community is united around a shared hobby or interest, then Discord is the more appropriate choice. They have their own guide on setting up a Discord community here.Tracking traffic on your site

How will you know your traffic-building efforts are paying off? By using some simple tools to track traffic on your site. Here are two options we recommend:

Jetpack Stats: This plugin comes with all WordPress.com sites and gives you tons of insight into how much traffic your site is getting, which pages visitors are landing on, and where visitors are coming from.Google Analytics: This tool is free but much more complex than Jetpack Stats. If you’re serious about diving deep into understanding what people are doing on your site, then Google Analytics is the way to go.Solve your traffic woes once and for all

You made it all the way to the end? Congratulations! Whether you use a few of these tips or all of them (which…wow, that’s impressive), we hope this list will help you be more successful with your website. 

As a reward for making it all the way through, here’s that downloadable checklist again that recaps all of the strategies we covered in this article. Use it to ensure that your website landing pages, blog posts, and promotional avenues are optimized and ready for traffic. 

Download our free website traffic checklist

Once your traffic starts to grow, you may notice that your hosting costs go up, as many hosts meter their plans based on monthly visits. That’s not the case with WordPress.com. You get unlimited traffic and visitors on each of our plans so you’re never penalized for your success. Check out our hosting plans here.

 •  0 comments  •  flag
Share on Twitter
Published on February 04, 2025 06:30

January 30, 2025

How to Increase Blog Traffic: 21 Tactics You Can Use Instantly

Why should you invest time in learning how to increase blog traffic?

Well, imagine this: you toiled away for months to start your blog. You agonized over the name, carefully picked a theme, wrote your best copy, and launched it with all the giddiness of a high schooler asking their crush to prom. And then—crickets.

Your blog is a ghost town. Tumbleweeds would roll down your homepage if they could. Not a single soul seems interested in your content.

In a panic, you try your best to fix the situation. You ask your friends and family to search for your blog’s name and click it to let Google know it exists. You even consider printing business cards with its URL and handing them out on the street. Maybe a different theme would help?

Doubts creep in. Perhaps blogging simply isn’t for you after all. Perhaps you were kidding yourself, and maybe what you have to share isn’t that interesting after all. And you start to consider giving up.

This is the last situation we want you to find yourself in. That’s why, in this blog post, we have put together a list of proven tactics and tips you can use to generate traffic to your blog. You can start implementing them right now, and doing even just a few of them can make a big difference. 

Ready to give it a go? Then let’s not wait any longer.

How to get more blog traffic from SEO

Search engine optimization, or SEO, is the basis of traffic generation for most blogs. That’s because it’s mostly free to implement and pretty much “set it and forget it.” Once you have a good foundation, it works with relatively little maintenance. But how do you get it right in the first place?

1. Conduct keyword research The Ubersuggest keyword research results for the term 'increase blog traffic'

If you’re reading this article, you want to generate more traffic with your blog. Blogs that receive a lot of visitors are ones that are full of helpful content about topics that people search for and want to read.

A blog post can be the best-formatted, wittiest, and most thoroughly-researched piece of writing ever, but if the topic isn’t something that others are interested in, it likely won’t deliver the traffic returns on it.

Keyword research helps you avoid that by ensuring you pick subjects your audience is actually interested in. That way, you don’t end up figuratively yelling into a vacuum. It also helps you discover new blog post ideas.

Numerous keyword research tools exist, such as Ahrefs, Semrush, Google Keyword Planner, Keywordtool.io, or Ubersuggest. However, finding keywords is a lengthier process we could write a separate article about, so we’ll refer you to this primer on Ahrefs for now.

2. Cover evergreen topics

Evergreen content consists of blog posts that remain perpetually relevant and can drive traffic year-round. They contain information that doesn’t change or changes very slowly.

For example, “weight loss” is an evergreen topic. People are always looking for ways to slim down, and the principles (diet and exercise) stay mostly the same.

A Google Trends graph for the term 'weight loss'

On the other hand, the results of the 2024 Olympic games are probably not a popular search topic beyond a certain point in time.

There’s also seasonal content. It can be evergreen for the same period every year, but it likely won’t bring in lots of traffic outside of a particular timeframe.

a Google trends graph for 'maria carey all I want for christmas is you' The perfect example for a seasonal search term.

In conclusion, make sure that at least part of your content strategy includes evergreen content. MailChimp has a guide on this topic with additional details.

3. Follow Google’s E-E-A-T guidelines

The acronym E-E-A-T stands for Experience, Expertise, Authoritativeness, and Trustworthiness. It’s not a direct ranking factor (i.e. something that formally impacts your content’s ability to rank) but a concept Google introduced to gauge the quality of web pages that appear in its search results. Therefore, if you want to increase traffic, you’d do best to demonstrate these aspects on your blog.

Here’s how you can do so:

Experience: Show that you have firsthand experience in your subject. For instance, if you’re talking about a product, actually use it. If you’re recommending a hotel or location, visit it.Expertise: Create high-quality, in-depth content and link to reputable studies, data, or industry leaders to back up your claims. Highlight relevant credentials or qualifications on your About page or author bio.Authoritativeness: Consistently publish top-notch articles to build authority in your industry, attract backlinks and mentions, and grow your reputation.Trustworthiness: Ensure your website is trustworthy through security, transparency, and being ethical. For example, disclose affiliations or sponsorships clearly and provide easy ways to get in contact.

For additional information, check out Google’s official guidelines.

4. Optimize images for SEO The TinyPNG homepage with a panda and the headline 'Smart AVIF, WebP, PNG and JPEG Compression for Faster Websites'

Images are prominent page elements that contribute to the SEO of your site. To ensure their impact is positive:

Use relevant images that add to the content you’re making.Avoid using too many stock photos—visitors are very good at filtering them out.Give your images meaningful file names (like pesto-pasta-with-tomatoes.jpg versus img-452.jpg).Use fast-loading image formats like WebP or Avif.Compress images before uploading. Save your images to a reasonable size so that the file size is smaller and your images look crisp. Include alt text and captions that describe the image and possibly contain your keyword.

Yoast has more details and additional tips for making sure your images are optimized for search engines and users.

5. Publish posts on a consistent basis

Content is the heart and soul of blogging. As a blogger, we probably don’t need to tell you that you should publish blog posts regularly.

But what does “regularly” mean? Orbit Media recommends publishing at least bi-weekly to achieve strong results.

Orbit Media's graph of blogging frequency and content performance Source: 2024 Blogging Statistics: 11 years of Trends and Insights from 1000+ Bloggers from Orbit Media Studios

This isn’t a hard-and-fast rule though. In the end, your blogging frequency depends on your goals, the length and type of your content, and the time you can invest.

To get on the right schedule for yourself:

Ask your audience.Experiment with different posting frequencies.Find a cadence you can sustain.Focus on quality over quantity.6. Avoid duplicate content

Duplicate content means two pages that contain exactly the same or almost identical material. This can confuse search engines about which of your pages to rank for a particular keyword.

Here’s how to avoid it:

If you reuse the same content somewhere else, include a canonical tag to the original so that search engines know which is the most representative of the topic.Add descriptions to your category pages. It will distinguish them from other archive pages that might contain the same blog posts.Switch off irrelevant archives, like tags, to decrease the likelihood of several archive pages displaying the same content.Don’t paginate your blog comments. Pagination creates additional versions of your blog posts with the same content except for the comment section.Use tools like Siteliner and Copyscape to find duplicate content so you can fix it.

We have an entire article on this topic if you want to learn more.

7. Add internal links

Internal links (or links to your other content from your own content) serve numerous purposes:

They allow visitors to discover more relevant pages and keep them engaged.They establish relationships between your pages, helping search engines understand their context and how they fit together.They distribute SEO value from incoming links across your site.

Therefore, when you create content, it’s recommended that you always link to related, relevant pages and posts on your blog. In addition, make sure to use clear anchor text, meaning the text that appears as the link on the page. Visitors should easily be able to understand what page they’ll land on when they click.

For detailed guidance on internal linking, check out this post on Yoast.

8. Use an SEO plugin

SEO plugins are helpful because they support you in optimizing your blog to increase organic search traffic. They give you lots of control over how your content appears in search results and often implement improvements automatically.

One of the most important features of these plugins is the ability to customize SEO titles and meta descriptions for your web pages.

A blue box and arrow highlighting the SEO title/description Jetpack settings in the WordPress editor

Take advantage of this possibility for every post and page to make sure your titles and descriptions grab reader attention in search results and aren’t too long.

In addition, SEO plugins often come with content analysis options. Input your page’s main keyword, and they will tell you if you’re using it often enough, in the right places, and other ways to optimize the page.

Popular WordPress SEO plugins are Yoast, Jetpack, Rank Math, and All in One SEO. On WordPress.com, you can install plugins like these on the Business plan and above.

9. Gain backlinks

Links to your blog from other sources, called backlinks, are one of the main signals search engines use to determine where to rank your content. However, it’s not about the raw numbers; the quality of backlinks, meaning if they come from relevant and trustworthy websites, makes a huge impact (so don’t start buying backlinks).

The truth is, intentionally building backlinks isn’t easy. Here are a few practical ideas you can try:

Create linkable assets: Make your content so good that people naturally feel inclined to link to it.Do outreach: Contact influencers and blogs in your niche or industry, and let them know about content they might find useful.Guest post: Write posts on popular websites that let you link to your own site. This also exposes you to a new audience.Do interviews: Interview well-known bloggers or industry leaders. They will likely link back to the interview once it’s published.

For more details, check out our article on backlinks.

10. Update your old blog posts

Up-to-date information is a sign of quality content. That’s why blog posts tend to drop off in search rankings over time. The antidote? Refresh your content regularly.

Here’s how to improve older content on your blog:

Tailor posts more strongly to search intent, meaning make sure you’re answering the purpose of a reader’s search fully.Update information to reflect the latest data.Include new keywords.Improve the writing to make it more helpful.Add new links, both internal and external.Improve formatting and readability.

The Blogsmith has a great write-up on this topic.

11. Make sure your blog loads quickly

Website speed is a major factor in user experience, so much so that Google has adopted it as a ranking factor. Therefore, if you want to do well in search results, make sure your blog loads fast.

If you host your blog on WordPress.com, you already have a leg up on this. Optimized and scalable servers, built-in caching, fast themes, and a content delivery network are included with every plan. These features ensure your website is blazing fast.

However, there are also speed factors you need to take care of on your end, such as:

Optimizing images.Keeping the number of plugins on your site to a minimum.Reducing third-party scripts.

For more details, check out our post on how to speed up your blog.

12. Add structured data to your blog posts

Structured data is what you see in search results when content displays images, ratings, prep time, and other additional information, known as rich snippets.

Google Search result for 'vegan tacos' with rich snippets like images, ratings, and time

While using structured data won’t automatically make your content rank higher, it can help because search engines can better understand your site content with it. It’s also an effective way to increase click-through rates, which are a positive signal for search engines as well. It shows that your content is relevant to their users’ search intent.

Structured data exists for different types of content, from recipes to reviews, and can add different features to your content. One example are the handy, styled recipe cards you often see in food blog posts. 

You can hard-code structured data, but the easiest way to incorporate it into your content is to use one of the many plugin solutions for structured data.

a screenshot of the Schema - All in One Schema Rich Snippets plugin on WordPress.com

Most SEO plugins also include options to assign structured data to your content. Once you have set up the markup on your site, use Google’s Rich Results Test to make sure it works correctly.

Increase blog traffic using email marketing

Email remains a marketing channel with one of the highest ROIs.

a graph of marketing channel ROIs with website/blog/seo being the highest Source: Email Marketing vs. SEO: What You Need to Know for 2024 (New Research) from HubSpot

It makes sense, as most people guard their personal email address fiercely. Therefore, if they like your content enough to hand over their address for your newsletter, you’ve found someone who is likely to return.

In addition, your email list belongs to you. It can’t be taken away, and nobody can limit your reach the way a social media algorithm upgrade can.

For that reason, building an email list you can use to increase blog traffic should be an absolute priority.

13. Add email subscription options to your blog

The first step in building a newsletter audience is to equip your website with a way for people to sign up. On WordPress.com, you have that ability out of the box.

All you need to do is go to Settings > Newsletter (or Jetpack > Settings > Newsletter on plugin-eligible plans) and enable ways for people to sign up.

the newsletter settings area on WordPress.com

You can also manually add sign-up options with the Subscribe block. Once you have subscribers, you have the possibility to automatically send new content to them.

The Newsletter menu lets you customize the look of your emails, set up a paid newsletter, and compose a welcome message. You can have unlimited email subscribers, import them from other platforms, monitor open and click rates, and much more.

Ready to sign up with WordPress.com? Start your website journey here.

14. Encourage email subscribers to share your posts

Your email subscribers are already engaged with your content, making them ideal advocates for your blog. You can leverage that to increase blog traffic by encouraging them to share your posts, like so:

Make it easy to spread the word: Add links that allow subscribers to share your posts on social platforms.Encourage subscribers to forward your emails: Use friendly language like, “Know someone who’d love this? Forward it to them!”Offer incentives: Provide free resources, discounts, or entries into a giveaway for each share.Feature your most engaging or useful posts: Highlight these in your newsletter and ask readers to share their favorites.

Every little bit helps. When you notice someone sharing, be sure to express your gratitude.

15. Reach out to other bloggers

Collaborating with other bloggers who have an established audience can help boost your blog traffic. It exposes your content to more people already interested in your niche.

Here’s how to pull it off:

Identify relevant bloggers in your niche or complementary niches with active email newsletters.Build rapport by commenting on their blog posts, sharing their articles on social media, or mentioning them on your own blog.Craft a personalized pitch, mentioning specifically how your content can add value to their audience.Highlight mutual benefits, such as featuring their work on your blog, promoting their newsletter, or providing content their readers would appreciate.Share your most polished and valuable posts for consideration that resonates with their audience and aligns with their standards.Alternatively, ask them to write a blog post on your blog (with a backlink) or interview them and then ask to share the interview with their audience.Get blog traffic from social media

Social media is an established and important marketing channel. Here are ways to use it to increase the traffic to your blog.

16. Regularly share your posts on social networks

You probably don’t need an introduction to how sharing on social media platforms works. Any blog promotion plan should include regularly publishing your content there.

An important question is which platform(s) you should choose. This depends on a number of factors. For example, if your content includes stunning visuals, like a travel blog, a platform like Pinterest or Instagram might be a good option.

Pinterest search results for the term 'travel' with many pictures of planes and landscapes

For written content that you can break down into bite-sized facts, LinkedIn and similar platforms come to mind.

One that deserves special mention is Bluesky. It’s particularly friendly to bloggers since it doesn’t suppress links, and you can customize your Bluesky handle with a custom domain from WordPress.com. Other popular networks like Facebook and X try to keep users on their own site, making it more difficult to use them for traffic generation.

Take the time to learn each platform’s rules and conventions, and focus on a maximum of two or three at first. You can always branch out later.

By the way, in WordPress.com, you can auto-post your content via Jetpack Social. Just go to Tools > Marketing > Connections and connect your blog to your accounts.

A blue box and arrow highlighting the Connections under Marketing on WordPress.com

After that, you can choose to automatically share posts when you publish them.

a blue box and arrow highlighting the 'share this post' option on WordPress.com 17. Add social sharing buttons/blocks to your blog

Including social sharing options in your content allows visitors to easily post it on social media. They are also easy to set up and configure on your WordPress.com blog.

If you’re using a legacy theme, go to Tools > Marketing > Sharing Buttons. Determine where buttons should appear and what the buttons should look like.

the Sharing Buttons settings page under Marketing and Integrations on WordPress.com

If you’re using a block theme, you can take advantage of the Sharing Buttons block instead. It allows you to display buttons wherever you want with many ways to customize them to your needs.

A blue box and arrow highlighting the Sharing Buttons block on WordPress.com 18. Create a link-in-bio page

A link-in-bio page is where you consolidate links to all of your web presences and most important pages.

It’s a great place to include your blog in order to direct social visitors there. In addition, it’s easy to create, thanks to w.link, which fully integrates with WordPress.com and is customizable.

The w.link landing page with the headline 'All the links. One page.' and an example of a page

We have a detailed tutorial on how to use it.

Other traffic generation tips for blogs

Finally, here are a few more tips on increasing blog traffic that didn’t fit in the other categories:

19. Use analytics to inform your content strategy

Analytics tools help you understand what resonates with your audience. By identifying content that performs well, you can create more of what attracts your readers.

You can connect your WordPress.com blog to Google Analytics and/or use the built-in Jetpack Stats.

a screenshot of Jetpack stats on WordPress.com

Here’s how to use the information they provide:

Identify which topics receive the most views, likes, and comments to create more content on similar themes or expand on related subtopics.Check the search terms people use to find your blog to reveal what information your audience is actively seeking.See which sources refer traffic to you to focus on platforms that drive the most visitors.Look at which formats (e.g., listicles, how-to guides, case studies) generate the most engagement and create similar content.20. Minimize clutter on your blog design 

A clean and streamlined blog design helps readers focus on your content. Cluttered designs can be distracting and hurt user experience, making you lose visitors.

While all WordPress.com blog themes feature clean and well-optimized designs, here are additional tips:

Choose a simple theme.Ensure your blog has enough spacing between elements.Simplify navigation by grouping similar pages or posts under clear headings.Use pop-ups sparingly and strategically.21. Leverage the WordPress.com Reader

The Reader allows WordPress.com users to find content based on their interests from all the sites they follow, including yours.

A screenshot of the WordPress.com Reader discover tab

To make the most of it:

Use relevant tags and categories to increase the visibility of your posts.Interact with other bloggers by liking, commenting on, and following their posts.Publish regularly to stay visible to potential readers.Feature your best-performing posts to attract new readers who explore your blog through the Reader.

For more information on using the Reader, check out the documentation.

Get your blog the traffic it deserves

More blog traffic means a wider reach, a bigger impact, more possibilities, and an increase in the ability to earn money from your blog. If your traffic could be better, don’t panic—there are many things you can do to improve the situation. Pick strategies from above that resonate most with your goals and abilities and build from there.

 •  0 comments  •  flag
Share on Twitter
Published on January 30, 2025 13:15

December 30, 2024

Streamline Your Web Design Process: An 11-Step Checklist

Designing and developing websites is complex. User expectations rise alongside advancements in what is technically possible. As a consequence, the process has many moving parts you must keep in mind if you want to design and build web presences that provide a great user experience, rank well in search engines, and achieve client goals.

Even as an experienced freelance or agency developer, you might struggle to remember every item on the to-do list. The good news is, you don’t have to. By establishing a formalized web design process, you can create a roadmap to follow each time you build a new website.

Doing all the thinking beforehand ensures that you don’t forget anything crucial. It also frees up headspace for doing the actual work, avoids overwhelm, improves efficiency, and allows you to build better websites on repeat.

In this post, we’ll help you reap those benefits by establishing your own web design process. We’ll go through all the necessary steps and give you actionable advice on how to implement each and every one of them. This will give you a foundation to develop your own workflow and make life easier in the future.

How to use this information to develop your own process

We’ll go over the following steps (you can click on the links to jump directly to the part that most interests you):

Goal-settingScopingResourcingProject managementSitemap / wireframesCopy / content creationStaging site setupVisual designTestingLaunchSite maintenance

Our goal is to cover each point as completely as possible to provide you with a blueprint for developing your own process. Take what’s useful and relevant to you and add any additional information you might need for your particular use cases, working style, industry, or else.

Be aware that a formalized web design process is a living document that you’ll likely change over time as you repeatedly go through it and as web design requirements change. That way, it always reflects your latest way of working and current level of technology.

To make getting started extra easy, we also created a customizable checklist template. To use it, just create a copy and adapt it to your needs as you go through the information below.

1. Determine website goals

The first thing you need is background information on the website you are about to build. The main objective is to understand its purpose, as this lays the groundwork for many decisions down the line.

For that, your first task is to understand who your client is. Their type of organization, industry, and audience make a big difference in the end product. Good questions to ask are:

What exactly does your business do?What are the company’s vision, mission, and/or values?How do you differ from the competition?Which problems do you solve for your customers?Which challenges, opportunities, and trends are shaping your industry?What regulations or compliance requirements does your industry have?Is there an existing brand identity?

Once you have a better picture of the client, the second step is to find out how the website fits into their business. This is a set of questions that will help you do so:

What’s the goal you hope to achieve with the site?Who is the intended audience? What’s the first impression they should have when entering the website and what actions should they take on it?What type of content are you planning to publish?What are must-have features and functionality?How should the site be different or the same as that of competitors?What’s the budget and timeline?

Questions like this are important for several reasons. First of all, lots of industries have distinct conventions when it comes to website design. For example, you would use a very different color scheme for a children’s toy store compared to a corporate financial services website. The client might also already have existing branding that you have to take into account to preserve an established look and hit the right tone.

In addition, the type of site you will build also has a big influence on the web design process. A brochure website, blog, and online shop all have very different purposes and require unique approaches. There can even be legal requirements that you have to meet. For example, on real-estate websites, visitors might have to virtually sign a contract before they can view portfolio items.

Without being crystal clear about what you are making and for what purpose, you are almost certain to get off on the wrong foot, which can be costly and time-consuming to correct. Therefore, spend enough time on the discovery phase until you have a firm grasp of the client’s needs. Extensive contact with stakeholders, market research, audience personas, a design brief, and competitor analysis are all useful tools for this stage.

2. Scope the project

Once you know what you are tasked with designing, the next step in the web design process is to put together the project scope. This is where you determine the exact functionality and technical requirements for the site. It also helps you estimate how long the process will take, allowing you to agree on the exact work to be done (to prevent scope creep) as well as deadlines and milestones with your client.

Ask your client for these basic pieces of information:

How many pages does the site need?What will they contain? Do you have to account for things like forms or e-commerce functionality?What other features will be on the site?What about content? Will the client provide it, or is that part of your duties?

Once you have collected key information, you can estimate how long the total project will take. Be sure to build in some buffer for when, not if, something unexpected happens.

A very useful tool for visualizing the timeline is a Gantt chart.

It shows the project timeline, key deliverables, and their expected completion times. You can easily create Gantt charts using existing Excel or Google Sheets templates.

3. Identify and allocate resources

After this, it’s time to deal with your resources, including money, workforce, and tools. Let’s go over them one by one.

An established scope makes it easier to calculate project costs. For example, it helps you see how many hours it will take and calculate the cost of labor. However, don’t just think about the time—also consider external costs, such as:

Domain and hosting feesPlugins or themes you might need to purchaseStock photos or graphicsFonts or other assets

Be sure to calculate these beforehand for yourself and to provide an accurate estimate to your client. We have a checklist for website costs if you need a refresher. For hosting options, consider:

WordPress.comPressableBluehost

If you need a free tool for local development, check out Studio.

Another part of resourcing is determining who will do the work. If you’re a freelance full-stack developer, you might handle everything yourself. If you’re part of an agency, the work will likely be divided between the design and development teams. Either way, ensure there’s a clear plan and everyone knows what’s expected of them.

4. Prepare your project management platform

By now, you should have a good overview of the work that awaits you. It’s time to put it into order and make it more manageable.

The first step is to list all the phases and tasks the project will go through and add them to a project management tool. This also allows you to bring them into the correct order. Recommended tools include:

TrelloAsanaJiraGoogle SheetsExcel

As mentioned earlier, you can also use the free checklist template included in this article.

Feel free to break the phases down into smaller chunks if that’s how you prefer to work. In addition, include all the resources you already have and attach them to their respective tasks. While you are at it, don’t forget to input the timings and milestones you determined earlier for each item. This will help you stay organized.

By the way, your planning should also include regular check-ins with clients for approvals and updates. This fosters collaboration and ensures everyone stays on the same page.

5. Create a sitemap and wireframes

From here, it’s time to start conceptualizing the end product and create a plan to follow along.

You’ve already determined the must-have pages for the website in the project scope. These often include the usual suspects (homepage, about page, contact page, legal pages, etc.), but you might also have less common ones depending on the project. The next step is to put them into relation to each other and plan the site structure. You can do so with a basic sitemap.

The way pages are arranged greatly influences a website’s navigation and user experience. For example, it determines how easy it is to find content and how often visitors have to click to reach it. A good structure also makes the site more crawlable, giving it an SEO boost.

Part of the site structure are also navigation and menus. They point out important pages and are often an initial entry point for visitors, so it’s important to consider them as well as other navigation elements like breadcrumbs.

Once you have the overall structure, the next task is to visualize individual pages. This is where you create layouts for each page and determine how elements will be arranged—a process also known as wireframing.

Wireframes let you map out the page structure before dealing with design considerations. They help you focus purely on usability and are a great tool to collect feedback from clients. Be sure to also map out your mobile layouts!

You can create wireframes using a variety of tools:

Graph paper – Go old school with pen and paper.Google Docs – While not the best option, it still works. Tables are your friend.Professional design tools – Options include Balsamiq or Figma. If you use Figma, consider using a wireframing kit like Johannes WP, which is specifically made for wireframing WordPress websites.

You can find additional options in our article about wireframes.

6. Write the website copy

With the concept finished, you can start creating the visual parts of the website. Ideally, this doesn’t start with colors, fonts, and CSS but rather with written content.

While this might seem backward, it actually makes a lot of sense. Design should follow content, not the other way around. You don’t want to find yourself in a situation where you have a finished design but it can’t accommodate the intended text.

Writing copy doesn’t just mean crafting text for the main sections of the page wireframes you created earlier but also for navigational elements, buttons, forms, and other page elements.

There are several ways to handle this step:

Receive the content from the clientDraft the copy yourself (if that’s part of your agreement)Hire a content writer or copywriter.Use Jetpack AI to create placeholder copy

It’s important to be a bit flexible here. Content might still change and not everything has to be fully ready. It’s fine to use placeholders for some parts, like product descriptions.

However, you want at least a rough idea of what you need to accommodate in your page designs before you start creating them. This saves you from having to make time-consuming changes later.

7. Set up a staging site

Now that you’re ready to work on the actual website, it’s crucial to set up a development version. As a professional web developer, you know better than to do the design process on a live domain.

The typical approach is to use a staging site (which, incidentally, are available on all WordPress.com Business plans and above), or set up a local development environment, such as the aforementioned Studio.

Once that’s ready, you can immediately start creating the raw structure of the site. This includes setting up all the pages you scoped earlier and creating navigation items pointing to them.

While you’re at it, you can also install any plugins included in your scope, implement features like forms, and insert written content into the appropriate places to create a rough version of the site.

8. Create the visual design

The next step is visual design. This is where you implement the structure from your wireframes and make it look good with fonts, colors, and other elements that create the website’s aesthetic.

This part of the process often happens in two phases: first creating a design mockup and then implementing it. In a WordPress website, the central element for that is the theme, which controls the website’s design.

Here, you can either go with an existing theme or create your own. If you have a WordPress.com Business plan, either is an option since you can upload any third-party theme you want.

Obviously, making a theme from scratch is more work though it gives you the possibility to create a bespoke solution. Going with an existing theme takes less effort, yet it might not have all the features you want or need.

The most time-friendly solution is often to take a hybrid approach. That means finding a theme that is very close to what you are looking for in terms of design and functionality, and then customize it according to your needs.

Thanks to block themes and the WordPress Site Editor, this has become simpler than ever. For example, you can adapt visual elements like colors easily using Styles and/or the WordPress Customizer.

In addition, the Site Editor gives you control over all typography available on your website. You can assign a multitude of fonts to any text elements on your website.

Using custom CSS is also a possibility. 

Finally, your website will likely also include visual page content, such as photos, icons, graphics, or videos. Depending on your contract, these might either come from the client or be something you create. Be aware that you have the possibility to source free images directly inside the WordPress.com editor.

First, there is the Jetpack AI image creator. Simply insert an Image block and choose Generate with AI

Then, input your prompt in the panel that shows up.

You can also insert images from Openverse and Pexels.com by clicking the Block inserter button and choosing the Media tab.

Search for any image and click on a result you like to automatically add it to the editor, complete with the correct attribution.

9. Test the website thoroughly

Already done with the design? Alright hot shot, let’s move on then. Now it’s time to get to testing, which is one of the most crucial stages of the web design process. You don’t want to launch a website only to find parts or even the entire site not functioning correctly.

Testing should ideally happen on a staging site, especially one that uses the same environment as the eventual live website. This allows you to spot potential conflicts or problems that didn’t surface during development.

Here are the most important things to examine each page for:

Double check the content – Content is the main attraction of any website. Go through all pages to ensure there are no typos, missing images, or other errors that detract from the user experience.Ensure all features work – Test all central functionality, such as web forms, shopping carts, and interactive elements. For example, see that form submissions reach the intended destination.Verify all links – A well-planned site structure is only effective if users can actually use it. Make sure that links go to the correct destinations and are not broken. A tool like Screaming Frog lets you scan for broken links in bulk.Check SEO – Make sure all pages have correct meta information, such as title tags and meta descriptions. Screaming Frog also allows you to scan for that.Measure speed – Page speed is a major usability and ranking factor. Run all pages through tools like PageSpeed Insights to identify performance bottlenecks and fix them. You can also use WordPress.com’s free Site Profiler tool.Test on different devices and browsers – Since most users access websites on mobile devices, ensure the site looks good on all screen sizes. Test the site on multiple browsers as well.Validate accessibility – Modern web design must meet accessibility standards, such as WCAG guidelines. Check for sufficient color contrast, keyboard navigation, and compatibility with assistive technologies using tools like Lighthouse (which is also part of PageSpeed Insights) or WAVE.

Invite your clients or other stakeholders to get involved in testing as well. Fresh eyes can catch issues you might have missed. Plus, you’ll need client sign-off on the website before launching. User testing is also a possibility at this stage.

10. Launch

With testing complete and any problems resolved, it’s time to publish the website. Here, too, having a detailed launch checklist can be extremely helpful to ensure you don’t overlook anything.

After all, there are important things to do, such as connecting Google Analytics and Search Console, setting up security measures, creating user accounts, and configuring backups.

When you set a launch date, be sure that any promotional efforts, such as social media updates and email campaigns, are prepared in advance. This coordination ensures that your website makes a big splash as soon as it goes live.

11. Do regular site maintenance

While the website design process is mostly done after launch, it doesn’t mean your work is over. Websites are ongoing projects that require regular maintenance to stay functional, secure, and effective.

Here are some common maintenance tasks:

Addressing smaller bugsPublishing and updating contentCreating new pagesBuilding trafficPerforming software updatesConducting security auditsRunning backupsMeasuring KPIs through analytics

Smart developers have a plan for maintenance to continue creating value for clients—and revenue for themselves.

Of course, it’s best to automate as much of this work as possible. For example, WordPress.com automatically handles backups and updates, so you don’t have to do them manually or set up a separate solution.

You can find a full list of recommended maintenance tasks in this article.

Stay on top of things with your own web design process

Creating a website that meets today’s high standards for design, usability, and performance is no small feat. With countless moving parts to manage, having a structured web design process is essential to stay on track.

By following a plan beforehand, you can save time, reduce errors, and ensure that nothing important gets overlooked. It allows you to focus on delivering results that align with your client’s goals while making your workflow repeatable for future projects. The steps outlined in this article serve as a flexible foundation to help you put together a process that works for you.

Now it’s your turn: What strategies or tools have helped you master the web design process? Share your thoughts in the comments below!

 •  0 comments  •  flag
Share on Twitter
Published on December 30, 2024 04:00

December 27, 2024

Meet Jetpack: Fueling Your WordPress.com Website

No matter what type of website you want to build, WordPress.com has all the tools you need to build your online home

Many of those features are powered by Jetpack, a versatile plugin that provides WordPress websites with a suite of essential tools for site security, performance, and more. It’s included with every WordPress.com website (even sites on our Free plan). For self-hosted sites, Jetpack tools are also available on a subscription basis, with bundled and ala carte options

Jetpack provides WordPress.com with tons of value. It makes sure your site performs well so you can build and create with confidence. But what exactly does Jetpack do and why should you care? Let’s look at just some of the ways Jetpack gives your WordPress.com site superpowers.  

What’s inside the Jetpack toolbox?

Jetpack offers tools in four categories to meet your website’s needs: security, performance, growth, and management. Many of these tools are included with free WordPress.com websites, with additional tools unlocked on higher plan tiers.

Activity Log: Keep tabs on every move

Free; additional features unlocked on Premium and above 

With the Activity Log, you always have a high-level view of changes and actions taken across your site, from comments to new posts to downloads.  Whether you have a large team of content creators or you’re trying to find the source of a pesky bug, the activity log offers transparency and accountability for every website change. 

Free users have access to the 20 most recent website updates. Upgrade to a paid plan to view your complete site activity across your plan’s data retention period.

Learn more about Activity LogAkismet Anti-Spam: Keep your site squeaky clean

Free and above

Spam can attack your site faster than you can say “where’s the firewall?” but Akismet Anti-spam offers professional-grade defenses. Using advanced machine learning, Akismet can filter out 99.99% of spam in user-submitted text, including spam comments, bot form responses, and fake leads, keeping your site and CRM looking pristine and professional. 

Akismet Anti-spam can be found in the Jetpack section of the WP Admin. From there, you can monitor how much spam has been blocked across your site and choose whether you want to review or automatically delete potential spam messages.

Learn more about Akismet Anti-spamVaultPress Backup: Your site’s safety net

Business Plan and above

Accidentally broke your site with a new plugin? Never fear: VaultPress Backup has you covered. With daily backups and additional backups created every time you make an edit, it ensures that your website is crisis-proof. 

To enable backups, simply navigate to the Jetpack tab in your WordPress Admin and select “Backup.” 

Once VaultPress Backup has been enabled, it will automatically create daily backups of your site and backups after every change, with multiple secure copies stored across the cloud. If you ever want to return to a previous version of your site, click the date arrows to navigate to the date you want to roll back to. Click the “Restore to this point” button to revert your site with just one click.

Learn more about VaultPress BackupJetpack Stats: Understand what’s resonating with your readers

Free; more features unlocked on Personal and above

Use Jetpack Stats to see your website performance at a glance, including how many visitors are on your site and what content is performing best. Quickly see where your traffic is coming from to better optimize your marketing and partnership strategies. Jetpack is fully GDPR compliant so you can track your visitor metrics with confidence. 

To access your free stats, navigate to the “Stats” tab in the WP Admin. For even more information on your website’s trends and insights to improve your website’s performance, upgrade to Premium.

Learn more about Jetpack StatsJetpack Social: Share in a snap

Free and above

Gone are the days of logging into every social platform to share your newest blog post with your followers. Jetpack Social lets you preview and share your content across major platforms – Facebook, Twitter, Instagram, Linkedin, Mastodon, and Threads – with just one click from within the WordPress Editor. 

Jetpack Social also enables you to automatically put quick share buttons on your posts, enabling your visitors to share their favorite content with their communities, expanding your content’s reach.

Learn more about Jetpack SocialJetpack Newsletter: Jump from post to inbox

Free and above

You no longer need a separate platform to get your content into people’s inboxes: Jetpack Newsletter allows you to convert your blogs into emails right from your post-publish page. Jetpack offers tools to support your newsletter from start to finish, from collecting subscribers on your website to sending and tracking your newsletter’s performance – all from within WordPress.com. Already have a dedicated following? Simply import your existing subscriber list to get started.

Learn more about Jetpack NewsletterJetpack Search: Ctrl-F your content

Business and above

Do you have a large website with a lot of content? Help your visitors find what they’re looking for quickly by enabling Jetpack Search. You can turn on Jetpack Search and filtering with just one click in the Jetpack tab of WP Admin. Jetpack will automatically index all of your site content and offers flexible design options that match your brand.

For eCommerce sites, this is particularly valuable: research shows that people are 2x more likely to purchase something when they search versus standard browsing.

Learn more about Jetpack SearchSEO Tools: Climb the ranks on search

Business and above

Help new users find your site with Search Engine Optimization, which helps your website climb up the ranks on popular search engines like Google. With the Jetpack SEO tools on WordPress.com Business plans and above, you can control your title tags and meta descriptions to ensure your site is optimized for search. 

You don’t have to be an expert to use Jetpack SEO: Jetpack will notify you if your text exceeds the recommended character count limitations to ensure your metadata looks great in search engine results.

Learn more about SEO ToolsAI Assistant: Your creative co-pilot

With a suite of AI-assisted tools, creating engaging content for your website has never been easier. Jetpack’s AI Assistant can help you quickly generate text, lists, tables, and AI-generated images. AI can also help you edit existing content, highlight readability challenges, identify tonal shifts, and suggest word and image updates to optimize user engagement on every page.

Plus, there’s more to explore with Jetpack Blocks – navigate to the Jetpack tab on the WordPress Site Editor (Jetpack is activated by default) or check out the Jetpack Blocks support guide

Learn more about AI AssistantAdditional Plugins from Jetpack

Business plan users and above can install additional plugins to their websites. Let’s look at two top-tier plugins the Jetpack team offers to further extend your site’s capabilities.

Jetpack Boost: Make the jump to lightspeed

Paid plugin

Speed matters: just a one-second delay in website loading times can cause a 20% drop in website conversions, with slow sites causing users to experience stress equivalent to watching a horror movie or taking a math test. With Jetpack Boost, you can get suggestions to optimize your website and give your website a relative speed score. Boost will also optimize your code for ultra-fast response times, no developer required.

With Jetpack, you can be sure you’re getting the best: Boost beat out the top 5 WP performance plugins in a head-to-head test.

Source: JetpackLearn more about Jetpack BoostJetpack CRM: Know your customers

Paid plugin

For a fully integrated, simple CRM, try out Jetpack CRM (formerly known as Zero BS CRM). Jetpack CRM allows you to manage your customers and website visitors with ease, ensuring you never lose a contact or a sale. With integrations for WooCommerce, Paypal, Stripe, Gravity Forms, and more, you can ensure all your data and sales operations are at your fingertips. Unlike complex CRM platforms, Jetpack CRM keeps things simple so that you can run your business effortlessly.

Learn more about Jetpack CRMReady for takeoff?

With Jetpack built into every WordPress.com website, you get best-in-class tools to help build and grow your site, no matter which plan you choose. It’s that special ingredient that helps make WordPress.com the best place to host your website (in our biased opinion). Sign up to create your first website today or upgrade your existing plan to access everything Jetpack has to offer.

 •  0 comments  •  flag
Share on Twitter
Published on December 27, 2024 04:00

December 23, 2024

Why Alt Text Matters: Boost Accessibility and SEO with Every Image

The internet is a treasure trove of visuals, overflowing with inspiration and information. Images are what draw us in, keep us engaged, and help us learn, and create. But imagine the internet without those visual cues—navigating it would be a real challenge.  

Luckily, for people with visual impairments, those dealing with slower internet connections, and even the robots powering search engines, there’s a simple yet powerful solution: alt text (short for alternative text). This unsung hero of the digital world ensures that everyone can access and benefit from the images we often take for granted.

What is alt text?

Alt text is exactly what it sounds like—a description of an image that appears on the page. Simple, right? But there’s more to it than that. To write truly effective alt text, it’s important to understand why it matters, when an image needs an alt attribute (spoiler alert: not every image does!), and the best tools to help you make sure your images are covered. Let’s dive in and make your alt text work smarter, not harder!

Why alt text is important

Alt text isn’t just a box to check—it’s a powerful attribute that serves two important purposes: making your content inclusive and helping search engines understand your images.

Accessibility

Alt text provides a written description of an image for those who rely on screen readers or encounter issues loading images. It’s there to ensure that no matter the barrier—be it visual impairments or low-bandwidth connections—your content remains accessible and meaningful to all users.

Without proper alt text, you risk not only making your site inaccessible to visitors but also potentially violating accessibility laws like the Americans with Disabilities Act (ADA), which could result in fines or other legal consequences. Similar laws are found throughout the European Union, Canada, the Republic of Korea, and Australia—just to name a few. If you’re trying to make the case for an equitable online experience for your team, this is a great place to start.  

Want to learn more about building an inclusive online community? Here are a few resources to get you started: 

WordPress Accessibility DayWordPress Accessibility StandardsWordPress Accessibility ForumSearch engine optimization (SEO)

Search engine crawlers pull several key details from an image, including its file name, captions, title, and alt text. Among these, alt text is the most important for helping search engines understand the image’s subject within the page’s overall content. This information works alongside the other content on the page to enhance search engine algorithms, boost your rankings, and drive more traffic to your site.

When writing alt text, aim for clear, meaningful descriptions that fit naturally with the page’s content. Incorporate keywords thoughtfully, and most definitely resist the urge to overdo it—keyword stuffing not only disrupts the user experience but can also result in search engines penalizing your site as spam. 

Not familiar with keyword stuffing? Keyword stuffing is all about cramming in as many keywords as possible in an attempt to boost rankings on search engine results pages. This doesn’t work and often backfires. Here’s an example:

An example of an image with specified alt text. Photo by Tuqa Nabi on Unsplash.

Keyword stuffed alt text: 

alt=”Cute kitten playing with a ball of yarn, adorable kitten, fluffy kitten, playful kitten, cute kitten image, kitten for sale, kitten pictures.”

Well-written alt text can both enhances accessibility and support your SEO strategy. Use your commonsense and keep your (human) site visitors top of mind. 

How to know which images need alt text and how to write it

After all that, you may be surprised to learn that not all images require alt text. In fact, it becomes an exhausting experience for some users with screenreaders to endure fluffy alt text applied to images that don’t provide any value. Luckily for us, the W3 has categorized web images and offered some tips about how to treat images within each category.  

Here’s how to write the right kind of alt text depending on what your image is for:  

Informative images: These are the most common images found on sites and include pictures, photos, or illustrations that represent concepts or information. Your alt text should give a short description that conveys the essential meaning of the image. 

Another example of an image with specified alt text to help users understand the content and context of an image.

For example, this image illustrates all of the integrations available with Automattic’s P2, but those integrations are not named in the accompanying content. It’s important here that the alt text provides that information for visitors that may not be able to see or load the image. It should look something like this: 

alt="Logos for available P2 integrations: Crowdsignal, Figma, Twitter, GitHub, YouTube, Vimeo, Google Calendar, and Loom"

Decorative images: If an image is just there to look nice and doesn’t add any important info, use a null alt attribute (alt=””). This tells assistive technologies to skip it.  

Functional images: If an image works as a button or link, the alt text should explain what it does—not what it looks like. 

For example, the alt text for a video icon might say “Watch this video about hibernating bees on Vimeo.”  

Images of text: If the image contains readable text (like a graphic with a quote or a logo), the alt text should include the same words.

Complex images: Charts, graphs, or diagrams need more detailed alt text to describe the data or information they present. You might even link to a longer description.  

Groups of images: If multiple images work together to convey one idea, the alt text for one of the images should cover the whole message. A good example of this would be process shots for a recipe or other how-to tutorial that includes steps. 

Image maps: For images with clickable areas, provide alt text that explains the overall purpose of the image, and include alt text for each clickable section describing where it leads. 

Not sure how to categorize an image? Check out the W3 Images Tutorial for help. 

While there are no official length guidelines, it’s generally recommended to keep alt text under 140 characters. Longer descriptions can become tedious when read by screen readers. Be descriptive, but stay concise—this is not the place for creative flourishes.

Tools to ensure your images include alt textChrome Accessbility Report

The Chrome accessibility report is an easy-to-use resource built right into your browser, when you want to quickly test a single page on your site. 

Alt Text Tools

The Alt Text Tools from the NerdPress team is a free, light-weight plugin that generates a CSV file of the images used in your content, along with their alt attributes.

Once the scan is complete (it’s very fast!), you can open the CSV file in the spreadsheet application of your choice. There you can quickly identify images that have missing alt attributes and scan for any that may need some improvement. The file also includes links to edit the posts where the images appear, making it quick and easy to update their alt attributes.

Equalize Digital Accessibility Checker

This freemium WordPress plugin from Equalize Digital goes beyond alt text to ensure your site is accessible to a wide range of visitors. If you and your team are committed to making your content accessible, this is a great resource. 

Equalize Digital also runs a Facebook Group and hosts a monthly virtual meet up for WordPress  developers, designers, and users interested in learning more about creating accessible websites that can be used by people of all abilities.

Alt text may seem like a small detail, but it plays a big role in making the internet more inclusive and user-friendly. By writing thoughtful, descriptive alt text, you’re not just improving accessibility—you’re also optimizing your content for search engines and enhancing the overall user experience. With the right approach and tools, adding alt text can be an easy step toward a more accessible and SEO-friendly site.

Start a blog on WordPress.com

Start optimizing your content with a blog hosted on WordPress.com.

Choose the plan that works best for your business, and let us manage the rest. With any WordPress.com plan, you get all the benefits of fast, secure managed WordPress hosting.

 •  0 comments  •  flag
Share on Twitter
Published on December 23, 2024 04:00

December 19, 2024

State of the Word 2024 Video + Recap

On Dec. 16, WordPress co-founder Matt Mullenweg, Lead Architect Matías Ventura, and Executive Director Mary Hubbard were joined by WordPress community member Junko Nukaga to reflect on all things WordPress at Tokyo Node Hall in Tokyo, Japan. The venue provided the perfect location for the annual event, which was held for the second time outside of the United States.

After delivering the evening’s keynote, Matt, Matias, and Mary were joined by distinguished guests including author and poet Mieko Kawakami, Things Become Other Things author Craig Mod, mgn CEO Hajime Ogushi, and SAKURA Internet Inc. Senior Director Genki Taniguchi. The talented pianist Aiko Takei also performed during the introduction and intermission. 

If you missed the livestream, you can watch the full event below:

Highlights from 2024

2024 was a busy year for the WordPress project. Here are some particularly noteworthy moments and milestones that Matt, Matias, and Mary reflected upon from the event stage:

WordPress is growing in Japan (and beyond). Our favorite open-source CMS currently powers 43.6% of all websites around the world, and has a CMS share of 62.3%. In Japan, it powers 58.5% of all websites and maintains a 83% CMS share. The global community is growing too. WordPress sites using languages other than English are expected to surpass English language sites by 2025. It’s all about extensibility. WordPress users downloaded plugins 2.35 billion times in 2024. Users can install plugins on the Business plan and above. Writing and designing with WordPress has never been easier. An improved distraction-free mode provides a cleaner experience when writing in the editor. Thanks to the new zoom-out view, you can use patterns without setting up each single block. Enhancements for builders and developers. The Templates API streamlines registering and managing custom templates, while WordPress Playground became even more useful thanks to an improved Github integration.  Even more free-to-use visual and audio content. Openverse, a free tool that makes it easy to find open-licensed and public domain works, grew to 884 million images and 4.2 million audio files. Learn how to use Openverse directly in WordPress.com.WordPress in Japan

WordPress is flourishing all around the world, thanks in part to the generous support and contributions of the Japanese WordPress community. Here are a few key highlights and fun facts:

Japan was the first country to localize WordPress, thanks to a forum post from the user Otsukare. Wapuu, WordPress’s lovable mascot, was created by web designer and illustrator Kazuko Kaneuchi. You can learn all about Wapuu (and even buy Wapuu merchandise) at wapu.us.The popular forms plugin Contact Form 7, created by Japanese developer Takayuki Miyoshi, reached 10 million downloads in 2024. You can follow Miyoshi’s blog (which is hosted on WordPress.com) at ideasilo.wordpress.com.The Japanese WordPress community hosted 189 meetups in 2024. Find WordPress meetups in your area or learn how to start your own meetup.Q&A session

It wouldn’t be State of the Word without a question-and-answer segment. Audience members (including Tokyo Vice author Jake Adelstein) sparked engaging conversations around topics that included:

What open social platforms like Bluesky and Mastodon mean for web publishers.How will AI continue to impact search engine optimization in the future.Why websites are still relevant (and why it’s important to own your online home)

And much more. You can watch the full session below:

 •  0 comments  •  flag
Share on Twitter
Published on December 19, 2024 13:31

New Year, New Story: Share Your 2025 Wishes with the World

As the last days of 2024 wind down, we’re inviting WordPress.com bloggers to kick off the new year by doing what we love most: sharing our stories.

Reflecting on the past 12 months and looking forward to the New Year is a natural part of the season, but blogging about those thoughts? That’s a modern twist that turns personal contemplation into community inspiration.

This January, we’re challenging you to write about the turning of the year – from your experiences during 2024, to your hopes, dreams, and goals for 2025, to everything that’s in between. We can’t wait to read what you come up with!

How to participate in the #2025-new-year-challenge

Participating is easy:

Write your post: Craft a heartfelt, honest, or even humorous post about what comes up for you as we enter the new year. Dream big, get specific, or keep it wonderfully vague – it’s your story.Schedule for January 1st: Use our handy scheduling feature to have your post go live on January 1st, right as the new year begins. Nothing says “fresh start” like a post dropping on day one!Tag it right: Add the #2025-new-year-challenge tag to your post. This is your ticket to others seeing and interacting with your post.Get the word out: Blog about the challenge or share this post with others. Let’s get as many stories as we can!Discover and connect

Want to see what others created? Starting January 1st, visit wordpress.com/tag/2025-new-year-challenge to explore a world of reflections, aspirations, dreams, and more.

You might find a haiku encapsulating the past year, a fitness enthusiast planning their marathon, or someone simply resolving to be kinder to themselves. Every story matters, and every reflection is a step towards a new beginning.

Make it yours with the Personal plan

Ready to make your online presence more personalized? Our Personal plan is the perfect companion for your blogging journey this new year. Get a custom domain (first year included) and transform your blog from a generic URL to your very own corner of the internet.

Imagine telling people, “Check out my resolution progress at [yourname].com” – pretty cool, right?

Let’s make 2025 remarkable

Whether you’re nostalgic for 2024 or excited to learn a language, read more books, or simply smile more this upcoming year – we want to hear about it. Your post might just inspire someone else on their own journey.

So grab your laptop, warm up those typing fingers, and let’s welcome 2025 with stories of growth, hope, and possibility.

Happy writing, and here’s to new beginnings!

 •  0 comments  •  flag
Share on Twitter
Published on December 19, 2024 10:48

December 17, 2024

Using WordPress as a Data-Entry Site to Power a Central API

One of the areas where WordPress shines is content management. This is also corroborated by the fact that it is the world’s leading Content Management System, or CMS, by numbers.

The most popular way of displaying the content hosted by WordPress is through a frontend, like through blog posts and pages. That is wonderful for human visitors but there are other ways of consuming that content –– for example, web APIs. 

In this article, we’ll explore how we can leverage WordPress in order to power a central API for projects like phone apps, browser extensions, or the frontends of other WordPress sites!

Following along

All the steps described in this article were made in WordPress Playground. If you want to see the end result and maybe sometimes skip ahead as we go, download this ZIP file, and perform these steps:

Visit https://playground.wordpress.net/Restore the site from the ZIP fileLog in into the admin areaWhat is a web API?

API stands for Application Programming Interface and it’s a way for software applications to communicate with each other in a standardized fashion. A web API is simply one that is accessed through “the internet” –– for example, by entering a certain URL in your web browser.

There are multiple types of web APIs, and one common way to group them is the protocol they use. In this article, we’ll be implementing two APIs, one based on the REST protocol, and another based on the GraphQL protocol. Other protocols you might have heard of include SOAP, RPC, or gRPC. 

WordPress actually includes a built-in REST API which powers the Gutenberg Block Editor. As of October 2024, the popular WPGraphQL plugin has become a canonical plugin paving the road for an official GraphQL API as well.

What data we’ll be modeling

By the end of this article, we’ll have built a WordPress site that allows users to login in order to add/update/delete data entries which will be queryable both via REST routes and a GraphQL endpoint. 

The data entries will collectively represent a company’s organizational chart –– things like employees, teams, and offices. While a little bland, the concepts can be applied to absolutely anything else.

Optional: Trimming down the frontend

While an optional step, it makes a lot of sense to do this if your site won’t be serving any content via pages but exclusively through APIs.

Once you have a hosted WordPress website, you can start by installing a minimalist WordPress theme like Blank Canvas and deleting every single demo post and page on your site. Continue by using the site editor to include information on the homepage for visitors who find it unintentionally. 

For example, add your business’ name and logo, and tell them that they probably landed there in error. You can also include a button linking to the admin area for maintainers of the content. Something along the lines of:

One way to prevent your site from being found in search engine results is by checking the Discourage search engines from indexing this site in your site’s settings.

If you would rather fully lock down the frontend and not even have the homepage described above, you can add the following code snippet either to a plugin like Code Snippets or to your child theme’s functions.php file:

/** * Disables the frontend for non-logged-in users. */add_action( 'template_redirect', static function (): void { $authorization_required_code = \WP_Http::UNAUTHORIZED; // 401 if ( ! is_user_logged_in() ) { \status_header( $authorization_required_code ); die( \get_status_header_desc( $authorization_required_code ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } }Custom post types and taxonomies

Now it’s time to focus on the website’s admin area and the data modeling part of this tutorial. The most straightforward way of compartmentalizing your data is by using WordPress’ built-in functionality of custom post types and custom taxonomies.

While there are many ways to do this, for the purposes of this tutorial, we’ll organize our data like this:

An employee custom post typeA team custom taxonomyAn office custom post type

In order to create these custom data types, you can either add custom code to your site, or use a plugin (like in this video). A very popular plugin for creating custom post types and taxonomies using the admin interface is Custom Post Type UI – and that is what we’ll be using in this tutorial.

Here is the JSON configuration for importing the data into your installation:

For custom post types {"employee":{"name":"employee","label":"Employees","singular_label":"Employee","description":"","public":"false","publicly_queryable":"false","show_ui":"true","show_in_nav_menus":"false","delete_with_user":"false","show_in_rest":"false","rest_base":"","rest_controller_class":"","rest_namespace":"","has_archive":"false","has_archive_string":"","exclude_from_search":"true","capability_type":"post","hierarchical":"false","can_export":"true","rewrite":"false","rewrite_slug":"","rewrite_withfront":"true","query_var":"false","query_var_slug":"","menu_position":"","show_in_menu":"true","show_in_menu_string":"","menu_icon":"dashicons-id","register_meta_box_cb":null,"supports":["title","thumbnail","excerpt","revisions"],"taxonomies":[],"labels":{"menu_name":"Employees","all_items":"All Employees","add_new":"Add new","add_new_item":"Add new Employee","edit_item":"Edit Employee","new_item":"New Employee","view_item":"View Employee","view_items":"View Employees","search_items":"Search Employees","not_found":"No Employees found","not_found_in_trash":"No Employees found in trash","parent":"Parent Employee:","featured_image":"Profile image for this Employee","set_featured_image":"Set profile image for this Employee","remove_featured_image":"Remove profile image for this Employee","use_featured_image":"Use as profile image for this Employee","archives":"Employee archives","insert_into_item":"Insert into Employee","uploaded_to_this_item":"Upload to this Employee","filter_items_list":"Filter Employees list","items_list_navigation":"Employees list navigation","items_list":"Employees list","attributes":"Employees attributes","name_admin_bar":"Employee","item_published":"Employee published","item_published_privately":"Employee published privately.","item_reverted_to_draft":"Employee reverted to draft.","item_trashed":"Employee trashed.","item_scheduled":"Employee scheduled","item_updated":"Employee updated.","parent_item_colon":"Parent Employee:"},"custom_supports":"","enter_title_here":"First and Last Names","show_in_graphql":"1","graphql_single_name":"Employee","graphql_plural_name":"Employees"},"office":{"name":"office","label":"Offices","singular_label":"Office","description":"","public":"false","publicly_queryable":"false","show_ui":"true","show_in_nav_menus":"false","delete_with_user":"false","show_in_rest":"false","rest_base":"","rest_controller_class":"","rest_namespace":"","has_archive":"false","has_archive_string":"","exclude_from_search":"true","capability_type":"post","hierarchical":"false","can_export":"false","rewrite":"false","rewrite_slug":"","rewrite_withfront":"true","query_var":"true","query_var_slug":"","menu_position":"","show_in_menu":"true","show_in_menu_string":"","menu_icon":"dashicons-admin-home","register_meta_box_cb":null,"supports":["title","thumbnail","revisions"],"taxonomies":[],"labels":{"menu_name":"Offices","all_items":"All Offices","add_new":"Add new","add_new_item":"Add new Office","edit_item":"Edit Office","new_item":"New Office","view_item":"View Office","view_items":"View Offices","search_items":"Search Offices","not_found":"No Offices found","not_found_in_trash":"No Offices found in trash","parent":"Parent Office:","featured_image":"Featured image for this Office","set_featured_image":"Set featured image for this Office","remove_featured_image":"Remove featured image for this Office","use_featured_image":"Use as featured image for this Office","archives":"Office archives","insert_into_item":"Insert into Office","uploaded_to_this_item":"Upload to this Office","filter_items_list":"Filter Offices list","items_list_navigation":"Offices list navigation","items_list":"Offices list","attributes":"Offices attributes","name_admin_bar":"Office","item_published":"Office published","item_published_privately":"Office published privately.","item_reverted_to_draft":"Office reverted to draft.","item_trashed":"Office trashed.","item_scheduled":"Office scheduled","item_updated":"Office updated.","parent_item_colon":"Parent Office:"},"custom_supports":"","enter_title_here":"Add Office","show_in_graphql":"1","graphql_single_name":"Office","graphql_plural_name":"Offices"}}For custom taxonomies{"team":{"name":"team","label":"Teams","singular_label":"Team","description":"","public":"false","publicly_queryable":"false","hierarchical":"false","show_ui":"true","show_in_menu":"true","show_in_nav_menus":"false","query_var":"false","query_var_slug":"","rewrite":"false","rewrite_slug":"","rewrite_withfront":"0","rewrite_hierarchical":"0","show_admin_column":"true","show_in_rest":"false","show_tagcloud":"false","sort":"false","show_in_quick_edit":"","rest_base":"","rest_controller_class":"","rest_namespace":"","labels":{"menu_name":"Teams","all_items":"All Teams","edit_item":"Edit Team","view_item":"View Team","update_item":"Update Team name","add_new_item":"Add new Team","new_item_name":"New Team name","parent_item":"Parent Team","parent_item_colon":"Parent Team:","search_items":"Search Teams","popular_items":"Popular Teams","separate_items_with_commas":"Separate Teams with commas","add_or_remove_items":"Add or remove Teams","choose_from_most_used":"Choose from the most used Teams","not_found":"No Teams found","no_terms":"No Teams","items_list_navigation":"Teams list navigation","items_list":"Teams list","back_to_items":"Back to Teams","name_field_description":"The name is how it appears on your site.","parent_field_description":"Assign a parent term to create a hierarchy. The term Jazz, for example, would be the parent of Bebop and Big Band.","slug_field_description":"The slug is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.","desc_field_description":"The description is not prominent by default; however, some themes may show it."},"meta_box_cb":"","default_term":"","object_types":["employee"],"show_in_graphql":"1","graphql_single_name":"Team","graphql_plural_name":"Teams"}}

At this point, your WordPress admin interface might look something like this:

To Gutenberg or not to Gutenberg

The Gutenberg block editor is functional, adaptable, and easy to use, and you should be using it to edit your traditional WordPress posts and pages. However, when it comes to CPTs without a frontend, there might not be any content to warrant the use of a performant editor like Gutenberg.

If you are positive that all of the information you need is not HTML-based, then it might make sense to disable Gutenberg for these CPTs and default back to the classic post editor that was the standard before WordPress 5.0.

The simplest way to disable Gutenberg support for a CPT is to set the show_in_rest argument to false when registering it (as we’ve done above). 

Alternatively, if you want to keep the built-in REST routes that WordPress provides for every CPT, you can add this code to your child theme:

/** * Disables the block editor for certain CPTs. */add_filter( 'use_block_editor_for_post_type', static function( bool $use_block_editor, string $post_type ): bool { if ( in_array( $post_type, array( 'employee', 'office' ), true ) ) { $use_block_editor = false; } return $use_block_editor; }, 10, 2);Custom Fields

Now that we have our basic data types in place, we need to start populating them with entries. Before we do that, we need to ensure that we can record all the necessary data on each entry, and for that we will need to build custom fields.

The easiest way to add custom fields to your custom post types is to register them with custom-fields support. When you then edit a post, it will include a metabox like this:

While this type of “key-value” interface can be enough, you might want to build a more user-friendly interface with fields like checkboxes, dropdowns, media selectors, and so on.

A popular way to add those types of custom fields is the Meta Box plugin, which, as mentioned above, is what we’ll be using in this tutorial. Using their online custom fields generator, we got the PHP code needed to register the fields we wanted and then added them to Code Snippets.

Using a fake data generator, we populated the custom post types with a bit of seed data:

Other UI customizations

While we won’t explore any further UI customization options in this tutorial, we wanted to note that it’s possible to use various WordPress filters to tweak things like:

The default Add title placeholder on new posts (e.g., to First and Last Names)The columns hidden or visible by default on the CPT list table viewVarious other labels and messages throughout the admin interfaceAccess control

Before we start looking into making the data available via API, it’s time to think about who should have access to it. 

The custom post types and taxonomies mentioned above were registered in such a way that any logged-in user with the ability to edit regular WordPress blog posts will also have the ability to edit these. However, it’s possible to make that much more granular.

You can create custom user roles with custom capabilities in order to ensure that the UI is as clean-as-possible in order to promote focused-work for the users doing the data maintenance. This is particularly important if you anticipate a very high number of entries, especially on an ongoing basis. 

While it is possible to control this entirely with custom code, a way to maintain a simpler overview of access management is provided by Access Policies implemented by the Advanced Access Manager plugin

For example, you can create a separate access policy for each CPT you create. Then you may assign the policy either to a role or to individual users in order to maintain full control over who may add new Employee entries or even just edit existing ones. Deleting entries can be a capability reserved only for administrators.

Here is an example of how a policy named Employees CPT – Full Control and assigned only to Administrator users can look like:

{ "Version": "1.0.0", "Dependency": { "wordpress": ">=6.6.2", "advanced-access-manager": ">=6.9.42" }, "Statement": [ { "Effect": "allow", "Resource": [ "Capability:edit_employees", "Capability:edit_others_employees", "Capability:edit_private_employees", "Capability:edit_published_employees", "Capability:read_private_employees", "Capability:publish_employees", "Capability:delete_employees", "Capability:delete_private_employees", "Capability:delete_published_employees", "Capability:delete_others_employees" ] } ]}

Here is an example of what the admin interface can look like for a dummy operator user that has the Data Entry Operator user roles (cloned from the Subscriber role) with two AAM Access Policies attached – one for each custom CPT:

Notice how the lack of most menu items makes it easier to focus solely on the data-entry aspect. The policies can be made more granular, for example, to also restrict who may delete an entry or create new ones.

Custom REST routes

While WordPress will automatically create REST routes for every CPT as long as it is registered with the show_in_rest argument set to true, you can also create your own custom rest routes that are better suited for serving the CPT content in a way that makes more sense to your use-case.

The easiest and most standard way to achieve this is by extending one of the REST API controller classes. For maximum control over the output, you may want to extend the base WP_REST_Controller class itself.

You can choose to have your routes publicly accessible if the permission_callback argument is set to the __return_true function or you can choose to lock down calls using any permission scheme you want. 

The recommended way of locking down access is behind a capability check, i.e. a call to current_user_can. You can use the AAM Access Policies mentioned above to grant or withdraw permission from individual roles or users, and you can use WordPress’ application passwords to authenticate API requests.

Hint: even if you decide that GET (read) requests should/can be publicly available, we still recommend that any POST // PUT // DELETE (create, update, delete) requests always be guarded by a current_user_can check.

Here is a REST controller that we added to Code Snippets in order to be able to list the employees on the site and fetch them by ID:

add_action( 'rest_api_init', function() { if ( ! class_exists( 'WP_REST_Controller' ) ) { return; } class Employees_Controller extends WP_REST_Controller { protected $namespace = 'custom/v1'; protected $rest_base = 'employees'; public function register_routes(): void { register_rest_route( $this->namespace, "/$this->rest_base", array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'callback' => array( $this, 'get_items' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, "/$this->rest_base/(?P[\d]+)", array( 'args' => array( 'employee_id' => array( 'description' => __( 'Unique identifier for the employee.', 'psapi-features' ), 'type' => 'integer', ), ), array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( $this, 'get_item_permissions_check' ), 'callback' => array( $this, 'get_item' ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } public function get_items_permissions_check( $request ): WP_Error|bool { return true; // This information is public. You probably want to do a `current_user_can` check. } public function get_item_permissions_check( $request ): WP_Error|bool { return $this->get_items_permissions_check( $request ); // Same as for listing all. Can be different. } public function get_items( $request ): WP_Error|WP_REST_Response { $response = array(); $employees = new WP_Query( $this->prepare_posts_query_args( $request ) ); foreach ( $employees->posts as $employee ) { $data = $this->prepare_item_for_response( $employee, $request ); $response[] = $this->prepare_response_for_collection( $data ); } $response = rest_ensure_response( $response ); $response->header( 'X-WP-Total', $employees->found_posts ); $response->header( 'X-WP-TotalPages', $employees->max_num_pages ); foreach ( $this->prepare_link_headers( $request, $employees->max_num_pages ) as $key => $value ) { $response->link_header( $key, $value ); } return $response; } public function get_item( $request ): WP_Error|WP_REST_Response { $employee = get_post( $request['employee_id'] ); if ( ! $employee ) { return new WP_Error( 'rest_not_found', __( 'No employee found for the given identifier.', 'wpcom-demo' ), array( 'status' => 404 ) ); } $response = $this->prepare_item_for_response( $employee, $request ); return rest_ensure_response( $response ); } public function prepare_item_for_response( $item, $request ): WP_Error|WP_REST_Response { $fields = $this->get_fields_for_response( $request ); $data = array(); if ( rest_is_field_included( 'id', $fields ) ) { $data['id'] = $item->ID; } if ( rest_is_field_included( 'name', $fields ) ) { $data['name'] = $item->post_title; } if ( rest_is_field_included( 'picture', $fields ) ) { $picture = get_the_post_thumbnail_url( $item, 'full' ); $data['picture'] = empty( $picture ) ? null : $picture; } $data = rest_sanitize_value_from_schema( $data, $this->get_item_schema() ); $response = rest_ensure_response( $data ); if ( rest_is_field_included( '_links', $fields ) ) { $response->add_links( $this->prepare_links( $item, $request ) ); } return $response; } public function get_item_schema(): array { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $this->schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'employee', 'type' => 'object', 'properties' => array( 'id' => array( 'description' => __( 'Unique identifier for the employee.', 'wpcom-demo' ), 'type' => 'integer', 'readonly' => true, ), 'name' => array( 'description' => __( 'The name of the employee.', 'wpcom-demo' ), 'type' => 'string', 'required' => true, ), 'picture' => array( 'description' => __( 'URL to the employee profile picture.', 'wpcom-demo' ), 'type' => array( 'string', 'null' ), 'format' => 'uri', 'required' => true, ), ) ); return $this->add_additional_fields_schema( $this->schema ); } protected function prepare_posts_query_args( WP_REST_Request $request ): array { return array( 'post_type' => 'employee', 'post_status' => 'publish', 'order' => $request['order'], 'orderby' => $request['orderby'], 'posts_per_page' => $request['per_page'], 'paged' => $request['page'], 's' => $request['search'] ?? '', 'tax_query' => $this->prepare_posts_taxonomy_query_args( $request ), // phpcs:ignore WordPress.DB.SlowDBQuery ); } protected function prepare_posts_taxonomy_query_args( WP_REST_Request $request ): array { $tax_query = array(); if ( $request['team'] ?? false ) { $tax_query[] = array( 'taxonomy' => 'team', 'field' => 'slug', 'terms' => array( $request['team'] ), ); } return $tax_query; } protected function prepare_link_headers( WP_REST_Request $request, int $max_pages ): array { $link_headers = array(); $base = add_query_arg( urlencode_deep( $request->get_query_params() ), rest_url( $request->get_route() ) ); $next_page = $request['page'] < $max_pages ? ( $request['page'] + 1 ) : null; if ( $next_page ) { $link_headers['next'] = add_query_arg( 'page', $next_page, $base ); } $prev_page = $request['page'] > 1 ? ( $request['page'] - 1 ) : null; if ( $prev_page ) { $link_headers['prev'] = add_query_arg( 'page', $prev_page, $base ); } return $link_headers; } protected function prepare_links( WP_Post $employee, WP_REST_Request $request ): array { $links = array(); if ( ! isset( $request['employee_id'] ) ) { $links['self'] = array( array( 'href' => rest_url( "$this->namespace/$this->rest_base/{$employee->ID}" ), ), ); } else { $links['collection'] = array( array( 'href' => rest_url( "$this->namespace/$this->rest_base" ), ), ); } return $links; } } ( new Employees_Controller() )->register_routes(); });

Testing your REST routes

Your custom REST routes will be available under /wp-json//. For example, the path for retrieving the list of employees could look like this:

/wp-json/custom/v1/employees?team=marketing

Hint: the team query added there will be parsed by WordPress and made available in the controller; you can then choose to either ignore it or filter the results by it – anything you want!

The easiest way to test your endpoints, especially if they will require an application password to access, is to use a tool like Postman which lets you test APIs in a very user-friendly manner. Publicly available GET requests can also be tested by simply visiting the URL endpoint in your browser!

Querying via GraphQL

Now that we are able to fetch the data via REST routes, let’s explore how we might be able to fetch it using GraphQL as well.

If you’re unfamiliar with GraphQL, what you need to know is that it’s actually a querying language just like SQL but for APIs. You can read more about it on the official website over at https://graphql.org/

The simplest way to add GraphQL support to our site is by installing the newly-canonical plugin WPGraphQL. It also has a documentation page where you can learn more about what it provides out-of-the-box, and also examples of how to handle much more complex scenarios.  

If you’ve been paying attention to the JSON configuration of the custom post types shared above, you might’ve already noticed a key named show_in_graphql set to 1 (true/active). That is all we need in order to allow the custom post types we added to be queries using GraphQL.

Here is an example of a GraphQL query that can be used to list Employees which you can test in the built-in GraphQL IDE bundled with the plugin:

query GetEmployeesEdges { employees { edges { node { id name: title image: featuredImage { node { sourceUrl } } } } }}Building your own

If this sounds like something you want to build for your own business, you can work on it on your own computer using Studio by WordPress.com. You can even share your work with colleagues (for free!) using a demo site, and when you’re ready, any WordPress.com Business plan or higher will be able to host and manage your site.

 •  0 comments  •  flag
Share on Twitter
Published on December 17, 2024 07:00

December 13, 2024

State of the Word 2024: Watch Live on December 16

State of the Word 2024 is just around the corner! Join us for this live stream event on Monday, Dec. 16th at 18:00 JST / 09:00 UTC. 

State of the Word is the annual keynote address delivered by the WordPress project’s co-founder and Automattic CEO, Matt Mullenweg. Every year, the event celebrates the open source project’s progress and offers a glimpse into its future. 

State of the Word 2024 will be held in Tokyo, Japan, at Tokyo Node Hall. This will mark the first year the event has ever been held in Japan, where WordPress powers 58.5% of all websites. This year’s edition promises to deliver insight from Matt, Lead Architect Matías Ventura, and General Manager Mary Hubbard, as well as a lineup of guest panelists, from acclaimed authors to leaders in the Japanese WordPress community. 

It will be live-streamed worldwide via the WordPress YouTube channel.

Watch State of the Word 2024 live!

What: State of the Word 2024

When: Monday, Dec. 16th at 18:00 JST / 09:00 UTC / 04:00am EST

How: The live stream is embedded above in this post and will start at the time of the event. It will also be available through the WordPress YouTube channel. Prefer to watch with other WordPressers? There will also be locally-organized watch parties happening around the world. Search to find one near you or learn how to host your own watch party.

 •  0 comments  •  flag
Share on Twitter
Published on December 13, 2024 04:00

December 12, 2024

Dream It. Build It. Here’s 25% Off to Make it Happen.

Every great journey starts with a single step—and yours starts today.

You’ve had the idea. You’ve imagined the possibilities. Whether it’s a blog, a business, or a creative project, the dream has always been there, waiting. But here’s the truth: dreams can’t grow until you take action. And right now is the perfect time to start.

At WordPress.com, we’re here to help you bring your vision to life. With our year-end promotion, you’ll get 25% off any new annual plan—plus a free domain for your first year—to make starting even easier.

Use coupon code DREAM25 at checkout and start building today.

Save 25% Today

Why wait when everything you need is right here?

Design your dream. Choose from stunning, customizable themes that make your site uniquely yours.Be seen effortlessly. Built-in SEO tools help grow your audience and expand your reach.Turn passion into profit. Accept payments, offer subscriptions, and much more.Get expert help, 24/7. Our team is always available to support your success.

And that’s just the beginning. From intuitive tools to seamless performance, we’ve built the platform to help you succeed—whether you’re starting your first blog, scaling your business, or taking your passion to the next level.

But here’s the thing: your dream won’t wait forever, and neither will this offer. This exclusive 25% discount ends on December 31st, 2024. Use coupon code DREAM25 at checkout and start building today.

The future you’ve been imagining? It’s closer than you think. Dream it. Build it. Grow it—with WordPress.com.

Save 25% Today

 •  0 comments  •  flag
Share on Twitter
Published on December 12, 2024 04:00

Tim McGiven's Blog

Tim McGiven
Tim McGiven isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Tim McGiven's blog with rss.