The WordPress SEO checklist, by area
Here is the short version of each area. The spreadsheet has the full "why" and "how to fix" for every row.
1. Core WordPress settings (check these first)
| Check | Where in wp-admin | What good looks like |
|---|---|---|
| Search engine visibility | Settings > Reading | "Discourage search engines from indexing this site" is unticked on the live site |
| Permalinks | Settings > Permalinks | "Post name" on new sites. Do not switch an old site without 301s |
| One site version | Settings > General > WordPress Address and Site Address | Both use the same https URL; the other versions 301 to it |
| Homepage | Settings > Reading > Your homepage displays | A static page with its own SEO title and description (business sites) |
| Comment pages | Settings > Discussion > Break comments into pages | Unticked |
Since WordPress 5.3, the "Discourage search engines" box prints a noindex, nofollow robots tag on every page instead of editing robots.txt (WP Tavern). If it was left ticked after launch, Google drops the whole site.
2. SEO plugin setup (Yoast SEO or Rank Math)
- Run only one SEO plugin. Two plugins print two titles, two canonicals and two schema graphs. Import your data before you remove one.
- Fix the title templates: Yoast SEO > Settings > Content types, or Rank Math SEO > Titles & Meta > Posts. A simple pattern like
%%title%% %%sep%% %%sitename%%beats a template full of variables. - Fill the brand data: Yoast SEO > Settings > Site representation, or Rank Math SEO > Titles & Meta > Local SEO. This is where your Organization name and logo in schema come from.
- Connect Search Console: Yoast SEO > Settings > Site connections, Rank Math SEO > General Settings > Webmaster Tools, or Site Kit.
- Write a real SEO title and meta description on every page that gets impressions. Start with pages that show in Search Console but get few clicks.
3. Archives, attachments and thin pages
WordPress creates many pages you never wrote: tag archives, author archives, date archives, format archives, search results and, on older sites, a page for every uploaded image.
| Page type | Yoast SEO | Rank Math | Usual decision |
|---|---|---|---|
| Tag archives | Settings > Categories & tags > Tags | Titles & Meta > Tags | Noindex unless curated |
| Category archives | Settings > Categories & tags > Categories | Titles & Meta > Categories | Index, add an intro |
| Author archives | Settings > Advanced > Author archives | Titles & Meta > Authors | Off on one-author sites |
| Date archives | Settings > Advanced > Date archives | Titles & Meta > Misc Pages | Off or noindex |
| Search results | Noindex by default | Titles & Meta > Misc Pages > Noindex Search Results | Noindex |
| Attachment pages | Settings > Advanced > Media pages | General Settings > Links > Redirect Attachments | Redirect to the file or post |
WordPress 6.4 turned attachment pages off for new installs only. Sites created before 6.4 still have them on unless a plugin redirects them (make.wordpress.org).
4. Duplicate URLs and canonicals
- One canonical per page, pointing to itself. View the source of a post, a page, a category and a product and count
rel="canonical"tags. More than one means a theme or a second plugin is adding its own. - Pagination keeps its own canonical. Google says to give page 2, 3 and so on their own canonical and not to point them at page 1. Google no longer uses
rel=next/prev(Google Search Central). - Primary categories set if your permalink uses
%category%, and crawl clean-up for?replytocom=and WooCommerce sort and filter URLs.
5. Sitemaps and robots.txt
- Submit one sitemap. WordPress has a core sitemap at
/wp-sitemap.xml. Yoast and Rank Math replace it with/sitemap_index.xml. Submit only the active one in Search Console > Indexing > Sitemaps. - Keep the sitemap clean: no tags, attachments, templates or redirected URLs. Google ignores
priorityandchangefreqand useslastmodonly when it is accurate (Google). - Keep robots.txt short. Never block
/wp-content/or/wp-includes/, and never use robots.txt to hide a page from Google: use noindex. Our WordPress robots.txt guide has a ready-to-copy file.
6. Structured data
- One schema source per page. Themes, builders and review plugins often add a second Organization or Article graph.
- Article, Product, LocalBusiness and BreadcrumbList where they fit, with real values only.
- No time spent chasing FAQ or HowTo rich results: Google limited FAQ results to well-known government and health sites and removed HowTo results in 2023 (Google).
- No review stars for your own business: Google calls these self-serving and does not show them.
7. Page builders: Elementor and Divi
- One H1 per page. Builders make every big line an H1 or H2. In Elementor change the Heading widget's HTML Tag, in Divi the module's heading level.
- Builder post types out of search. Elementor templates, Divi Library items, popups and floating elements should be noindex and out of the sitemap.
- Performance options on: Elementor > Settings > Performance, and Divi > Theme Options > General > Performance (Dynamic CSS, Critical CSS).
- Check edits land. Elementor stores layouts in its own data, so many outside edits change nothing visible. Always check the live page.
8. Speed and Core Web Vitals
Google's thresholds for a "good" page are LCP of 2.5 seconds or less, INP of 200 ms or less, and CLS of 0.1 or less (Google). On WordPress the usual fixes are:
- One page cache (your host's, or one plugin), purged after SEO changes.
- The hero image not lazy-loaded, ideally with
fetchpriority="high". - Width and height on every image.
- Images in WebP or AVIF (WordPress supports AVIF uploads since 6.5).
- One or two font families, hosted locally where possible.
9. Plugins, redirects and security
- Delete unused plugins, keep the rest updated, and check Search Console > Security & manual actions monthly.
- Use one redirect tool and add a 301 every time you delete, merge or rename a page.
Yoast SEO checklist vs Rank Math checklist: which paths differ
Most checks are the same in both plugins. The paths are not. These are the ones people look for most:
| Task | Yoast SEO | Rank Math |
|---|---|---|
| Edit robots.txt | Yoast SEO > Tools > File editor | Rank Math SEO > General Settings > Edit robots.txt |
| Turn on the XML sitemap | Yoast SEO > Settings > Site features > XML sitemaps | Rank Math SEO > Sitemap Settings |
| Redirect attachment pages | Settings > Advanced > Media pages | General Settings > Links > Redirect Attachments |
| Noindex empty archives | Delete unused terms | Titles & Meta > Global Meta > Noindex Empty Category and Tag Archives |
| Redirect manager | Premium only | Free (Rank Math SEO > Redirections) |
Want help choosing? Read Rank Math vs Yoast in 2026.
Sample from the spreadsheet (3 of 70 rows)
| Check | Where | How to fix | Priority | Can SEOmatic apply it? |
|---|---|---|---|---|
| Attachment pages redirect to the file or parent post | Yoast: Settings > Advanced > Media pages. Rank Math: General Settings > Links > Redirect Attachments | Turn media pages off so each attachment URL 301s. Spot check one ?attachment_id= URL | High | No (plugin-wide setting) |
| No important page has noindex by mistake | Search Console > Indexing > Pages > Excluded by 'noindex' tag | Switch every page you want in Google back to index, then request indexing | High | Yes: proposes the fix from your Search Console list, writes it after approval |
| A redirect for every URL change | Rank Math > Redirections, Yoast Premium > Redirects, or Tools > Redirection | 301 the old URL to the closest live page. No chains | High | Yes: applies the 301 through the SEOmatic Redirects plugin when you click Apply |
Who this WordPress SEO checklist is for
WordPress site owners who want the fixes that matter, freelancers who need a repeatable audit sheet, and anyone who just switched SEO plugin, page builder, host or theme.
How to use this with an AI assistant
You can run this checklist with ChatGPT, Claude or any assistant that supports MCP. Connect SEOmatic at https://seomatic.ai/mcp, then paste one of the prompts below.
The assistant can read and propose. Changes to your site only happen after you approve each one, and each change can be undone. Settings like Search engine visibility or permalinks stay manual.
Quick check (no sign-in)
Use SEOmatic's check_site tool on mysite.com. Tell me whether Google can index my homepage and sitemap pages (status, redirects, noindex, canonical, robots.txt for Googlebot and the AI search crawlers). For each problem, give me the exact WordPress admin path to fix it, for Yoast SEO and for Rank Math.Full checklist run (signed in, uses your Search Console data)
Use SEOmatic to run the WordPress SEO checklist on mysite.com.
1. Run check_site on mysite.com. If I am not signed in, call connect_seomatic so I can sign in and connect Google Search Console.
2. Run get_started for an overview, then site_audit to find duplicate or missing titles and meta descriptions, noindex leaks, canonicals pointing elsewhere, thin, slow or dead pages, and broken internal links.
3. Run get_sitemaps_status to check my sitemap in Search Console.
4. Take the 20 most important URLs from get_top_pages and check them with batch_inspect_urls (max 50 per call). List any that are not indexed and why.
5. Run find_ctr_outliers to find pages that get impressions but too few clicks for their position, and find_cannibalization to find pages competing for the same query.
6. Run compare_periods by page to find posts that lost clicks.
Then give me one table: check, what you found, priority (High, Medium, Low), and the exact wp-admin path (Yoast and Rank Math). Mark which fixes are site settings I must change myself (for example Settings > Reading, permalinks, plugin-wide archive settings, caching).
For the fixes SEOmatic can make on WordPress (SEO titles, meta descriptions, canonical or noindex on a single page, schema on a page, alt text, internal links, 301 redirects, robots.txt), stage them with create_seo_tasks and show them with show_approval_cards. Do not approve or run anything yourself. I will approve each one.After you approve
- Ask "Show my approved SEOmatic tasks and their status" (uses list_seo_tasks).
- To undo a change: "Show me what rollback_seo_task would restore for task <id>" (uses get_task_rollback), then "Roll it back" (uses rollback_seo_task).
What the assistant cannot do here
- It cannot change WordPress settings, plugin-wide Yoast or Rank Math settings, page builder options, caching, hosting or security. Those rows are yours.
- It never changes your site without your approval. Proposals are staged; you approve each one.
Go deeper
- GuideWordPress robots.txt: What It Should Say and How to Edit It
- GuideRank Math vs Yoast in 2026: An Honest Comparison
- GuideBest WordPress SEO Plugin in 2026: Yoast, Rank Math, AIOSEO, SEOPress or The SEO Framework
- GuideWordPress Attachment Pages: Why They Hurt SEO and How to Turn Them Off
- GuideShould You Noindex Tag and Category Pages in WordPress?
- Guide"Discourage Search Engines from Indexing This Site": What It Does and How to Recover
Sources (34)
- wptavern.com/wordpress-5-3-to-use-robots-meta-tag-to-better-discourage-search-engines-from-listing-sites
- make.wordpress.org/core/2023/10/16/changes-to-attachment-pages/
- make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/
- make.wordpress.org/core/2025/03/06/speculative-loading-in-6-8/
- yoast.com/help/yoast-seo-settings-advanced/
- yoast.com/help/yoast-seo-settings-categories-tags/
- yoast.com/help/yoast-seo-settings-content-types/
- yoast.com/help/redirect-image-attachment-urls/
- yoast.com/help/how-to-edit-robots-txt-through-yoast-seo/
- rankmath.com/kb/titles-and-meta/
- rankmath.com/kb/how-to-edit-robots-txt-with-rank-math/
- help.elegantthemes.com/en/articles/12958885-divi-5-theme-options
- elementor.com/help/element-caching-help/
- developers.google.com/search/docs/crawling-indexing/robots/intro
- developers.google.com/search/docs/crawling-indexing/block-indexing
- developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
- developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading
- developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- developers.google.com/search/docs/crawling-indexing/301-redirects
- developers.google.com/search/docs/appearance/title-link
- developers.google.com/search/docs/appearance/core-web-vitals
- developers.google.com/search/blog/2023/05/introducing-inp
- developers.google.com/search/blog/2023/08/howto-faq-changes
- developers.google.com/search/blog/2025/06/simplifying-search-results
- developers.google.com/search/docs/appearance/structured-data/review-snippet
- developers.google.com/search/docs/appearance/google-images
- developers.google.com/search/docs/crawling-indexing/google-common-crawlers
- platform.openai.com/docs/bots
- searchenginejournal.com/anthropics-claude-bots-make-robots-txt-decisions-more-granular/568253/
- yoast.com/help/xml-sitemaps-in-the-wordpress-seo-plugin/
- aioseo.com/docs/using-the-robots-txt-tool-in-all-in-one-seo/
- rankmath.com/free-vs-pro/
- yoast.com/wordpress/plugins/seo/
- php.net/supported-versions.php


