Flowra

    Free tool

    Website page counter: find all pages on a website

    Type a domain and get every page its sitemaps list: the total, which sections they sit in, when each was last updated, and the full list to copy or download.

    Which site?

    Reads robots.txt and up to 25 sitemap files. Nothing on the site is crawled.

    Checking...

    How the page counter works

    Almost every site publishes a list of its own pages for search engines: the XML sitemap. The counter opens the site's robots.txt, reads the Sitemap: lines, and follows each one. Many sites, WordPress ones included, use a sitemap index, a sitemap of sitemaps, so it follows those down to the files that list actual pages. If robots.txt names no sitemap, it tries the usual addresses such as /sitemap.xml and /wp-sitemap.xml.

    Then it removes repeats (the same address with and without a trailing slash counts once) and gives you the website page count, the pages grouped by their first folder, and the full list. It does not crawl the site, so it is quick and it never touches the pages themselves.

    How to read the result

    • The total is how many pages the site wants in Google. On your own site, it is the number to hold everything else against.
    • Sections show where the pages are. A blog that is most of the sitemap, or a /tag/ folder bigger than the blog it tags, tells you a lot before you open a single page.
    • Last updated comes from each entry's lastmod. A large "Over a year" group is where a content audit usually starts. If every page shows the same date, the plugin is stamping today's date on everything, and the dates mean nothing.
    • Files with a problem are sitemaps listed somewhere that returned an error or a web page instead. On your own site, fix those first: Google hits the same errors.

    A single sitemap file can hold up to 50,000 URLs, according to Google's sitemap guidelines, which is why large sites split theirs into many files.

    How to find all pages on a website by hand: 6 ways

    Each method sees a different slice of the site. Use two or three together when the count matters.

    1. Read the XML sitemap

    Open example.com/robots.txt in your browser and look for a line starting with Sitemap:. Open that address. If it is an index, open each file it lists. Counting <url> entries by hand works for a small site; for anything bigger, that is the job the tool above does.

    2. Search Google with site:

    Search for site:example.com to see all pages of a website that Google shows in its results, or site:example.com/blog/ for one section. It is quick and works on any site, but the figure is rough: Google's documentation on the site: operator says it does not necessarily return every indexed URL, and big sites should not expect to see all of theirs.

    3. Search Console's Pages report

    For your own site, this is the most accurate view of what Google has. In Search Console, open Indexing, then Pages. The two numbers at the top are indexed and not indexed pages, and the reasons table underneath explains every page Google knows about but left out. Performance, then the Pages tab, lists the pages that actually got impressions.

    4. Your CMS

    WordPress shows a count at the top of Posts and Pages; Shopify lists products, collections and pages separately. Remember that a CMS counts drafts and private posts, and does not count the archive, tag and author pages it generates on the fly.

    5. Crawl the site

    A crawler starts at the homepage and follows every link, which finds all subpages of a website that are linked, including the ones missing from the sitemap. Screaming Frog's SEO Spider is the usual choice; its free version crawls up to 500 URLs. A crawl misses orphan pages (no links point to them), which is exactly what comparing it with the sitemap reveals.

    6. Your analytics

    In GA4, open Reports, then Engagement, then Pages and screens, and set a long date range. It lists every page that got a visit, including old ones nobody remembers publishing. A page with zero visits will not appear, so this is a check, not a count.

    Why the sitemap, Google and your CMS give different counts

    They were never counting the same thing. Before you worry about a gap, check which of these explains it.

    SourceWhat it countsWhy it is higher or lower
    SitemapPages the site asks to be indexedLeaves out pages a plugin excludes, and anything added by hand outside the CMS
    Search ConsolePages Google has indexedLower when Google skips thin or duplicate pages; higher when it indexes parameter URLs or tag pages
    site: searchA sample of what Google showsNot every indexed URL, by Google's own account; not a count
    CMSPosts and pages in the databaseIncludes drafts; misses archive, tag and author pages
    CrawlerEvery URL reachable by linksHigher with filters and pagination; misses orphan pages

    The useful comparison is sitemap against Search Console. Pages in the sitemap but not indexed are pages you wanted in Google that are not there. Pages indexed but missing from the sitemap are usually ones you forgot or never meant to publish.

    A list of pages is where the audit starts, not where it ends

    Knowing a site has hundreds of pages does not tell you which of them are quietly losing traffic. That answer is in Search Console, one page and one month at a time, which is slow to piece together by hand.

    Flowra connects to Search Console and finds the pages whose clicks and impressions are falling, then puts them in a queue to fix. The content decay report is on the Free plan.

    Frequently Asked Questions