// blog / wordpress setup

How I run a technical SEO checklist on a WordPress site

My technical SEO checklist for WordPress starts with the settings that can switch search off, then checks crawling, indexing, redirects, mobile rendering, duplicates, Core Web Vitals, structured data and AI crawler access. It doubles as a WordPress SEO checklist for the layer under your content, and I rank every fix by the clicks it puts at risk.

By Muhammad Younus Updated 10 min read WordPress setup

WordPress SEO setup: illustration for "A technical SEO checklist for WordPress"
// 01 - the whole list

What's on my technical SEO checklist for WordPress?

Ten checks, in the order I run them, to copy into your own notes. They're also the first pass in an audit that ties every finding to a page and a number in your own Search Console, but you can run this list yourself.

  1. i.

    Settings

    Search engine visibility unticked, permalinks settled, one SEO plugin, one sitemap.

  2. ii.

    One version of the site

    http, https, www and non-www all end on one address in a single 301.

  3. iii.

    Robots.txt

    No stray Disallow on CSS, JavaScript or whole sections.

  4. iv.

    Indexing

    The Page indexing report read status by status, with URL Inspection on a sample from each.

  5. v.

    Redirects and 404s

    One hop per redirect, and no internal link pointing at a 404 or a redirect.

  6. vi.

    HTTPS and mobile

    No mixed content, and the phone version carries the same content and headings as the desktop one.

  7. vii.

    JavaScript and builders

    The main text and links are in the HTML the server sends, not only after scripts run.

  8. viii.

    Duplicates and thin URLs

    Tag, date, author, attachment and -2 pages checked against what earns clicks.

  9. ix.

    Core Web Vitals and schema

    Field data by template, and one clean structured data graph per page.

  10. x.

    AI crawlers

    Robots.txt and the CDN let the crawlers you want in, on purpose.

// 02 - the settings layer

Which WordPress settings do I check first?

I start where a single tick box can undo everything else. If you're asking how to set up SEO on WordPress, this layer decides whether the rest counts.

  1. i.

    Search engine visibility is off

    Settings, then Reading, has a box called Discourage search engines from indexing this site. Since WordPress 5.3 a ticked box prints a noindex, nofollow tag on every page, and it often survives from staging.

  2. ii.

    Permalinks are settled before publishing

    Depending on the server, a new install comes up on Plain permalinks, the ?p=123 kind, or on Day and name. On a new site I switch to Post name before anything's published. On a live site I won't touch it without a redirect map.

  3. iii.

    One SEO plugin, not two

    Yoast, Rank Math, AIOSEO and SEOPress each write titles, canonicals, a sitemap and schema. Two at once usually means two canonical tags or two schema graphs, so I move the settings across and switch the spare off.

  4. iv.

    One sitemap, with only real pages in it

    WordPress has shipped its own sitemap at /wp-sitemap.xml since 5.5, and plugins like Yoast replace it with their own. I check which one's live, that it's the one in Search Console, and that it lists only real pages. Smaller files are easier to read: Scrap a Vehicle's sitemap index splits its location pages into files of 50 URLs each.

  5. v.

    One version of the site answers

    Google lists HTTP and HTTPS versions among the usual sources of duplicate pages, and www against non-www splits a site the same way. Three of the four homepage versions should 301 in one hop to the fourth.

  6. vi.

    Robots.txt isn't doing noindex's job

    Google says robots.txt isn't a way to keep a page out of its results, and a blocked page can't show Google its noindex tag either. So pages that should stay out get noindex, not a Disallow.

// pro tip

Check these in the page source, not on the plugin's settings screen. The settings show what's supposed to happen. The source shows what Google actually gets.

// 03 - crawling and indexing

How do I check crawlability and indexing?

Search Console's Page indexing report comes first, because it's Google's own account of what it crawled and kept. Google's help page says not to expect every URL to be indexed; the goal is the canonical version of every important page. I read the excluded groups one status at a time and run URL Inspection on a handful from each. It shows what Google fetched, the canonical it picked and whether indexing was allowed.

Page indexing statuses I see most on WordPress, and my first check for each
StatusUsual WordPress causeWhat I check first
URL marked 'noindex'An SEO plugin setting on a post type or taxonomy, or the visibility box left tickedWhether any excluded page is one you'd want found
URL blocked by robots.txtA Disallow line carried over from staging, or added by a security pluginWhich rule matches, and whether that URL should be crawled at all
Duplicate, Google chose different canonical than userTwo addresses for one page, or a canonical tag pointing somewhere oddWhich URL Google picked, and what made it disagree
Crawled, currently not indexedThin tag and archive pages, or pages Google doesn't think are worth keepingWhether the page adds anything a stronger page doesn't

Then I crawl the site with a desktop crawler rendering JavaScript and compare with the sitemap. Sitemap pages the crawl can't reach are orphans, and crawled pages missing from the sitemap either belong in it or shouldn't exist. Orphans and deeply buried pages are a linking problem, and when there are many, you can have me rebuild your internal links around the pages that earn. Or run an internal link audit first.

Rather have me do this? One person, whole job.

Book a call on Upwork
// 04 - live responses

How do I check redirects, 404s, HTTPS and mobile rendering?

On the live pages, with a crawler and a phone. Google's crawlers follow up to 10 redirect hops, but I want each old URL to reach its page in one. A deleted page answering 404 is fine. An internal link pointing at a 404 or a redirect isn't, and those get repointed in the content.

For HTTPS I look for mixed content: images, scripts or fonts still called over http on an https page. web.dev notes that most browsers now block mixed content, so a hardcoded http path in a theme can quietly break a page.

Mobile comes next because Google says it uses the mobile version of a site's content, crawled with the smartphone agent, for indexing and ranking. The phone version needs the same content and headings as the desktop one. Page builders are where this slips, with sections hidden on mobile or text that only appears after a script runs. Google's JavaScript guide says server-side rendering is still a great idea, partly because not all bots can run JavaScript, so I compare the raw HTML with the rendered page for any template built that way.

// 05 - duplicates

How do I find duplicate and thin URLs?

WordPress makes extra URLs without asking. Tag archives, author archives on a one-author blog, date archives and paginated archives all create addresses that repeat content living somewhere else. Hundreds of thin ones are a problem. Attachment pages are the classic case: WordPress 6.4 switched them off for new installs, but upgraded sites keep them.

Then there's duplication nobody set. Scrap a Vehicle has a second Edinburgh page, /scrap-my-car-edinburgh-2/, which usually means the town was generated twice, so I search for -2 slugs on any site built in bulk.

Google treats redirects and canonical tags as strong signals and sitemaps as weak ones. So a true copy gets a 301 to the original, a variant that has to stay gets a canonical, and archive types nobody lands on get noindex through the SEO plugin rather than a robots.txt block, which is one more reason choosing an SEO plugin matters.

// watch out

Don't noindex every tag and category archive in one sweep before you've checked Search Console. On some sites a category page is the one earning the clicks, and the bulk setting quietly takes it out.

// 06 - speed

How do I check Core Web Vitals on WordPress?

After indexing, not before. A fast page Google isn't indexing earns nothing. I read field data, not a single lab run: the Core Web Vitals report in Search Console groups URLs that behave alike, which on WordPress usually lines up with templates. Google's targets are a Largest Contentful Paint (LCP) within 2.5 seconds, an Interaction to Next Paint (INP) of 200 milliseconds or less and a Cumulative Layout Shift (CLS) of 0.1 or less, measured at the 75th percentile of page loads. A template that fails on a slow Largest Contentful Paint gets its own fix. A green Lighthouse score on one test isn't the same thing.

// 07 - schema

How do I check structured data on WordPress?

The WordPress question is who's printing it. The SEO plugin prints a graph, and a theme, a reviews plugin or WooCommerce can print their own. Stores get more of this in the WooCommerce version of this checklist. I run one page per template through the Rich Results Test and look for two copies of the same type, markup describing content the page doesn't show, and errors on types that can earn a rich result. Google says it doesn't guarantee rich results even when the markup's correct, and not to mark up content hidden from readers, so valid markup that matches the page is the goal.

// 08 - ai search

Can AI crawlers and answer engines read the site?

For Google, the checklist above is the answer. Google's guide to AI features says a page only has to be indexed and eligible for a snippet to appear as a link in AI Overviews or AI Mode, with no extra files or special markup. Its best practices include allowing crawling in robots.txt and at the CDN or host, and keeping important content in text. Google also says its Google-Extended token doesn't affect inclusion in Search.

Other engines use their own crawlers. OpenAI's crawler documentation says sites opted out of OAI-SearchBot won't show in ChatGPT search answers, while GPTBot is the separate token for model training, and each can be allowed or blocked on its own. So I read robots.txt and the CDN's bot settings for rules nobody chose on purpose.

// 09 - priorities

How do I rank what a technical SEO checklist turns up?

Most tools sort findings by severity labels that don't know your traffic. I sort them by clicks at stake.

  1. Step 01

    Take a Search Console baseline

    I export the Performance report by page, as far back as it goes, and note the date range.

  2. Step 02

    Tie each finding to its pages

    A noindex on a product category, a canonical pointing the wrong way on six posts: every item gets its own list of URLs.

  3. Step 03

    Weigh the clicks and impressions at stake

    Faults on the pages that earn most clicks, or sit on page one or two with weak click rates, go to the top.

  4. Step 04

    Settings faults jump the queue

    A ticked visibility box or a sitewide robots.txt block touches every page, so it goes first whatever the numbers say.

  5. Step 05

    Cosmetic warnings go last

    A missing meta description on a tag archive won't move anything, so it stays only if the fix costs nothing.

  6. Step 06

    Recheck after each fix

    URL Inspection the same day, then the same report a few weeks later against the baseline. I don't promise a date for Google to catch up, because nobody can.

For a small site that passes the settings layer cleanly, this list and a free afternoon go a long way. It stops being an afternoon job when clicks dropped and the list doesn't show why, or the excluded list runs to thousands of URLs. My audit runs remotely on your URL and read-only Search Console access, with every finding ranked by clicks at stake.

// what this costs

Deep audit and growth report: US$149 one off, on Upwork. An honest read on what's holding your WordPress site back in Google.

It comes with a Loom walkthrough of what I found, and the fix list is yours to keep whoever does the work.

Is this your site? Send me the URL.

Book a call on Upwork
// questions - wordpress setup

What else do people ask about this?

What is included in technical SEO?

Everything that decides whether Google can crawl, render, index and understand a page: settings, robots.txt, sitemaps, redirects, canonicals, HTTPS, mobile rendering, speed, structured data and, on multilingual sites, hreflang. Writing and links sit on top.

What is the 80/20 rule for SEO?

The idea that a few fixes carry most of the result. On a technical checklist those are usually the settings faults and the problems on pages that already earn clicks, which is why I rank findings by clicks at stake.

Is my SEO plugin's score the same as a technical SEO checklist?

No. A plugin score grades one page's title, headings and keywords while you write. It can't see a robots.txt block, a second canonical printed by another plugin or a page Google has left out of the index.

Will fixing everything on the list raise my rankings?

Nobody can truthfully promise that. Fixing these items removes the reasons Google might not crawl, index or trust a page, which is the part inside your control. What ranks after that depends on the content and the competition.

// sources - checked

Where do these rules come from?

Platform and Google documentation, opened and read on the day this was written. Everything else is how I work.

  1. WordPress.org documentation: Settings Reading screen (search engine visibility)
  2. WordPress developer reference: wp_install_maybe_enable_pretty_permalinks()
  3. Make WordPress Core: new XML sitemaps functionality in WordPress 5.5
  4. Make WordPress Core: changes to attachment pages in WordPress 6.4
  5. Google Search Central: introduction to robots.txt
  6. Google Search Central: block search indexing with noindex
  7. Google Search Central: what is URL canonicalization
  8. Google Search Central: how to specify a canonical URL
  9. Search Console Help: Page indexing report
  10. Google crawling infrastructure: HTTP status codes and redirects
  11. web.dev: what is mixed content?
  12. Google Search Central: mobile site and mobile-first indexing best practices
  13. Google Search Central: JavaScript SEO basics
  14. Search Console Help: Core Web Vitals report
  15. web.dev: Web Vitals
  16. Google Search Central: general structured data guidelines
  17. Google Search Central: AI features and your website
  18. Google Search Central: Google's common crawlers (Google-Extended)
  19. OpenAI developer documentation: overview of OpenAI crawlers
Muhammad Younus, WordPress technical SEO consultant
// who wrote this

One consultant, writing down his own method

I'm Muhammad Younus, a WordPress technical SEO consultant with 8+ years of experience and 100+ client sites fixed. Top Rated Plus on Upwork with a 100% Job Success Score. Every post here is the way I actually do the job, written in the first person because it's one person doing it, remotely, with no team behind the name.

Nothing in these posts is a client I can't name or a number I can't show. Where a figure comes from a client's Search Console, it's from a published case study, and where a rule comes from Google or a platform, the source is linked at the bottom of the post.

// the service behind this post
Muhammad Younus smiling and giving a thumbs up
// next step

Want this done on your own site?

Book a call on Upwork, send the URL and read-only Search Console access, and you'll get a written scope for the search side before any work starts. One person does the whole job, remotely.

Book a call on Upwork