// blog / wordpress setup

How I crawl a WordPress site with Screaming Frog before I change anything

To use Screaming Frog on a WordPress site, I crawl it first without JavaScript rendering, then compare that crawl with the XML sitemaps and Search Console, because pages that turn up in only one list are where the problems hide. Then I filter for errors, noindexed sitemap URLs, duplicate titles and unlinked pages.

By Muhammad Younus Updated 10 min read WordPress setup

WordPress SEO setup: illustration for "Crawling WordPress with Screaming Frog"
// 01 - before you start

Can I use Screaming Frog for free, and what do I set up first?

Before I change a plugin, a redirect or a title on a WordPress site, I crawl it. It's the first thing I run when I'm finding what's actually broken on a site before anything gets touched, and it's the baseline I measure every later change against.

You can start free. Screaming Frog's product page says the free version crawls 500 URLs and a licence removes the limit; on 28 September 2026 it listed a licence at 279 US dollars a year, or 199 pounds on the UK pricing page, per user. That isn't the only limit. The same page's comparison marks crawl configuration, saving crawls, JavaScript rendering and the Search Console integration as paid. The free version is fine for a quick broken link check on a small site, but the method below needs the licence.

With a licence, I set up storage before the first crawl. The vendor's getting started guide recommends database storage, the default, on a computer with an SSD, and memory storage without one. Database storage lets it crawl more URLs and keeps every crawl saved automatically.

// 02 - before the crawl

Which Screaming Frog settings do I change before the first crawl?

A crawl that runs on the defaults misses half of what I want, so I change a handful of settings first and save them as a profile. Screaming Frog's own user guide is the reference for each one. Most Screaming Frog tutorials walk through the defaults tab by tab, which suits a quick look at any site, but not the comparison I care about, which needs the sitemaps and Search Console inside the same crawl.

The settings I check before a WordPress crawl, and why
SettingDefaultWhat I do
RenderingText Only, which reads the raw HTMLLeave it for the first crawl, then run JavaScript rendering on a sample later
Crawl Linked XML SitemapsOff in regular Spider modeTurn it on, with auto discovery through robots.txt
Respect robots.txtOnLeave it on, because blocked URLs are something I want listed, not hidden
Respect noindex and canonicalUnticked, and ticking them drops those URLs from the reportKeep both unticked, because noindexed pages are what I'm hunting for
Search Console APINot connectedConnect the property and tick Crawl New URLs Discovered In Google Search Console
Speed5 threadsLower it with Max URI/s on cheap shared hosting, so the crawl doesn't slow the live site

Since version 5.5, WordPress core has served a sitemap index at /wp-sitemap.xml and named it in the robots.txt it generates. An SEO plugin often replaces that with its own index, so I read robots.txt before the crawl and check which sitemap the site really serves.

Exclude takes partial regex, and I only use it for URL patterns that multiply without adding pages, like add-to-cart links on a WooCommerce store. Excluding real sections to make the crawl shorter defeats the point of running it.

// 03 - the method

How I use Screaming Frog to crawl a WordPress site, step by step

Most advice on how to crawl a website starts with pasting in the homepage and pressing Start. On WordPress I start a step earlier, and nothing on the site changes until the last step's written down.

  1. Step 01

    Read robots.txt and the sitemap index

    I open both in the browser first. I'm checking which sitemap is live, whether anything important is disallowed, and whether the sitemap index lists child sitemaps for post types that shouldn't be public, like attachment pages.

  2. Step 02

    Load the saved profile

    The settings from the table above, saved once and reused, so every client's crawl starts from the same place and two crawls of the same site can be compared fairly.

  3. Step 03

    Crawl from the version Google should use

    I start from the homepage exactly as it should be indexed, https with or without www. If the other versions don't redirect to it in one hop, that's the first finding, and it goes on the list before anything else.

  4. Step 04

    Run Crawl Analysis when the crawl finishes

    The Sitemaps filters stay empty until Crawl Analysis has run. It's the step people skip, and then they wonder why Orphan URLs shows nothing at all.

  5. Step 05

    Export three lists

    The crawl's HTML pages, every URL in the sitemaps, and the pages Search Console has data for. Screaming Frog shows all three through its filters, but I keep the exports too, because a spreadsheet's easier to sort.

  6. Step 06

    Compare the lists before reading any single report

    A URL that's in all three is usually fine. A URL that's in one or two is where I look first, and the next section explains what each gap tends to mean.

  7. Step 07

    Run a JavaScript crawl on a sample

    I pick a few templates, a page, a post, a product and an archive, and crawl them again with JavaScript rendering. If the links or the word count change a lot between the two, the theme or page builder is doing something in the browser that a text only crawl can't see.

  8. Step 08

    Write the findings, then keep the crawl file

    Every fault goes on a list with the URLs it affects before I touch anything. The saved crawl is the before picture, and a crawl after the fixes is the after. The same crawl also feeds the redirect map when a site moves platforms.

// watch out

Don't crawl a staging copy and assume it matches the live site. Staging usually has search engines discouraged, and WordPress switches its sitemap off when that setting's ticked, so the sitemap comparison won't work there.

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

Book a call on Upwork
// 04 - the comparison

Why compare the crawl with the sitemap and Search Console?

Because each list tells you something different, and none of them is the whole site. The crawl is what the site links to. The sitemap is what the site says it wants indexed. Search Console is what Google has actually found. When the three agree, the site's coherent. When they don't, the gap is almost always a fault somebody didn't know about.

Google's sitemap guidance is plain: include the URLs you want to see in search results. So a sitemap listing a redirect, a 404 or a noindexed page sends Google a mixed message, and those 404s are where I start when I fix 404 errors in WordPress. A page that's in the sitemap but that nothing links to is a linking problem long before it's an indexing one, which is the gap my internal linking service closes. That crawl file feeds my internal link audit.

Where a URL turns up, and what I read into it
Where the URL isScreaming Frog filterWhat it usually means
Crawl only, not the sitemapSitemaps: URLs Not In SitemapA page the sitemap left out, or a page that shouldn't exist at all
Sitemap only, not the crawlSitemaps: Orphan URLsNothing links to it, so it needs links or it needs to leave the sitemap
Sitemap, but not indexableSitemaps: Non-Indexable URLs In SitemapA redirect, error, noindex or canonical that points somewhere else
Search Console onlySearch Console: Orphan URLsGoogle knows an address the site no longer links to
All threeNoneThe normal case, and most of a healthy site

Search Console's Page indexing report helps from the other side. Its filter switches between all known pages, all submitted pages and unsubmitted pages only, so I can see whether the pages Google isn't indexing are ones the sitemap asked for. Its example list stops at 1,000 URLs, though, so on a big site it's a sample, not the full picture. When sitemap pages sit in Discovered or Crawled, currently not indexed for weeks, those two statuses have their own diagnosis.

// 05 - first reports

Which reports do I open first?

Screaming Frog has dozens of tabs, and reading them in order is how a crawl turns into a week. These are the six I open first on a WordPress site, because each one points at a fault that affects real pages.

  1. i.

    Response Codes: anything that isn't a 200

    Client errors, server errors and redirects linked from inside the site. An internal link to a redirect isn't broken, but it's a hop the site doesn't need, and a redirect chain is two.

  2. ii.

    Sitemaps: Non-Indexable URLs In Sitemap

    Every URL here is one the sitemap asks Google to index and the page itself says no to. The Indexability Status column gives the reason. For noindexed sitemap URLs, the fix is deciding which one's wrong, the sitemap or the tag.

  3. iii.

    Directives: Noindex

    I read the whole list, not just the count. Tag archives with noindex are often deliberate. A service page with noindex almost never is, and it's often a leftover from staging or a plugin setting that got flipped.

  4. iv.

    Page Titles: Duplicate and Missing

    WordPress sites repeat titles in predictable places: paginated archives, near-identical location pages, and templates that print a placeholder instead of a real title.

  5. v.

    Sitemaps: Orphan URLs

    Pages the sitemap lists but no crawled page links to. Some are old pages that should go. Others are good pages the menu and the posts never point at.

  6. vi.

    Search Console: Orphan URLs

    Addresses Google's shown in search that the crawl never reached. That's where old URLs, forgotten landing pages and accidental publishes tend to surface.

// pro tip

Sort every export by Search Console clicks before fixing anything. A duplicate title on a page that earns clicks every day matters more than fifty on pages nobody's ever seen.

// 06 - the proof

What can a crawl find that no other tool will?

Mistakes that nobody links to and nobody visits. Search Console reports what Google's done with a page, and an SEO plugin checks the page you're editing. Neither one reads every URL the site serves and lines them up side by side.

Scrap a Vehicle is the example I use. It's a UK scrap car site with 487 location pages generated with Lpagery, and a full crawl turned up two things you'd never find clicking around. The first was /region_name/, live and indexable, with the literal title {seo_title} and the heading {h1_heading}. It's the template page, published by accident, and it only stands out when its title sits in a list next to hundreds of real ones.

The second was /scrap-my-car-edinburgh-2/, a duplicate Edinburgh page. A slug ending in -2 usually means the page was generated twice, so two pages end up competing for one town. Neither fault shows up for someone clicking through the menus.

That's also why I don't fix as I go. On a site with hundreds of generated pages, one change to a template touches every page built from it, so I want the whole list first.

// when to hand this over

If you want one person to run the crawl, do the comparison and fix what it finds on your WordPress site, that's the audit work I do, remotely, with the crawl file handed over at the end.

Book a call on Upwork

Is this your site? Send me the URL.

Book a call on Upwork
// questions - wordpress setup

What else do people ask about this?

How do I use Screaming Frog to find broken links?

Crawl the site, open Response Codes and filter for Client Error (4xx). Click a broken URL and the Inlinks tab lists every page linking to it, or use Bulk Export, Response Codes, Client Error (4XX) Inlinks for a spreadsheet of both. The free version can do this on up to 500 URLs.

How do I use AI in Screaming Frog?

Under Config, API Access, AI, you connect OpenAI, Gemini, Anthropic or a free local model through Ollama, then set up prompts to run against crawl data, such as writing image alt text or classifying page intent. It's a paid feature of the SEO Spider.

Should I turn on JavaScript rendering for a WordPress crawl?

Not for the first one. Text only mode reads the HTML the server sends, and on most WordPress sites that's where the content is. I run JavaScript rendering on a sample afterwards and compare the two.

Why are the Sitemaps filters in Screaming Frog empty?

Usually because Crawl Analysis hasn't run, or Crawl Linked XML Sitemaps wasn't turned on before the crawl. Screaming Frog needs both before it can fill the Orphan URLs and Non-Indexable URLs In Sitemap filters.

Can a Screaming Frog crawl slow down my WordPress site?

It can on weak hosting, because every thread is another request to the server. The default is 5 threads, and I lower the Max URI/s setting when the host's shared or the site's already slow.

// 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. Screaming Frog SEO Spider user guide
  2. Screaming Frog user guide: configuration
  3. Screaming Frog user guide: tabs and filters
  4. Screaming Frog: how to audit XML sitemaps
  5. Screaming Frog issues: Search Console orphan URLs
  6. Google Search Central: build and submit a sitemap
  7. Search Console Help: Page indexing report
  8. Make WordPress Core: new XML sitemaps functionality in WordPress 5.5
  9. Screaming Frog: SEO Spider product page (free vs paid features, checked 28 September 2026)
  10. Screaming Frog: SEO Spider pricing (checked 28 September 2026)
  11. Screaming Frog: getting started guide (memory and storage set-up)
  12. Screaming Frog: how to find broken links using the SEO Spider
  13. Screaming Frog: how to crawl with AI prompts
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 laughing, a wide genuine smile
// 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