Quick answer: To test a website, check that everything important a visitor does actually works, on the browsers and devices your visitors use, before real users find the problems.
In practice: list your critical flows (signup, login, forms, checkout, navigation), click through each one by hand, check it on phones and other browsers, run quick performance, accessibility and security checks, write down every bug clearly, and automate the flows you will need to check again after every change.
- How to test a website in 7 steps
- What is website testing?
- Why do you need to test a website?
- Who tests a website?
- Step 1: Decide what to test first
- Step 2: Test the critical flows by hand
- Step 3: Check links, content and layout
- Step 4: Test on different browsers and devices
- Step 5: Run performance, accessibility and security checks
- Step 6: Report the bugs you find
- Step 7: Automate the tests you'll repeat
- Manual vs automated website testing
- Website testing checklist
- How to test a website before launch (or before handing it to a client)
- Types of website testing and what they're called
- Can AI test my website?
- FAQ
How to test a website in 7 steps
- List what the site must do. Write down the 5 to 10 actions that matter most: sign up, log in, send the contact form, search, add to cart, pay.
- Test those flows by hand. Go through each one like a real visitor, including wrong inputs, the back button and a page refresh.
- Check links, content and layout. Look for broken links, missing images, typos and pages that look wrong.
- Test on other browsers and devices. At least Chrome, Safari, Firefox and Edge, plus one iPhone and one Android phone.
- Run quick performance, accessibility and security checks. Free tools such as Lighthouse, PageSpeed Insights and axe give you a first report in minutes.
- Report every bug clearly. Steps to reproduce, what you expected, what happened, browser and device, and a screenshot.
- Automate the flows you will test again. Every release can break something that worked yesterday, so record your critical flows once and rerun them automatically.

What is website testing?
Website testing (also called web testing or web app testing) is checking that a website works correctly, safely and quickly for every visitor before and after it goes live. It makes sure that:
- every feature does what it should, from forms to checkout
- pages load fast and stay stable when traffic grows
- data is saved and sent correctly between the site, its database and any APIs
- visitors get the same good experience on every browser, device and screen size
- people with disabilities can use the site too
Why do you need to test a website?
The person who built a website is the worst at spotting its problems: you know where to click, so you never take the wrong path. Testing catches problems while they're still cheap to fix:
- A broken form or checkout means lost leads and sales, often unnoticed for days.
- A layout that works on your laptop can break on a phone, where many of your visitors are.
- Slow pages lose visitors and rank lower in search.
- Security gaps put your users' data at risk.
- Every change to a site, even a plugin update, can break something that already worked.
Who tests a website?
On small projects, the developer or the site owner tests it. On larger teams, QA engineers or testers own testing, developers write automated tests, and the client or product owner does the final acceptance check.
If your team lead just asked you to "test the website" and you've never done it before: you're doing QA, and the steps below are your plan. Start with Step 1, keep notes as you go, and use the bug report template in Step 6.
Step 1: Decide what to test first
You can't test everything, so start with what would hurt most if it broke. Pick the critical flows your site has:
- Sign up and log in, including password reset and email confirmation
- Contact, quote or lead forms
- Search and main navigation
- Add to cart, checkout and payment
- Anything that makes money or collects data
For each flow, ask: "If this broke tonight, who would notice first, and what would it cost?" The answers are your priority list. Write them down: that list is the start of your test plan.
Step 2: Test the critical flows by hand
Go through each flow as a real visitor would. For each one, check:
- The happy path: correct data, normal clicks. Does it work, and does it show the right confirmation?
- Wrong input: empty fields, an invalid email, very long text, special characters. Do you get clear error messages?
- Edge cases: double-clicking Submit, using the back button, refreshing halfway through, being logged in on two tabs.
- The result behind the screen: did the email arrive, is the record saved, does the order show up in the admin panel? Do prices, discount codes and taxes add up? If the site relies on an API, does it return the right data and a clear error when something fails?
Write each check down as a test case: what you do, what should happen, and what actually happened. It makes bugs easy to reproduce and the checks easy to repeat next time.
Step 3: Check links, content and layout
- Click every item in the main menu and footer, and run a broken link checker for the rest of the site.
- Check page titles, images, alt text, prices, contact details and spelling.
- Open a page that doesn't exist and make sure the 404 page helps people find their way back.
- Resize the browser window slowly from wide to narrow and watch for overlapping or cut-off content.
More detail: How to test website navigation.
Step 4: Test on different browsers and devices
Your visitors don't all use your browser. At a minimum, test on:
- Desktop: Chrome, Safari, Firefox and Edge
- Mobile: one iPhone (Safari) and one Android phone (Chrome)
- Screen sizes: small phone, tablet, laptop and a large monitor
Check your analytics to see which browsers and devices your visitors actually use, and start with those. The device mode in your browser's developer tools is a good first pass, but test on at least one real phone before launch: touch, keyboards and mobile browsers behave differently from a resized desktop window.
Step 5: Run performance, accessibility and security checks
You don't need specialist skills for a first pass.
Performance
Run Lighthouse (built into Chrome DevTools) or PageSpeed Insights on your most important pages. Look at load time and Core Web Vitals, and fix the biggest issues first, usually oversized images and too many scripts. If you expect traffic spikes (a launch, a campaign), use a load testing tool such as k6 or JMeter to see how the site behaves with many visitors at once, and a stress test to find the point where it breaks.
Accessibility
Run axe or the Lighthouse accessibility audit, then try to use the whole site with only the keyboard (Tab, Shift+Tab, Enter, Esc). Check that text has enough color contrast, images have alt text, every form field has a label, and a screen reader (VoiceOver on Mac and iPhone, NVDA on Windows) reads each page in a sensible order. The standard to aim for is WCAG 2.2 level AA.
Security
- The whole site runs on HTTPS, with no "not secure" warnings or mixed content.
- Forms reject unexpected input (a basic guard against SQL injection and cross-site scripting) and don't show raw error messages.
- Login blocks or slows down repeated failed attempts.
- Admin, staging and test pages aren't publicly reachable.
Only test sites you own or have written permission to test. For anything beyond these basics, use a scanner such as ZAP (formerly OWASP ZAP) or book a penetration test with a security specialist.
Step 6: Report the bugs you find
A clear bug report gets fixed fast. A vague one ("the form is broken") gets bounced back. Include:
| Field | What to write |
|---|---|
| Title | What's broken and where |
| Steps to reproduce | Numbered steps anyone can follow |
| Expected result | What should happen |
| Actual result | What happened instead |
| Environment | Browser, device, operating system, page URL |
| Evidence | Screenshot or short screen recording |
| Severity | Blocker, major or minor |
Example: Contact form: "Send" does nothing on iPhone Safari. Steps: 1. Open /contact on an iPhone. 2. Fill in all fields. 3. Tap Send. Expected: a "Thanks, we'll be in touch" message. Actual: nothing happens and no error appears. Environment: iPhone, Safari. Severity: major (no leads from iPhone visitors).
Step 7: Automate the tests you'll repeat
Manual testing finds new problems. Automated testing makes sure old problems don't come back. Once a flow works, every future change (a plugin update, a new page, a redesign) can break it again, and clicking through 20 flows by hand before every release is the first thing that gets skipped.
Automate these first:
- The critical flows from Step 1
- A short smoke test to run right after every deploy
- Regression tests to run before every release, or on a schedule, so you hear about breakage before your users do
There are two ways to do it:
| Approach | Examples | Good for |
|---|---|---|
| Code-based frameworks | Playwright, Cypress, Selenium | Developers who are comfortable writing and maintaining test code |
| No-code testing tools | BugBug | Testers, product teams and site owners who want automated tests without writing code |
BugBug is a no-code end-to-end testing tool for web apps and websites. You record a flow by clicking through it once in Chrome, and BugBug turns it into a test you can rerun with one click. Its AI-assisted recorder picks stable selectors and handles waiting while you click.
You can also ask an AI agent such as Claude, ChatGPT or Cursor to create, update and run tests through BugBug MCP, and those tests stay visible and editable in BugBug.
The free plan lets you create up to 15 tests and run them locally. Paid plans add cloud runs, schedules, Slack, Discord or email alerts and a built-in inbox for testing signup and password-reset emails, and the Pro plan adds CI/CD integration. BugBug runs tests in Chromium-based browsers (Chrome, Edge, Brave, Opera), so keep checking Safari and Firefox by hand or with a cross-browser device service.

Make testing part of your release routine
Automated tests only help if they run without anyone remembering to start them:
- On every pull request or deploy: trigger your smoke and regression tests from your CI/CD pipeline.
- On a schedule: run the full set nightly, so problems caused by third-party changes (a payment provider, a plugin update) surface before customers find them.
- Alerts where the team works: send failures to Slack or email, with a link to what broke.
- Keep tests trustworthy: a test that fails at random teaches people to ignore failures, so fix flaky tests as soon as they appear. In BugBug, reusable components, smart waiting and Edit & Rewind help reduce that upkeep.
With BugBug's cloud runs there are no servers, Selenium grids or Docker containers to maintain: tests run in BugBug's cloud on a schedule or from your pipeline.
Turn your critical flows into automated tests.
Record your first test in a few minutes with BugBug. Free plan, no credit card.
Start testing for free
Compare more options: Web testing tools.
Manual vs automated website testing
| Manual testing | Automated testing | |
|---|---|---|
| Best for | Exploring, usability, new features, one-off checks | Repeating the same checks: regression and smoke tests |
| Speed | Slow, one flow at a time | Fast, and can run on a schedule or after every deploy |
| Cost | Cheap to start, grows with every release | Takes setup time first, then cheap to rerun |
| What it finds | Unexpected problems and confusing UX | Things that used to work and broke |
| Skills needed | None | Code (frameworks) or none (no-code tools) |
Most teams do both: manual testing for anything new, automated testing for anything they check more than once.
Website testing checklist
Copy this checklist into your test plan or ticket and tick off each line. For a longer pre-launch list, see the full QA checklist for website testing.
Functionality
- [ ] Every form sends and shows a confirmation
- [ ] Clear error messages appear for empty or wrong input
- [ ] Sign up, log in, log out and password reset work
- [ ] Confirmation and notification emails arrive, and their links work
- [ ] Search returns relevant results, and a helpful message when nothing matches
- [ ] Checkout and payment complete (use the payment provider's test mode)
Navigation and content
- [ ] All menu and footer links work
- [ ] No broken links or missing images
- [ ] The 404 page exists and helps visitors find their way
- [ ] Prices, contact details and legal pages are correct
- [ ] No typos in headings, buttons and key pages
Browsers and devices
- [ ] Works in Chrome, Safari, Firefox and Edge
- [ ] Works on a real iPhone and a real Android phone
- [ ] Layout holds at phone, tablet and desktop widths
Performance
- [ ] Lighthouse or PageSpeed Insights shows no major issues on key pages
- [ ] Images are compressed and sized for the screen
- [ ] Pages feel fast on a mobile connection
Accessibility
- [ ] The whole site works with the keyboard only
- [ ] Images have alt text, form fields have labels
- [ ] Text has enough color contrast
Security
- [ ] HTTPS everywhere, no mixed content
- [ ] Admin, staging and test pages aren't public
- [ ] Login limits repeated failed attempts
- [ ] Forms handle unexpected input safely
Launch and SEO
- [ ] Page titles and meta descriptions are set
- [ ] Analytics and cookie consent work
- [ ] robots.txt and the sitemap don't block the live site, and any staging "noindex" is removed
- [ ] Redirects from old URLs work
Running this checklist before every release?
Automate the repeatable parts with BugBug and let a schedule check them for you.
Try BugBug for free
How to test a website before launch (or before handing it to a client)
Built the site yourself, or about to tell a client it's finished? Work in this order:
- Test on a staging copy or locally first. Never use the live site as your only test environment, especially for forms and payments.
- Run the full checklist above. Every line, on at least one real phone.
- Watch someone else use it. Ask a person who has never seen the site to complete three tasks while you stay silent. Every time they hesitate, you've found a usability issue. For feedback from more people on more devices, crowd testing services can put your site in front of real users within days.
- Do an acceptance check with the client. Give them the list of flows and ask them to confirm each one works the way they expected. This is user acceptance testing (UAT), and it saves arguments later.
- Smoke test the live site right after launch. Homepage, main form, login, checkout: a few minutes, every time you deploy.
- Keep testing after launch. Schedule automated tests to run daily, so you're the first to know when something breaks, not your client.
Types of website testing and what they're called
Website testing is often just called web testing or website QA (quality assurance). Within it, these are the types and names you'll hear most, and when each one is used:
| Term | What it means | When it's used |
|---|---|---|
| QA testing | The general name for checking that a website works and meets its requirements | Any time |
| Functional testing | Checking that features do what they should: forms send, buttons work, logins succeed | Every release |
| Smoke testing | A quick check that the most important pages and flows work at all | Right after a deploy |
| Regression testing | Rerunning existing tests to make sure new changes didn't break old features | Before every release |
| User acceptance testing (UAT) | The client or business owner confirms the site does what they asked for | Before sign-off or launch |
| Usability testing | Watching real people use the site to find what confuses them | During design and before launch |
| Cross-browser (compatibility) testing | Checking the site on different browsers, devices and screen sizes | Before launch and after design changes |
| Performance and load testing | Measuring speed, and how the site behaves when many people visit at once | Before launch and big campaigns |
| Security testing | Looking for weaknesses an attacker could use | Before launch, then regularly |
| Accessibility testing | Checking that people with disabilities can use the site (WCAG) | Before launch, then regularly |
| End-to-end (E2E) testing | Testing a whole user journey from start to finish, often automated | Every release |
| Exploratory testing | Using the site freely, without a script, to find problems nobody planned for | New features and before launch |
| API (web service) testing | Checking that the services behind the site return the right data and handle errors | Every release, usually automated |
| Penetration testing | A security expert tries to break in, the way a real attacker would | Before launch and after major changes |
💡 Go deeper: What is regression testing? and Performance testing in software testing.
Can AI test my website?
Partly. An AI assistant can review a page, suggest test cases, draft a test plan and, with the right tools, click through a site for you. But a one-off chat won't keep testing your site after every release, and it can't reliably check results it can't see.
What works in practice: use AI to draft test cases, then turn them into tests that run on their own. BugBug's AI-assisted recorder picks stable selectors and handles waiting as you click through your site. On the Pro and Business plans, BugBug MCP connects AI agents such as Claude, ChatGPT or Cursor to your BugBug project, so anyone on your team can ask them to create, run and fix tests, and investigate failures.
Don't share real passwords with a chat assistant. Create a dedicated test account with test data, and give automated tests only those credentials.



