WordPress SEO 101: the settings and habits that matter most
WordPress runs a huge share of the web, and it is a genuinely good platform for search right out of the box. Most WordPress SEO problems I'm hired to fix come from a handful of settings nobody changed, a few plugins that fight each other, and habits like linking the words "read more" a thousand times. Here is what a beginner should do, in order, on a new site or an old one.
Day one: five settings to check
- Settings, then Reading: find "Discourage search engines from indexing this site" and make sure it is unchecked. Developers tick it while building and forget it at launch more often than you'd believe. One checkbox can keep an entire business out of Google.
- Settings, then Permalinks: choose "Post name," so addresses read
/kitchen-remodeling/instead of/?p=123. On an established site, change this only with redirects in place. - Settings, then General: set a real Site Title and a tagline that says what you do. Many themes print them on every page.
- HTTPS: both addresses in General settings should start with
https://. Your host can install a free certificate. - Users: give every author a real display name and a short bio. Pages signed by an actual person are easier to trust.
The plugins I recommend
These are my personal picks after years of building and fixing WordPress sites. Install one SEO plugin only; two will fight over your titles and sitemaps.
- Yoast SEO Premium. The free version handles titles, meta descriptions, XML sitemaps, schema, and archive settings well. Premium adds a redirect manager, so changed or deleted pages never strand a visitor, and internal linking suggestions that help you connect related posts as you write. It pays for itself the first time you rename a page.
- WPCode, and WPCode Pro for schema. The safe way to add snippets: a verification tag, a tracking code, a small PHP tweak. It keeps them in one place, survives theme changes, and spares you from editing
functions.php, where one typo can take the site down. I use the paid Pro version for structured data: it lets me add bespoke schema to any individual page or post, so a service page, an event, or a case study can each carry markup written for exactly what that page says. Keep it consistent with what Yoast already outputs, and test every page in Google's Rich Results Test. - Site Kit by Google. Google's own plugin connects Search Console, Analytics, and PageSpeed Insights to your dashboard and verifies site ownership for you. It hardwires your site into Google's tools in a few clicks, and puts the numbers where you'll actually see them.
Archive pages: keep the duplicates out of search
WordPress automatically makes extra pages that list your posts by tag, category, date, and author. On most small sites those pages repeat content that already lives on the posts themselves. In Yoast's settings I set tag archives, date archives, and author archives on single-author sites to stay out of search results, and leave categories indexed only when each one has a real introduction of its own. Media attachment pages, which give every uploaded image its own thin page, have been off by default for new sites since WordPress 6.4; on older sites, Yoast can redirect them to the image itself.
Writing a post that ranks
- The post title is your H1. Use Heading 2 and Heading 3 blocks for sections, in order. Never pick a heading level for its size.
- Fill in the SEO title and meta description in the Yoast box under every post: a unique title around 50 to 60 characters and a description around 150.
- Edit the slug to a short, readable phrase before you publish.
- Answer the question early, in plain words, and add what only you know: prices, photos of your work, your process, your results.
Alt text in the media library
Every image block and every media library item has an "Alternative text" field. Describe what the image shows in a short sentence, including any words visible in it. Leave out "image of," because screen readers already say that. Leave the field empty only for purely decorative images, so screen readers skip them. Fill it in once in the media library and WordPress reuses it wherever you insert that image.
Kill "read more" for good
Many themes end every excerpt with a "Read more" or "Continue reading" link. On a blog page with twenty posts that's twenty identical links, each one telling crawlers and screen reader users nothing about where it goes. Link the post title instead, or change the theme's excerpt link to include the post's name. In your own writing, put links on words that describe the destination: "my guide to accessible websites," never "click here." Link new posts to your older related posts, and older posts forward to new ones; this is the internal linking that helps both readers and crawlers find your best pages.
Put Cloudflare in front of WordPress
After the plugins, my strongest advice is to move the domain's DNS to Cloudflare and route the site through it. Even the free plan speeds up WordPress, manages certificates, and fends off attacks, and the paid features are worth their price on most WordPress sites. My guide to Cloudflare for WordPress walks through the setup, the plan I'd choose, and the budget.
Tell the search engines
- Verify the site in Google Search Console (Site Kit can do it for you) and submit the sitemap Yoast creates at
/sitemap_index.xml. - In Bing Webmaster Tools, use the import from Google Search Console option. It copies every verified site and sitemap across in a few clicks.
- Make sure IndexNow is on. Yoast SEO Premium includes it and pings Bing and the other participating engines every time you publish or update a post.
- Check both consoles every few weeks for sitemap errors and pages that aren't indexed.
Speed
- Hosting matters most. A good managed WordPress host beats any plugin on cheap shared hosting.
- Use fewer plugins. Each one can add scripts to every page. Remove what you don't use.
- Upload sensible images. WordPress already creates smaller sizes and lazy loads images below the fold, but a 6 MB photo straight from a phone still slows the first view. Resize before uploading, or use an image optimization plugin.
- Add caching if your host doesn't provide it, and test in PageSpeed Insights. My Core Web Vitals guide covers what the scores mean.
Accessibility
Choose a theme tagged "accessibility ready" in the WordPress theme directory; those themes have passed a review for keyboard navigation, contrast, and structure. Then keep your content accessible with real headings, alt text, descriptive links, and captions on video. Accessibility and SEO reward the same work; see the SEO dividends of accessibility.
Updates and spam
Keep WordPress, your theme, and your plugins updated; hacked sites get spam pages injected and drop out of search fast. Turn off comments if you don't moderate them. And treat any offer of cheap backlinks, guaranteed rankings, or "AI content at scale" as the spam it is.
Further reading
- WordPress: the Reading settings screen and the Permalinks screen
- WordPress's built-in XML sitemaps and the attachment page change in 6.4
- WordPress performance optimization
- Accessibility ready themes and the WordPress accessibility handbook
- Yoast help center, WPCode on WordPress.org, and Site Kit on WordPress.org
- Google's SEO Starter Guide and Google's link best practices
- Google's image SEO best practices and WebAIM on alt text
- Google Search Console and PageSpeed Insights
Inherited a WordPress site and not sure what's been done to it? Send me the address and I'll tell you what I'd fix first, or see how I handle WordPress SEO for clients.
Sources
- Yoast: We are launching an IndexNow integration in Yoast SEO
- WordPress.org: Settings Reading screen
- WordPress.org: Settings Permalinks screen
- Make WordPress Core: Changes to attachment pages
- Make WordPress Core: New XML sitemaps functionality in WordPress 5.5
- Google Search Central: Link best practices
- WebAIM: Alternative text
