What is this website built with? How to check a site's CMS, builder and tools
Whether a plumber's website runs on WordPress with Elementor, on a $16-a-month Wix plan, or on a GoHighLevel funnel tells you a lot before you ever talk to them: who built it, roughly what they paid, whether they can edit it themselves, and what you would be replacing. The same page source tells you whether they track anything, whether they take bookings online and which chat or review widget they pay for. Here is how to read it in a minute, a cheat sheet of the fingerprints we check for, and what to do when you have 500 sites instead of one.
The 60-second manual check
- Open the site in a desktop browser. Press Ctrl+U (Windows) or Cmd+Option+U (Mac) to open the page source.
- Press Ctrl+F and search for
generator. Many platforms announce themselves in a tag like<meta name="generator" content="WordPress 6.6">. Squarespace, Wix, Webflow, Joomla, Drupal, HubSpot, Divi and Elementor all use it. - No generator tag? Search for the domains in the table below, in this order:
wp-content,wixstatic,squarespace,website-files,wsimg,cdn-website,editmysite,leadconnectorhq. The first hit usually settles it. - Then search for
gtag,gtm.js,fbeventsandcallrailfor tracking, andhousecallpro,servicetitan,getjobberandcalendlyfor booking.
That is the whole method. Everything below is detail: what the fingerprints look like, what they mean, and where they lie to you.
Cheat sheet: CMS and website builder fingerprints
These are the signatures we look for ourselves. A fingerprint is a resource the page loads (a script, stylesheet or image URL) or a generator tag, never a product name mentioned in the text. A site that says “built with WordPress” in its footer may be lying; a site that loads /wp-content/themes/… is not.
| Platform | What to search for in the source | What it tells you |
|---|---|---|
| WordPress | /wp-content/ or /wp-includes/ in script, style or image URLs; generator WordPress | Self-hosted or managed WordPress. The theme name is in /wp-content/themes/name/. |
| Elementor | /wp-content/plugins/elementor/; generator Elementor | WordPress with the Elementor page builder. The most common builder on contractor sites we read. |
| Divi | /wp-content/themes/Divi/; generator Divi | WordPress with the Divi theme and builder (Elegant Themes). |
| Wix | static.wixstatic.com or static.parastorage.com; generator Wix.com | Wix. Hosted, owner-edited, limited SEO control. |
| Squarespace | static1.squarespace.com, assets.squarespace.com, images.squarespace-cdn.com; generator Squarespace | Squarespace. |
| Webflow | assets.website-files.com, cdn.prod.website-files.com, uploads-ssl.webflow.com; generator Webflow | Webflow. Usually built by a designer or agency. |
| GoDaddy Website Builder | img1.wsimg.com/isteam/ or …/blobby/; generator GoDaddy Website Builder | GoDaddy's builder. Often set up at the same time as the domain and never revisited. |
| Duda | irp.cdn-website.com, lirp.cdn-website.com, irp-cdn.multiscreensite.com | Duda, the white-label builder many agencies and some phone/directory companies resell. |
| Weebly | cdn1.editmysite.com (or cdn2…) | Weebly (now part of Square). |
| GoHighLevel / LeadConnector | stcdn.leadconnectorhq.com/_preview/ for the site itself; link.msgsndr.com or api.leadconnectorhq.com/widget/ for forms, booking and chat | GoHighLevel's funnel and site builder, white-labelled as LeadConnector. A strong sign that another agency already has this client on a retainer. |
| Shopify | cdn.shopify.com | Shopify (rare for trades, common for retail). |
| Joomla, Drupal, HubSpot CMS | generator Joomla, Drupal, HubSpot | Older or more corporate stacks; a local trade on Drupal usually inherited it from an agency. |
Reading the table against real data: of the 180 home-service websites we read in our October 2026 test (roofers, plumbers and HVAC in three US metros), 59 loaded WordPress resources, 23 of those used Elementor, 10 were on Wix, 9 on Duda, 7 on GoDaddy's builder and 6 on Webflow. The rest were hand-built, on smaller platforms, unreachable, or gave no fingerprint on the pages we read.
Cheat sheet: analytics, ad tags and call tracking
These matter more than the builder if you sell SEO, ads or anything you have to prove works. A site with no tag at all cannot tell its owner where a single lead came from.
| Tool | Fingerprint | Note |
|---|---|---|
| Google Analytics 4 | googletagmanager.com/gtag/js?id=G-… | The measurement ID starts with G-. |
| Google Ads conversion tag | gtag/js?id=AW-… or gtag('config', 'AW-…') | They run, or once ran, Google Ads with conversion tracking. |
| Google Tag Manager | googletagmanager.com/gtm.js?id=GTM-… | A container may hold any of the tags above; you cannot see which from the source. |
| Legacy Universal Analytics | google-analytics.com/analytics.js or gtag/js?id=UA-… | Stopped collecting data in 2023/2024. Still on 9 of our 180 test sites: a tag that has been dead for two years is a good conversation opener. |
| Meta Pixel | connect.facebook.net/…/fbevents.js | Facebook or Instagram ads, now or in the past. |
| Microsoft Clarity, Hotjar | clarity.ms/tag/, static.hotjar.com | Session recording; usually added by an agency. |
| CallRail | cdn.callrail.com | Call tracking: somebody is measuring phone leads, often an agency. |
Cheat sheet: booking, forms, chat and reviews
| Tool | Fingerprint | Note |
|---|---|---|
| Housecall Pro | links or scripts on housecallpro.com | Field-service software with online booking. Common in HVAC, plumbing and cleaning. |
| ServiceTitan | servicetitan.com (scheduler embed) | Larger, better-funded contractors. |
| Jobber | clienthub.getjobber.com (request forms, client hub) | Smaller service businesses. A “Client login” link alone is not a booking tool. |
| Workiz, Schedule Engine | workiz.com, scheduleengine.net | Booking widgets. |
| Calendly, Acuity, Square Appointments, Setmore | calendly.com, acuityscheduling.com or as.me, book.squareup.com, setmore.com | Generic scheduling tools. |
| Hosted forms | jotform.com, typeform.com, formspree.io, hsforms.net, docs.google.com/forms, link.msgsndr.com/js/form_embed.js | The contact form is a third-party embed. On WordPress, look for /plugins/gravityforms/ or /plugins/contact-form-7/ instead. |
| Chat widgets | connect.podium.com, embed.tawk.to, cdn.livechatinc.com, widget.intercom.io, widgets.leadconnectorhq.com/loader.js | Podium is a paid, local-business product; tawk.to is free. Both say something about budget. |
| Review widgets | birdeye.com, nicejob.co | Reputation tools, usually on a monthly plan. |
A “Book now” button that opens the contact page is not online booking. Check where the link goes before you tell a prospect they have none.
Lookup tools, and what they are good for
If you would rather not read source, several tools do the lookup for you. We use them too; the honest summary is:
- BuiltWith has the broadest database and a long technology history per site. Single lookups are free; lists, exports and the API are paid, and the price is set for sales teams rather than freelancers.
- Wappalyzer is best known as a browser extension that shows the stack of the page you are on. Free for one site at a time; bulk lookups and lists are paid.
- WhatCMS answers the narrower question (“which CMS?”) quickly and is free with daily limits.
- WhatRuns is another extension, lighter than Wappalyzer, good enough for the builder and the main scripts.
All of them are better than the manual check for a single unfamiliar stack, and all of them report what their last crawl saw, which can be months old for a small local site. When the tool and the page source disagree, the page source wins.
Where fingerprints lie
- Not observed is not “not installed”. A Google Tag Manager container can load the Meta Pixel without
fbevents.jsever appearing in the source. Record “no pixel seen in the source”, not “no pixel”. - JavaScript-rendered sites (some Wix and most React single-page apps) show very little in the raw source. The builder fingerprint is usually still there; the content is not.
- Agency CDNs and proxies sometimes rewrite resource URLs to the site's own domain, hiding the platform. Look at cookie names and response headers in the browser's developer tools (Network tab) when the source is clean.
- The home page is not the whole site. Booking widgets and forms often live only on the contact or schedule page. Check at least those two.
Checking a whole list instead of one site
For a prospect list of 200 to 5,000 websites, nobody opens the source by hand. Your options, cheapest first:
- A script. Fetch each home page (and the contact page, if you can find it), search the HTML for the fingerprints above, and write one row per site. A morning's work for a developer, plus the ongoing work of keeping the fingerprints current. Mind the rules: one request per page, respect
robots.txt, and do not retry sites that block you. - Paid lookup lists from BuiltWith or Wappalyzer, filtered by technology and location. Good coverage of bigger sites; patchy for small local businesses that were last crawled months ago, and you still have to join the result to your own list.
- Send us the list. Lead Notebook reads the home page plus up to three contact, services or booking pages per site and returns a spreadsheet with the builder, analytics and ad tags, call tracking, forms, booking and chat tools, plus emails, phones and advertised services, each with the page it was found on. Your own record IDs come back unchanged. Dead, parked and blocked sites are reported and never charged, and the first 20 websites are free.
Frequently asked questions
How can I tell if a website is built with WordPress?
Open the page source and search for wp-content or wp-includes. Those folders only exist on WordPress sites. Many WordPress sites also carry a meta generator tag that says WordPress, and the theme name appears in paths like /wp-content/themes/<theme-name>/.
What CMS is this website using if I can't find any fingerprint?
It may be hand-coded, built with a static site generator, or a builder that serves everything from the site's own domain. Check the response headers and cookie names in the browser's developer tools, and look for a login page such as /admin or /wp-admin. If nothing turns up, record it as unknown rather than guessing.
Is there a free tool that shows what a website is built with?
Yes. BuiltWith and Wappalyzer offer free single-site lookups and browser extensions, and WhatCMS and WhatRuns focus on the CMS and front-end stack. They are good for one site at a time; checking hundreds of sites or exporting lists is a paid feature on all of them.
Can I check what hundreds of websites are built with at once?
Not for free with the lookup tools, which limit bulk checks to paid plans. You can write a script that fetches each home page and searches for the fingerprints in this guide, or send the list to a service such as Lead Notebook, which reads each site and returns the builder, tracking, booking and chat tools with the page they were found on.
Fingerprints in this guide are the ones we check for ourselves as of October 2026; vendors change their CDN hostnames now and then, so verify against a site you know before you rely on one. Counts come from our own test of 180 Google Maps listings (roofers in Dallas, plumbers in Denver, HVAC contractors in Atlanta) and describe that sample only.