WordPress SEO: what the CMS does, what the plugin does, what you do
You run a product site on WordPress. Here is what the CMS already does for SEO, what the plugin must do, and what you need to change. Follow the checklist and ship pages that index, look good in search and load fast.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
What WordPress core already handles
WordPress ships an XML sitemap since version 5.5. You do not need a plugin for the basic file to exist.
Set permalinks to post name. Go to Settings, Permalinks, choose “Post name”. This gives clean URLs like /pricing and /blog/your-article/ instead of query strings.
Categories and tags create archive pages. On a small site these are thin unless you curate them. Plan to noindex them with a plugin, or curate them into real hubs.
The media library creates attachment pages for each file. These dilute your index. Redirect them to the file URL or to the parent post using a plugin setting.
robots.txt in WordPress is virtual. You edit it through a plugin, not via FTP, unless your host maps a file over it. Check your plugin’s robots editor if you need rules.
What the SEO plugin adds
You need a plugin for titles, meta descriptions, canonicals, robots meta, breadcrumbs and structured data. Yoast SEO, Rank Math, All in One SEO and SEOPress all do this class of work. Pick one, do not stack them.
- Titles and descriptions: per page and per post, with templates for archives and the homepage
- Canonical tags: set a self canonical by default and allow custom canonicals
- Robots meta: index or noindex, follow or nofollow, and advanced flags per page
- Breadcrumbs: output a breadcrumb trail and the matching structured data
- Structured data: sitewide Organisation, BreadcrumbList and per content type presets
- Sitemaps: some plugins replace the core sitemap with a richer one
Install one plugin. Run its setup wizard. Set global templates first, then fix priority pages by hand. Example: set a template for posts, then hand craft /pricing and /about/ so they read well on search.
Permalinks, archives and media attachments to control
Use the post name structure
Settings, Permalinks, select “Post name”. Save. Check a few URLs load at /slug/ without extra folders you do not need.
Decide on category and tag archives
If you have five posts total, noindex these archives. In the plugin, set category and tag archives to noindex. If you run a curated hub, keep index and make each archive useful.
Handle date and author archives
On small sites, set date and author archives to noindex or disable them. This removes thin pages like /2024/ and /author/admin/.
Redirect attachment pages
In the plugin, enable the setting that redirects attachment pages to the file URL or to the parent post. Test an attachment URL returns the image, not a thin page.
Pick a trailing slash policy
Use either trailing slash or none. Do not mix. WordPress defaults to slashes. Keep it, and let your host redirect the other form to your chosen one.
A fixed site has /guides/getting-started not /index.php?p=ID. /blog/tag/ai is either a curated hub with intros and links, or it is noindexed. /wp-content/uploads/2026/logo.png loads, and /logo-attachment/ is gone.
Sitemaps and robots.txt on WordPress
The core sitemap lives at /wp-sitemap.xml. Some plugins replace it with /sitemap_index.xml and child sitemaps. Either form is fine if it lists only canonical URLs you want indexed.
Choose one sitemap source
Use the plugin sitemap if it gives you per post type control. Turn off duplicate sitemap features from other plugins and hosting layers.
Exclude thin taxonomies
In the plugin, exclude categories, tags and formats from the sitemap if they are noindex or thin. Keep posts, pages, and key custom types.
Point Search Console at the sitemap
Add the top sitemap URL in Search Console’s Sitemaps report. Watch the discovered URLs count and error list for mismatches.
Edit robots.txt in the plugin
Use the plugin’s robots editor to keep it simple. Allow crawling. Do not block /wp-content/ or /wp-includes/ unless you know why. Link the sitemap URL at the end.
Titles and meta descriptions that earn clicks
Write titles that match the query and fit the page. Keep around 60 characters. The plugin shows a counter. Your goal is clarity over stuffing a keyword twice.
Set a good homepage title
Example: “YourProduct, simple error tracking for Next.js”. Not your brand alone. Include the category term users search.
Make key pages hand written
/pricing, /features, /docs/ should have hand written titles and descriptions. Templates are fine for posts, not for conversion pages.
Use plugin variables where they help
Keep a template like “%title% | YourProduct” for posts, then override standouts. Avoid variables that add dates unless your content is news.
Write a meta description once
Use it to sell the click in about 150 characters. Example for /pricing: “Transparent plans. Free for 5, annual discounts. Compare features at a glance.”
Check the search appearance after indexing. If Google rewrites the snippet, adjust your first heading and opening lines to match the query better. The page text still drives the snippet choice.
Structured data for a product site on WordPress
Use JSON-LD through your plugin or a theme snippet. Add Organisation on the homepage, BreadcrumbList on all pages and Article on blog posts. For a product, pick Product or SoftwareApplication where it fits your offer.
Set sitewide Organisation
Name, logo URL, sameAs profiles. Do this once in the plugin settings.
Enable breadcrumbs schema
In the plugin, toggle breadcrumb schema. Output the visible breadcrumbs in your theme and match the JSON-LD structure.
Choose Product vs SoftwareApplication
If you sell software, SoftwareApplication fits. If you sell a physical product, use Product. Do not mark every page as Product.
Add FAQ only when the page has real Q&A
If a page has an FAQ block, add FAQPage JSON-LD. No Q&A content, no FAQ schema.
Test in Google’s Rich Results Test. Fix required fields. Example: /pricing with SoftwareApplication has name, description, operatingSystem and offers where relevant. Keep the schema aligned with the visible content.
Speed on WordPress: theme, plugins, host and images
Core Web Vitals as of 2026: LCP good up to 2.5 s, CLS up to 0.1, INP up to 200 ms. Aim for good on your key pages at the 75th percentile in field data over 28 days.
- Pick a lean theme. Heavy page builders and animations slow LCP and INP
- Limit plugins. Audit and remove anything that adds scripts on every page
- Use your host’s caching. Add full-page caching and object caching if offered
- Optimise images. Use modern formats, proper sizes and lazy loading
- Serve static assets via a CDN if your host offers it
Measure field and lab
Open PageSpeed Insights for /, /pricing and your top post. Note field data if present and the Lighthouse lab diagnostics. Fix what repeats across pages.
Reduce LCP
Set a smaller hero image on / and /pricing. Preload the main font. Remove render blocking CSS and JS where your theme allows.
Stabilise layout
Set width and height on images and embeds. Avoid layout shifts when a cookie bar or chat loads. Keep CLS under 0.1.
Keep interactions quick
Defer non-critical scripts. Avoid big UI libraries if you do not need them. Keep INP around 200 ms on common actions.
A fixed /pricing loads in under 2.5 s on a mid-range phone. The plan cards do not jump. The buy buttons respond instantly. Your Lighthouse score will vary by run. Track the field trend in Search Console’s Core Web Vitals report.
Yoast vs Rank Math vs others: which to pick
Yoast SEO, Rank Math, All in One SEO and SEOPress all cover titles, canonicals, robots, breadcrumbs, sitemaps and schema. Choose one based on your comfort and the UI you like. The core feature set overlaps for a small site.
| Need | What to look for | Any of the big four offers |
|---|---|---|
| Simple setup and defaults | A guided wizard, sensible templates, on-off toggles for archives | Yes |
| Breadcrumbs output | A shortcode or PHP function and matching schema | Yes |
| Schema presets | Organisation, BreadcrumbList, Article, Product or SoftwareApplication | Yes |
| Sitemap control | Include or exclude post types and taxonomies | Yes |
| Robots editing | Per page robots and a robots.txt editor | Yes |
If you need one click toggles like “redirect attachment pages” or “disable date archives”, verify the exact setting exists in your chosen plugin. Check the plugin’s current docs if the menu moved after an update.
A WordPress SEO checklist for a product site
- Permalinks set to post name
- One SEO plugin active, wizard completed
- Homepage, /pricing, /features, /contact with hand written titles and descriptions
- Blog post template uses H1 as the title and shows breadcrumbs
- Category, tag, date and author archives reviewed, noindexed if thin
- Attachment pages redirected to the file or parent post
- Core or plugin sitemap submitted, thin taxonomies excluded
- robots.txt allows crawling and lists the sitemap URL
- Canonical tags present and correct on all key pages
- Visible internal links from / and /features to /pricing and /guides/ where relevant
- JSON-LD present: Organisation, BreadcrumbList, Article on posts, SoftwareApplication or Product where it fits
- PageSpeed Insights checked for /, /pricing and your top post, obvious bloat removed
- Image sizes constrained, lazy loading on long posts
- Search Console verified and indexing checked for new pages
Work this list top to bottom on a staging copy if you can. Recheck the sitemap and Search Console after you change indexation or redirects.
Worked example: fixing a small WordPress site
Start with yourproduct.com on a basic theme. It uses the default Day and name permalinks, thin tag archives and attachment pages. Speed is poor on mobile. Here is the before and after.
Permalinks and archives
Switch to Post name. In the plugin, disable date and author archives, noindex tags, keep categories only for curated hubs.
Attachment cleanup
Enable the “redirect attachment URLs” option. Test an attachment URL now loads the image file.
Titles and snippets
Write a new homepage title: “YourProduct, API monitoring for SaaS teams”. Write a /pricing description that states seats and billing. Set a post template for the rest.
Schema and breadcrumbs
Fill the Organisation fields with your brand, logo and social links. Enable breadcrumbs in the plugin, add the breadcrumb function to your theme’s single.php.
Sitemap and robots
Submit /sitemap_index.xml in Search Console. robots.txt shows allow rules only and the sitemap line. Categories are in the sitemap, tags are not.
Speed wins
Compress the hero image on /. Remove an unused slider plugin. Turn on host caching. Recheck PageSpeed Insights for LCP under 2.5 s on /pricing.
After, Google crawls fewer junk URLs, snippets read cleanly for /pricing and /guides/getting-started, and mobile users see a stable layout. Conversions improve because the page loads and the CTA does not jump.
Questions
Yes. Core covers the sitemap and permalinks. You need a plugin for titles, meta descriptions, canonical tags, robots meta, breadcrumbs and structured data. Pick one plugin, not several.
No. WordPress remains fine for SEO if you keep themes lean, limit plugins and set archives and attachments correctly. The weak spots are self inflicted: bloat, duplicate pages and thin archives, not the CMS itself.
Both handle the essentials. Choose the UI you prefer and the settings you need, like attachment redirects or archive toggles. The key is to learn one plugin well and keep your setup simple.
You can. Set permalinks, install one SEO plugin, fix archives and attachments, write titles for key pages and measure speed. Use Search Console to check indexing and Core Web Vitals over 28 days.
If they are thin, yes. Noindex them and remove them from the sitemap. If you curate them as hubs, keep them indexable and useful with intros, links and unique copy.
Core serves /wp-sitemap.xml. Some plugins serve /sitemap_index.xml instead. Submit whichever you use to Search Console and avoid duplicates.
Sources
Check my site, free
Paste your homepage URL and get a free check of your WordPress setup, the searches around it and who you face on them, with three findings you can ship this week.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideTechnical SEO checklist for a small site
- GuideOn-page SEO checklist: the twelve things on the page
- GuideCanonical tags: what they do and the mistakes that cost rankings
- GuideBreadcrumbs: the navigation, the markup, and what Google shows
- GuideJSON-LD: how to write it, where to put it, how to test it
- GuideCore Web Vitals for a product site: the three numbers
- GlossarySEO plugin
- AlternativesYoast SEO alternatives for WordPress