Headline numbers
- 5,000 URLs crawled: 4,942 answered 200, 41 answered 404, 16 answered 403, 1 looped through more than ten redirects
- 45,048 further URLs discovered and not crawled; robots.txt excluded 3,354
- 356 crawled URLs redirect; 226 take two or more hops, 321 start with a temporary 302 and 185 pass through http:// on the way back to https
- 4,085 of 4,087 HTML pages have no canonical tag; 2,616 have no meta description; 2,996 titles run past 60 characters
- 308 pages in 111 duplicate-title groups ("Our People" is the title of 21 pages); 3 pages have no title at all
- 462 of the 5,000 URLs are PDFs
- 11,721 images, 1 without alt text
- 1 page took 9.2 seconds to respond; 17 pages have no viewport tag; 4,087 pages send none of the four common security headers
The University of Bristol is five miles from where Crawl Cove is built, and its website is what most large institutions look like: decades of departments, each with its own corner of the site, held together by a central template. We crawled 5,000 of its pages on 29 October 2026. That is about one in ten of the URLs the crawler found, so the numbers describe the slice we fetched, not the whole site, and the Findings page says so at the top.
The crawl
5,000 URLs at the cap: 4,942 answered 200, 41 answered 404, 16 answered 403 and one (an internal jobs page) redirected more than ten times and was given up on. 462 of the 5,000 are PDFs and 35 are Word documents, all linked from pages and all fetched as part of the site. The crawler saw another 45,048 URLs it did not reach and robots.txt excluded 3,354.
Five things the bristol.ac.uk technical SEO audit noticed
1. Fifty-seven pages linked from inside the site that do not open
What it is: 41 URLs answer 404 and 16 answer 403, and every one of them is linked from at least one crawled page. The 404s are old course pages, a transport plan, an insurance page and a few mangled links (a LinkedIn URL and two phone numbers pasted into a link target, so they resolve as pages under /study/). The 403s are staff-only pages (catering, HR guidance, staff discounts, timetabling) linked from public pages. Why it matters: a visitor who follows the link lands on an error, and a search engine drops the page from its index while still spending crawl budget on it. The 403s are a smaller problem with an easy fix: either the link should not be on a public page, or the page should answer with a login rather than a refusal.
2. 226 redirect chains, most of them starting with a temporary redirect
What it is: 356 of the crawled URLs redirect. 226 take two or more hops. 321 chains begin with a 302 and 185 go through an http:// URL before coming back to https. The pattern is consistent: an old page redirects temporarily to an http:// address of its replacement, which then redirects permanently to https. Why it matters: a 302 tells search engines the move is temporary, so the old URL keeps the ranking and the new one waits; the http hop adds an insecure request to every visit. Both are one rule in the web server. The crawler also found 4,112 pages whose internal links point at a redirecting URL rather than the destination. Try it on one URL with the redirect checker.
3. No canonical tag on 4,085 of 4,087 pages
What it is: two HTML pages in the whole crawl declare a canonical URL; the other 4,085 do not. Why it matters: the site serves many pages at more than one address (with and without a trailing slash, with and without .html, bare domain and www), and the redirect chains above show it. Without a canonical, every variant that slips through is a separate page to Google and the ranking signal is split between them. This is one line in the shared template. The canonical issue reference has the detail.
4. Titles: 308 duplicates, 2,996 too long, 3 missing
What it is: "Our People" is the complete title of 21 different pages, "Postgraduate programmes | Study at Bristol | University of Bristol" of 16, and 111 title strings are shared in all. 2,996 titles run past 60 characters because the template appends the department name and the university name to everything ("About the centre | Centre for Academic Language and Development | University of Bristol", 87 characters). Three pages have no title at all. Why it matters: the title is the link in the search result; a cut title loses the part that says which department, and 21 pages called "Our People" cannot be told apart by anyone, Google included. The title tag checker shows the cut for any one page.
5. 2,616 pages with no meta description, and one page at 9.2 seconds
What it is: 2,616 of 4,087 HTML pages have no meta description and 543 have one over 160 characters. Separately, one country page for international students took 9,245 ms to respond; the other 4,999 URLs were under the 3-second threshold. Why it matters: with no description, Google writes the snippet from whatever text it finds, which on a departmental page is often a navigation list. The slow page is a single outlier and worth a look on its own.
Also seen: 17 pages with no viewport meta tag (so no mobile layout), 72 pages marked noindex, 149 pages with more than one H1 and 160 with none, 1,010 pages under 200 words, and none of the four common security headers (HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options) on any of the 4,087 HTML pages. That last one is not a ranking factor; it is the kind of thing an audit turns up because the crawler reads every response header anyway.
What we'd fix first
- Repair or unlink the 57 pages answering 404 and 403, starting with the 16 staff-only pages linked from public ones. One afternoon's work with the "Linked from" list.
- Change the old-URL redirects from 302 to 301 and send them straight to the https destination, which collapses most of the 226 chains and the 185 http hops at once.
- Add a self-referencing canonical tag to the shared template. One line, 4,085 pages.
Then the titles: a rule that stops the template appending the full department name when the page title already contains it would shorten most of the 2,996 long ones without anyone editing a page.