How to Check Loading Time of Website using Python

Website loading time is a crucial performance metric. In Python, we can measure how long a website takes to respond by recording timestamps before and after making an HTTP request. This involves using the requests module for web requests and the time module for timing measurements.

Basic Approach

The concept is simple: record the time before making a request, send the request, then calculate the difference. Here's the basic implementation ?

import requests
import time

url = "https://www.tutorialspoint.com"
start_time = time.time()
response = requests.get(url)
end_time = time.time()
loading_time = end_time - start_time

print(f"Loading time for {url}: {loading_time:.3f} seconds")
print(f"Status code: {response.status_code}")
Loading time for https://www.tutorialspoint.com: 0.480 seconds
Status code: 200

FunctionBased Implementation

Creating a reusable function makes it easier to test multiple websites ?

import requests
import time

def measure_loading_time(url):
    try:
        start_time = time.time()
        response = requests.get(url, timeout=10)
        end_time = time.time()
        loading_time = end_time - start_time
        
        return {
            'url': url,
            'loading_time': round(loading_time, 3),
            'status_code': response.status_code,
            'success': True
        }
    except requests.RequestException as e:
        return {
            'url': url,
            'error': str(e),
            'success': False
        }

# Test multiple websites
websites = [
    "https://www.google.com",
    "https://www.github.com",
    "https://www.stackoverflow.com"
]

for site in websites:
    result = measure_loading_time(site)
    if result['success']:
        print(f"{result['url']}: {result['loading_time']}s (Status: {result['status_code']})")
    else:
        print(f"{result['url']}: Failed - {result['error']}")
https://www.google.com: 0.337s (Status: 200)
https://www.github.com: 0.421s (Status: 200)
https://www.stackoverflow.com: 0.389s (Status: 200)

Advanced Timing with Multiple Measurements

For more accurate results, taking multiple measurements and calculating averages helps account for network fluctuations ?

import requests
import time
import statistics

def benchmark_website(url, iterations=3):
    loading_times = []
    
    for i in range(iterations):
        try:
            start_time = time.time()
            response = requests.get(url, timeout=10)
            end_time = time.time()
            loading_times.append(end_time - start_time)
            print(f"Attempt {i+1}: {loading_times[-1]:.3f}s")
        except requests.RequestException as e:
            print(f"Attempt {i+1}: Failed - {e}")
            return None
    
    if loading_times:
        avg_time = statistics.mean(loading_times)
        min_time = min(loading_times)
        max_time = max(loading_times)
        
        return {
            'average': round(avg_time, 3),
            'minimum': round(min_time, 3),
            'maximum': round(max_time, 3),
            'all_times': [round(t, 3) for t in loading_times]
        }
    return None

# Benchmark a website
url = "https://www.tutorialspoint.com"
results = benchmark_website(url, iterations=3)

if results:
    print(f"\nBenchmark Results for {url}:")
    print(f"Average: {results['average']}s")
    print(f"Fastest: {results['minimum']}s")
    print(f"Slowest: {results['maximum']}s")
Attempt 1: 0.456s
Attempt 2: 0.423s
Attempt 3: 0.467s

Benchmark Results for https://www.tutorialspoint.com:
Average: 0.449s
Fastest: 0.423s
Slowest: 0.467s

Key Considerations

Factor Impact Solution
Network latency Affects all measurements Multiple tests, average results
Server load Variable response times Test at different times
Connection timeouts Failed requests Set reasonable timeout values
Cache effects Faster subsequent requests Clear cache or test different URLs

Conclusion

Measuring website loading time in Python is straightforward using requests and time modules. For accurate results, take multiple measurements and handle exceptions properly. This technique is useful for performance monitoring and comparing different websites or servers.

Updated on: 2026-03-27T11:34:53+05:30

923 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements